Sync with portage [Thu Nov 30 08:50:41 MSK 2017].
This commit is contained in:
parent
c682c64cc9
commit
f2907af181
2135 changed files with 15069 additions and 68577 deletions
30
Manifest
30
Manifest
|
@ -1,23 +1,23 @@
|
|||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA512
|
||||
|
||||
MANIFEST Manifest.files.gz 28844 BLAKE2B 80d6f153bcc5c8a6dbf1fbb4efd26ff528d535e706443331f3ddad3c98cf642829acf8fb9e3c016ad487486efbba674fb52bef9c5fabc8dd5203ece9c617c19d SHA512 aa1bfa7bd5a54d19c46cc0ec4a06e89d9c0c83603c7566ced7cada4269abd576cea1db7d021e89e329a5762b297b718f32c68dbe8415d8a080fba7b3e34b811a
|
||||
TIMESTAMP 2017-11-28T09:40:14Z
|
||||
MANIFEST Manifest.files.gz 28856 BLAKE2B 2a18d6e48c86232ae4c0b44aa309fdd410f19e11dee46a23f38d3fb2735b5b9da3b4d455b41a56b6b044cb4f4bd1f27095f20c0f52db703cb623860e78c8514b SHA512 f429d0481f15a4e88d8049023ce2a08dea05022cee7bb36cd179a7f75244a81520f53b95299e1bcc135932161508f374de332f1f75a89c7014aec4cffcf369fb
|
||||
TIMESTAMP 2017-11-30T05:09:40Z
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQKTBAEBCgB9FiEE4dartjv8+0ugL98c7FkO6skYklAFAlodLv5fFIAAAAAALgAo
|
||||
iQKTBAEBCgB9FiEE4dartjv8+0ugL98c7FkO6skYklAFAlofkpRfFIAAAAAALgAo
|
||||
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEUx
|
||||
RDZBQkI2M0JGQ0ZCNEJBMDJGREYxQ0VDNTkwRUVBQzkxODkyNTAACgkQ7FkO6skY
|
||||
klBfPQ//Wmrmld0Lx5H8K8d3yJusIGW4QgPJTlEIrvKACk1zEeBV0HcMKcwJ493y
|
||||
C3narKZPjqPPS/h8nyPvIuZhIfYHbk4SZJKHnTSu4s5PAI5V46jBeQHUOyfBporo
|
||||
cw69865NhSBLLY6PFVOfSE9XH3+VJdnAzkZxcXMHddI2KYUXX8WQ+dHJPpC7c3Gh
|
||||
FYkc4xRjw8lbYYujTcR4VNfWDH6gRpOLbUKH67bHso3p5ztv1gMp2TdzAJIyUUd5
|
||||
ncQfaQolHWY5RsVAyqRtMFeUFZSjJ3XGmRe3zbP85/mx2ry456LBvwkqVJ9rOqbu
|
||||
NZex3UQ3Kq8AObecXKDpk233Jg6Ge0qCE8yPK17zamhVgjKzuyLTvBE32EGiI8Tf
|
||||
qCEPGHFws/AbV0nd/uNZkajjvffA4msMgSH15njmHOl9nld1TW75eK2R9EOQN1s7
|
||||
RhpEUsPW1zQa/3OsBGJyMgodH7ny/0pHzugs8hbj++iIpfA3sENeaQJkBwNievwn
|
||||
y/Drn5eBd5Kw2cEyIMFfr9KTcp7ehuUHEjv9zAIgugKNqpSmSp28YsuLq82xFmiG
|
||||
/VTNeT/h5hLi8rvhr7Zp6454DVxBCG/NR3lM3vE9X+g1hFkljkL//1LUo0DeDCqu
|
||||
+8YTfRN+Y2tugzCm9QdaK3kpOkJP/HM1zjinQouV4Ntqgk3p6dA=
|
||||
=wru5
|
||||
klC9mw/+Nsv6CW5rAg0bmlUx6/XNiszJw+0elf7mAyA+gfmuPLIFbftRh2T0AAzc
|
||||
2K47EctuTTF81RZxWkhUBVu9bQxz3o6KTzxm157cFHhuU3j7s8MAR/9+x/xrvCkk
|
||||
MQ+eEe4WX7RLOkSFouxdD0HVnd22qa+n5lhlW6As1tZv86L4Z08T02+m0QZRdMoG
|
||||
ZkStXwjnfbnl8HviSj91MRFTnFGuWwZHPX0MtqWcvlGz49u3zTvxWZcMTE9AsgnO
|
||||
P2SZDOx+pxoVSLYL1tv5xmzkuoEjnDQR3g9J4DMiMa1c/1Cd3b5RRbhdZ7o4VzDd
|
||||
Z5PCJj23SxtlAN9sJIm0edz/BkSxKsWBZW2jz5z55MOSnCHYu/FPmQAmFo0eZW/y
|
||||
IExYTO5Gn5Ph1O7SZ7Yrtk9oVgzVeHNdG3k9ePHFwrl1PKF12ypsKBYmcVk06o3m
|
||||
2Y7viiZwjYc9wbDKp/T/icJ5FcuR8g76ievOncq1WJTc1eYdxN7Z/xoEaEvYNTaF
|
||||
HeU2DYcSu6PjWfCXWb+gT5oEppv+EA9givQCJ/d9Ye3hsOyrucdxNYom/Pz6BzPT
|
||||
RAXskUesF9SDWOrIpTQHyNdrxyB5CH5uRLS69eww01bTP1iRQvIxdOHw3e6rkgZN
|
||||
avGUGwYKshuLnCjKUTwFcOg7xLIph0KbzhvZLLNi1kwhNb6hjPw=
|
||||
=8wnp
|
||||
-----END PGP SIGNATURE-----
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -1,18 +1,24 @@
|
|||
DIST github-backup-utils-2.10.0.tar.gz 73061 SHA256 08c2f24adcbc1554fc6079a46f7b59e1cb2f21950546956f9c4367c25dc716a5 SHA512 e4ec432289da71e7c8d50023e4874b4aef5e99b27f67c42ebadc61473f5b0bce473f768ff19d1d611d91944ce887ad496535f1bc8d6557a31a99353e100f7776 WHIRLPOOL c33ccbff94e5c56f2017ff344170538822637261e7c87037db1e5c9abcae28276424aab0d7ed6b3c489148430a05cd488dca4871b302e69acf821f089a73c479
|
||||
DIST github-backup-utils-2.11.0.tar.gz 75105 SHA256 ae28ab08b933a8288e9eb9a92df221b0762cd1e7e399b5c116405a0d5fc3175b SHA512 7d96aff4c2e2bcce7b2b2d32854e759d561de8e683a13d3890bbbc5177cea861a666a60527b4b6ec4d4d7e8123bfff4618b6dfd0c3db73b1829cca0c43c0a9ec WHIRLPOOL 05be640c5f95025cb694d4f8e1f1fda4a1d349889333f9ada1f15b48b3bb01d89b9bd4fb984549916f63815548efb272621d016cebdfddb803ec5fdd41b62377
|
||||
DIST github-backup-utils-2.11.1.tar.gz 79378 SHA256 187703c451d85b4c70fd9565de2cf4c4c11e1ff6087237bc5f617b4db06cfe5c SHA512 7bdd34386d8604bfddb07d958d6cc435ec3e00705a83e53730f44a82a02eb98be311b73bba299db80513169a0680641927d9e2e9583b936c4fffa86de2ce2cda WHIRLPOOL d3e507d4eb678a04baa7ad78eca7b76a457e3f09914fe631548f76b56158ae826db3c911de551ad19b3272a662193d95bbea773dad2e8b813ef465b8c0bc8efb
|
||||
DIST github-backup-utils-2.11.2.tar.gz 79492 SHA256 28a55b803ae27a450e92edcac391e7f33607ec7f4d6cf73cbaf149dfa79c59b2 SHA512 64a622b090c8fe02ffba3c50b213ca177cc87e6aa41991cc3ee5031fc07b707e5f108f32d9346d2cd727939d76779d1f46dc6733e399c70e58ff8cb54087ddb8 WHIRLPOOL ba63353ac15d8775c78d83c9f6d33793893c775d5e6de103620f7c621b60acddacdd0d3dfb22ca57c7ed1cdfcb921fc4f4f43fd4b882c556ffa02aca451b17c7
|
||||
DIST github-backup-utils-2.5.0.tar.gz 40850 SHA256 9cc7cd40f41e6071c36527ec7983b877e461452cd08d04439efd5fa9352900a0 SHA512 ecd5b85e0e2e300a9f40ecb8f545868554c7b48bdf800a21cf111ead80c185c96d475c67487c9b9e8af676f8c71a001730084abde79e05860b3e24004888292d WHIRLPOOL 15be1d603c9b61a4cff47e319ee1a66b64684dfd19f06c696bffb41b77dc756a895e25074d5a6dd19aeebaa3106fe12842cb22a639ed4abd3a6c2922e8cdbc1f
|
||||
DIST github-backup-utils-2.6.0.tar.gz 45970 SHA256 7273cebcb23bc597432a2b66ab7e9367a4fb09a750cf2438f8957dc83dcf27c3 SHA512 a795e439f9d28e27b457c5b6eb42f35d6aea1527c2a01a26b81d6e86829db14a0b27a366d9358214bbe1c16540fe524fb0010d5f509c78ba5398c6bdbf04182e WHIRLPOOL fd1aeec46946190657e61e611a089b4a7cef53beb7b3f9a500b7117fcdbd89c5ef09681aff98ed5d559cc243f76180eb6eec0cc6f2fcfeed0789c159f5a09afe
|
||||
DIST github-backup-utils-2.6.3.tar.gz 50884 SHA256 3a5e48ff250b64a9bcec69a269b0e93efda078b8b77afc992c12aa40ee7bb3d9 SHA512 dff092325ad6f3502c8c0afbea90a53469af0ab4b98eaa39a950022c5b4e199cd3b48b5ec0585e3ea39b9bbd707dd037e8e0ed00ed8c6858276ba1a8e1075290 WHIRLPOOL aa19640ee5583d5e64aaab7b5a9d5572c47a09dd11fd0bed30ffc6aad0a10ddfc4e258f4680180547f8327fbedc5866bde4b20bd5e962dfa8162cd8ecf5e6db3
|
||||
DIST github-backup-utils-2.6.4.tar.gz 51270 SHA256 caf34b54a3961562d545ad2fb68ec18a319e6fcc1a1e65e5daa00e04e7f7fb32 SHA512 be2ef9811e20fd9be03d1b57e75151089817bbdd87fa487462a8fe6186195581ad6b1c62b1b930bd64689e89dcf33c2228df7d77a12790404f09b679b1ecf377 WHIRLPOOL a313f94eea953648a3dfbacba5eb3b90e68ca12df034c723133d3d80e60e4be38ef30046b8bbc1bdb827095d75cb239a4152a77dedfed52f188d80b57143fcb0
|
||||
DIST github-backup-utils-2.7.0.tar.gz 51409 SHA256 9556dbd438ea3525692705844c20b5bedc9a942c5415dd3c0fd9e383323dc11f SHA512 16112e8d05001146a182e225c1bb5bdfbe210ddb3993d989a9fe88b88bbf222196a66f1f48b262b198675af8e4b3e3a10120e7dafa7b244137bf29cd879efaaf WHIRLPOOL 9600d45f69f16cb95b0bb0b3cc5620d7bb6c2e65c2ac6b6942287c85487e83bb2b74d0869b411d0b4829cc9dd2da20972a7635780f00facadc28ca9787028a3b
|
||||
DIST github-backup-utils-2.7.1.tar.gz 68793 SHA256 e1e9ee69a005252ab4899693d43fee1aaebac3783d97c343e16566d0c12cdc17 SHA512 950c24b3fef8775c2a90789c469a81256323c1ede67b3f6691920e78c1489533adf5616f2ac09f9b844382778b5b2b5106f8c467be7d65b47ee06bf732591880 WHIRLPOOL 87cabe2138c58cf41a803cc43c23748a2f3ed578f3488bfb38861db64b81cb31f4d3aa41e6a240788c3bc9a32d9f523dd28cdb099e1b21cc2472d2cde72f7916
|
||||
DIST github-backup-utils-2.8.2.tar.gz 71392 SHA256 7aaa435d007b2697c3540ce6e2d3e5ba999fa33339ed21f43db6e9bb42c7d78d SHA512 d3801d37f18b41594bfee83b891ce1eb9f1a15972839bd9dfb6469d311484ef94f635da4319b0b9f2d6778d87b935ca5c0bd42ddbf009f292e05b6a654464bf4 WHIRLPOOL f7c730ee6248b2bc7b8017ece697584717337a9a5f42e38544ed57db498863aa8e1fd3a029b00dcfd26a44f9d32448fba3b092fcccfa3277423ab48ebeb295b1
|
||||
DIST github-backup-utils-2.9.0.tar.gz 72512 SHA256 c019467eb218e25de0905f56af03bde59f09d06fee1ec2fc8ef21ddddfc8c711 SHA512 81af0842c021c49be8acca775d1ab375e98c2b725893f45d65b670e671892d779408677dfe6ed415101bf88fe549d117957bffef0aa372a74bcd7c6f87c1d12b WHIRLPOOL 9134ba916386f6590b4372992133b358f8284ebb4787bf8ae00c199a78df9fe34cbb6de45de3fcee0d3dffeae58e645d46d17ff8489fe443c682b3b685a5d8ae
|
||||
AUX github-backup-utils-python27.patch 497 BLAKE2B 204708abe587590b2479783f5fc355ab035a08af8dd85ccec600828384917ca6806abe3d50ada9ce133435b797d698699d777432e49f8a63513b2ae21e59baaf SHA512 9eb416ea2a9847d84d56da84c6355942f3320f8ed97711e602ab74e81f9dca32eff54f68a83586403c415e63fb7d13a0b6b67aa7b01cd05732160df08b9164a7
|
||||
AUX github-backup-utils-tarball-fix.patch 1440 BLAKE2B 8b6ff7b996317de913f82670da1e688bfb2796b51db9cb515a6a2d33d2f690e24030b9213c0ebd08fab316aded4d561f9b0d5e2fb1fc5f20d0190234e59e64af SHA512 738227c94b8c9cb569258ce2573db0ff9c8a216c74d891944969173add6eb31c0c46696d20977d986b5c29a9cdb2b3934563ed220527ef798de1cbeb680f6533
|
||||
DIST github-backup-utils-2.10.0.tar.gz 73061 BLAKE2B 072a3cf8b3a775b368e4f5c89f7b9b29f7fec26bf4fd9abec58a6f1d4f02a981881a547bbdede8f8b64d0ed01dfba334193132a5d1363de3f4cd8f11d9047602 SHA512 e4ec432289da71e7c8d50023e4874b4aef5e99b27f67c42ebadc61473f5b0bce473f768ff19d1d611d91944ce887ad496535f1bc8d6557a31a99353e100f7776
|
||||
DIST github-backup-utils-2.11.0.tar.gz 75105 BLAKE2B f14f30db263cc304aac0d2a9a6d82883067b80bd69292018876fa1b01b1e47d9f8dd44bdafed0eb1198fdabe2b25ec8e6f20117ae905a2ae17bb9a17174642ea SHA512 7d96aff4c2e2bcce7b2b2d32854e759d561de8e683a13d3890bbbc5177cea861a666a60527b4b6ec4d4d7e8123bfff4618b6dfd0c3db73b1829cca0c43c0a9ec
|
||||
DIST github-backup-utils-2.11.1.tar.gz 79378 BLAKE2B d887cf6d3e41c1537816edc6073a85c66dcaae0db5882187f5c9202ecaef0c7ad6c3593145a6619cc27e106cacd5343f4b26615569890e112db4ec67f98293f6 SHA512 7bdd34386d8604bfddb07d958d6cc435ec3e00705a83e53730f44a82a02eb98be311b73bba299db80513169a0680641927d9e2e9583b936c4fffa86de2ce2cda
|
||||
DIST github-backup-utils-2.11.2.tar.gz 79492 BLAKE2B 0eeba783fda89c862d1b6ecb56bc51dcb5130cc3ae8b35f38bba2b6fd850ee086d0b808f5cebb74617a1dea2f4ea3843c60a6162ac97e3139211b3796cc052d9 SHA512 64a622b090c8fe02ffba3c50b213ca177cc87e6aa41991cc3ee5031fc07b707e5f108f32d9346d2cd727939d76779d1f46dc6733e399c70e58ff8cb54087ddb8
|
||||
DIST github-backup-utils-2.5.0.tar.gz 40850 BLAKE2B 34f16e290619a21edef11410a583357a15b57c9a6a0d20b188863f5c41a7a30bcc168a2337ff7203de6f5659c611178bed0e0cff3d802c1ec923d7c4d8e1ee3a SHA512 ecd5b85e0e2e300a9f40ecb8f545868554c7b48bdf800a21cf111ead80c185c96d475c67487c9b9e8af676f8c71a001730084abde79e05860b3e24004888292d
|
||||
DIST github-backup-utils-2.6.0.tar.gz 45970 BLAKE2B 855c7e93aa4db136629db8ba109328d51b9e9ca82aef1190a9703be2cc456ac006cd6bacaf1d3ffe9ccd8d43fb83c15c30c9b514abd37fb2104e62b2e1ed51fa SHA512 a795e439f9d28e27b457c5b6eb42f35d6aea1527c2a01a26b81d6e86829db14a0b27a366d9358214bbe1c16540fe524fb0010d5f509c78ba5398c6bdbf04182e
|
||||
DIST github-backup-utils-2.6.3.tar.gz 50884 BLAKE2B 43e8c398da11f891230a7910fc29d9fc702f5985c8bda5388f8415446e12a3408383ee5a76a26f2519625be3bf442600e4281a4e10e24b5a1143ac4ca1934442 SHA512 dff092325ad6f3502c8c0afbea90a53469af0ab4b98eaa39a950022c5b4e199cd3b48b5ec0585e3ea39b9bbd707dd037e8e0ed00ed8c6858276ba1a8e1075290
|
||||
DIST github-backup-utils-2.6.4.tar.gz 51270 BLAKE2B 84d880d71b92d1b92f52dc3b749cb984a6f2e2e98eee1ecb4efc48dabf54fbb48a8a936d0422f7391adf3ea27265f6ea266045cf4ed509fd675ba2ac908abda7 SHA512 be2ef9811e20fd9be03d1b57e75151089817bbdd87fa487462a8fe6186195581ad6b1c62b1b930bd64689e89dcf33c2228df7d77a12790404f09b679b1ecf377
|
||||
DIST github-backup-utils-2.7.0.tar.gz 51409 BLAKE2B 5e1c5d55376af6f053b634ffbef4b97bd8f5a5126e6180bc95e21d372e311f863f653b630f4ecf2cf0c589b3b059e0a60e63ebeaa79d55c6333f7d34632adb35 SHA512 16112e8d05001146a182e225c1bb5bdfbe210ddb3993d989a9fe88b88bbf222196a66f1f48b262b198675af8e4b3e3a10120e7dafa7b244137bf29cd879efaaf
|
||||
DIST github-backup-utils-2.7.1.tar.gz 68793 BLAKE2B e65ac6c4e0018947be34d27bcf428d81ebdd138137fdbd1d15b6d77a7f2bc4b95a5ef00e0db1462b61b3015e2d2a54e1cd4e610857b7a156cbac9f5f912ad2ed SHA512 950c24b3fef8775c2a90789c469a81256323c1ede67b3f6691920e78c1489533adf5616f2ac09f9b844382778b5b2b5106f8c467be7d65b47ee06bf732591880
|
||||
DIST github-backup-utils-2.8.2.tar.gz 71392 BLAKE2B b45939693f2b545562b77abc897b54c4d980638c7e2b605d84deb4b251f8d702543829fe7138222aa25f740a033a73d52fbde6f735e3d510ca61c00be99ec82d SHA512 d3801d37f18b41594bfee83b891ce1eb9f1a15972839bd9dfb6469d311484ef94f635da4319b0b9f2d6778d87b935ca5c0bd42ddbf009f292e05b6a654464bf4
|
||||
DIST github-backup-utils-2.9.0.tar.gz 72512 BLAKE2B 3bb97609284dca1b3682d17e1c60e24a2169574691eb8463141951e2d5f93558ffbda3c7bec7f22c7a63dabe6bdf410c347f7512a09303653e5f939197d4faef SHA512 81af0842c021c49be8acca775d1ab375e98c2b725893f45d65b670e671892d779408677dfe6ed415101bf88fe549d117957bffef0aa372a74bcd7c6f87c1d12b
|
||||
EBUILD github-backup-utils-2.10.0-r1.ebuild 1165 BLAKE2B 0789a905aabb2e370d35868f89223bcd9b0ccb0100f186410f72c026747cbef9ed68b4346f37c3349e2da5a34db21ff711db8d24230d8a58f2105c2dfc3009df SHA512 fe99dae0e4dc7e7c66c33ea61488f10c62ca656829f809b7d69dc83565183dbd7528f682df71c66e9f2ad2008e7a499abe3991cbfffa53d17bcb1cf4c3057c34
|
||||
EBUILD github-backup-utils-2.10.0.ebuild 893 BLAKE2B 70055ac1dc8372d877d4f0e4361b94d3ba60334b0bea5ce284a537f137641e09a6d14fbce96a62dd9a109d48b3b76b49810cb8a8554b9882d5915b8f159c1a26 SHA512 2ade504c613988d9238786435f333572975c9e1f180cea52dac9394c8b380b3e33c33a23951f4add9961bef4dfe9cf1e8e96970fc85086d299841c29fb3716c1
|
||||
EBUILD github-backup-utils-2.11.0-r1.ebuild 1165 BLAKE2B 0789a905aabb2e370d35868f89223bcd9b0ccb0100f186410f72c026747cbef9ed68b4346f37c3349e2da5a34db21ff711db8d24230d8a58f2105c2dfc3009df SHA512 fe99dae0e4dc7e7c66c33ea61488f10c62ca656829f809b7d69dc83565183dbd7528f682df71c66e9f2ad2008e7a499abe3991cbfffa53d17bcb1cf4c3057c34
|
||||
EBUILD github-backup-utils-2.11.0.ebuild 893 BLAKE2B 70055ac1dc8372d877d4f0e4361b94d3ba60334b0bea5ce284a537f137641e09a6d14fbce96a62dd9a109d48b3b76b49810cb8a8554b9882d5915b8f159c1a26 SHA512 2ade504c613988d9238786435f333572975c9e1f180cea52dac9394c8b380b3e33c33a23951f4add9961bef4dfe9cf1e8e96970fc85086d299841c29fb3716c1
|
||||
EBUILD github-backup-utils-2.11.1-r1.ebuild 1165 BLAKE2B 0789a905aabb2e370d35868f89223bcd9b0ccb0100f186410f72c026747cbef9ed68b4346f37c3349e2da5a34db21ff711db8d24230d8a58f2105c2dfc3009df SHA512 fe99dae0e4dc7e7c66c33ea61488f10c62ca656829f809b7d69dc83565183dbd7528f682df71c66e9f2ad2008e7a499abe3991cbfffa53d17bcb1cf4c3057c34
|
||||
EBUILD github-backup-utils-2.11.1.ebuild 893 BLAKE2B 70055ac1dc8372d877d4f0e4361b94d3ba60334b0bea5ce284a537f137641e09a6d14fbce96a62dd9a109d48b3b76b49810cb8a8554b9882d5915b8f159c1a26 SHA512 2ade504c613988d9238786435f333572975c9e1f180cea52dac9394c8b380b3e33c33a23951f4add9961bef4dfe9cf1e8e96970fc85086d299841c29fb3716c1
|
||||
EBUILD github-backup-utils-2.11.2-r1.ebuild 1165 BLAKE2B 0789a905aabb2e370d35868f89223bcd9b0ccb0100f186410f72c026747cbef9ed68b4346f37c3349e2da5a34db21ff711db8d24230d8a58f2105c2dfc3009df SHA512 fe99dae0e4dc7e7c66c33ea61488f10c62ca656829f809b7d69dc83565183dbd7528f682df71c66e9f2ad2008e7a499abe3991cbfffa53d17bcb1cf4c3057c34
|
||||
EBUILD github-backup-utils-2.11.2.ebuild 893 BLAKE2B 70055ac1dc8372d877d4f0e4361b94d3ba60334b0bea5ce284a537f137641e09a6d14fbce96a62dd9a109d48b3b76b49810cb8a8554b9882d5915b8f159c1a26 SHA512 2ade504c613988d9238786435f333572975c9e1f180cea52dac9394c8b380b3e33c33a23951f4add9961bef4dfe9cf1e8e96970fc85086d299841c29fb3716c1
|
||||
EBUILD github-backup-utils-2.5.0.ebuild 868 BLAKE2B 36bdc6369b2b535dac992641bcfa4c323325e5811d9a581742d5c06079a10c75220f7b11557b983e77ca83cdb9757f38a11ebb421d2fa9fdce5bc0e82c5a3f70 SHA512 023dd525af06cd12a7770185d0e0ae5adab996167984bc9c5e3466d0e9e7f69d5f205427b6723c4e16e02ca24732b5c4b4ed2895b5a53ef9bf96ebc2c0141274
|
||||
EBUILD github-backup-utils-2.6.0.ebuild 868 BLAKE2B 36bdc6369b2b535dac992641bcfa4c323325e5811d9a581742d5c06079a10c75220f7b11557b983e77ca83cdb9757f38a11ebb421d2fa9fdce5bc0e82c5a3f70 SHA512 023dd525af06cd12a7770185d0e0ae5adab996167984bc9c5e3466d0e9e7f69d5f205427b6723c4e16e02ca24732b5c4b4ed2895b5a53ef9bf96ebc2c0141274
|
||||
|
@ -22,5 +28,6 @@ EBUILD github-backup-utils-2.7.0-r1.ebuild 893 BLAKE2B 7765fe74f2a68cec46e692b45
|
|||
EBUILD github-backup-utils-2.7.0.ebuild 868 BLAKE2B 36bdc6369b2b535dac992641bcfa4c323325e5811d9a581742d5c06079a10c75220f7b11557b983e77ca83cdb9757f38a11ebb421d2fa9fdce5bc0e82c5a3f70 SHA512 023dd525af06cd12a7770185d0e0ae5adab996167984bc9c5e3466d0e9e7f69d5f205427b6723c4e16e02ca24732b5c4b4ed2895b5a53ef9bf96ebc2c0141274
|
||||
EBUILD github-backup-utils-2.7.1.ebuild 893 BLAKE2B 7765fe74f2a68cec46e692b458639e3af4736844dc69e5023ee137ff0e3fec18211948edc96126cfcbf56a7fc8df25ee538b8ba62f0aeb4786c35125a8d7b54e SHA512 7ddc82153106396b2b450d062c735257aa961b4329f5d5337db5391d5ebc57835e56755d600ec9923a4ca66569a3c590e05a8571a9484e2b67692a5769da3cfb
|
||||
EBUILD github-backup-utils-2.8.2.ebuild 893 BLAKE2B 7765fe74f2a68cec46e692b458639e3af4736844dc69e5023ee137ff0e3fec18211948edc96126cfcbf56a7fc8df25ee538b8ba62f0aeb4786c35125a8d7b54e SHA512 7ddc82153106396b2b450d062c735257aa961b4329f5d5337db5391d5ebc57835e56755d600ec9923a4ca66569a3c590e05a8571a9484e2b67692a5769da3cfb
|
||||
EBUILD github-backup-utils-2.9.0-r1.ebuild 1145 BLAKE2B 0b23e1a2d1505180be708b88f38b97a0c685490427555d68da01c786e44e5eb0772c69279906e4ff6111a68ac25af199f584b5809d62722f5fc7d95b657f7b03 SHA512 8b82f71361d6ad56ed36e733ad563ecbc736021de5cedeff77e5f9c574f3fa7ce2f99a81770372c55378dcf54bd1a542905ea1eee1dce6fc86ed064e262c6d94
|
||||
EBUILD github-backup-utils-2.9.0.ebuild 893 BLAKE2B 70055ac1dc8372d877d4f0e4361b94d3ba60334b0bea5ce284a537f137641e09a6d14fbce96a62dd9a109d48b3b76b49810cb8a8554b9882d5915b8f159c1a26 SHA512 2ade504c613988d9238786435f333572975c9e1f180cea52dac9394c8b380b3e33c33a23951f4add9961bef4dfe9cf1e8e96970fc85086d299841c29fb3716c1
|
||||
MISC metadata.xml 566 BLAKE2B e34ff45fefc466f7fc17c64ef41d72aa5560df6ce4f2a6b758129c3d2d5ffbe4323e4d64a6d01069195a2236f5288823214f4c8310e252c4699de7e5f0282990 SHA512 35a0eb37cedfcd41573c13655d87be23b68af3d3636fe06397565c06a2b78c767f41702ff1487134a3f52169492a1345be2d42a79520a16046a84428e4bf0677
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/test/bin/python b/test/bin/python
|
||||
index c79b0a4..a9c2991 100755
|
||||
--- a/test/bin/python
|
||||
+++ b/test/bin/python
|
||||
@@ -18,7 +18,7 @@ cat >/dev/null
|
||||
# verify the python compiles at least. if this fails then the python code passed
|
||||
# to -c failed basic syntax checks.
|
||||
echo "$2" |
|
||||
-/usr/bin/python -c "import sys; __import__('compiler').parse(sys.stdin.read())"
|
||||
+/usr/bin/python2.7 -c "import sys; __import__('compiler').parse(sys.stdin.read())"
|
||||
|
||||
# pretend we found zero processes.
|
||||
echo 0
|
|
@ -0,0 +1,39 @@
|
|||
commit ef6709b5e3510a7d0bcf0db91dbf5af5bc27b001
|
||||
Author: Austin English <austinenglish@gmail.com>
|
||||
Date: Tue Nov 28 16:36:39 2017 -0600
|
||||
|
||||
test/test-ghe-backup.sh: skip test if not in a git checkout
|
||||
|
||||
diff --git a/test/test-ghe-backup.sh b/test/test-ghe-backup.sh
|
||||
index 296429e..08bced2 100755
|
||||
--- a/test/test-ghe-backup.sh
|
||||
+++ b/test/test-ghe-backup.sh
|
||||
@@ -475,14 +475,20 @@ begin_test "ghe-backup stores version when not run from a clone"
|
||||
# Make sure this doesn't exist
|
||||
rm -f "$GHE_REMOTE_DATA_USER_DIR/common/backup-utils-version"
|
||||
|
||||
- tmpdir=$(mktemp -d $TRASHDIR/foo.XXXXXX)
|
||||
- git clone $ROOTDIR $tmpdir/backup-utils
|
||||
- cd $tmpdir/backup-utils
|
||||
- rm -rf .git
|
||||
- ./bin/ghe-backup
|
||||
-
|
||||
- # verify that ghe-backup wrote its version information to the host
|
||||
- [ -f "$GHE_REMOTE_DATA_USER_DIR/common/backup-utils-version" ]
|
||||
+ tmpdir=$(mktemp -d "$TRASHDIR/foo.XXXXXX")
|
||||
+
|
||||
+ # If user is running the tests extracted from a release tarball, git clone will fail.
|
||||
+ if GIT_DIR="$ROOTDIR/.git" git rev-parse --is-inside-work-tree > /dev/null 2>&1; then
|
||||
+ git clone "$ROOTDIR" "$tmpdir/backup-utils"
|
||||
+ cd "$tmpdir/backup-utils"
|
||||
+ rm -rf .git
|
||||
+ ./bin/ghe-backup
|
||||
+
|
||||
+ # Verify that ghe-backup wrote its version information to the host
|
||||
+ [ -f "$GHE_REMOTE_DATA_USER_DIR/common/backup-utils-version" ]
|
||||
+ else
|
||||
+ echo ".git directory not found, skipping ghe-backup not from a clone test"
|
||||
+ fi
|
||||
)
|
||||
end_test
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
# See https://github.com/github/backup-utils/issues/135
|
||||
PYTHON_COMPAT=(python2_7)
|
||||
inherit python-any-r1
|
||||
|
||||
DESCRIPTION="Backup and recovery utilities for GitHub Enterprise"
|
||||
HOMEPAGE="https://github.com/github/backup-utils"
|
||||
SRC_URI="https://github.com/github/backup-utils/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE="test"
|
||||
|
||||
DEPEND="test? (
|
||||
dev-util/checkbashisms
|
||||
sys-apps/moreutils
|
||||
${PYTHON_DEPS}
|
||||
)"
|
||||
|
||||
RDEPEND="net-misc/rsync"
|
||||
|
||||
MY_PN="${PN/#github-/}"
|
||||
S="${WORKDIR}/${MY_PN}-${PV}"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# skip a test that depends on a git checkout: https://bugs.gentoo.org/629628
|
||||
eapply "${FILESDIR}/github-backup-utils-tarball-fix.patch"
|
||||
|
||||
# Fix for python3 systems
|
||||
eapply "${FILESDIR}/github-backup-utils-python27.patch"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
:;
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin bin/*
|
||||
insinto usr/share/${PN}
|
||||
doins share/${PN}/version
|
||||
|
||||
exeinto usr/share/${PN}
|
||||
doexe share/${PN}/bm.sh
|
||||
doexe share/${PN}/ghe-*
|
||||
|
||||
insinto etc/${PN}
|
||||
newins backup.config-example backup.config
|
||||
}
|
||||
|
||||
src_test() {
|
||||
emake test
|
||||
}
|
|
@ -0,0 +1,59 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
# See https://github.com/github/backup-utils/issues/135
|
||||
PYTHON_COMPAT=(python2_7)
|
||||
inherit python-any-r1
|
||||
|
||||
DESCRIPTION="Backup and recovery utilities for GitHub Enterprise"
|
||||
HOMEPAGE="https://github.com/github/backup-utils"
|
||||
SRC_URI="https://github.com/github/backup-utils/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE="test"
|
||||
|
||||
DEPEND="test? (
|
||||
dev-util/checkbashisms
|
||||
sys-apps/moreutils
|
||||
${PYTHON_DEPS}
|
||||
)"
|
||||
|
||||
RDEPEND="net-misc/rsync"
|
||||
|
||||
MY_PN="${PN/#github-/}"
|
||||
S="${WORKDIR}/${MY_PN}-${PV}"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# skip a test that depends on a git checkout: https://bugs.gentoo.org/629628
|
||||
eapply "${FILESDIR}/github-backup-utils-tarball-fix.patch"
|
||||
|
||||
# Fix for python3 systems
|
||||
eapply "${FILESDIR}/github-backup-utils-python27.patch"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
:;
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin bin/*
|
||||
insinto usr/share/${PN}
|
||||
doins share/${PN}/version
|
||||
|
||||
exeinto usr/share/${PN}
|
||||
doexe share/${PN}/bm.sh
|
||||
doexe share/${PN}/ghe-*
|
||||
|
||||
insinto etc/${PN}
|
||||
newins backup.config-example backup.config
|
||||
}
|
||||
|
||||
src_test() {
|
||||
emake test
|
||||
}
|
|
@ -0,0 +1,59 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
# See https://github.com/github/backup-utils/issues/135
|
||||
PYTHON_COMPAT=(python2_7)
|
||||
inherit python-any-r1
|
||||
|
||||
DESCRIPTION="Backup and recovery utilities for GitHub Enterprise"
|
||||
HOMEPAGE="https://github.com/github/backup-utils"
|
||||
SRC_URI="https://github.com/github/backup-utils/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE="test"
|
||||
|
||||
DEPEND="test? (
|
||||
dev-util/checkbashisms
|
||||
sys-apps/moreutils
|
||||
${PYTHON_DEPS}
|
||||
)"
|
||||
|
||||
RDEPEND="net-misc/rsync"
|
||||
|
||||
MY_PN="${PN/#github-/}"
|
||||
S="${WORKDIR}/${MY_PN}-${PV}"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# skip a test that depends on a git checkout: https://bugs.gentoo.org/629628
|
||||
eapply "${FILESDIR}/github-backup-utils-tarball-fix.patch"
|
||||
|
||||
# Fix for python3 systems
|
||||
eapply "${FILESDIR}/github-backup-utils-python27.patch"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
:;
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin bin/*
|
||||
insinto usr/share/${PN}
|
||||
doins share/${PN}/version
|
||||
|
||||
exeinto usr/share/${PN}
|
||||
doexe share/${PN}/bm.sh
|
||||
doexe share/${PN}/ghe-*
|
||||
|
||||
insinto etc/${PN}
|
||||
newins backup.config-example backup.config
|
||||
}
|
||||
|
||||
src_test() {
|
||||
emake test
|
||||
}
|
|
@ -0,0 +1,59 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
# See https://github.com/github/backup-utils/issues/135
|
||||
PYTHON_COMPAT=(python2_7)
|
||||
inherit python-any-r1
|
||||
|
||||
DESCRIPTION="Backup and recovery utilities for GitHub Enterprise"
|
||||
HOMEPAGE="https://github.com/github/backup-utils"
|
||||
SRC_URI="https://github.com/github/backup-utils/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE="test"
|
||||
|
||||
DEPEND="test? (
|
||||
dev-util/checkbashisms
|
||||
sys-apps/moreutils
|
||||
${PYTHON_DEPS}
|
||||
)"
|
||||
|
||||
RDEPEND="net-misc/rsync"
|
||||
|
||||
MY_PN="${PN/#github-/}"
|
||||
S="${WORKDIR}/${MY_PN}-${PV}"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# skip a test that depends on a git checkout: https://bugs.gentoo.org/629628
|
||||
eapply "${FILESDIR}/github-backup-utils-tarball-fix.patch"
|
||||
|
||||
# Fix for python3 systems
|
||||
eapply "${FILESDIR}/github-backup-utils-python27.patch"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
:;
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin bin/*
|
||||
insinto usr/share/${PN}
|
||||
doins share/${PN}/version
|
||||
|
||||
exeinto usr/share/${PN}
|
||||
doexe share/${PN}/bm.sh
|
||||
doexe share/${PN}/ghe-*
|
||||
|
||||
insinto etc/${PN}
|
||||
newins backup.config-example backup.config
|
||||
}
|
||||
|
||||
src_test() {
|
||||
emake test
|
||||
}
|
|
@ -0,0 +1,58 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
# See https://github.com/github/backup-utils/issues/135
|
||||
PYTHON_COMPAT=(python2_7)
|
||||
inherit python-any-r1
|
||||
|
||||
DESCRIPTION="Backup and recovery utilities for GitHub Enterprise"
|
||||
HOMEPAGE="https://github.com/github/backup-utils"
|
||||
SRC_URI="https://github.com/github/backup-utils/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE="test"
|
||||
|
||||
DEPEND="test? (
|
||||
dev-util/checkbashisms
|
||||
${PYTHON_DEPS}
|
||||
)"
|
||||
|
||||
RDEPEND="net-misc/rsync"
|
||||
|
||||
MY_PN="${PN/#github-/}"
|
||||
S="${WORKDIR}/${MY_PN}-${PV}"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# skip a test that depends on a git checkout: https://bugs.gentoo.org/629628
|
||||
eapply "${FILESDIR}/github-backup-utils-tarball-fix.patch"
|
||||
|
||||
# Fix for python3 systems
|
||||
eapply "${FILESDIR}/github-backup-utils-python27.patch"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
:;
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin bin/*
|
||||
insinto usr/share/${PN}
|
||||
doins share/${PN}/version
|
||||
|
||||
exeinto usr/share/${PN}
|
||||
doexe share/${PN}/bm.sh
|
||||
doexe share/${PN}/ghe-*
|
||||
|
||||
insinto etc/${PN}
|
||||
newins backup.config-example backup.config
|
||||
}
|
||||
|
||||
src_test() {
|
||||
emake test
|
||||
}
|
|
@ -1,11 +1,6 @@
|
|||
AUX needrestart-parallelmake.patch 416 BLAKE2B 8cd134fff2d883d709c9ae6b161305d79953f3de3cc951213ba7ae22d4cac48d947d84b57892289c5c682b180efa8c532858151648173f25749f99dbbaa3b73b SHA512 e00a0a8c5d01a5ff9f813e253090f094b89a278dfed68b0edfa3bc20fe71965f870ad5eba6259abda7c1ba1a7a411e4d3481959b503ed647670cf3d5ef0be89d
|
||||
DIST needrestart-2.10.tar.gz 50602 SHA256 e2a9eff45d47d2c5e7c33102d204059bd493a4b950df15e01b37af7a2c084ebb SHA512 94cc4b898b3fadd4f5936133e8ce008fd79ce3e399c3343ab61308da59264f8e8301c3d1701fc0fa44478a94a6f518d73c09de708149a63fc3feb9dcd0f87a31 WHIRLPOOL 7b7eeecd92bddd326ced1671a04b50511279dacd04bcf33ccd0ceac1fd6f5eedbef388f70459789ee9dbb91299d3cbe4c2311e15a72d030be10aa546255d79b8
|
||||
DIST needrestart-2.11.tar.gz 52156 SHA256 5c7c322e551ae5de9442ac4915d6c9bc47303a22bc8fb234b953d4a158e65777 SHA512 e987ebafe77aba6920645088fa12e609b52f55edfd545ede1c0a93ee1d6b91ed3ea84cb8db69cd067aaabe8ba973b366da61301b5527ec176a29e3ba30605311 WHIRLPOOL a936b180037de8b804ed15ae44620aadc0dfc42d238207547832f42e7f8dea3784017ec1e517b7b22a0273396a26cb16d333358a80923dc2219c747c4129ebf5
|
||||
DIST needrestart-2.8.tar.gz 46420 SHA256 33b4f734335987557c68a8c57ea070ac4d23a249fa8675260f0bc28769056cc8 SHA512 2a6e5616a412039e9057a655208a7c55ed611d0deee5ba4c1d25563bb2610bcbf2b6d2534b906fd729db2eee5b3891fdb3fd3bc647f4d6aa06e2a87173b69be7 WHIRLPOOL 4f9daf45ca1a034d6476cf0b387174665d6bf15a4f36cb86e565d6b3715227bf8f7e27f6af422b1ef53c4b07a76d7b36eea0852e2db2a9032679ecc0b04bfc15
|
||||
DIST needrestart-2.9.tar.gz 49774 SHA256 812c9594a5a262524f354f2290d8f9cd623004b30222aaeb37faa8cc911bd89f SHA512 f3ed8c0312ec6ee40b7f74fb6a69eaec939c6af5d3a09fd62e59e426ac3fabd416db145eb3946e51f7fe53470c24aa8ccd3ad6aa1e5988195085456204153c81 WHIRLPOOL 577735033ad12178e6d1eafaa71a2e9f7d09eece84aa7970e19619767a823da9a6e872bd7e57fd2b0db5c6421f2690105e805c0450a3386ea92bc8b8625dc3d5
|
||||
EBUILD needrestart-2.10.ebuild 825 BLAKE2B 42e2af640eb7aa73c5012e05de007554612b9c915d04e24bce1f7d9866e0072b799a5725782db0d743c8ca0e958b9f923ae46657e0f9172d936cd834de2c2d50 SHA512 feeeaf8e9f7644db79f63735677d21c14e9c047ee392b1ab342c7174fd701ad098d4c5d9e903a9f5a1d0575537261e5526970c3fe287320b5985c1b8aacd714d
|
||||
DIST needrestart-2.11.tar.gz 52156 BLAKE2B fb3ffbf6f7876625ad0b7db4feb629c80f0798b7b117f5c94058533e8ed53e695fca5de76670a184245e23720886c79b97c3cfdcc5e9400c1e6988fdb2f64459 SHA512 e987ebafe77aba6920645088fa12e609b52f55edfd545ede1c0a93ee1d6b91ed3ea84cb8db69cd067aaabe8ba973b366da61301b5527ec176a29e3ba30605311
|
||||
EBUILD needrestart-2.11-r1.ebuild 855 BLAKE2B cf57592733872915455d20c0c10ce8f0e6438fbeae4bf998efb7d5613d3968f33369f3e37406fdb02d913ced830905bb34761db7cffd711663df16a207bdb6cc SHA512 dd8451935fd7e9ae0d80bf8d78193e0ae5eb1a9ad2babf895b223271024fe8fb968e2b2e0c153744fb9bece1a7d82d0864bdb093642504c061d225a5a4d2ce33
|
||||
EBUILD needrestart-2.11.ebuild 825 BLAKE2B 42e2af640eb7aa73c5012e05de007554612b9c915d04e24bce1f7d9866e0072b799a5725782db0d743c8ca0e958b9f923ae46657e0f9172d936cd834de2c2d50 SHA512 feeeaf8e9f7644db79f63735677d21c14e9c047ee392b1ab342c7174fd701ad098d4c5d9e903a9f5a1d0575537261e5526970c3fe287320b5985c1b8aacd714d
|
||||
EBUILD needrestart-2.8-r1.ebuild 910 BLAKE2B dfe5fcc0e605df3d05d189cdc902818f46fc157f1d702420b64d9644af9ed3229865b46dc38cdbc826ed5fc761390c853ef225fd0e5992426a03fee857901ce0 SHA512 ac53e9bb683a37355309bcc63544e887a38ee638d8d038d8412d6935a42196eebbc11b1572636c9312438a3b7f00a75a8f0f9543a38c70a48f16f5bcea09d695
|
||||
EBUILD needrestart-2.9-r1.ebuild 825 BLAKE2B 42e2af640eb7aa73c5012e05de007554612b9c915d04e24bce1f7d9866e0072b799a5725782db0d743c8ca0e958b9f923ae46657e0f9172d936cd834de2c2d50 SHA512 feeeaf8e9f7644db79f63735677d21c14e9c047ee392b1ab342c7174fd701ad098d4c5d9e903a9f5a1d0575537261e5526970c3fe287320b5985c1b8aacd714d
|
||||
EBUILD needrestart-9999.ebuild 825 BLAKE2B 42e2af640eb7aa73c5012e05de007554612b9c915d04e24bce1f7d9866e0072b799a5725782db0d743c8ca0e958b9f923ae46657e0f9172d936cd834de2c2d50 SHA512 feeeaf8e9f7644db79f63735677d21c14e9c047ee392b1ab342c7174fd701ad098d4c5d9e903a9f5a1d0575537261e5526970c3fe287320b5985c1b8aacd714d
|
||||
EBUILD needrestart-9999.ebuild 855 BLAKE2B cf57592733872915455d20c0c10ce8f0e6438fbeae4bf998efb7d5613d3968f33369f3e37406fdb02d913ced830905bb34761db7cffd711663df16a207bdb6cc SHA512 dd8451935fd7e9ae0d80bf8d78193e0ae5eb1a9ad2babf895b223271024fe8fb968e2b2e0c153744fb9bece1a7d82d0864bdb093642504c061d225a5a4d2ce33
|
||||
MISC metadata.xml 461 BLAKE2B 28793d229fbcb27f6ad2bf256bfae268236133d14302a72693b90e319af2bc2dc4c1928546b9f3c5e5fc657fa4013fb28acedb1762b84bed60850e5ba0852c23 SHA512 6b8877f41545dafdb30cc0ed3664e568901cc13c68c5221817631be63d454ef30d1b2e923f3a8fd9b0d77be825e1f183601e7a7d474a1d196b2a8eef099095b4
|
||||
|
|
|
@ -28,6 +28,7 @@ RDEPEND="
|
|||
dev-perl/Proc-ProcessTable
|
||||
dev-perl/Sort-Naturally
|
||||
dev-perl/TermReadKey
|
||||
sys-apps/init-system-helpers
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
sys-devel/gettext
|
|
@ -1,43 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://github.com/liske/${PN}.git"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
KEYWORDS=""
|
||||
else
|
||||
SRC_URI="https://github.com/liske/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
fi
|
||||
|
||||
DESCRIPTION="Restart daemons after library updates"
|
||||
HOMEPAGE="https://fiasko-nw.net/~thomas/tag/needrestart.html https://github.com/liske/needrestart"
|
||||
|
||||
SLOT="0"
|
||||
LICENSE="GPL-2+"
|
||||
|
||||
RDEPEND="
|
||||
>=sys-apps/sed-4.2.2
|
||||
dev-perl/libintl-perl
|
||||
dev-perl/Module-Find
|
||||
dev-perl/Module-ScanDeps
|
||||
dev-perl/Proc-ProcessTable
|
||||
dev-perl/Sort-Naturally
|
||||
dev-perl/TermReadKey
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
sys-devel/gettext
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-parallelmake.patch # https://bugs.gentoo.org/show_bug.cgi?id=588216
|
||||
)
|
||||
|
||||
src_install() {
|
||||
default
|
||||
doman man/*.1
|
||||
dodoc -r ex
|
||||
}
|
|
@ -1,40 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://github.com/liske/${PN}.git"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
KEYWORDS=""
|
||||
else
|
||||
SRC_URI="https://github.com/liske/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
fi
|
||||
|
||||
DESCRIPTION="Restart daemons after library updates"
|
||||
HOMEPAGE="https://fiasko-nw.net/~thomas/tag/needrestart.html https://github.com/liske/needrestart"
|
||||
|
||||
SLOT="0"
|
||||
LICENSE="GPL-2+"
|
||||
|
||||
RDEPEND="
|
||||
>=sys-apps/sed-4.2.2
|
||||
dev-lang/perl:=
|
||||
dev-perl/libintl-perl
|
||||
dev-perl/Module-Find
|
||||
dev-perl/Module-ScanDeps
|
||||
dev-perl/Proc-ProcessTable
|
||||
dev-perl/Sort-Naturally
|
||||
dev-perl/TermReadKey
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
sys-devel/gettext
|
||||
"
|
||||
|
||||
src_install() {
|
||||
default
|
||||
doman man/*.1
|
||||
dodoc -r ex
|
||||
}
|
|
@ -28,6 +28,7 @@ RDEPEND="
|
|||
dev-perl/Proc-ProcessTable
|
||||
dev-perl/Sort-Naturally
|
||||
dev-perl/TermReadKey
|
||||
sys-apps/init-system-helpers
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
sys-devel/gettext
|
||||
|
|
|
@ -3,9 +3,9 @@ AUX packagekit-base-elogind-support.patch 5850 BLAKE2B d71b50661eaafe2d5bdb5bc72
|
|||
DIST PackageKit-1.0.11.tar.xz 1427404 SHA256 bbd27bbc77795394f25ab009fe1b3420e365541c99248b18bbaa2fa7f029eaf7 SHA512 9529037685f76e883a71ae502eabd83c3e1e8905f76cfe5e938760677f0224f8758bca59e139588aa06589bcca7a20f13dea0fe419022cb950c7a4c631237bce WHIRLPOOL 8d9bebf55acdff2096bb750bc1f3028cdbbb8e0fd09926de69c7e3dcbd7fe56a2908709be01633dd5a61df80afab05b28d8f424b1bbb79454f503cd03301e56a
|
||||
DIST PackageKit-1.1.1.tar.xz 1410632 SHA256 483348a54c92419d713a8a153926ec6e1ab70ba64ae4afd3f0a6d63d10b1cac4 SHA512 caf9b67f71a36479d32338c28343671e9586aade7a0f777b867772ad8da8e3206bf66a46b2fa2cba8f0f48af27db3888b68e336707db6f76c5e0dbed464e2874 WHIRLPOOL 0a09233580b50f391931760960c3fe8a644797b24c15a79d56bdbfdadde835856f81175e209ad6877c49387c946c8765418eef28fc1fd188eb5d5d5a383fd1ad
|
||||
DIST PackageKit-1.1.4.tar.xz 1424756 SHA256 0ae89f7c381b7def41960f690f7212cf80f7f6bfc9055ce8d0c84aa45f120cd9 SHA512 fc04d58c46f7e7dbb1386d26627ea246b5f21b8483862788bb734b8a137e4cb1d41de0f471b46f6d649e29337f9605acba0568a845577b27a2ac0faaf391b187 WHIRLPOOL f76a446eb64721cb718fe250d710aaf4e0d801bddb44835a7a0327ed250150928d717bb037d23c758eb6bfb752b77aea4bb5a14c8df58b964e008f2260e45736
|
||||
DIST PackageKit-1.1.5.tar.xz 1418292 SHA256 50f448ced5b460bd79ba0c97e9fe080153eaeecad909eee108284e3f5fc7b70c SHA512 ecc6a4d39caa0a7ea2047f52f95980b23e61ae200e27559326f03302b1c0d798f9cbae53fcf2d397dca3d54e52f143e2e7aa4e3f0b2df8c39e53bd2993e86154 WHIRLPOOL d21df70793d316ffd045f9c4b06f0e31015cf659e9f3679cd96dbdaf3acf22e030446030f2c5a589f87b351b8a191dda7614bb63462a9e1017bb9ae11fcfdbf8
|
||||
DIST PackageKit-1.1.5.tar.xz 1418292 BLAKE2B 973cfaf1e6dd48bbf3ef5cfe421202804af584af227fb70c5835d70bc128da64fd4084dd2bc508ed63d2c46ac693d7b3fcb540992da4e13ea947696a75f870d9 SHA512 ecc6a4d39caa0a7ea2047f52f95980b23e61ae200e27559326f03302b1c0d798f9cbae53fcf2d397dca3d54e52f143e2e7aa4e3f0b2df8c39e53bd2993e86154
|
||||
EBUILD packagekit-base-1.0.11.ebuild 2897 BLAKE2B 273c57376ea2e7a4ac18b78e1b3a2297e37186e921e0bf5dc33361a5db7aef447a417de105284a3fc181cc6b05a9c0f0b6abd172d127b90a74d6e157f8ec5561 SHA512 40f13d99bec2493be551c2bae8d34789f1155c57d5a01b5f5964f18e6124894ab31d72532d481d136175d37979752e8926d91b44bdc181d47856725c19727c33
|
||||
EBUILD packagekit-base-1.1.1.ebuild 3338 BLAKE2B 82a68620c4e6e9ff616dfce5b579eb3742e609e169b2cd3a133a8079f791e55efb85391a2b3e7af43ca12200d0a963fb3ef1701a3c6dc25f00ae064559172606 SHA512 95e673821d137a33e1622e1cad241bf9649ad1368ac4c27178643d40f39f3bc8408546f5f545dc325ca72be0586ee5dadc7f33af0c1d98acc7ec748eb305fc22
|
||||
EBUILD packagekit-base-1.1.4.ebuild 3372 BLAKE2B bac2e0a5ff37132fbf315e0958fec7237f0059191f0074169e1eaa53cda2338f408dff543325e859e6f20e0d8d900cf470e563196506fbc99af7cbcb2e4dcb36 SHA512 44ccfdf2114a4d2d0d90ce39e7b18ce8adebac5f423fda4661c0e848d39efd7a9dba12a54022e77e6171aa44037cb65b6a6c584346d1181c0ddfe18212354046
|
||||
EBUILD packagekit-base-1.1.5-r2.ebuild 3712 BLAKE2B 93abc3f791733b485a485ddd5e8544e45094ba05bbb083baf0584d4766feda902a5438a16e22f67643a85f1929d1426c405f14dd2fc815347dfc070ffad09798 SHA512 8bf5c3acc0327e28686d3166aad7a7aa05d93bdfb145a32b62c7956d9a71c7bfdb662b147aadd2c2ae05684fa9e82d61a3f228c0b29b08fb7e6424f77650ca5f
|
||||
EBUILD packagekit-base-1.1.5-r2.ebuild 3771 BLAKE2B af4ee218467a98b0763ba1de22a50823f9dcf7e3d858a30a4020b254c4d301b649f58b348f11207383efa2d8404276dec0f9e283ff87a03566200848d46cc219 SHA512 fd7bc15c563f64e7167c3f1a86128a2dfd1acb947b84fd9fd41e9aa1b1856cff91729b003484d9c4dfa9c42def6f4ded15d0c0e579e9fe562d3d68491886877a
|
||||
MISC metadata.xml 860 BLAKE2B 03ddffc3bdd260e7ad8a2e47ccba37b9e381d543e7a0736d00deff87db86e2718af2b00e00092ef98b38b28456c995e1c70a8d190ff38c868a732dcd37300fe4 SHA512 db5ce7f7b361c9e742413bbb222fc3dfdd2747716e5d59a71dba5c14073a6bb18e1949d0247478a0652e6011af338e74ac790503773a2bc1d60693856b6f8650
|
||||
|
|
|
@ -43,9 +43,11 @@ COMMON_DEPEND="
|
|||
networkmanager? ( >=net-misc/networkmanager-0.6.4:= )
|
||||
systemd? ( >=sys-apps/systemd-204 )
|
||||
"
|
||||
# vala-common needed for eautoreconf
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
>=dev-cpp/glibmm-2.4
|
||||
dev-libs/libxslt[${PYTHON_USEDEP}]
|
||||
dev-libs/vala-common
|
||||
>=dev-util/gtk-doc-am-1.11
|
||||
>=dev-util/intltool-0.35.0
|
||||
sys-devel/gettext
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
DIST pydf_12.tar.gz 14207 SHA256 860029145e42f3484fa647c42966c236d90cba0221681dbf5f48257b6c5b8c92 SHA512 5a5819b83fe2425cb951a139b38b1b639d17e1d17c4e3e4a80fc4eb6d5632c42b03a2767e1864c8bee13dbd72ebb91ec79fefde1ba448e2af9fc4a314821a3d0 WHIRLPOOL 0e5ac13af4ed1ecf8aa4b6c203fc7309032692c2b4dc1e029a4c8897d7430be58bf3ef7cea549e2432142586dc76b42fcb790a90cc9b61fe68ee860d720200b9
|
||||
EBUILD pydf-12-r1.ebuild 793 BLAKE2B 27aacb91f62fe1cbcc64e30dccb73b87a12b5b7b5ba8bc7c5a7d94efa7d3bb5e9af5236428c2658e5d2a84b996b9419caba1ead365776e225d7761df7ab0e5f4 SHA512 7767f179a3d9faf11a67fc54b22691dec463098da1953ba16f966e2119bd923e6a1e3a53db7b355eb62f4a56d2f8aeeee299a16e76082932cbfb9293bdf37844
|
||||
EBUILD pydf-12-r1.ebuild 788 BLAKE2B 1ae9f3bafe529d158184a7940b1de629190c29ce5310178a8b962b2c18b2a08ed53c203dbe0684805c9bfd3af3b1b80419a566280898e1cc23e38afd8e71cf57 SHA512 d43ae8fce139948da82438587495907ae60698892df1b73b6559097d725fe1430f6f24db9d44a9d8182b51f709954b6f2cab0ab403bb4dc3229df379cac73689
|
||||
MISC metadata.xml 251 BLAKE2B f3c965f619454b2d17e1039b6c218308c83af9214f41a5b18244ce9bd811b0a0b6e0227fdaac9b1659a2e2467e6b992b771ff6cf431220648363ab8173ee76f2 SHA512 e8203a24b5e739dcf0d94742215ee6ccdccbd00bb43001f9df58d27100fa427b01937065e1d7399e3552532b09179611e06099e3af14aac5fcf9ddc4ca5463da
|
||||
|
|
|
@ -13,15 +13,13 @@ SRC_URI="http://kassiopeia.juls.savba.sk/~garabik/software/pydf/${PN}_${PV}.tar.
|
|||
|
||||
LICENSE="public-domain"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 arm ppc ppc64 x86 ~arm64 ~x86-fbsd ~amd64-linux ~x86-linux"
|
||||
KEYWORDS="amd64 arm ppc ppc64 x86 ~arm64 ~x86-fbsd ~amd64-linux ~x86-linux ~amd64-fbsd"
|
||||
|
||||
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
|
||||
|
||||
DEPEND="${PYTHON_DEPS}"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
DOCS=( README )
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
sed -i -e "s:/etc/pydfrc:${EPREFIX}/etc/pydfrc:" "${PN}" || die
|
||||
|
|
|
@ -18,7 +18,8 @@ DIST rsyslog-8.26.0.tar.gz 2393148 SHA256 637d43c4384f8b96dda873a0b8384045f72cb4
|
|||
DIST rsyslog-8.27.0.tar.gz 2435123 SHA256 02aefbba59324a6d8b70036a67686bed5f0c7be4ced62c039af6ee694cb5b1fd SHA512 dad957c21d9f7ed3a97a1ed87658fe9381dad00365bd2f5af2396dde3dc4a9f96db17c4df9eb9bd02562cc538f99bf8e2ca00229680d6b7892179161265db753 WHIRLPOOL 1ece4fa5bd453e1bcd4da9501fa93be7f3ea0eb87f7e60bb788d7c90c740566cc07351eb2d7730ac081b2564bde9a79dff7ac1b5012326cc8b0331539b2b5b01
|
||||
DIST rsyslog-8.28.0.tar.gz 2471122 SHA256 4ca5405908d612d45da700e36856430510875518eb8028d296d1ee4d2c44678e SHA512 e27ba0ff22e945393536abc5bc6e234d8849db291a5056429b59b47abe15fb060fc5c26efedcfe347b386d438b3f8a029ae4577a1d803666701431677f628cb1 WHIRLPOOL b3c07391b9730498aff9ca30a407bd18d5faea07ec37d389dc59daef595318aa11e66fa153a452f48a55df4a2c15789569b845a831266d702b4801b39856a208
|
||||
DIST rsyslog-8.29.0.tar.gz 2447907 BLAKE2B dd3a34e4c1b4edc989d58369933b94b11d89c044ca81715062cebaacae5003463ed233f26358418651f63643bd6d7cdfb4f3192324d59d596c87480e37f40493 SHA512 6e0a69f2ac36fcfd0714b2b7053bd263ca8875d2aba7ad6452223eb8677edfa1cf4978989661614dd65dd1822f0123599d565679c8faa3960f136c8d9472e952
|
||||
DIST rsyslog-8.30.0.tar.gz 2468224 SHA256 dfb9c3efe52ad03ad9f4479699139fb447177049553b6993315f53b668a2251f SHA512 90e172d08ba7548252fc9744f71259dadf5a40afef405516e7b1601620913ca4b2ffc4859b16f369b9c1974ea10f4e41bc2d987e3d6bf9aabeb979f7de6aefe0 WHIRLPOOL b965024cd94dbc2e81dedb2ac3fe3c12d82913b83f7d4f3b123ad8e101c14a5ca7eb17d087081a68545584e6d18e0069f779c63ddaad274c9f2e05d860887d0d
|
||||
DIST rsyslog-8.30.0.tar.gz 2468224 BLAKE2B 3c5c94661abc2e34d688ca08d6dea0d2bcca9f287f45328a0d1b240bcb1b9223800207ce8759da823fa3acd974fcc70f01565f95fbcec108f8f71c7cb14a2409 SHA512 90e172d08ba7548252fc9744f71259dadf5a40afef405516e7b1601620913ca4b2ffc4859b16f369b9c1974ea10f4e41bc2d987e3d6bf9aabeb979f7de6aefe0
|
||||
DIST rsyslog-8.31.0.tar.gz 2498675 BLAKE2B 8b80394ea3919dba29a431f3c5c1fc337a9e60a886a3c258c3895eb4341a941d8af6370ceb0d2e212934f64ab38c7238e99f40e1dc27e648bd4b75e158586a28 SHA512 aab888dda8df3ad7ff404767a58539cdc0bb92d0e537b703cf5833555688dd6d8223889b8d70bf8c594339a51831b57df7a65b397d8b40cded608dfb007befe7
|
||||
DIST rsyslog-docs-8.19.0.tar.gz 4271094 SHA256 f76958d2fbcbb3a2db531ec3878d6d9a8c4a622e457b9c97b7c7dcca0ddd6512 SHA512 120f229a641119649fc897948fb0934039a95d0ef63e68b10ab635620d84988d794fd5dc33617353028e786513a86b3a1cd0c4fef9c755dab5bedd8e0246532e WHIRLPOOL fc0642eef4e686fc653db6a654f96fd9037e083a02e06d64b7b2a2e0292d745ca6e24821df3b9825e0eba2c4808b2755dfaeb90b62a49662ab22a171ffe2e63b
|
||||
DIST rsyslog-docs-8.24.0.tar.gz 4344877 SHA256 f5e3c27c5b65abdd600b8ad8d99d1f2fe9f0ffca02d6af3c12db5fc10dd889b2 SHA512 b55cde1485a7baec6d4c4928107c22a078cf412a2994c0dfcbb12c47b49c3b263af8a64011b1329567cf86e04927b9e383581dc868eaea81d554adada6b3786b WHIRLPOOL e8b2d10b0de3c33189f859f08db58e319730e709e5a5008909f2166a061952290b0bf96163cdf6e0b3829896916f712ba5d8a2a98f02d796e9174d8919190f8d
|
||||
DIST rsyslog-docs-8.25.0.tar.gz 4359583 SHA256 3fa96f85ca31b09b16dcc4b184f9beeb5fb06ba463b0ced7046ec2a471b7d3ad SHA512 e0068ec00bbda2d1cf7f14105ad83e82bea9291ed5d5fda3ffcff2db32747b65e7b6d65743a3221aeca03be9c6efcee1db7f03c2da115a3aed60848556befa71 WHIRLPOOL 8c2ae0afe5fb1f81b33ecb83df420a7bbc8c147eac5854a57ba1c5341bb42d9dd4a3976a472445d19a45eb09258bc3be1b9065d79fd679095cbf24cbfddb1756
|
||||
|
@ -26,7 +27,8 @@ DIST rsyslog-docs-8.26.0.tar.gz 4381345 SHA256 4d3b46e6c06fecbd4100fad118c22569e
|
|||
DIST rsyslog-docs-8.27.0.tar.gz 4411093 SHA256 f799eba43ff73c14865cbc3f7105d54afec021430827e6d6da7b51f45cfbedb0 SHA512 08d935ecad070d65e7169a56c6a4d35d49e895b4f7cfe4d747939d8a92bdadd0fc3be7cc47d23d233a33b964f2a4d809a34b37419d2e42c3f8c183120412ab2c WHIRLPOOL 1a7eeadc0667580ab14ae5857fc61f7eb5553bad00d7b59ed3e70aa3a2f75550872a110c6149b4bd69778c990ec3c57e625cc08a716792731d456d875e8a9e8b
|
||||
DIST rsyslog-docs-8.28.0.tar.gz 4424901 SHA256 f6c41f7c3fca369dd28a72133b03693ad5c37252375ecadc6184ff1a954764db SHA512 c085e09149cfc27ce0cd22edf9ad3f81b111f491fbea79afbc3172882065bd8324e366e3b5d09c885c1a3aa63fe8fbbe154d66488319d4ffc0867f938e1ab07d WHIRLPOOL f6636ba7196c689e42651ac9c847b05f3eafdbe87186fad478c47d55f2856e5b200d2871612ca046c6d9c06ad2d80838ad226510ba59a3f2cfe234626ca8c75f
|
||||
DIST rsyslog-docs-8.29.0.tar.gz 4473644 SHA256 ca3f6a11a165221b4e5e189d9b86ea146245d7ad892758ef9c543db73a914663 SHA512 791633b93693c1eacde965e07ced863b96d1bfa488fc5c4770424825ab702cae7babd5286e552da5e17d1d7779f228c61a1527b9726dffea31bbb3b4e80525dc WHIRLPOOL 74f4fccfa14e44a574590110bf3d0591555b6bb0685fd65a575b002e503d61996a593d51dbedbc9ff390d9bef1942d1b3fa55e7eb334a6bf5cabb3c2c9a2e5a1
|
||||
DIST rsyslog-docs-8.30.0.tar.gz 4487378 SHA256 59c702e587e8f4566104b3266909deedba3c189849bed6965bbc56a1fbc08ca8 SHA512 8068bb9bb8408447bff49730e9aac105eab1bd610592dd524e7639b668b2d05a4836d3a9862622445a0bb8d8b140db67c861dad6ec207d11049ac368e363684d WHIRLPOOL a324fdf1c0796e88bc29c20c5afedc02924c712d4bff1c3601ea4dc85d1910c9c7272ae926f7c423b7568ebce832e9ec626b616ff669586fc2afe73bfe0a7cfd
|
||||
DIST rsyslog-docs-8.30.0.tar.gz 4487378 BLAKE2B 7d39fc7642ec2122f254dd6660a13efa4b214ee669fe5772b4d68a8ce94ed5ac3ca2500c23b5752924b5befca2a66c228b6f2bb48c7b9f72a2a4b98e2a14810b SHA512 8068bb9bb8408447bff49730e9aac105eab1bd610592dd524e7639b668b2d05a4836d3a9862622445a0bb8d8b140db67c861dad6ec207d11049ac368e363684d
|
||||
DIST rsyslog-docs-8.31.0.tar.gz 4484950 BLAKE2B 8ee4346a095942133bb473509f275c625fdb4a1aa81293a15604bdb95670ff0676677fe5481be3bc2ea7097b2c8de7fd3b0eb8033701522b372bffe44325a10a SHA512 51a63fa520d8176e183afa44ccf889374810dddfd5fdb363ed06b134bfbe0d1a94085e4836cf3bb2a07cb83564bbb87cef3763ac9429a5efc50aff276542defa
|
||||
EBUILD rsyslog-8.19.0.ebuild 12240 BLAKE2B c5de14a1f8dd0b12bb2e2b90707d86647766fcb3df54bc1a8c7428781248a5a1617b57990953037c3e6c8bc24751cc245e7a6faae520571a0fbef40b30828ce0 SHA512 7363c435c65394abda4a4f576e8433d8038a6e420534f3bb0419477ab3b4e3ab179f53bae016b372522884ac12eab467d3ece7db15303b3cc33d954f963fda8b
|
||||
EBUILD rsyslog-8.24.0-r2.ebuild 12396 BLAKE2B 0c0456e8d54b24a02e0d07e0672f81156afce8deff1094e9644bcc3dcee3aab0bd7c43ea70957504308563bb51419c9a24436fff36a1be450e1e0078ec23d739 SHA512 2acbc370ca468dcfc021b66a31b2617dc5093b518c5c486487e306548445c1bb472dd48458a3171a99f1bc82276bed39ccaff5be31603191d261d11c2cd521c9
|
||||
EBUILD rsyslog-8.25.0-r2.ebuild 12487 BLAKE2B 3e2715a63afe272a18b172ac7d67d2ad738d18d3c6f469cbc8642e4f75a5679f627f1dd768fb7301e1a37be4434f8f51fb1709217a5165dff99fbe218b3d84f5 SHA512 1a73a37139e8af1017f7cc53bbd35238130cfa30a7e3236f304a4d079931d0304fbde4f026254a951253c4060bcb6e774b6643f42ad14ef431b697833450f521
|
||||
|
@ -35,4 +37,5 @@ EBUILD rsyslog-8.27.0-r1.ebuild 12736 BLAKE2B f12cf7bdba7aba23bffd40a4f625710fd2
|
|||
EBUILD rsyslog-8.28.0.ebuild 12504 BLAKE2B 7fbd8ed2298fce7926f40963571d4b38c03a36384c8dd626dc6e94445a8066184191f9103ab11d9a48734575b799e9c77a2b341e523ffdfd99810b26997b5e9e SHA512 e21e89e5c365c3b6de7c7057113010dc5c9f4a6d713ffe52a4a3a6519db85de8ce1c54e7d88b7de47457e4bcc10e9873d52059e4a5b3216f9ad4f9aee66267a5
|
||||
EBUILD rsyslog-8.29.0.ebuild 12527 BLAKE2B c992fcb0783af6c15d89f8455ff47dc11248f5245b1a682f62b468150d814c672715d853acf31d3f551cb8c97dec1a02f9a676737033fe3e128d39a4b7412d71 SHA512 8f7593cca44eaa50929e03978dd9f066cc73aa9f725ce36585d274da925e0cc9a6a8791ab199c38b496e857335b8359c8cf19cc9ea3fae2ced4267ae69b05ef8
|
||||
EBUILD rsyslog-8.30.0.ebuild 12518 BLAKE2B d50e7a8dbeb492e8339d2b6f6fc237554059db89b0b9593bfc34111d1ffbef1cc518282f0b1b3c90dd04828fba7639dffab49c50e2ba779b4e4009886d5a2ce1 SHA512 aade46a36a893585f63d11a6030f6ad1ec0529e6cd79650ed96278a1a12f943d1710a1c853bcf54d528cff34dc8a706ab6d69823cab861f8a5c3f2f58b8f588f
|
||||
EBUILD rsyslog-8.31.0.ebuild 12565 BLAKE2B 29ca871aa60781bacec26e4809b8b3710958120011a5b3c7f31867c992faaab2f6b66707e013e855563e875104bb7e9fb93dac60836903c1a2f031600f2083fc SHA512 cb044ac578f29e7332191af95113882b2973870e37994b216eeb54b816e05cb42dae6e492c53b18d54dcac7425f6228aa1ac805f267dd6bf4fa344019c2b121f
|
||||
MISC metadata.xml 3335 BLAKE2B 329673f518b01762c932716aa569de4c2e0521000d8b9fa122b0ce659f31640316c126732043b11bf4a8f11e981810f7cf4f335b119ce5bedf508edf99f46e9b SHA512 bfa3a8fbb502f6fdc110e8aa6b7394449329c29a63fc71c615317c97deb4e48f6e9f952bf492cc96be15fffb514f281a0d19de697bfddab4d4c7acf3c535c6a1
|
||||
|
|
457
app-admin/rsyslog/rsyslog-8.31.0.ebuild
Normal file
457
app-admin/rsyslog/rsyslog-8.31.0.ebuild
Normal file
|
@ -0,0 +1,457 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="6"
|
||||
PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} )
|
||||
|
||||
inherit autotools eutils linux-info python-any-r1 systemd
|
||||
|
||||
DESCRIPTION="An enhanced multi-threaded syslogd with database support and more"
|
||||
HOMEPAGE="http://www.rsyslog.com/"
|
||||
|
||||
BRANCH="8-stable"
|
||||
|
||||
if [[ ${PV} == "9999" ]]; then
|
||||
EGIT_REPO_URI="https://github.com/rsyslog/${PN}.git"
|
||||
|
||||
DOC_REPO_URI="https://github.com/rsyslog/${PN}-doc.git"
|
||||
|
||||
inherit git-r3
|
||||
else
|
||||
MY_PV=${PV%_rc*}
|
||||
MY_FILENAME="${PN}-${PV}.tar.gz"
|
||||
MY_FILENAME_DOCS="${PN}-docs-${PV}.tar.gz"
|
||||
S="${WORKDIR}/${PN}-${MY_PV}"
|
||||
|
||||
# Upstream URL schema:
|
||||
# RC: http://www.rsyslog.com/files/download/rsyslog/rc/rsyslog-8.18.0.tar.gz
|
||||
# http://www.rsyslog.com/files/download/rsyslog/rc2/rsyslog-8.18.0.tar.gz
|
||||
# Release: http://www.rsyslog.com/files/download/rsyslog/rsyslog-8.18.0.tar.gz
|
||||
|
||||
MY_URL_PREFIX=
|
||||
if [[ ${PV} = *_rc* ]]; then
|
||||
_tmp_last_index=$(($(get_last_version_component_index ${PV})+1))
|
||||
_tmp_suffix=$(get_version_component_range ${_tmp_last_index} ${PV})
|
||||
if [[ ${_tmp_suffix} = *rc* ]]; then
|
||||
MY_URL_PREFIX="${_tmp_suffix}/"
|
||||
fi
|
||||
|
||||
# Cleaning up temporary variables
|
||||
unset _tmp_last_index
|
||||
unset _tmp_suffix
|
||||
else
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~x86"
|
||||
fi
|
||||
|
||||
SRC_URI="
|
||||
http://www.rsyslog.com/files/download/${PN}/${MY_URL_PREFIX}${PN}-${MY_PV}.tar.gz -> ${MY_FILENAME}
|
||||
doc? ( http://www.rsyslog.com/files/download/${PN}/${MY_URL_PREFIX}${PN}-doc-${MY_PV}.tar.gz -> ${MY_FILENAME_DOCS} )
|
||||
"
|
||||
|
||||
PATCHES=()
|
||||
fi
|
||||
|
||||
LICENSE="GPL-3 LGPL-3 Apache-2.0"
|
||||
SLOT="0"
|
||||
IUSE="dbi debug doc elasticsearch +gcrypt grok jemalloc kafka kerberos libressl mdblookup mongodb mysql normalize omhttpfs"
|
||||
IUSE+=" omudpspoof postgres rabbitmq redis relp rfc3195 rfc5424hmac snmp ssl systemd test usertools +uuid zeromq"
|
||||
|
||||
RDEPEND="
|
||||
>=dev-libs/libfastjson-0.99.7:=
|
||||
>=dev-libs/libestr-0.1.9
|
||||
>=dev-libs/liblogging-1.0.1:=[stdlog]
|
||||
>=sys-libs/zlib-1.2.5
|
||||
dbi? ( >=dev-db/libdbi-0.8.3 )
|
||||
elasticsearch? ( >=net-misc/curl-7.35.0 )
|
||||
gcrypt? ( >=dev-libs/libgcrypt-1.5.3:= )
|
||||
grok? ( >=dev-libs/grok-0.9.2 )
|
||||
jemalloc? ( >=dev-libs/jemalloc-3.3.1:= )
|
||||
kafka? ( >=dev-libs/librdkafka-0.9.0.99:= )
|
||||
kerberos? ( virtual/krb5 )
|
||||
mdblookup? ( dev-libs/libmaxminddb:= )
|
||||
mongodb? ( >=dev-libs/mongo-c-driver-1.1.10:= )
|
||||
mysql? ( virtual/mysql )
|
||||
normalize? (
|
||||
>=dev-libs/libee-0.4.0
|
||||
>=dev-libs/liblognorm-2.0.3:=
|
||||
)
|
||||
omhttpfs? ( >=net-misc/curl-7.35.0 )
|
||||
omudpspoof? ( >=net-libs/libnet-1.1.6 )
|
||||
postgres? ( >=dev-db/postgresql-8.4.20:= )
|
||||
rabbitmq? ( >=net-libs/rabbitmq-c-0.3.0:= )
|
||||
redis? ( >=dev-libs/hiredis-0.11.0:= )
|
||||
relp? ( >=dev-libs/librelp-1.2.14:= )
|
||||
rfc3195? ( >=dev-libs/liblogging-1.0.1:=[rfc3195] )
|
||||
rfc5424hmac? (
|
||||
!libressl? ( >=dev-libs/openssl-0.9.8y:0= )
|
||||
libressl? ( dev-libs/libressl:= )
|
||||
)
|
||||
snmp? ( >=net-analyzer/net-snmp-5.7.2 )
|
||||
ssl? ( >=net-libs/gnutls-2.12.23:0= )
|
||||
systemd? ( >=sys-apps/systemd-234 )
|
||||
uuid? ( sys-apps/util-linux:0= )
|
||||
zeromq? (
|
||||
>=net-libs/czmq-3.0.2
|
||||
)"
|
||||
DEPEND="${RDEPEND}
|
||||
>=sys-devel/autoconf-archive-2015.02.24
|
||||
virtual/pkgconfig
|
||||
test? (
|
||||
jemalloc? ( <sys-libs/libfaketime-0.9.7 )
|
||||
!jemalloc? ( sys-libs/libfaketime )
|
||||
${PYTHON_DEPS}
|
||||
)"
|
||||
|
||||
if [[ ${PV} == "9999" ]]; then
|
||||
DEPEND+=" doc? ( >=dev-python/sphinx-1.1.3-r7 )"
|
||||
DEPEND+=" >=sys-devel/flex-2.5.39-r1"
|
||||
DEPEND+=" >=sys-devel/bison-2.4.3"
|
||||
DEPEND+=" >=dev-python/docutils-0.12"
|
||||
fi
|
||||
|
||||
CONFIG_CHECK="~INOTIFY_USER"
|
||||
WARNING_INOTIFY_USER="CONFIG_INOTIFY_USER isn't set. Imfile module on this system will only support polling mode!"
|
||||
|
||||
pkg_setup() {
|
||||
use test && python-any-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]]; then
|
||||
git-r3_fetch
|
||||
git-r3_checkout
|
||||
else
|
||||
unpack ${P}.tar.gz
|
||||
fi
|
||||
|
||||
if use doc; then
|
||||
if [[ ${PV} == "9999" ]]; then
|
||||
local _EGIT_BRANCH=
|
||||
if [[ -n "${EGIT_BRANCH}" ]]; then
|
||||
# Cannot use rsyslog commits/branches for documentation repository
|
||||
_EGIT_BRANCH=${EGIT_BRANCH}
|
||||
unset EGIT_BRANCH
|
||||
fi
|
||||
|
||||
git-r3_fetch "${DOC_REPO_URI}"
|
||||
git-r3_checkout "${DOC_REPO_URI}" "${S}"/docs
|
||||
|
||||
if [[ -n "${_EGIT_BRANCH}" ]]; then
|
||||
# Restore previous EGIT_BRANCH information
|
||||
EGIT_BRANCH=${_EGIT_BRANCH}
|
||||
fi
|
||||
else
|
||||
cd "${S}" || die "Cannot change dir into '${S}'"
|
||||
mkdir docs || die "Failed to create docs directory"
|
||||
cd docs || die "Failed to change dir into '${S}/docs'"
|
||||
unpack ${MY_FILENAME_DOCS}
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Maintainer notes:
|
||||
# * Guardtime support is missing because libgt isn't yet available
|
||||
# in portage.
|
||||
# * Hadoop's HDFS file system output module is currently not
|
||||
# supported in Gentoo because nobody is able to test it
|
||||
# (JAVA dependency).
|
||||
# * dev-libs/hiredis doesn't provide pkg-config (see #504614,
|
||||
# upstream PR 129 and 136) so we need to export HIREDIS_*
|
||||
# variables because rsyslog's build system depends on pkg-config.
|
||||
|
||||
if use redis; then
|
||||
export HIREDIS_LIBS="-L${EPREFIX}/usr/$(get_libdir) -lhiredis"
|
||||
export HIREDIS_CFLAGS="-I${EPREFIX}/usr/include"
|
||||
fi
|
||||
|
||||
local myeconfargs=(
|
||||
--disable-debug-symbols
|
||||
--disable-generate-man-pages
|
||||
--without-valgrind-testbench
|
||||
$(use_enable test testbench)
|
||||
# Input Plugins without depedencies
|
||||
--enable-imdiag
|
||||
--enable-imfile
|
||||
--enable-impstats
|
||||
--enable-imptcp
|
||||
# Message Modificiation Plugins without depedencies
|
||||
--enable-mmanon
|
||||
--enable-mmaudit
|
||||
--enable-mmcount
|
||||
--enable-mmfields
|
||||
--enable-mmjsonparse
|
||||
--enable-mmpstrucdata
|
||||
--enable-mmrm1stspace
|
||||
--enable-mmsequence
|
||||
--enable-mmutf8fix
|
||||
# Output Modification Plugins without dependencies
|
||||
--enable-mail
|
||||
--enable-omprog
|
||||
--enable-omruleset
|
||||
--enable-omstdout
|
||||
--enable-omuxsock
|
||||
# Misc
|
||||
--enable-pmaixforwardedfrom
|
||||
--enable-pmciscoios
|
||||
--enable-pmcisconames
|
||||
--enable-pmlastmsg
|
||||
--enable-pmsnare
|
||||
# DB
|
||||
$(use_enable dbi libdbi)
|
||||
$(use_enable mongodb ommongodb)
|
||||
$(use_enable mysql)
|
||||
$(use_enable postgres pgsql)
|
||||
$(use_enable redis omhiredis)
|
||||
# Debug
|
||||
$(use_enable debug)
|
||||
$(use_enable debug diagtools)
|
||||
$(use_enable debug memcheck)
|
||||
$(use_enable debug rtinst)
|
||||
$(use_enable debug valgrind)
|
||||
# Misc
|
||||
$(use_enable elasticsearch)
|
||||
$(use_enable gcrypt libgcrypt)
|
||||
$(use_enable jemalloc)
|
||||
$(use_enable kafka imkafka)
|
||||
$(use_enable kafka omkafka)
|
||||
$(use_enable kerberos gssapi-krb5)
|
||||
$(use_enable normalize mmnormalize)
|
||||
$(use_enable mdblookup mmdblookup)
|
||||
$(use_enable grok mmgrok)
|
||||
$(use_enable omhttpfs)
|
||||
$(use_enable omudpspoof)
|
||||
$(use_enable rabbitmq omrabbitmq)
|
||||
$(use_enable relp)
|
||||
$(use_enable rfc3195)
|
||||
$(use_enable rfc5424hmac mmrfc5424addhmac)
|
||||
$(use_enable snmp)
|
||||
$(use_enable snmp mmsnmptrapd)
|
||||
$(use_enable ssl gnutls)
|
||||
$(use_enable systemd imjournal)
|
||||
$(use_enable systemd omjournal)
|
||||
$(use_enable usertools)
|
||||
$(use_enable uuid)
|
||||
$(use_enable zeromq imczmq)
|
||||
$(use_enable zeromq omczmq)
|
||||
--with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
|
||||
)
|
||||
|
||||
econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
default
|
||||
|
||||
if use doc && [[ "${PV}" == "9999" ]]; then
|
||||
einfo "Building documentation ..."
|
||||
local doc_dir="${S}/docs"
|
||||
cd "${doc_dir}" || die "Cannot chdir into \"${doc_dir}\"!"
|
||||
sphinx-build -b html source build || die "Building documentation failed!"
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
local _has_increased_ulimit=
|
||||
|
||||
# Sometimes tests aren't executable (i.e. when added via patch)
|
||||
einfo "Adjusting permissions of test scripts ..."
|
||||
find "${S}"/tests -type f -name '*.sh' \! -perm -111 -exec chmod a+x '{}' \; || \
|
||||
die "Failed to adjust test scripts permission"
|
||||
|
||||
if ulimit -n 3072; then
|
||||
_has_increased_ulimit="true"
|
||||
fi
|
||||
|
||||
if ! emake --jobs 1 check; then
|
||||
eerror "Test suite failed! :("
|
||||
|
||||
if [[ -z "${_has_increased_ulimit}" ]]; then
|
||||
eerror "Probably because open file limit couldn't be set to 3072."
|
||||
fi
|
||||
|
||||
if has userpriv ${FEATURES}; then
|
||||
eerror "Please try to reproduce the test suite failure with FEATURES=-userpriv " \
|
||||
"before you submit a bug report."
|
||||
fi
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local DOCS=(
|
||||
AUTHORS
|
||||
ChangeLog
|
||||
"${FILESDIR}"/${BRANCH}/README.gentoo
|
||||
)
|
||||
|
||||
use doc && local HTML_DOCS=( "${S}/docs/build/." )
|
||||
|
||||
default
|
||||
|
||||
newconfd "${FILESDIR}/${BRANCH}/${PN}.confd-r1" ${PN}
|
||||
newinitd "${FILESDIR}/${BRANCH}/${PN}.initd-r1" ${PN}
|
||||
|
||||
keepdir /var/empty/dev
|
||||
keepdir /var/spool/${PN}
|
||||
keepdir /etc/ssl/${PN}
|
||||
keepdir /etc/${PN}.d
|
||||
|
||||
insinto /etc
|
||||
newins "${FILESDIR}/${BRANCH}/${PN}.conf" ${PN}.conf
|
||||
|
||||
insinto /etc/rsyslog.d/
|
||||
newins "${FILESDIR}/${BRANCH}/50-default-r1.conf" 50-default.conf
|
||||
|
||||
insinto /etc/logrotate.d/
|
||||
newins "${FILESDIR}/${BRANCH}/${PN}.logrotate" ${PN}
|
||||
|
||||
if use mysql; then
|
||||
insinto /usr/share/doc/${PF}/scripts/mysql
|
||||
doins plugins/ommysql/createDB.sql
|
||||
fi
|
||||
|
||||
if use postgres; then
|
||||
insinto /usr/share/doc/${PF}/scripts/pgsql
|
||||
doins plugins/ompgsql/createDB.sql
|
||||
fi
|
||||
|
||||
prune_libtool_files --modules
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
local advertise_readme=0
|
||||
|
||||
if [[ -z "${REPLACING_VERSIONS}" ]]; then
|
||||
# This is a new installation
|
||||
|
||||
advertise_readme=1
|
||||
|
||||
if use mysql || use postgres; then
|
||||
echo
|
||||
elog "Sample SQL scripts for MySQL & PostgreSQL have been installed to:"
|
||||
elog " /usr/share/doc/${PF}/scripts"
|
||||
fi
|
||||
|
||||
if use ssl; then
|
||||
echo
|
||||
elog "To create a default CA and certificates for your server and clients, run:"
|
||||
elog " emerge --config =${PF}"
|
||||
elog "on your logging server. You can run it several times,"
|
||||
elog "once for each logging client. The client certificates will be signed"
|
||||
elog "using the CA certificate generated during the first run."
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ ${advertise_readme} -gt 0 ]]; then
|
||||
# We need to show the README file location
|
||||
|
||||
echo ""
|
||||
elog "Please read"
|
||||
elog ""
|
||||
elog " ${EPREFIX}/usr/share/doc/${PF}/README.gentoo*"
|
||||
elog ""
|
||||
elog "for more details."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_config() {
|
||||
if ! use ssl ; then
|
||||
einfo "There is nothing to configure for rsyslog unless you"
|
||||
einfo "used USE=ssl to build it."
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Make sure the certificates directory exists
|
||||
local CERTDIR="${EROOT}/etc/ssl/${PN}"
|
||||
if [[ ! -d "${CERTDIR}" ]]; then
|
||||
mkdir "${CERTDIR}" || die
|
||||
fi
|
||||
einfo "Your certificates will be stored in ${CERTDIR}"
|
||||
|
||||
# Create a default CA if needed
|
||||
if [[ ! -f "${CERTDIR}/${PN}_ca.cert.pem" ]]; then
|
||||
einfo "No CA key and certificate found in ${CERTDIR}, creating them for you..."
|
||||
certtool --generate-privkey \
|
||||
--outfile "${CERTDIR}/${PN}_ca.privkey.pem" &>/dev/null
|
||||
chmod 400 "${CERTDIR}/${PN}_ca.privkey.pem"
|
||||
|
||||
cat > "${T}/${PF}.$$" <<- _EOF
|
||||
cn = Portage automated CA
|
||||
ca
|
||||
cert_signing_key
|
||||
expiration_days = 3650
|
||||
_EOF
|
||||
|
||||
certtool --generate-self-signed \
|
||||
--load-privkey "${CERTDIR}/${PN}_ca.privkey.pem" \
|
||||
--outfile "${CERTDIR}/${PN}_ca.cert.pem" \
|
||||
--template "${T}/${PF}.$$" &>/dev/null
|
||||
chmod 400 "${CERTDIR}/${PN}_ca.privkey.pem"
|
||||
|
||||
# Create the server certificate
|
||||
echo
|
||||
einfon "Please type the Common Name of the SERVER you wish to create a certificate for: "
|
||||
read -r CN
|
||||
|
||||
einfo "Creating private key and certificate for server ${CN}..."
|
||||
certtool --generate-privkey \
|
||||
--outfile "${CERTDIR}/${PN}_${CN}.key.pem" &>/dev/null
|
||||
chmod 400 "${CERTDIR}/${PN}_${CN}.key.pem"
|
||||
|
||||
cat > "${T}/${PF}.$$" <<- _EOF
|
||||
cn = ${CN}
|
||||
tls_www_server
|
||||
dns_name = ${CN}
|
||||
expiration_days = 3650
|
||||
_EOF
|
||||
|
||||
certtool --generate-certificate \
|
||||
--outfile "${CERTDIR}/${PN}_${CN}.cert.pem" \
|
||||
--load-privkey "${CERTDIR}/${PN}_${CN}.key.pem" \
|
||||
--load-ca-certificate "${CERTDIR}/${PN}_ca.cert.pem" \
|
||||
--load-ca-privkey "${CERTDIR}/${PN}_ca.privkey.pem" \
|
||||
--template "${T}/${PF}.$$" &>/dev/null
|
||||
chmod 400 "${CERTDIR}/${PN}_${CN}.cert.pem"
|
||||
|
||||
else
|
||||
einfo "Found existing ${CERTDIR}/${PN}_ca.cert.pem, skipping CA and SERVER creation."
|
||||
fi
|
||||
|
||||
# Create a client certificate
|
||||
echo
|
||||
einfon "Please type the Common Name of the CLIENT you wish to create a certificate for: "
|
||||
read -r CN
|
||||
|
||||
einfo "Creating private key and certificate for client ${CN}..."
|
||||
certtool --generate-privkey \
|
||||
--outfile "${CERTDIR}/${PN}_${CN}.key.pem" &>/dev/null
|
||||
chmod 400 "${CERTDIR}/${PN}_${CN}.key.pem"
|
||||
|
||||
cat > "${T}/${PF}.$$" <<- _EOF
|
||||
cn = ${CN}
|
||||
tls_www_client
|
||||
dns_name = ${CN}
|
||||
expiration_days = 3650
|
||||
_EOF
|
||||
|
||||
certtool --generate-certificate \
|
||||
--outfile "${CERTDIR}/${PN}_${CN}.cert.pem" \
|
||||
--load-privkey "${CERTDIR}/${PN}_${CN}.key.pem" \
|
||||
--load-ca-certificate "${CERTDIR}/${PN}_ca.cert.pem" \
|
||||
--load-ca-privkey "${CERTDIR}/${PN}_ca.privkey.pem" \
|
||||
--template "${T}/${PF}.$$" &>/dev/null
|
||||
chmod 400 "${CERTDIR}/${PN}_${CN}.cert.pem"
|
||||
|
||||
rm -f "${T}/${PF}.$$"
|
||||
|
||||
echo
|
||||
einfo "Here is the documentation on how to encrypt your log traffic:"
|
||||
einfo " http://www.rsyslog.com/doc/rsyslog_tls.html"
|
||||
}
|
Binary file not shown.
|
@ -1,6 +1,8 @@
|
|||
DIST borgbackup-1.1.1.tar.gz 2988023 SHA256 a5092cfdc57b7f85ce192d64642f94dc0c09ee152a735ae341942532302d3346 SHA512 07e716556fd3edd6d7cdca6045a6eb49a92cdc6d6e37a6999bbd1bc09e00134862081df0d9046c46f867cb4b45ab6ed98f3783eb4e27e4330fc48f0e4dd53272 WHIRLPOOL 8e40b111463e7e338f3c7974fcb8896586b4d640b9bde216fec2e64a8cdd41c89bda6081cc9b2a8819a384a69507b139e4101faa6f917d87155c983d12fecc29
|
||||
DIST borgbackup-1.1.2.tar.gz 19860535 SHA256 097b2d92d51f570aaea82ab6632481b8235b78d7bbaac9d8164bdfa6bd5b5502 SHA512 e818c4750c00559bc60196446e2c8fb01d8225b307982a9b6d3b38148d6ad7aa4766a6b9f06fee3954fbc34a4ff298ad6e49a758223906cc1d3d39c3d82dcec9 WHIRLPOOL e5e644506cd34dce872041d27edd652b7facb7ea9699a99451fce4271acbfa33ca56e3f0a4a33d3f92b60e05d4f89eb3285beb3fc13a745d274ba0175d4ae1f0
|
||||
DIST borgbackup-1.1.3.tar.gz 2942183 BLAKE2B c7ca37459d35e06694cf9fdbef7328806cf03e6a4290368d47a2c06e1b6a0700d9dbba3efb170e130c7e59951d65ff8ca677955782150154f0ad2d12b93fe57b SHA512 8378e4f805bfb3e9a4e454f5ccfa58eef0517f13a2e8a2c3c6cbdb0304b763fa67152963b17d677daff09590eb777f12fbe1f3f69c3459bcc68781e5a747cb49
|
||||
EBUILD borgbackup-1.1.1.ebuild 941 BLAKE2B 385972a0e8f3321c04148651c1d6ded98bfd520235000762a1c29fc89b4226cbdedd64fc8e3191686e082982670261299c9e4dfc4b7733712d991b82d62cde91 SHA512 17d9992a780a59564a41410ebc583dee3a7acf16e26f349856c37cfc33feb2b2f09366808969321ecebfcbf04a86a1f3e305a6fba7e3dcb8ce077470bd2b0ebb
|
||||
EBUILD borgbackup-1.1.2.ebuild 942 BLAKE2B 5bafc749262fb831056a1f600c5f1e7e90a118f272182b32464563ee52978aea6c2134700ceca8b1eb5ddfe32c7bfd93b2061b68828c58ad9aa6256660ec806a SHA512 1891afff5a9e5b87cb05fce1d1c5fc5a3b7b28ff30da260ceb3de5086b4bf7e8a9c26db6c7227edae4a024ed561dad0ece87365ffd034641e6ad5516cd2a4a09
|
||||
EBUILD borgbackup-1.1.3.ebuild 942 BLAKE2B 5bafc749262fb831056a1f600c5f1e7e90a118f272182b32464563ee52978aea6c2134700ceca8b1eb5ddfe32c7bfd93b2061b68828c58ad9aa6256660ec806a SHA512 1891afff5a9e5b87cb05fce1d1c5fc5a3b7b28ff30da260ceb3de5086b4bf7e8a9c26db6c7227edae4a024ed561dad0ece87365ffd034641e6ad5516cd2a4a09
|
||||
EBUILD borgbackup-9999.ebuild 942 BLAKE2B 5bafc749262fb831056a1f600c5f1e7e90a118f272182b32464563ee52978aea6c2134700ceca8b1eb5ddfe32c7bfd93b2061b68828c58ad9aa6256660ec806a SHA512 1891afff5a9e5b87cb05fce1d1c5fc5a3b7b28ff30da260ceb3de5086b4bf7e8a9c26db6c7227edae4a024ed561dad0ece87365ffd034641e6ad5516cd2a4a09
|
||||
MISC metadata.xml 380 BLAKE2B 2ac9cd2f49c605955fb4133ff30d52e578bb45b0717348e6909cf7cd172ce9a7436d30394466ece7d889d02802f500f86297072a755b24905c17342cd7aee5e4 SHA512 4160c5674dbb51e9e3fa3c0d29fca6b7ab4073f2e2be1a2eca88ff049b4b5f066d04c747130c45d31a9c63ee2fe3bcb5f521017a581e7f6b69eb07fb94b83661
|
||||
|
|
40
app-backup/borgbackup/borgbackup-1.1.3.ebuild
Normal file
40
app-backup/borgbackup/borgbackup-1.1.3.ebuild
Normal file
|
@ -0,0 +1,40 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PYTHON_COMPAT=( python3_{4,5,6} )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://github.com/${PN}/borg.git"
|
||||
inherit git-r3
|
||||
else
|
||||
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
fi
|
||||
|
||||
DESCRIPTION="Deduplicating backup program with compression and authenticated encryption"
|
||||
HOMEPAGE="https://borgbackup.readthedocs.io/"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
IUSE="libressl"
|
||||
|
||||
# Unfortunately we have a file conflict with app-office/borg, bug #580402
|
||||
RDEPEND="
|
||||
!!app-office/borg
|
||||
app-arch/lz4
|
||||
dev-python/llfuse[${PYTHON_USEDEP}]
|
||||
dev-python/msgpack[${PYTHON_USEDEP}]
|
||||
dev-python/pyzmq[${PYTHON_USEDEP}]
|
||||
!libressl? ( dev-libs/openssl:0= )
|
||||
libressl? ( dev-libs/libressl:0= )
|
||||
"
|
||||
|
||||
DEPEND="
|
||||
dev-python/setuptools_scm[${PYTHON_USEDEP}]
|
||||
dev-python/cython[${PYTHON_USEDEP}]
|
||||
${RDEPEND}
|
||||
"
|
Binary file not shown.
|
@ -2,9 +2,9 @@ AUX cdrdao-1.2.3-ax_pthread.patch 16862 BLAKE2B 657da0dd5107302c97b2eb2096e61326
|
|||
AUX cdrdao-1.2.3-glibc212.patch 260 BLAKE2B 6f84d32fc4b3e2254c61453f6e0a77c99b6fb5de7622ab1ce444348f9ae9fccde3450023421ef54a55e248b8280b1177373b632abb543908c6d728d2ee66b03b SHA512 3954d77f301beb1063292000f7f0bc07b1f1f8908bbc7dc31717e3ad0afbe51e398157edff943c8679155000e6f494e396527b02419191036bdfcd549f94d04d
|
||||
AUX cdrdao-1.2.3-unsigned-char.patch 1119 BLAKE2B e5e52f03541d77740dd4a61f6b275e2f6edf0045c1671539745d42b60c11fda623e3b983801efa6979bdea1fdefad23293d2156ebbce37d7fdf39d20eb7f98f1 SHA512 77227662a86f17a10841e4b3085d9c40067f7a1c46694e188371018e200ec8bd94ae2fdd86143bba9cc345211abfdaf197e4aa2dd8cb1b1749b954ef70055cf2
|
||||
AUX cdrdao-1.2.3-wformat-security.patch 6279 BLAKE2B dabab6d2575e24b5bfcf690daa634cfbd795d18930e03fc9acfcf630408fcb6e60af077053a577507725365a23083c273f43f5efea65f8c58189279085a2e472 SHA512 aff829cf227658ac1a11975c818385999ee91582f239bd70ad440021cd08554cf80c29470683f55ca9d50aef05e33b326e853ba022ecfa9e7eae84fb4c51acd3
|
||||
DIST cdrdao-1.2.3.tar.bz2 1428695 SHA256 8193cb8fa6998ac362c55807e89ad0b3c63edc6b01afaeb3d5042519527fb75e SHA512 36b14180acf476de062f5f31e2b9dece39e3cc7a84552e80a6714931fa35d6090ec90ddfcdbd2651d690be8ce3fc78d483aa13856c3c311bcc2f571f0040adf6 WHIRLPOOL 830d89a1ea2fe87c1b43a36d0f0d45bc372fc65beafa95057a13f0571d89ee43bd5f6fabfd643a481a3f4f8c4c758caff9fa5f60fffbefc4c976bf98133d89f7
|
||||
DIST cdrdao-1.2.3.tar.bz2 1428695 BLAKE2B d5d8e9f2f17b4e4a385e226233d219afdf48fa98bade0dad57292ba45fc4f25c3bb146289884c9ad35224c26a826b305c6f8a1e43c22fe7f1cbd812f1a69790a SHA512 36b14180acf476de062f5f31e2b9dece39e3cc7a84552e80a6714931fa35d6090ec90ddfcdbd2651d690be8ce3fc78d483aa13856c3c311bcc2f571f0040adf6
|
||||
EBUILD cdrdao-1.2.3-r1.ebuild 1225 BLAKE2B 7a5d890a09f3a5995d41c8c1c526ea1f8953cb3b522257e7e99b3475dca955c2cdcbb12f573821ee5d868e0c6a8a786523df8e59ae1df90e55e6f636a0cbdf4b SHA512 064815cc5707df6b5df51ebae19ad2307f51718880aa7e34a96cd9debd29cee48dd567c4cd76972b1a3094a3e41d2e6a3e8b221daf6bfad74aea810a70c7bc31
|
||||
EBUILD cdrdao-1.2.3-r2.ebuild 1488 BLAKE2B af92997633e6fed178f50c7bd42ffc636875e59e55e4ae4425b06f258551aa2a7f349c30ff063db6ac606de01e6534c5353c25c79b707b3725f0099f2413cd40 SHA512 90fc2a859b0c426eb055c63331f2f704e870cfe5df9d6c35a0ebbe063d87639cca8b183e2b1b4a92d359b816f5f47519641c22353171bed293094cfa22312187
|
||||
EBUILD cdrdao-1.2.3-r3.ebuild 1431 BLAKE2B 51e0bd15ea6471255ec6847cd36d48c3de1d92c1a483ae4c46cf3161b8b16e5656f0530b7aa14b7467ea4e49acb0b849c47042560fea28cab0574f34367c448e SHA512 0e890720a5a0b899fa1f1dd3289dfd73b95c199fb4ec7b8ab262428aef008dac771e55b2f19f7b4b5cc5465ccca6d8dfb6caa4838904a1c1e8dea380d39f13bd
|
||||
EBUILD cdrdao-1.2.3-r4.ebuild 1286 BLAKE2B 940bb0d1e6370ffd1465864da41d2c44a63f2e1532e7225b46c5a5b58b9aa37013db3bc56f7d2f64b11372f62c6800c519ccad823514d35286f16d70d6b6b529 SHA512 fb44bb037a797dd4f68630169e463c51c3f4b077b233236dd192b6ca35a1d1a59f024a38fd040a0c6e321f95a847c35703dcc12f66044f1380745e10a32886b4
|
||||
EBUILD cdrdao-1.2.3-r4.ebuild 1285 BLAKE2B e6c4d0c998983eec061c33033446ac90ae42e1ab0f11a97871056cb96c70e8e9308cd4498c83e36190f0086232f7f0d1f11b5846fdc2361295102684a8008f4e SHA512 8489099cd9972796c7fb625771f7e337f5f92678c01da89ac358a053f0ad0c537ab5e62b909f2daeece2f855c56e6365e13e154501972c8f4d07e5c987f897b7
|
||||
MISC metadata.xml 748 BLAKE2B b9caa60cdf02da19f40f7a87d728ee2e21ac85f359c7ff98a92db20198279006c94dae6a091dbe812454ffb8c7b6df4b1c50e9c8c1c92632588e449e9b5579ab SHA512 eaedc0afbbd68bc6ea7b5e5b8b07fa25f8be0748867b845c0d8346d5ef83556ef53986e4ac70e37df483bfa0caa6a38f3f5be0da34a5c509386230f8d84bd85b
|
||||
|
|
|
@ -16,7 +16,7 @@ fi
|
|||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc x86 ~x86-fbsd"
|
||||
KEYWORDS="~alpha amd64 ~arm ~hppa ia64 ~ppc ~ppc64 ~sh ~sparc x86 ~x86-fbsd"
|
||||
IUSE="encode mad vorbis"
|
||||
|
||||
RDEPEND="virtual/cdrtools
|
||||
|
|
Binary file not shown.
|
@ -1,9 +1,10 @@
|
|||
AUX gpgme-1.1.8-et_EE.patch 347 BLAKE2B 88afa9629af3249337361e69496c3662ba7320229b50db697045174c58bee15e7cd0841125b646aa4a934d01a7a4ed309b902f70c67146c66100e2a66a24b5aa SHA512 69577d0a1ae9061277cd502d72c2add13b61def4990c09c6181a14b4792745a4e2e467090019ab1ed8d3dc6df6f09b63230d2d21974e0a802a1e976fe5de18d5
|
||||
AUX gpgme-1.10.0_beta81-build.patch 817 BLAKE2B de479a5592a470fa308e9e640bf7c88815eec8caa202e6f02cdda34b750081ef73bd1c7bc1764451ad91d48d73f1fbd5a9c7d40db11ae90093b49ad282f23d71 SHA512 633d18fda3a81a3b7592887455bac5ced37cdcb7951e7ad43dde7e4b809395fefc1eae168b49ade53862a92c07c198046602b6a56bbcacaf762b3f3e8d779983
|
||||
AUX gpgme-1.8.0-cmake.patch 1216 BLAKE2B 40510d7d2b700a58f12436ae81c2b978dcff450060dca31ffa10b00c53da0ce55405fc1eeb51ee6686f30f050337aaa3e978f1979cfe7151c5195d570f0a9432 SHA512 be2788db4a796fdd21524d20a8bc7ad52f7928fbd6e9945e5a2be048cc6251bf593a3d46623c589cbcd4491a3e5abdfc14b618098113c0e1ddcabdb4e7701f57
|
||||
AUX gpgme-1.8.0-gcc-7.patch 554 BLAKE2B b31ffa5f08203dd0b896c04b47b0cb0d4916c7170c87e5ab8bf45896058817668660a0ee1648f2111a3d8c73bf896df015b4b371c95a1caccc7450dfe0792017 SHA512 3256a04a7dfeb7b3b5a20765b6350454069f2a96d79c786326868513a8b87f5337084a0e2a5afeab0485257b4b360ba2fc9f56f08bbc0c102d75773ba83c44f7
|
||||
DIST gpgme-1.10.0-beta81.tar.bz2 1293818 SHA256 91bc25aac8bb953da2f216ca3a41b9c7be34bb8adae5d2b7ad51975cc221ef2a SHA512 be7b12c7c7df4fe5da574a6d443932bf4467175561c45a30bae8fe408fb916e05ce26f2b9add15e845351b3864491350060fe3436765ba0e84c167a7ec64066b WHIRLPOOL 37b83ed311927ecc17c211157ac6a35a213d1a3549948752c1aa05fe547e035de3ae47a0c3e5ab5c5aea2567d612fab2cb4864b5db2f9ca351c2c061d5aebcf5
|
||||
DIST gpgme-1.8.0.tar.bz2 1298407 SHA256 596097257c2ce22e747741f8ff3d7e24f6e26231fa198a41b2a072e62d1e5d33 SHA512 9f214a44ddc4d602c2a0befc66aa6be9f2c90a24e153b873475867e30eec30e074826b98c11d20b0a2e4cd04e2625ce2545220481225fceb6ca9c51d3208e3de WHIRLPOOL 79ed725e24302d4d738e90739cf3c5e6e9fa89c3e4fef87a4fca569abb7f7b7f0140e62e76161f747b555f49166fd0ccda277dbd6cc46c00ce2797c32d442f7b
|
||||
EBUILD gpgme-1.10.0_beta81.ebuild 3108 BLAKE2B 31925558bd8e623b8a5af82e1d31d8d41f8688bd774623ef1124283e8a1be446df8aafd8708fba9fa7f2d5952bbb7a2c722e1242fd78f5e5be32505d1857a4a6 SHA512 5f8eab70fce530ac319a3fd55baf52fc234ec89479dd736bffed4443194f1f1888b61be180ea9b4d53605ac548850edc72c89a6bbc2ae80098179371dfba5ea8
|
||||
DIST gpgme-1.10.0-beta81.tar.bz2 1293818 BLAKE2B 12dbc9120986943ace281c0f0f7020c71e5ed2760bcc85f7d427f731190df8b24779932b8fb8476372669960be28a9ce8af9622b534b4e3e7a9cd5180663f147 SHA512 be7b12c7c7df4fe5da574a6d443932bf4467175561c45a30bae8fe408fb916e05ce26f2b9add15e845351b3864491350060fe3436765ba0e84c167a7ec64066b
|
||||
DIST gpgme-1.8.0.tar.bz2 1298407 BLAKE2B b510651d0df12091489bccf6a432420db63337cfe5149d0449cef9071cbb671a52f7837d900b4d2e40deaa47688b1ea19a025ce8c930027a14620410228bff52 SHA512 9f214a44ddc4d602c2a0befc66aa6be9f2c90a24e153b873475867e30eec30e074826b98c11d20b0a2e4cd04e2625ce2545220481225fceb6ca9c51d3208e3de
|
||||
EBUILD gpgme-1.10.0_beta81.ebuild 3176 BLAKE2B d67d0cab23284582395df73d37011ca452a2e90fe199706e0711ea4f50a54ce149908b794c4f3aa6308f148d820642f63feb15d6ac21dc6f8d1213f6dfdc953c SHA512 85275578dd563f69d2353652a5d4767b26cefbc8b39109c0e1e4d6f9a4413c36dea4e5ab73a377d1018e4685f2edb178ec891035a2e70495d6d4efa18ef04bb6
|
||||
EBUILD gpgme-1.8.0-r2.ebuild 2526 BLAKE2B b703d96c5cb1b55cffa7c72ba158c0e695c1e6a9d63e8801e1a5a2a5266c704c9f9441d8fa996402539ed855e755c1a1f4bab9ba23e5b652893c5ff80b39d3f9 SHA512 bb3849e3f0e2de7326c9f9c49114c0ad98827e8d72c3aad7d22e8ced2e65bb505ce79c437808e1b38e0c2d02bb2b26363557be6eb5898d062afedc87e1770a46
|
||||
EBUILD gpgme-1.8.0-r3.ebuild 2678 BLAKE2B b1eb1e842c13b4d45f641ba275bd6b129ce33d1d56cf8c9b5ad15fca1789e0c9b540ff797e5dfc6c158a9c1a4fd1db41debcdfed740be957a7f438a91d5e5c64 SHA512 3b201fbf0d78b94091bee410d12b599c1fc51ff9ca674437bb7dfbcc1bf97084002a02e05b26dd6e48b53483f78b8e2009a01fdaabea4312a4eb1062b8999d72
|
||||
EBUILD gpgme-9999.ebuild 2783 BLAKE2B aa4bcaf208df25e4a3dc4256804b02d2aa3dd1180fd4749bf79a5a16c699f3b80b11f662b61a9db76a58f3bd64696a0f6a5f51847d18bb5584f3b73b8a50ac57 SHA512 8a100c6a5760d652fca76f58725599dbdeca8202701435f519c44ab88cd4e2b97685aa9798f21e6449b8bc3a3986df9c113645c5d86d3c382bbb9a7585afaa86
|
||||
|
|
28
app-crypt/gpgme/files/gpgme-1.10.0_beta81-build.patch
Normal file
28
app-crypt/gpgme/files/gpgme-1.10.0_beta81-build.patch
Normal file
|
@ -0,0 +1,28 @@
|
|||
From 8ffc2c7809b47a87131cde38e14dc3941d13fa21 Mon Sep 17 00:00:00 2001
|
||||
From: Alon Bar-Lev <alon.barlev@gmail.com>
|
||||
Date: Wed, 29 Nov 2017 21:35:33 +0200
|
||||
Subject: [PATCH GPGME] tests: gpgsm: fix gpg-agent detection
|
||||
To: gnupg-devel@gnupg.org
|
||||
|
||||
* tests/gpgsm/Makefile.am: set the GPG_AGENT var.
|
||||
|
||||
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
|
||||
---
|
||||
tests/gpgsm/Makefile.am | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/tests/gpgsm/Makefile.am b/tests/gpgsm/Makefile.am
|
||||
index 3774c5ff..4ab22833 100644
|
||||
--- a/tests/gpgsm/Makefile.am
|
||||
+++ b/tests/gpgsm/Makefile.am
|
||||
@@ -20,6 +20,7 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
GPGSM = gpgsm
|
||||
+GPG_AGENT = gpg-agent
|
||||
|
||||
TESTS_ENVIRONMENT = GNUPGHOME=$(abs_builddir) LC_ALL=C GPG_AGENT_INFO= \
|
||||
top_srcdir=$(top_srcdir)
|
||||
--
|
||||
2.13.6
|
||||
|
|
@ -6,7 +6,7 @@ EAPI="6"
|
|||
PYTHON_COMPAT=( python2_7 python3_{4,5,6} )
|
||||
DISTUTILS_OPTIONAL=1
|
||||
|
||||
inherit distutils-r1 flag-o-matic ltprune qmake-utils toolchain-funcs
|
||||
inherit autotools distutils-r1 flag-o-matic ltprune qmake-utils toolchain-funcs
|
||||
|
||||
MY_PV="${PV//_/-}"
|
||||
MY_P="${PN}-${MY_PV}"
|
||||
|
@ -39,6 +39,10 @@ RDEPEND="${COMMON_DEPEND}
|
|||
|
||||
REQUIRED_USE="qt5? ( cxx ) python? ( ${PYTHON_REQUIRED_USE} )"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${P}-build.patch"
|
||||
)
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
do_python() {
|
||||
|
@ -55,6 +59,7 @@ pkg_setup() {
|
|||
|
||||
src_prepare() {
|
||||
default
|
||||
eautoreconf
|
||||
|
||||
# Socket name is too long if we use full beta name
|
||||
# tests are failing
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
AUX kencfs-1.4.0-encfs5.patch 413 BLAKE2B bffb22bbd9e8e45ce18855ca354d97ac8dfd18895aa01811d50d7d82be3f606124bef26583498f35047455f200636130bc62905b0401aa0031a91b52da0ebbf1 SHA512 47cb411f80bb4270d3c7e0b132949e2b0185b5170228120ee336fc1bb8ee83c9c0a960746407e8934097381a558be941d08d6e28b774423e58102a3f82a66ae0
|
||||
AUX kencfs-1.6.2-desktop.patch 228 BLAKE2B c35bd557f1b71b8a276d0c269dc818c68d90a360f339ecdad25268c13f328e1f00127d3ca13b9b23befbf7667122dac304009be33a8a0cd4b0ef1cc9509c51fc SHA512 0f96b65f43fd08cfa116381e5db1ceec81eebb076dca9349d7d3781651bdc7d04e8f4d0cc611f793e581416304174286db98c6aee814059520a47f26bf885d92
|
||||
DIST kencfs-1.6.4.tar.gz 221386 SHA256 3e88cd2bf0d11ce83746fb5b1e385f172ed506cde922ee2811f9cdbaaa80c4ca SHA512 44dacd0a17194b61d2d73820851b496d6052dbab3893a030db2e63c1be0d1569d80cc75ce0c179381e98b60c5e27ccead8ee257f53f57dea508808616abb514d WHIRLPOOL 8b7f372c8c8304f3a3249a74a565ea77c4c3f255c6db3cf66a2a62951be1b8010e9696dc5d5ac44ea1e39d189c63e4a1ccf562cd4886578e8a2383756e48d24b
|
||||
EBUILD kencfs-1.6.4.ebuild 805 BLAKE2B e3cf9a51edfcbb807d3c3fc5dc011d8f0b4e76f8a2ed08a76d2625859b2405b78c55e0cdb542d862331cea89e9f6e655abf3131c13fc915200b8720c8cacaf24 SHA512 05d4af92d22c41b323c03f2c38fb0793a5af86cd4f31b93a10cb22a4af5b103c8dc5738343813a484bb7a95630a86c3208bd9b036dc0aeda8fa39dc047b3c447
|
||||
MISC metadata.xml 249 BLAKE2B ad415db89e5dee1627aa77f44ded9d4e1e5b8217d06c7ca25bbaa3fe92ce67c2b1090957c45a821b407d7927e5af798498aa6a5b903895ee1af8ee20a446c7f7 SHA512 76a5a340b13f0053ca3c5e94ed24380ea8d29b45ac8655419e22eaadb1e4a827c04d2e7e36b65145c4964e6526f656618fc6ac144e277ef53cb7373e6239e3c3
|
|
@ -1,13 +0,0 @@
|
|||
Support older encfs5 volumes wrt Gentoo bug #446652.
|
||||
|
||||
--- a/fsDialog.cpp
|
||||
+++ b/fsDialog.cpp
|
||||
@@ -161,7 +161,7 @@
|
||||
|
||||
arg << cr << pm << "-S";
|
||||
p->start(prg,arg);
|
||||
- if (! QFile::exists(cr+"/.encfs6.xml")) p->write("\n");
|
||||
+ if (! (QFile::exists(cr+"/.encfs6.xml") || QFile::exists(cr+"/.encfs5")) ) p->write("\n");
|
||||
p->write(pw.toLocal8Bit().data());
|
||||
p->write("\n");
|
||||
p->waitForFinished();
|
|
@ -1,11 +0,0 @@
|
|||
--- a/kencfs.desktop
|
||||
+++ b/kencfs.desktop
|
||||
@@ -2,7 +2,7 @@
|
||||
Name=KEncFS
|
||||
Exec=kencfs
|
||||
Icon=kencfs/kencfs-icon
|
||||
-Categories=System;Security
|
||||
+Categories=Qt;KDE;System;Security;
|
||||
Terminal=false
|
||||
Type=Application
|
||||
StartupNotify=false
|
|
@ -1,45 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit qmake-utils
|
||||
|
||||
DESCRIPTION="GUI frontend for encfs"
|
||||
HOMEPAGE="https://www.linux-apps.com/content/show.php?content=134003"
|
||||
SRC_URI="https://dl.opendesktop.org/api/files/download/id/1486311191/${P}.tar.gz"
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 x86"
|
||||
IUSE=""
|
||||
|
||||
DEPEND="
|
||||
dev-qt/qtcore:4
|
||||
dev-qt/qtgui:4
|
||||
kde-frameworks/kdelibs:4
|
||||
"
|
||||
RDEPEND="${DEPEND}
|
||||
kde-frameworks/kwallet:5
|
||||
sys-fs/encfs
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-1.4.0-encfs5.patch"
|
||||
"${FILESDIR}/${PN}-1.6.2-desktop.patch"
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
sed -i ${PN}.pro -e "/^doc.path =/s/${PN}/${PF}/" \
|
||||
|| die "sed docdir failed"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
eqmake4
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake INSTALL_ROOT="${D}" install
|
||||
}
|
|
@ -1,6 +1,8 @@
|
|||
DIST keybase-1.0.21.tar.gz 21127410 SHA256 a9bbaf16cb7b7cc3614ca5e76e0fb1b3bd164f38e14b9d49d4ca351941c8c0a3 SHA512 60801ece5dc0df9f0da58143baf00729e1a79183d2b8209c405749f422dd8cecf7f4059e0799c88ca6e3f1e5a7ad8bd6805dd2401b0945954c6b1465c04974b5 WHIRLPOOL 796d5e89f87575cfc621c714c304b0a502773511f5d43d178c0f4484e3386df6975f665b723ceb0f834fc5d4be0c5c288324a15e5d0d9b2633fb984e3f8cf183
|
||||
DIST keybase-1.0.33.tar.gz 29170354 SHA256 c8135d572899b0bf0205f7ddbe30d4bfa89f358f64678eb25dadfc0e0fa0dbe0 SHA512 d02933e88613102e27a4aa5f2494ae2b55456cab8c5cadad9c412069b24c574a20609fc83b88bc8f9aa00bfd300822bc4c882392f65fec3e7a8056cebc6fb9d4 WHIRLPOOL d11b7fa29f73e85df51dbc45c7be2441783ada43ddbe56ed684f8030663d640d930b2a9fc0663208664ae567ae8629d04ac786da5dd6b31b8d3517889479da1c
|
||||
DIST keybase-1.0.21.tar.gz 21127410 BLAKE2B 9f48b637aefa847ae5737937ed6bc3d9b7d222cda3ce5a388784104655092c1ad5fe0468680a1e0a02f5a7ea4fac1fb8e19430c9e4c3d542057953219976cd02 SHA512 60801ece5dc0df9f0da58143baf00729e1a79183d2b8209c405749f422dd8cecf7f4059e0799c88ca6e3f1e5a7ad8bd6805dd2401b0945954c6b1465c04974b5
|
||||
DIST keybase-1.0.33.tar.gz 29170354 BLAKE2B 78799ea49cde32e3c1be781e281b5ca188f7a5d846fcb7e41605d6e2526bc4e36f6ef991567631e9c72eeb6b194ebec740516e886f4af419b01e47622f030c42 SHA512 d02933e88613102e27a4aa5f2494ae2b55456cab8c5cadad9c412069b24c574a20609fc83b88bc8f9aa00bfd300822bc4c882392f65fec3e7a8056cebc6fb9d4
|
||||
DIST keybase-1.0.36.tar.gz 30043919 BLAKE2B 0053088754b0a4a47314032e87a7c5165aff59ded585ae20fb12c3dbf0c7437f7f0370f236fec0db501cacb3a75e87ed494df8f688d360c58904e851eb119f60 SHA512 c6bd4805240bdafd27eac382a30fac6e5ac3e6eb313dda027533c3a8f366077c894b38c1b972ff5688104e1ca4231cbf4242eeb168de9782bbac732da5639ed0
|
||||
EBUILD keybase-1.0.21.ebuild 917 BLAKE2B 2b07280d94ecfbd1e1320b2822ef82c00956cfc2d739ea32a372cb0923363578210dd2af4da73bd1608c7eb712dbb9126cd22d352579abf9c9db9fe567ebfb8f SHA512 eea7d2c7a7df423dfa99f7a4e5b1fcac446bc9a170a26f0cd6bc4a695e9a1f1c8008b558bcbf39a0e90e531c88bba2e77a352a7ae72cfca259e6907265373b38
|
||||
EBUILD keybase-1.0.33.ebuild 917 BLAKE2B 2b07280d94ecfbd1e1320b2822ef82c00956cfc2d739ea32a372cb0923363578210dd2af4da73bd1608c7eb712dbb9126cd22d352579abf9c9db9fe567ebfb8f SHA512 eea7d2c7a7df423dfa99f7a4e5b1fcac446bc9a170a26f0cd6bc4a695e9a1f1c8008b558bcbf39a0e90e531c88bba2e77a352a7ae72cfca259e6907265373b38
|
||||
EBUILD keybase-1.0.36.ebuild 959 BLAKE2B 36385869dc6a89104de7df5986b086c1531819a46351c62578e8d672ea4e5271b137a1cb84221de497a7b560937ce14a60ae3c60ea3634d77aad175cc5033f6a SHA512 c81f68541117d81ea1b5f68877e8ecb07962b4677d4039f74d815b15468bc6a72c68991dd76f12ce14cb43f5b81b9e897d136a9cfa69d02f77e7797aed0e3076
|
||||
EBUILD keybase-9999.ebuild 893 BLAKE2B dd27632b3d771ba1e50bf4ba115f4e7a4b096d2245b7e8ed2f0bee425ebcef5ff01f430d7880466705a5b217415b5057ba0a9360d7efcfaa766528fc24799494 SHA512 763f66c3a48a668a5382cad7ddef2d1bc2c4874a6bf226f2930401f1e932104631a68ee89b9cd37bf794959447b64381c04ea60567c38ecb625b64d9267ed5a5
|
||||
MISC metadata.xml 465 BLAKE2B a1dcb592edbf2e5a45bd985adea8fa09504f75b17f689f38c415dff3efd0a4c67b3476c8c7568dc2b8351117281c94da4235cb1b9144d1636f04ae3b2055164e SHA512 68da266d0856035ec7f0b2ac5f8746ad6c7afa023ccf2d592be43fbf45f12f1443afdceb075ab57efeeceb97dfcc0a3997ed7177e12ae6291467e97c17e10810
|
||||
|
|
48
app-crypt/keybase/keybase-1.0.36.ebuild
Normal file
48
app-crypt/keybase/keybase-1.0.36.ebuild
Normal file
|
@ -0,0 +1,48 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit eutils versionator
|
||||
|
||||
MY_PV=$(replace_version_separator 3 '-')
|
||||
|
||||
DESCRIPTION="Client for keybase.io"
|
||||
HOMEPAGE="https://keybase.io/"
|
||||
SRC_URI="https://github.com/keybase/client/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE=""
|
||||
|
||||
DEPEND="
|
||||
>=dev-lang/go-1.6:0"
|
||||
RDEPEND="
|
||||
app-crypt/gnupg"
|
||||
|
||||
S="${WORKDIR}/src/github.com/keybase/client"
|
||||
|
||||
src_unpack() {
|
||||
unpack "${P}.tar.gz"
|
||||
mkdir -p "$(dirname "${S}")" || die
|
||||
mv "client-${MY_PV}" "${S}" || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
GOPATH="${WORKDIR}:${S}/go/vendor" \
|
||||
go build -v -x \
|
||||
-tags production \
|
||||
-o "${T}/keybase" \
|
||||
github.com/keybase/client/go/keybase || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin "${T}/keybase"
|
||||
dobin "${S}/packaging/linux/run_keybase"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "Run the service: keybase service"
|
||||
elog "Run the client: keybase login"
|
||||
}
|
Binary file not shown.
|
@ -1,8 +1,4 @@
|
|||
AUX kakoune-0_pre20170523-makefile.patch 864 BLAKE2B d884a47c9d2b659e361006806b1831f6c28ab03ce81ff7359214bb230f7327334495602f2ad417c2deedf179a1e91d79b419a5ac8362510a9eba2451cf9a4539 SHA512 173ba9eae8528d14f0dfc98aab956e1cc280fd15fe32b720afbe24c718b36192cdec1aeab64596b85be5a7ffc60bcc0516f7b8384c4ac718d3c7cb04f31af7a0
|
||||
AUX kakoune-makefile.patch 1166 BLAKE2B c32a2a087a65147f919412d3f888ca29cacbf01999704e80606aa9a0a973257e33ec3fc323e8ffe6532a85796030c72810e64529a1a6ea9b1ac83e64d707454f SHA512 68f1080e97562a4572ed40a7ba0774fbddd56bae50c3aa2d32d64b70d3cc17d898107bb1916710cc9f9a4af842630098c26399b0d88ffba0303e3f4ae63c782c
|
||||
DIST kakoune-0_pre20160620.tar.gz 370523 SHA256 4344bc78a15942c01818c8e8a80f228249557f5d2d20c2fdc845faeef86abe2e SHA512 c186b9024db7956d9bcae925727c3f30dd2c2fb49995e97c56dbdf59c3f17989feb405086957818685a08530da0f2b58b5798687959267da7e9e2a25dd78003c WHIRLPOOL c555754e4fc3456ce7912d60adb72191349692d0465996893ceb1162cc5f7f61b08b0098f13a54d5d44c861aaf3b23eaea343813f055b8ca06f6ce1305a30f4d
|
||||
DIST kakoune-0_pre20170523.tar.gz 420837 SHA256 3a083916729336dfd9e1e49cda62b5e3e881dbda7d6c7b5826377d5af15b1af9 SHA512 6d7d8f7afda75b824e4150512d9e0710cf22ef79af985c68b724a0f8e6949e5b0e7aab288f165a229f17706b30b51b462305538c7b56fd50689019118e913219 WHIRLPOOL 2e3a4c6b57944be46dbc8ddbc466fe3953453719146f4feabf8ae9688248a0d20ba2da3379fc7a503e7de7669df5f92d02e25dfc54c711a6ecdbee133b7a6ef8
|
||||
EBUILD kakoune-0_pre20160620.ebuild 910 BLAKE2B 85423f159491967fd23f296265aabb2f135a93758cc5b655441ff21f271a90c0b1737b5c8c2f8d80c3f999d546eaf3e312b1b5c90e37adb9cc9bf0c4802b4dee SHA512 1c8d279c20edf9cf9e0a3ff2733e7d8590aa6122f19dcbaeab19352d7d398d441683d521758b16df4d7d030246c4cdd5da9a26395e7d269acd8b9013265e6297
|
||||
EBUILD kakoune-0_pre20170523.ebuild 1174 BLAKE2B b24b12246c01aa25a1c1a09a1f830f28458289119a59f4b889e1616a06b4e9f988862b75a08afe8ad2cf64a1fe858ca4c1f43aefb6fa523d1c2adef850d14264 SHA512 012b97ce1f2c9bca51a238bc840da253460f2752b5ce8ebd1faed313b0ecf1a13b0a2c89988727e8052b39c44eacef52707e478afb0a70fde392e4a6287755c1
|
||||
EBUILD kakoune-9999.ebuild 1091 BLAKE2B a7dc4c3d5261f6014af63979395bbc3b08710eb01d27353c4fd66c5a42a408bc10727d56a77374a036bdd5b8633d8f7dee5d90be43dd64708f10e5a79b53b53e SHA512 324c83272bbc1cbe50f1cd8194dd166932ae7b375bad5502ef0defa149066d06f361b6d8d4d63a37187e8856aade39ce1de3d2e3fb51bcb7639abb356eaee79d
|
||||
DIST kakoune-0_pre20171120.tar.gz 460659 SHA256 10aea28840e2b58ce224fbf54c899797852bb0361e8c6363f0cc6af451d30b65 SHA512 0208fd932dcf6cef3fac3338dfc15f0ba36ed4e3fa282cc5ffac5ad823f91b553a8c34747ff33ec4382257a1eb71f21181b63595031f9f237cba3bc8eeda3626 WHIRLPOOL d611723d726f52ba08ef1580a7d286b853d78722374897ad78743eba3946e995aa89da7ca2cbb61472d3245101ef1bef9aa62b113b949494cead061fa7a961c9
|
||||
EBUILD kakoune-0_pre20171120.ebuild 1102 BLAKE2B cd6951631706825171afb30aea41c2c08f3db42dd44933fdea0ec52fc2a30afaf5627d2d5f009d7ab1d4054e4a9db9480e40c83884e02a91bd33b1caa27c5ec6 SHA512 426bb32f12b5f06911e4738278496ad6cf46f01725125b97b64877d2c425b361b7e39a52624b04b4a603d44714e3e4e65473c42e327b08db5a59fce7220a3ce7
|
||||
EBUILD kakoune-9999.ebuild 1013 BLAKE2B 9255ed63a1c4b7923e77f4edb2b2fe209937e5b5ffe8339933a017c66ab178d8253f33b46e5138a9ce3b47bc236b6727f92a1c4fbc86ef9ea4559a27c9f8ed8f SHA512 87f9ecc92473631e9b3c835aaf310411ec1892571c83f4a87593de1aa976fdc44b4946c982b1cd8e54663c1e83df2db5558980d1b5e0007ad0b7042cad372931
|
||||
MISC metadata.xml 461 BLAKE2B 10780dda95d0505d21c847f6bde5e370588d4f935145f7cf12a879f0798bdfb9bd61285521fb2be8227c19efe17c408498b9860069bba5be496887c263eeb8f9 SHA512 36c7ce23f0c5259e7bec75c2506aaabcdac43c71b34479824976dbcfecc42c96d3144ce6def550c79f92b7f02c97a1e053532626142818dc05641a4ea2974c97
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
diff --git a/src/Makefile b/src/Makefile
|
||||
index dbef95d9..70f16b32 100644
|
||||
--- a/src/Makefile
|
||||
+++ b/src/Makefile
|
||||
@@ -6,7 +6,6 @@ ifeq ($(debug),yes)
|
||||
suffix := .debug
|
||||
else
|
||||
ifeq ($(debug),no)
|
||||
- CXXFLAGS += -O3
|
||||
suffix := .opt
|
||||
else
|
||||
$(error debug should be either yes or no)
|
||||
@@ -22,8 +21,6 @@ mandocs := $(docs:.asciidoc=.gz)
|
||||
PREFIX ?= /usr/local
|
||||
DESTDIR ?= # root dir
|
||||
|
||||
-NCURSESW_INCLUDE ?= /usr/include/ncursesw
|
||||
-
|
||||
bindir := $(DESTDIR)$(PREFIX)/bin
|
||||
sharedir := $(DESTDIR)$(PREFIX)/share/kak
|
||||
docdir := $(DESTDIR)$(PREFIX)/share/doc/kak
|
||||
@@ -49,8 +46,7 @@ else ifneq (,$(findstring CYGWIN,$(os)))
|
||||
CPPFLAGS += -D_XOPEN_SOURCE=700
|
||||
LIBS += -lncursesw -lboost_regex -ldbghelp
|
||||
else
|
||||
- LIBS += -lncursesw -lboost_regex
|
||||
- CPPFLAGS += -I$(NCURSESW_INCLUDE)
|
||||
+ LIBS += -lboost_regex
|
||||
LDFLAGS += -rdynamic
|
||||
endif
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
diff --git a/src/Makefile b/src/Makefile
|
||||
index c79c270..9409a8c 100644
|
||||
--- a/src/Makefile
|
||||
+++ b/src/Makefile
|
||||
@@ -3,10 +3,10 @@ pedantic ?= yes
|
||||
|
||||
ifeq ($(debug),yes)
|
||||
CPPFLAGS += -DKAK_DEBUG
|
||||
+ CXXFLAGS += -g
|
||||
suffix := .debug
|
||||
else
|
||||
ifeq ($(debug),no)
|
||||
- CXXFLAGS += -O3
|
||||
suffix := .opt
|
||||
else
|
||||
$(error debug should be either yes or no)
|
||||
@@ -26,8 +26,6 @@ mandocs := $(docs:.asciidoc=.gz)
|
||||
PREFIX ?= /usr/local
|
||||
DESTDIR ?= # root dir
|
||||
|
||||
-NCURSESW_INCLUDE ?= /usr/include/ncursesw
|
||||
-
|
||||
bindir := $(DESTDIR)$(PREFIX)/bin
|
||||
sharedir := $(DESTDIR)$(PREFIX)/share/kak
|
||||
docdir := $(DESTDIR)$(PREFIX)/share/doc/kak
|
||||
@@ -53,11 +51,10 @@ else ifneq (,$(findstring CYGWIN,$(os)))
|
||||
- LIBS += -lncursesw -lboost_regex -ldbghelp
|
||||
+ LIBS += -lboost_regex -ldbghelp
|
||||
else
|
||||
- LIBS += -lncursesw -lboost_regex
|
||||
+ LIBS += -lboost_regex
|
||||
- CPPFLAGS += -I$(NCURSESW_INCLUDE)
|
||||
LDFLAGS += -rdynamic
|
||||
endif
|
||||
|
||||
-CXXFLAGS += -std=gnu++11 -g -Wall -Wno-reorder -Wno-sign-compare -Wno-address
|
||||
+CXXFLAGS += -std=gnu++11 -Wall -Wno-reorder -Wno-sign-compare -Wno-address
|
||||
|
||||
kak : $(objects)
|
||||
$(CXX) $(LDFLAGS) $(CXXFLAGS) $(objects) $(LIBS) -o $@
|
|
@ -1,41 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit flag-o-matic toolchain-funcs vcs-snapshot
|
||||
|
||||
REF="34c8e6a9cf15410a433c8a8c3901703708b85611"
|
||||
|
||||
DESCRIPTION="Selection-oriented code editor inspired by vim"
|
||||
HOMEPAGE="https://github.com/mawww/kakoune"
|
||||
SRC_URI="https://github.com/mawww/${PN}/tarball/${REF} -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="Unlicense"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 x86"
|
||||
IUSE="debug"
|
||||
|
||||
RDEPEND="
|
||||
sys-libs/ncurses:=[unicode]
|
||||
dev-libs/boost
|
||||
"
|
||||
DEPEND="
|
||||
app-text/asciidoc
|
||||
virtual/pkgconfig
|
||||
${RDEPEND}
|
||||
"
|
||||
|
||||
PATCHES=( "${FILESDIR}/${PN}-makefile.patch" )
|
||||
|
||||
src_configure() {
|
||||
append-cppflags $(pkg-config --cflags ncursesw)
|
||||
append-libs $(pkg-config --libs ncursesw)
|
||||
export CXX=$(tc-getCXX)
|
||||
export debug=$(usex debug)
|
||||
S="${WORKDIR}/${P}/src"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" PREFIX="/usr" docdir="${D}/usr/share/doc/${PF}" install
|
||||
}
|
|
@ -5,7 +5,7 @@ EAPI=6
|
|||
|
||||
inherit flag-o-matic toolchain-funcs vcs-snapshot versionator
|
||||
|
||||
REF="55d1d1020d215730737554045537cf3a8877c46a"
|
||||
REF="079b006cdab6f0ae594f80fff18ad61b71b0754d"
|
||||
|
||||
DESCRIPTION="Selection-oriented code editor inspired by vim"
|
||||
HOMEPAGE="https://github.com/mawww/kakoune"
|
||||
|
@ -18,7 +18,6 @@ IUSE="debug static"
|
|||
|
||||
RDEPEND="
|
||||
sys-libs/ncurses:0=[unicode]
|
||||
dev-libs/boost:=
|
||||
"
|
||||
DEPEND="
|
||||
app-text/asciidoc
|
||||
|
@ -26,8 +25,6 @@ DEPEND="
|
|||
${RDEPEND}
|
||||
"
|
||||
|
||||
PATCHES=( "${FILESDIR}/${PN}-0_pre20170523-makefile.patch" )
|
||||
|
||||
pkg_setup() {
|
||||
if [[ ${MERGE_TYPE} != binary ]]; then
|
||||
if tc-is-gcc && ! version_is_at_least 5.0 $(gcc-version); then
|
||||
|
@ -36,9 +33,14 @@ pkg_setup() {
|
|||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
sed -i -e '/CXXFLAGS += -O3/d' src/Makefile || \
|
||||
die "Failed to patch makefile"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
append-cppflags $($(tc-getPKG_CONFIG) --cflags ncursesw)
|
||||
append-libs $($(tc-getPKG_CONFIG) --libs ncursesw)
|
||||
tc-export CXX
|
||||
export debug=$(usex debug)
|
||||
export static=$(usex static)
|
|
@ -16,7 +16,6 @@ IUSE="debug static"
|
|||
|
||||
RDEPEND="
|
||||
sys-libs/ncurses:0=[unicode]
|
||||
dev-libs/boost:=
|
||||
"
|
||||
DEPEND="
|
||||
app-text/asciidoc
|
||||
|
@ -24,8 +23,6 @@ DEPEND="
|
|||
${RDEPEND}
|
||||
"
|
||||
|
||||
PATCHES=( "${FILESDIR}/${PN}-0_pre20170523-makefile.patch" )
|
||||
|
||||
pkg_setup() {
|
||||
if [[ ${MERGE_TYPE} != binary ]]; then
|
||||
if tc-is-gcc && ! version_is_at_least 5.0 $(gcc-version); then
|
||||
|
@ -34,9 +31,14 @@ pkg_setup() {
|
|||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
sed -i -e '/CXXFLAGS += -O3/d' src/Makefile || \
|
||||
die "Failed to patch makefile"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
append-cppflags $($(tc-getPKG_CONFIG) --cflags ncursesw)
|
||||
append-libs $($(tc-getPKG_CONFIG) --libs ncursesw)
|
||||
tc-export CXX
|
||||
export debug=$(usex debug)
|
||||
export static=$(usex static)
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
AUX nano-2.8.7-minimal_compile_fix.patch 1206 BLAKE2B 72265b226a23282baf1d16fe62637a3a6123342da9ddf9fa205d7eaafea710aa62fcafad1188cc1c08bd537be3ddb98403afbfd035fdac5712d6bf24bf2fa40e SHA512 1ebf43ca322c0cd49b7a3ffaad33057d4ac899c7a930569df124e54f713b28ece7e01aa625db91ece0126a07228256d188154bce464bd4c1a97945d686d9f0f3
|
||||
DIST nano-2.7.5.tar.gz 2031723 SHA256 226be22f46359007aa76499623739f4a7d5fa294a2899c70b21bc09b8d81d907 SHA512 a5332a361c4d0d9d0a77ebb11cdcffa976bee4981d5665b2732a9e6d7a2997566d9345332f2e6e5cb74f0a81be4413f54ca8f719962ab10b32d7ec1c9271973c WHIRLPOOL bd28cde96896ad531bb499504bb1438b358b64e7f6080fa24758bee7c222b4d1df0c395d480d0cef54de8e78a7e457db403a9ef2d6a56033e65299b6d7f95634
|
||||
DIST nano-2.8.7.tar.gz 2822417 SHA256 a49a888c20f09a17c7f1049d1fda619472c92eedcb25fd4be5f088a51cc392a5 SHA512 511b57f8fe82872827829bca91f7a8666a6ee75924cf2c853332ddd0467abf281c6d3cbaa5dd208c579cbace5bef23d36bd7b62be116aa2175262ed1d15aaf79 WHIRLPOOL 41a2f048478285dad936df7aeb799ec9c5b4a3e508a7132e5b1d71e1d98026bf34feed27fe055410b4d920c9b8ffdc6e1fb0fc16dbc583028fcf271cace69328
|
||||
DIST nano-2.9.0.tar.gz 2815519 SHA256 220cdf0b29b3d2bcba66e7aaa5b27ed1f2bf53c44192d8e0e0328624da3dbebf SHA512 21b958ef508e8108f3b0db15087869dbfa7006ed2c63357f058aaa1db170edad8cc7401326042b0d9296166c19fa59b4143a2926492878017071edaea6a6fc2e WHIRLPOOL 7561552d6c1f7e32340c47de4ce759439e1980f41968e93d69fabe462c2501d6a33779f8305e031bf2a3cf07eec46acfe2d8b125cb56e5ebd6ebdc3cb73d6e7e
|
||||
DIST nano-2.9.0.tar.gz 2815519 BLAKE2B e3e5d1b79f069fb3063366f09a7443cddc43edc19664832933210cb62c32d4364e98c4ec1e921498e75a2a34783ccc4b78e4eb05d46f969e82e629e965e4f62f SHA512 21b958ef508e8108f3b0db15087869dbfa7006ed2c63357f058aaa1db170edad8cc7401326042b0d9296166c19fa59b4143a2926492878017071edaea6a6fc2e
|
||||
DIST nano-2.9.1.tar.gz 2839465 BLAKE2B e0d443dc3c86446478edad73042c6b4698a86fdfe3727deac858fa99d52bf319e2b3a120ba57bf79f3b78d9d3d7e8f4b5bdee234f6450882fee06647be371191 SHA512 7eeefd4cb5f02f1ac14ca10c536f873a1a85f3a5ccc5d5c40a12770b26dd0d5b0bbb3a0770b394779c8234891d7226e0d06d72465d7687c971bc62606100d0b6
|
||||
EBUILD nano-2.7.5.ebuild 2281 BLAKE2B ad2c9f6a6b66c74e309022de21f0e233af8e0f091d7be79843753b244509c98e5c7115b3dfcd42566d2d3da46c1856a72dfc8da96399ad5eedd3a3d73395ecce SHA512 65c76d2744ad7bfc0fca1b0c9dcab041777a542c921f0526de18251b64bf32d12fe71fb8fd050eea4da074b56c12f0086036065e7ecdda4dd5b66b06382d81a0
|
||||
EBUILD nano-2.8.7.ebuild 2332 BLAKE2B 0a98df04fa22d392153fc07e29c257191111d5be195da16355eb27a22dc789c744462d0b09ddf0cf061f3efa714188d7784f0ceaff7f888bfa1bf536d225c3fd SHA512 9ba6668cb8a0de5e83b0e57d966a83ad7c10636835e92349ebd15bfcaea7aecaa431c71dfe743c7345b8a53b9a640176d68f323c9e5f86978ef3b67d2afd5bc1
|
||||
EBUILD nano-2.9.0.ebuild 2265 BLAKE2B c47ba305fd6dd42749764ea90bfc9f5b5482b7a5eadea6c179e01f082657398bf89d586f17f0e3eec23df78f6d4d76038017314905acb06cda870b4b80dbd471 SHA512 0bd91b9afea8c8f6592e84047870098c9948687d516fabf8e18be5fa8a2690db0b76f96fd45aba59743dae4cb6630fe2b76825628f0b954550ff95de3feedcb4
|
||||
EBUILD nano-2.9.1.ebuild 2265 BLAKE2B c47ba305fd6dd42749764ea90bfc9f5b5482b7a5eadea6c179e01f082657398bf89d586f17f0e3eec23df78f6d4d76038017314905acb06cda870b4b80dbd471 SHA512 0bd91b9afea8c8f6592e84047870098c9948687d516fabf8e18be5fa8a2690db0b76f96fd45aba59743dae4cb6630fe2b76825628f0b954550ff95de3feedcb4
|
||||
EBUILD nano-9999.ebuild 2265 BLAKE2B 678ff8f900f19d4879d857dc2f06a99edd0db894cef8d78abce94fce25684930cce93c0e9822d693415b5c5a5ca87217c4f6ff7b0da7ee4f65312eca5c9a6cdb SHA512 9d4902c001632ba5139d4dc14ad8faba1f1bd133c85092682376ec8835c5b491fdc2cdb1abda2aca311fbc57e72b93ab6f38923e067c744e02c6ee6795357d9e
|
||||
MISC metadata.xml 1509 BLAKE2B 991969010da5bbead6b460fe32b2b81e591306aa9840f362750cbb3f1810dad6095f2d77e75ae82f8b2571664b5f7569d669883d4835843a790850a6b971fb55 SHA512 68724d5be1e14dca54b129ef5fd99068cfe856ad6cd79d34f655100f84a0c4290131ad75888926fa73d4801a98533a3d8fa269816cda4c6891dc10d3a898cc3a
|
||||
|
|
83
app-editors/nano/nano-2.9.1.ebuild
Normal file
83
app-editors/nano/nano-2.9.1.ebuild
Normal file
|
@ -0,0 +1,83 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="6"
|
||||
|
||||
inherit eutils flag-o-matic
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="git://git.sv.gnu.org/nano.git"
|
||||
inherit git-r3 autotools
|
||||
else
|
||||
MY_P=${PN}-${PV/_}
|
||||
SRC_URI="https://www.nano-editor.org/dist/v${PV:0:3}/${MY_P}.tar.gz"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
fi
|
||||
|
||||
DESCRIPTION="GNU GPL'd Pico clone with more functionality"
|
||||
HOMEPAGE="https://www.nano-editor.org/ https://wiki.gentoo.org/wiki/Nano/Basics_Guide"
|
||||
|
||||
LICENSE="GPL-3"
|
||||
SLOT="0"
|
||||
IUSE="debug justify +magic minimal ncurses nls slang +spell static unicode"
|
||||
|
||||
LIB_DEPEND=">=sys-libs/ncurses-5.9-r1:0=[unicode?]
|
||||
sys-libs/ncurses:0=[static-libs(+)]
|
||||
magic? ( sys-apps/file[static-libs(+)] )
|
||||
nls? ( virtual/libintl )
|
||||
!ncurses? ( slang? ( sys-libs/slang[static-libs(+)] ) )"
|
||||
RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} )"
|
||||
DEPEND="${RDEPEND}
|
||||
nls? ( sys-devel/gettext )
|
||||
virtual/pkgconfig
|
||||
static? ( ${LIB_DEPEND} )"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
eautoreconf
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
use static && append-ldflags -static
|
||||
local myconf=(
|
||||
--bindir="${EPREFIX}"/bin
|
||||
--htmldir=/trash
|
||||
$(use_enable !minimal color)
|
||||
$(use_enable !minimal multibuffer)
|
||||
$(use_enable !minimal nanorc)
|
||||
--disable-wrapping-as-root
|
||||
$(use_enable magic libmagic)
|
||||
$(use_enable spell speller)
|
||||
$(use_enable justify)
|
||||
$(use_enable debug)
|
||||
$(use_enable nls)
|
||||
$(use_enable unicode utf8)
|
||||
$(use_enable minimal tiny)
|
||||
$(usex ncurses --without-slang $(use_with slang))
|
||||
)
|
||||
case ${CHOST} in
|
||||
*-gnu*|*-uclibc*) myconf+=( "--with-wordbounds" ) ;; #467848
|
||||
esac
|
||||
econf "${myconf[@]}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
rm -rf "${D}"/trash
|
||||
|
||||
dodoc doc/sample.nanorc
|
||||
docinto html
|
||||
dodoc doc/faq.html
|
||||
insinto /etc
|
||||
newins doc/sample.nanorc nanorc
|
||||
if ! use minimal ; then
|
||||
# Enable colorization by default.
|
||||
sed -i \
|
||||
-e '/^# include /s:# *::' \
|
||||
"${ED%/}"/etc/nanorc || die
|
||||
fi
|
||||
|
||||
dodir /usr/bin
|
||||
dosym ../../bin/nano /usr/bin/nano
|
||||
}
|
Binary file not shown.
|
@ -4,8 +4,8 @@ AUX flanneld.confd 40 BLAKE2B 7e3aae756e872ead179c34119e39bb054c7e23255b647c9c4f
|
|||
AUX flanneld.initd 518 BLAKE2B 36859121c77fcd7b53f679eff455ad1ba1f9c6c58fc6a015e195c7639434f941106c44349671c1fe15f4f0c63c3d753f69e9b8cfe2a8d706cd33dbf62a928154 SHA512 3f6f33fe90adca1dd17b503ce0cd3a7f3cc0ca7fc10d0ca5b631f4c87ed513c0133dfd7679618cf95540b252b3176f9bbefd6454867ef792258c46cafc039d86
|
||||
AUX flanneld.logrotated 77 BLAKE2B 778f7289a6268cf6b150b1c58895514808c304b56baca56b1df3297df4ff0a4c9ec6e70a3ddbf16c55c0bd5be146bcfa20f7b4ac8ceb08fa9af223164c19a905 SHA512 d84258a164adcec0f1cef7fcafcf0cadb3bf3959b393b905c4897274adeff476279ce96ec42e9aa9d574c6bd7d37649d92c7c52563975f85d303cade990a3942
|
||||
AUX flanneld.service 476 BLAKE2B ea838e26be0834943bafb985a37e71b45219bffbd68784b8442c065d9bafc8c9cb2b097c8a00629c19faf4b7bb1fb4ae33071e51d4bf6ffdd62cf5898de1f3cf SHA512 4a7d09f25f117b1cda9b02914a394c0d6d6ddd6c02503f61c0646ede1934cb4cad831992058c5738401b1ac7be6e4c7cd83b1c4a70c04084bb4bb01338c08220
|
||||
DIST flannel-0.8.0.tar.gz 8089967 SHA256 8905f1706b649db8c9852ddd0d559ff8c1844886278455b8ff0c22b909b1e059 SHA512 8d3693d95f67ab273c68671d0b2ab76dd3761868bb956cb14c171525bbefab8223d202f2356de249e1add1bbac89f995367a6d5c1b8e1358bebaa317b4f0a2fc WHIRLPOOL c6c2d4cc2f864b2e3271933a99d5ae8b4ef08c12b7e5cca771ca86c4902a4f2469cee990c46b5a40337a89b52c44d17cebcd56be77b502c2fedc371aad299be1
|
||||
DIST flannel-0.9.0.tar.gz 8090296 SHA256 3d04611497eab9f066d0316a23e5cc931b730707cc5fdcd1ea9940146f41151f SHA512 b91a3da1b69c806d9af87d4c5f8702c845b328978e375d957bbb8dd3eeb35547cc63f8f13bef7520a8e012e4e958a7c6ca047d0b06a1f9a0e31f61ec2be40a4d WHIRLPOOL da8cb9b415bb6627e33f7e040316a8e882e8b7960353a4e69dd81c25fb3025dbaf06b0ef6350df0e5566cd0cef9f7313a273bd75d2f1d613c7f8961245fadf49
|
||||
EBUILD flannel-0.8.0-r2.ebuild 1403 BLAKE2B f45390522d39d49fb33487bdeee660b0f02d7c1a324bcc25e6f24f6c1f99a30df653b3fa155f7799ef450e2ee501fda8558734e8c537ecc2a9bf7ea1df362659 SHA512 d4154712b76066d0c88c2308f38f14101a4713c6dceb8330bed71b4d3b2c53655197fd09454e8d710cd29e050c3734bfd0a85bc9141d8bbc2af202c8859116ab
|
||||
DIST flannel-0.9.1.tar.gz 8090942 BLAKE2B 94da69c9ef82438a55a238910130beedd55418d1f2a1a9e0d49b36fb5626b9346b4b1dbb46dfdbb839e6303a9906521c5e7bfa7ca695455d1b40167f3245c05f SHA512 ce265effa1924dbd2fa366cf97945ec94ecfc5701dfbaae2d44d1177a36b5e2268b1d9535f2d5dccd84ebb50d8cc8844c46f025fa1f233f85f6dfa0a30d53fe3
|
||||
EBUILD flannel-0.9.0.ebuild 1403 BLAKE2B f45390522d39d49fb33487bdeee660b0f02d7c1a324bcc25e6f24f6c1f99a30df653b3fa155f7799ef450e2ee501fda8558734e8c537ecc2a9bf7ea1df362659 SHA512 d4154712b76066d0c88c2308f38f14101a4713c6dceb8330bed71b4d3b2c53655197fd09454e8d710cd29e050c3734bfd0a85bc9141d8bbc2af202c8859116ab
|
||||
EBUILD flannel-0.9.1.ebuild 1403 BLAKE2B f45390522d39d49fb33487bdeee660b0f02d7c1a324bcc25e6f24f6c1f99a30df653b3fa155f7799ef450e2ee501fda8558734e8c537ecc2a9bf7ea1df362659 SHA512 d4154712b76066d0c88c2308f38f14101a4713c6dceb8330bed71b4d3b2c53655197fd09454e8d710cd29e050c3734bfd0a85bc9141d8bbc2af202c8859116ab
|
||||
MISC metadata.xml 305 BLAKE2B d34792ab0473ba56a75b4e9dc559b4a12b2eed48313cfecac65ce7b13a9df59a651721fbdd72a744314181f4002b52510c9200b85c1fac6fa03d3d78573db842 SHA512 ff219bf7233d4659475fd4e25366d5eef5d3575cd1250d6c9bbddc7351515418ca17730a8df61d102c71b515813b20bb182b355448db16b5fb43a9a46401bd04
|
||||
|
|
|
@ -3,14 +3,14 @@ AUX lxd-2.14-fix-fr-po.patch 388 BLAKE2B 21fc34b14f026cfd654b57d87be18dac3641322
|
|||
AUX lxd-2.14.confd 589 BLAKE2B a4ee8e9643f7add254baf2f83900e15029577b69460818640220197af8ad56862c9c96b82d6a0c38bbe7023893a787b3eeda80e64359ed44863e9aa4c61cc07a SHA512 14892b2efa96f4938497a7ea0b7b2b7ab630b287c8444b666d24b4aa4fd7af265d2dcb91b4defdfa0b33da610cdc04dc3c8751f00df9209a7933bf30ea9f0790
|
||||
AUX lxd-2.14.initd 852 BLAKE2B 3e5c53ffe4e478bb6e170055f637dc4d95c20ab72ef0fbd3281d939fca476ae317adf519f43564563bee9234079948cf8b944a2964d881fff0a2dafd504b4782 SHA512 ee3a83960d52a956a638f741289ad32e98a1687248d1c3d26f035cfdda55bdcdbc4a7d91d8258dc8e93671a89ddd97c6d1f65de5237a03c6a3fb92bb02387b73
|
||||
AUX lxd-2.14.service 174 BLAKE2B 8686d57a79fbc3a9ec2e1a3197012599a5d6b81b62188e779cdb9a86f9f413fa485090c79dab8c4aa8891e0e35604b85fb1cdb1da313918b34a974b61699b24a SHA512 6f9d71d5c08c49653f28511bc793d1365604af6bf105789caea27f4685d721fbb283f888e3b7310997b73ff2fc5bb1a47e7500c4678cb3d39124cab723523140
|
||||
AUX lxd-2.17-dont-go-get.patch 428 BLAKE2B fef476db95d5e3a2730d718b72725e5af86581dc0c25dc8665fdbf6c2914c056224f4f45318eea873f9ecb95ee33b0195f19b1d203fbce3bf8e1b8e7ced13b30 SHA512 eff965ddc918da9bf2bb9293b08a1aad33f1f7a69027767a74f8872a8eb045ef2a002536329c3cbd6730f1710ebb6f5e7e5c284121157e824a1aabef3a0de8b8
|
||||
AUX lxd-2.17.confd 589 BLAKE2B a4ee8e9643f7add254baf2f83900e15029577b69460818640220197af8ad56862c9c96b82d6a0c38bbe7023893a787b3eeda80e64359ed44863e9aa4c61cc07a SHA512 14892b2efa96f4938497a7ea0b7b2b7ab630b287c8444b666d24b4aa4fd7af265d2dcb91b4defdfa0b33da610cdc04dc3c8751f00df9209a7933bf30ea9f0790
|
||||
AUX lxd-2.17.initd 853 BLAKE2B 0b48de1a596767db356850adcb5682c5c351e7477b0d49d81aebf857a01e4eb75067087d323ba4b5d6fbf8765a76cf161ad2cfaa0eba480fb86e91fdb95b0e79 SHA512 960aceb2845cc3b454b2f916c73273f4b1ec6f87e5d569c27c8c58e0db153c084e03addbdcc91dc8761fc6f0e306261d87db73f8610fda197e55f9ec6756fd56
|
||||
AUX lxd-2.17.service 174 BLAKE2B 8686d57a79fbc3a9ec2e1a3197012599a5d6b81b62188e779cdb9a86f9f413fa485090c79dab8c4aa8891e0e35604b85fb1cdb1da313918b34a974b61699b24a SHA512 6f9d71d5c08c49653f28511bc793d1365604af6bf105789caea27f4685d721fbb283f888e3b7310997b73ff2fc5bb1a47e7500c4678cb3d39124cab723523140
|
||||
AUX lxd-2.18-dont-go-get.patch 428 BLAKE2B fef476db95d5e3a2730d718b72725e5af86581dc0c25dc8665fdbf6c2914c056224f4f45318eea873f9ecb95ee33b0195f19b1d203fbce3bf8e1b8e7ced13b30 SHA512 eff965ddc918da9bf2bb9293b08a1aad33f1f7a69027767a74f8872a8eb045ef2a002536329c3cbd6730f1710ebb6f5e7e5c284121157e824a1aabef3a0de8b8
|
||||
AUX lxd-2.18.confd 589 BLAKE2B a4ee8e9643f7add254baf2f83900e15029577b69460818640220197af8ad56862c9c96b82d6a0c38bbe7023893a787b3eeda80e64359ed44863e9aa4c61cc07a SHA512 14892b2efa96f4938497a7ea0b7b2b7ab630b287c8444b666d24b4aa4fd7af265d2dcb91b4defdfa0b33da610cdc04dc3c8751f00df9209a7933bf30ea9f0790
|
||||
AUX lxd-2.18.initd 853 BLAKE2B 0b48de1a596767db356850adcb5682c5c351e7477b0d49d81aebf857a01e4eb75067087d323ba4b5d6fbf8765a76cf161ad2cfaa0eba480fb86e91fdb95b0e79 SHA512 960aceb2845cc3b454b2f916c73273f4b1ec6f87e5d569c27c8c58e0db153c084e03addbdcc91dc8761fc6f0e306261d87db73f8610fda197e55f9ec6756fd56
|
||||
AUX lxd-2.18.service 174 BLAKE2B 8686d57a79fbc3a9ec2e1a3197012599a5d6b81b62188e779cdb9a86f9f413fa485090c79dab8c4aa8891e0e35604b85fb1cdb1da313918b34a974b61699b24a SHA512 6f9d71d5c08c49653f28511bc793d1365604af6bf105789caea27f4685d721fbb283f888e3b7310997b73ff2fc5bb1a47e7500c4678cb3d39124cab723523140
|
||||
AUX lxd-2.19-dont-go-get.patch 428 BLAKE2B fef476db95d5e3a2730d718b72725e5af86581dc0c25dc8665fdbf6c2914c056224f4f45318eea873f9ecb95ee33b0195f19b1d203fbce3bf8e1b8e7ced13b30 SHA512 eff965ddc918da9bf2bb9293b08a1aad33f1f7a69027767a74f8872a8eb045ef2a002536329c3cbd6730f1710ebb6f5e7e5c284121157e824a1aabef3a0de8b8
|
||||
AUX lxd.confd 589 BLAKE2B a4ee8e9643f7add254baf2f83900e15029577b69460818640220197af8ad56862c9c96b82d6a0c38bbe7023893a787b3eeda80e64359ed44863e9aa4c61cc07a SHA512 14892b2efa96f4938497a7ea0b7b2b7ab630b287c8444b666d24b4aa4fd7af265d2dcb91b4defdfa0b33da610cdc04dc3c8751f00df9209a7933bf30ea9f0790
|
||||
AUX lxd.initd 853 BLAKE2B 0b48de1a596767db356850adcb5682c5c351e7477b0d49d81aebf857a01e4eb75067087d323ba4b5d6fbf8765a76cf161ad2cfaa0eba480fb86e91fdb95b0e79 SHA512 960aceb2845cc3b454b2f916c73273f4b1ec6f87e5d569c27c8c58e0db153c084e03addbdcc91dc8761fc6f0e306261d87db73f8610fda197e55f9ec6756fd56
|
||||
AUX lxd.service 174 BLAKE2B 8686d57a79fbc3a9ec2e1a3197012599a5d6b81b62188e779cdb9a86f9f413fa485090c79dab8c4aa8891e0e35604b85fb1cdb1da313918b34a974b61699b24a SHA512 6f9d71d5c08c49653f28511bc793d1365604af6bf105789caea27f4685d721fbb283f888e3b7310997b73ff2fc5bb1a47e7500c4678cb3d39124cab723523140
|
||||
DIST github.com-dustinkirkland-golang-petname-1f4996aa8aa05ee066aaf9e3179d340b48c6da74.tar.gz 15087 SHA256 727e3b7d4ed0df94b96c99ca69c3505303d4f93173c31b5afce20e6813d6a270 SHA512 7f2d849104993e089aac6abc01844a559239110fbe257469ee918de26ef6d77cc29027324204b38613346c6f0579afc66bd721f56c2c2062354ac31f4e7fd7e3 WHIRLPOOL 857821556293492db1bd1cfbaf6c376846a94e6a13d0c021051827e4be0defdafe4b0c81f4823620b619d04a9fdea077341376d9f4665964475ecd092aa9b343
|
||||
DIST github.com-dustinkirkland-golang-petname-d3c2ba80e75eeef10c5cf2fc76d2c809637376b3.tar.gz 15127 SHA256 9fd221710230927063fe8380d9986d4225e9f69a8dd049c678020f7c75ce9dea SHA512 0f63f01857c30fdb179400b80e4391a12675ed17a981e9f55273fcd44e06df3bbecc127cf80bfd73afe1d4c30cf37638d0b581b2dde787abe2c8835dca8dbc2d WHIRLPOOL d7a223573dc16d445e1f197b576a18f0682d2c3bffb07f34b4c8ef764070c2d234c3bb2935109c05ea975fb0d719a44c1653f14a5234c791f67d8c6748897c41
|
||||
DIST github.com-flosch-pongo2-5e81b817a0c48c1c57cdf1a9056cf76bdee02ca9.tar.gz 59915 SHA256 f80d8b1dd92d7f2ea4b48d2e4b20d726156d0920e90ae0d6e8ac540a0d156ba3 SHA512 c40fc45b7a781067cc80a616b5a843977ff29071f7b36400631a7445d6fd8530144e73ecc1f406b2315be0725a214c62bfafb44f904b76d83384d8df488380ee WHIRLPOOL e2a011888949ecdf0ecbce662ea30de731ce7393142d06b9a0116ebdbf46771dde7be89067785663ed93cc45bdc861122112cf8c3b8f6fa27018c0a100066b0a
|
||||
|
@ -19,57 +19,63 @@ DIST github.com-go-stack-stack-817915b46b97fd7bb80e8ab6b69f01a53ac3eebf.tar.gz 6
|
|||
DIST github.com-go-tomb-tomb-d5d1b5820637886def9eef33e03a27a9f166942c.tar.gz 5515 SHA256 2379edcc225238167aa0d45cb28d3561c5193979b136a6cf3443a1fe3b85c78a SHA512 03ac20f7608db7c4ce54cc1ad9dfa62d770c32e1806a131909cb5c1ca4a9708b482e58d0e1bda0dbaff56ed36558a96ce2d4453566813967a32eef5245012a8d WHIRLPOOL fc39214f5e5d7063069f7173bfea57483d3a8f46c586c704d93a9af1ebb534493de343a9f2dbbd51eb22de118db2f0e3e9838ee4df2c414d2921545f2ed3ed7f
|
||||
DIST github.com-go-yaml-yaml-cd8b52f8269e0feb286dfeef29f8fe4d5b397e0b.tar.gz 60805 SHA256 11a6ce686bb70ab92020f2dffadc2e024e267a6564a62b0091e2974474c7f88d SHA512 268498022f34c4b59b5b75443ee10fd4273203f4b77bfa11b08a792c004cf13e3010c34b4c15cee2b4e7f3c910648d9897700f60ab00b327d78c49e97497fe2b WHIRLPOOL b2d18dc7354fa6e4819c2b1437e3dce55212fbf6e907361b82bfefc0b2306f12cbf70560c3819e2a81426e538949f05be01c6b8b3f3e53a3aa6daf828e95d537
|
||||
DIST github.com-go-yaml-yaml-eb3733d160e74a9c7e442f435eb3bea458e1d19f.tar.gz 64789 SHA256 2f35fb36301bdee6afa5d7ec41c8870bca370ee8300b4da157ee3336812b5c36 SHA512 9e34c34c907d1177e072eb5f3b421b8a3af0e68b490508691d745cdcf1145d9bcfd2592d909a4b05e7f12bfb62355d49861f6d2e1bd29b69cf026ef631965289 WHIRLPOOL 27c9123a8be869dbe6a15d1e69e39d511f44624fffd89aac37bf0e59c5d30f2b7932c6015fa055f3ffed9357873a2fb92c1f6522793a64b752722cd539bc2089
|
||||
DIST github.com-golang-crypto-2509b142fb2b797aa7587dad548f113b2c0f20ce.tar.gz 1435354 SHA256 f9ac56c3108f03fc2fbcf91fc0b0622df57f1e548ee26c7bd208a042f0ba53b6 SHA512 5936b8fc25728b041d086bde5002f4d9fe1d8a55995df27e8efeff795ff980da55b42fe254c638c95ff0c80b9b659753786d32836d2124bcab30f63f80767c9d WHIRLPOOL cdc50bfbff737f73c9503ba998ea88f433947fdc0cbc83a44096cc6edbcf20c7f7c44dd94aeb7422d33a26a9ba78416106d22d4f21a1941f86e6141380a35cfa
|
||||
DIST github.com-golang-crypto-7d9177d70076375b9a59c8fde23d52d9c4a7ecd5.tar.gz 1432665 SHA256 238c9ed9693ada60d89b1aea20007dcc1d29754ea25b537e3b9de6188151270d SHA512 d107abb176bf37a0a5a2487cb00b5d12e2247d41524a0651860c0a0b41b2b80926af024b78cc12aacafe254a1b8245980ab219a8357c8c2e17e9245f9027e570 WHIRLPOOL d448afb23308a8f7ea42b8bdec8ae182a7bff335800f91cd3c8e7398de87b4a30c71ac6083d8dee548a64db35f8158649420cc562a94ac9e4871e81dade404e4
|
||||
DIST github.com-golang-crypto-81e90905daefcd6fd217b62423c0908922eadb30.tar.gz 1431151 SHA256 0dc71491c29f8a217fadbced9ed7d9216f361b6d0fb09dfd030e6fe116e83be0 SHA512 ff5eaf61e7dc133a56a90d100c4b48fd2775145b457febdd1eb9ec39c15ce6bc73665873bbe658d6b4bb94a008d7246317d751a41b5a62b43d2055ed3cb01e02 WHIRLPOOL 3289466f54fb998d4ecc7b757a24e4f7aef88b29e16df75a0e47b5dcb84594462508161d06589a13099df72afa12b90b701efa412cbb352cb21f282b20c6361c
|
||||
DIST github.com-golang-crypto-e1a4589e7d3ea14a3352255d04b6f1a418845e5e.tar.gz 1336856 SHA256 28950420102f0dc290b84a52f06bc5b12a0a2b411b1b4fe216ba4ffe3ec3754e SHA512 c22fc86fbc22d6ec8157f89c075f07db8b72bf63ff97e06c907f555bf865cb77414c4fa2b9974407e43fa4f74b77710d3be9d2646f929fcfd5269b0ffc379914 WHIRLPOOL c85d338f87f5c418009497308ba28bd805769cb5350835dca35f77cce7ce456afe9cbcd66d9db3aea77e3eab0ed228260f7ec2e6825632624d9c80556ed15fbf
|
||||
DIST github.com-golang-net-0744d001aa8470aaa53df28d32e5ceeb8af9bd70.tar.gz 920361 SHA256 03f6f00d1142924dfee5abd67e6a39801a1da5c9f372a122aaaaf3c65de58a39 SHA512 d308b4f872612287c29b815b6ac0c4c3efbda4c641940ed8553851b1e93c6654bf443367b5ec96166d68fc2759d7e90e46fd6f148f0a6d535bf057bb785627d7 WHIRLPOOL 3d058a51d06992f8c07640f2ff6e69c5a0c468251420857b26da30fb6dc9b15f169321a7a4a29849aa6f346122339a0758875d6afd31d8d85a0cf3be8bb481f2
|
||||
DIST github.com-golang-net-66aacef3dd8a676686c7ae3716979581e8b03c47.tar.gz 917754 SHA256 5140f8089da711f07bcdffd50b262cc9a6d53dc4c2ebeffd5bd6ef04d103775b SHA512 65b7d18e220e84fc588e0485f083473a91f939ec566b48d53668e337056950e1f40b19346bdbadc483dc57072096aef0508254a7148354f5234e26ac8c0063c3 WHIRLPOOL b48dd92edf0ce8cb27b57132a888b0f7ac2b7b844f62aebe072e5fa3beb9921a409c547c6fd2701f1f4ba68a580e8c5988d915cc8cbeaee62356399d3848f2f6
|
||||
DIST github.com-golang-net-c73622c77280266305273cb545f54516ced95b93.tar.gz 926104 SHA256 86d516e5c4d1cd4e440eeb68562f6aadbefcbc20ac5bc9684baaf8c65867bb63 SHA512 ce014933d3b8a30057c99bca54e9ba630e1940d1afbba3b9c7ef9d4f3e78d2ad26fa5ea9f0cbb0ada877d651b67d449e099d287b4af1d320fbf0b9d50d8d169a WHIRLPOOL f3494171800990e7906a070c472036bb119c81dfb5cf3d0f3096997f33d5f6e7cf49e7640af15ca1233384c83073a548db420f3ce54b538ab46638c142b58cae
|
||||
DIST github.com-golang-net-e4fa1c5465ad6111f206fc92186b8c83d64adbe1.tar.gz 899910 SHA256 a92f1314f40ff6e542ac6e6ea1346cefcfc74e5e5de4939a1baa67c4f86a482b SHA512 0a582e9aa0ecee1c881771715970129d8af5975cccbb797f1e2eeeea7989b17448b26c000ef49fc7a1ae02eddebdfbc52dd2cd9a82b0b3b667b4ee7f62346052 WHIRLPOOL bdd305498d35c9ef3f1eb34878976e165117ec1c9d1eca8a28cb06a4616d54733e4e2504143990d0e74c6901bd5d6f717e2a0132fd0c4f74fdc305c7d983256d
|
||||
DIST github.com-golang-protobuf-130e6b02ab059e7b717a096f397c5b60111cae74.tar.gz 268449 SHA256 b9d3381955d095b8c4b26d0464f87e3b32f65fee51c2f791338bcdfea21a1ad8 SHA512 3caefc21de9d57ee484e32d831997efe1e086af652fbbff210c2097db03f933be78446ceea9d004200939b6d48737d716fae0674e1e142179e8ccd1827f3a228 WHIRLPOOL 0155a8e9cd779b1d636edad7b95bd8064b179aaa4139d722e1e423eece8be5cc462a9feed4bc1134b1530d2b04b336cd363c5b5cdc24c8caac707d3c20e06bda
|
||||
DIST github.com-golang-protobuf-17ce1425424ab154092bbb43af630bd647f3bb0d.tar.gz 266836 SHA256 3f82e7552c325c68b728c17f5b7ebfed200ca376c39353abc2f896756e2291dd SHA512 e6f093a5a8231e8e51daa2c5adf1db8da9dbeddc42fb6d05cd1f0cc03e2f3c1a65647b5463f3d71d94361d8a31163ee4fcc32e57a3e2df9e0a557c06469d88a8 WHIRLPOOL a08ee48e3e9c18aa420d4f15aaa7a1b957e1be12b3db14805904a1e55eb832db4eca830c07ce39f9915a455b4269c63ef4c8cea2f3fd8d84f45dba3c05d4bc66
|
||||
DIST github.com-golang-protobuf-1643683e1b54a9e88ad26d98f81400c8c9d9f4f9.tar.gz 268489 SHA256 63b06158ad570abfa0d9975787742254aa977eebbc57f348bef72bceea8d5efc SHA512 adb706f73ce1a0a9d369a556258494913f1760c2ffb509797330768d112fb4f70b55d80db59d41c933b27aa862a6c044a9d6d2c5de95f540b86a46a0eec99901 WHIRLPOOL a331d003bd914b3840607533da7ebbe49ff5bec49ddd8d2db403ea760636a45e3aec539732a92ee04b775cf2f33dac8e6a6ff5c74205bb2493c4fc0afbf6e623
|
||||
DIST github.com-golang-protobuf-5a0f697c9ed9d68fef0116532c6e05cfeae00e55.tar.gz 252930 SHA256 0f5d73fa192983fd67d0aa6b9f6e0c5fa64a966bfda42f7f4ffbd83163adf02b SHA512 ac284034ee27b275df8adb83ecf4eb85977cc9cf5266384a080df2beb2fdcb84af7e166cabaf76881b95eab4812997ab435adf0abd6068ed967f609b1747b6a7 WHIRLPOOL 87685c46c8813b8d4882aadb0b37437782f509efd8e59068f524cd100e11693bce0939087b923acd5214a14edcf76cf0ad71636ff634989d6c9dd5b02667ecfa
|
||||
DIST github.com-golang-sync-8e0aa688b654ef28caa72506fa5ec8dba9fc7690.tar.gz 15564 SHA256 0c3e1d10c8aa4f4c618ac26663310edcd5d8e8ba88b6482f3a5d16de67b9a420 SHA512 f0886e671ef90cca524df16e5836e1beabcf1cda42d2445323b3ace61982454e105dd6d686ede44b758d4765cb834802bd44082fb6a497d393986d91690a651e WHIRLPOOL 8f9ce0fa481702a4950b6c49d0078f94a0923f8a272b0629af5dcb36e421c1d10625a720ecdb43c5c5e2e38c4fcb9fbf659073e8e8c69182ea6c0e6cd977d9e3
|
||||
DIST github.com-golang-sync-f52d1811a62927559de87708c8913c1650ce4f26.tar.gz 15326 SHA256 25b869d922114e49906f2d9559c86b23b54f753986e58546d4ad816f426a9ad2 SHA512 912a5afe25c6854e14d72d9d0a897808ab9b67ba4f8428cd04fe7bb3ca815f1bd1b78667587fcd74967f88f44ea591b77616955dd130cc2f98eea922fdbacf61 WHIRLPOOL 91c3b07b66c56b0bce5f430f5e0573d30f57ebf83204cfcbadea5a88607f843c8176eadc2ebdae6020b4bc1144b9ae45ba03fb00c12070faa7505e4726f6b2e1
|
||||
DIST github.com-golang-sys-429f518978ab01db8bb6f44b66785088e7fba58b.tar.gz 769610 SHA256 62f47292c34506c5208b8fddab5e6c61ce65a557f5a2b167ba5953eb981fac15 SHA512 d3713f07cabdd7d25516a25ef4428de9bb5384970c28706887a952bc73fa7f99e6cb2b3a057195670b29fe447dffb3796e23e4863d5e28778609a799dffc1347 WHIRLPOOL 4e27190805038fa0ba24a1b01c194d239bdebde7036a48985cb0905705e042558c5067175df96b7852df1de8ebe89c4ea1e0645d0b0bd8b33aaeedc7156c4f2d
|
||||
DIST github.com-golang-sys-7ddbeae9ae08c6a06a59597f0c9edbc5ff2444ce.tar.gz 766292 SHA256 cb5b32b2d95a724f52104bcf9b9c2afa85b5d3eba0e31ec6cedb7381c90d26a2 SHA512 8d35c2b54cebae7f0f21916dd72be6132c22402829830f7b34805338f81e96da61977b346b72aadecec72c5eb1560998c7523fe0e6828813d635e06cf230934d WHIRLPOOL 8e2213c8dcb39d943ad77e7667d58afa26f550b7208103968a227b4e99d05f9a3e5767fa0c4f4b9198e6e113479505a32bc8d01eba67e06cf5e3b35e9edb1939
|
||||
DIST github.com-golang-sys-661970f62f5897bc0cd5fdca7e087ba8a98a8fa1.tar.gz 777769 SHA256 ca7d7b6320790aab81966108f3bc60b84f2d9f56466e3e5e5571dc35004c469d SHA512 44bd9dcefdd2ca5ec2bd89631d02ac870a3f05744f85016a6e6d7129a50b7c4ae5175be7098478256ee52a7a854e7fdb743bef8dc5b978c0a1d93205bdf39d0e WHIRLPOOL b7f334eddf9255d7871ac360db10583598be15492df0f7abb454db24caaf860a0efbb5ba9dc0533fb01d9731271daebb832d22656c91b0b5b7bf10fe3a292bee
|
||||
DIST github.com-golang-text-1cbadb444a806fd9430d14ad08967ed91da4fa0a.tar.gz 4624392 SHA256 4a125a94d8cf95b12783cc29b13fbb821d9e06a5fce2122b1920e81d4ca63bda SHA512 c37cc66e33e89d23a2fa4b707589316f9e28fe1d7131bb6208c0dcbd514f879dfff78328b871eb6d3ea1610f8b3f1d8c3061d94f88bc658d7bd8df2a19851c45 WHIRLPOOL f2f3c0498056de625a0e3d33e6cee84723b2934ae788512ef43e119be22bfc437fa590eea2ea3dbb5d14bdb3769adad59910c320f900d8763a8a1cf5b4078f41
|
||||
DIST github.com-golang-text-bd91bbf73e9a4a801adbfb97133c992678533126.tar.gz 4610285 SHA256 650d045a890228f43211a2df5bc254d9cc80723bcc6ecf61fb9df2e81c75d35b SHA512 a57f839fef4b7fe086b4238c38396d3ead49be20674899cfef8d723028e9dbd7ccc8fe8b76a84d53137b7cea26aaa594e68b9cd7b0a2816fae71f5c3ad15ec13 WHIRLPOOL fe6bcbfb389a8041f28fefec9b65c71fba8c6025a71a82ed8325664b8870da5ca6e4a021c6d144a36d08775925ee77575096d4a7c50dd407b4b2d85fa0c392df
|
||||
DIST github.com-golang-text-6eab0e8f74e86c598ec3b6fad4888e0c11482d48.tar.gz 4625238 SHA256 e26765a72f0be922157e22c9fbf6aefeb92294f67e174ccdab13d825eedd635d SHA512 98c651a37fd60e62109d0eac3fe2a21473d7f270ec7a941f4a84485d3276da84b526d406baa185360ac842348320e9f373c124f9d88675e34d8126e71a9e8de9 WHIRLPOOL 63c17d3a6cf4f00820b90d42e43e91394d7bc69d89a4e82218ef2f86487952c48b000b42e371346328390e4b7f46498c3382341cccc0787782030ed4b1bdeacf
|
||||
DIST github.com-golang-text-ccbd3f7822129ff389f8ca4858a9b9d4d910531c.tar.gz 4549711 SHA256 5bdfdcc6c259710ca398c1b6da7967d18dcdb8c6aaa56501da3f0333767d38ce SHA512 78941350134b98f0dd72b0397796106b309cc50e34d0741bb1b4e8795a653f6364e35061b1f36def969ab81a2b07ef80fa135baca3054116d58358d53dea282b WHIRLPOOL 870f029b29ed47881a1fbc71f4e903c43c215a56b0ce635956be6ef13fa4f379a793cfbd2dd9b70b031425245d5b3afbc84bb789fee7a2502575c472c0f3e0ba
|
||||
DIST github.com-golang-tools-2a5864fcfb595b4ee9a7607f1beb25778cf64c6e.tar.gz 2224136 SHA256 33d0524e2173a3d1292ad2a280230c39bd3b4def2eccad5d4a058b5cb29a4c12 SHA512 dc36f88d348ae5c299c4909120caecab35964dbb85529e6e735bd507155173ab86b134cd39a1fdfc50b7f1f55345175604f29027b0b3e1acd7f3b312303aef70 WHIRLPOOL 7ef8bd2853654c99a9b38d3ea14418ea28834824392a67cc93513682ce260b15d970343773982e31e2b65029c19ffb6f562cf46f4b69b4a3e41acfdd525fc79d
|
||||
DIST github.com-golang-tools-3b1faeda9afbcba128c2d794b38ffe7982141139.tar.gz 2246286 SHA256 a9437023d0c7cc757cec3ab76abea815e424174698d3bfd1160ba3c82a6729a1 SHA512 d36353fcfb96947a5f50b768e19bba6a075d71e0bec2bb3103869ba33e023de9a0163b127ae303c9e4ed8b3226c831d63a6eb8cdbfdb4b7d17bbd9e86616497c WHIRLPOOL d2636f80821f770e43565470b2af306bf237fa55d8a2d0c25c97ca5341499ee7f2e7245bcf799209d5eb72f12e9b8d7d2249305a2145de940c0fecc6aabf4854
|
||||
DIST github.com-golang-tools-9b61fcc4c548d69663d915801fc4b42a43b6cd9c.tar.gz 2246761 SHA256 72399a3cb814a938438bafde3bc5c2ba8aa3f30c60f7e67b41c33d8f11541e1c SHA512 4c2ab3079c149432fcaff400dbc6ad60f18e646f7ab21c2651fb1ca7d84f1adaa638de2e1f7d22f3d5c2715872843214f215b8e8b86b1c8da30d8723310db629 WHIRLPOOL 45b6f496ee6a0658b0259c74a633ea6bb36a8564c799de93e4fff059552c53b5ca361241b2ea5590b31c378e19a6ea5c81fb8d551acd62e21e438aac1b5399ad
|
||||
DIST github.com-golang-tools-e531a2a1c15f94033f6fa87666caeb19a688175f.tar.gz 2246266 SHA256 0f0d14775ca548663ec4dacbed4bf5c95529289717b4d6576ff2b78d1177f534 SHA512 5cfaa76a4d5a8fb35c7c39dc2a9f323e1d5a61fe21819eaf89dffc5f033f4d18c0a65255bcd8b35699f6a39bfc7411dcb7a42af9a043dc5a72d81d36f69f8f58 WHIRLPOOL 217d3cb9b12733c55dc497a5c17a48e5f0c4d50dba1ec59ac919a7ade0a47077caf0eca30df42db30dfde4090c5385e1f67915a741a9f00711127614ce33a5f9
|
||||
DIST github.com-gorilla-mux-18fca31550181693b3a834a15b74b564b3605876.tar.gz 29433 SHA256 f3fced6606c5e662aaef9d4cd71017438040af3ea419b3ac44dacf7c17dff91a SHA512 5bf7e9a6e8b01b235f5a9e697b5749d5655e62816d74b2173b123814f70aa92c5e0bc84cf40f643905354374efdcf1ffe8838d3a55d7e3abec29fd12a2e0239e WHIRLPOOL e4bca82d6c672290c5aa0683de5d81c787fcdfaf09bc2dd2ffd67f5e17c6cbbe829bb58b8e01861b692518550d4e8de359b7fcea175719e020e5ed31774806a4
|
||||
DIST github.com-gorilla-mux-3f19343c7d9ce75569b952758bd236af94956061.tar.gz 30094 SHA256 db47181f2a79693d6441bf480ec4cc41f392b78681feadac5f68c6b61a728f73 SHA512 51d40186c3f216e27c487ea856d03047c89a21ed71819aaa8be366aa116e4227bd9db24293b7564ad5bd01799f275cf2d00f66cac9bf4162e9661c6ee91609d9 WHIRLPOOL 42dca254f258441c841bd681f1f60c1fb583ef787f26f5492dad83357cde4f63b9ba5b9d7b8e468a8cb31924a2e71d18376ecc8b15231c356461780f3a592a9b
|
||||
DIST github.com-gorilla-mux-bb285ea687c5c77bb6935fdb2402b121d8efcbec.tar.gz 30027 SHA256 ad86919422a108831e20551b67083c1c6c81d7fa2624779690c66bb5db2d6b3d SHA512 2aa87c84198dddd5e45dedda48ae6c885a9fc6e233d51ac275781a04a3ae6556d85b4c3255eb1e16e4ac7074eb4cedfd2a04d16ec785c5be24bf2548e1f379e7 WHIRLPOOL d5955dd449f5b314e0b203d1a4c4a3d164441506d6b54054fa35dc215d31392308378e84308b5ffc7dd91e1d58266d949a44acfb38c1c2f358b17d5f7c6fc89b
|
||||
DIST github.com-gorilla-mux-7625a85c14e615274a4ee4bc8654f72310a563e4.tar.gz 30474 SHA256 516b1d072bd612af66032c7254bc4c3bdb64879bd9529f8b2a1c5d5a2d1d0d19 SHA512 3f12ae4ee55ec8711781d83d8048a4900fef774e3328f9bd9f276cb765687224373149ddadafa70a9267257cc2c49f75f42963a2dcc8796a9fb4ba75952e0574 WHIRLPOOL d24d3460fcb0827c6173bed1cf68237c3638bccb1df0f01c2edae7f8310a1f487fa23403634d515166239d5bef614c7e2b79628d10a06d2df1c37406c7b4c957
|
||||
DIST github.com-gorilla-websocket-6f34763140ed8887aed6a044912009832b4733d7.tar.gz 42985 SHA256 456deca23b1bfa09f13bc2a57573ddc521552c4a5e7e677c4ff87c3aa206ade4 SHA512 aee494082f7d32a9c1d49c9975a8aaf9881ab57a917fc810f759ba79f038fadab564d2f6016a2f23a3f21798250a4b9a79cbeda600376eebdde2425d10bb77a3 WHIRLPOOL bf2a3343291e1bef424930638b717d47c5bd4d30addfb2f7d05e2f6cbb55277b42f84141c286c7f1dfe40b21b2dc776c58802f3a465c05355dd6933b1e41a4ec
|
||||
DIST github.com-gorilla-websocket-a69d9f6de432e2c6b296a947d8a5ee88f68522cf.tar.gz 42996 SHA256 b90c0b4117f2267a737b8573abbe139b706a6aa92257b346f6dd185d3135bde4 SHA512 95a107e3e8626bc17407b8ae14d8cf14b22be616a35e3a287aa9992bd952d0fd3e09668d8bd8e4af66bc7213dc2d1f0063c0c7edf7222a0e11423aba3a201d62 WHIRLPOOL 6a36def6799bcb77dab98c7a16818ab8db8c0c605c5fe9802c4026fa23cd7a761be55894c933e7683648af7177f9318b295d1b95c4510b0155a852c8356d9986
|
||||
DIST github.com-gorilla-websocket-71fa72d4842364bc5f74185f4161e0099ea3624a.tar.gz 42507 SHA256 12842dcde9e78e4d233a75cea4a9bc7125e05590c1b802e4b39aa1c98938b9b0 SHA512 208c98effbcfbd96497d4affb9f11f9aba97d20a784515f43aef5378c32250109372919ae45aebffa8bdf3aec08b36a70578a81a68f329bd5be69ee3630445ec WHIRLPOOL 05c1ce17a858a0eb814fa69c711aa898df2a75af40fc6ab5e202006a8930fef6fe59ea8c4e057efb76c3247ef5837cce528ad332622979ae10a0d55220f2f652
|
||||
DIST github.com-gorilla-websocket-a91eba7f97777409bc2c443f5534d41dd20c5720.tar.gz 42927 SHA256 56858a67bb8b462f496e9b9795436824036ae17cc3a540284a4183a4c9ca3dcb SHA512 651d017498aca3fed375996a4cd77a5128396a14aaca4485e5480937f85d1ea8a734ec607d1658601ec6eb9b0b1e9a4756a0264c4dd86ac6bf2de556daa6693c WHIRLPOOL 5f1181de9500b03fde03f6ff8406a65987e60eb7018bd76defa3065c85e6b1d79f674024aeb000d0cb5a0bada96b6d757a82edce203bb8ff0d1c79a176868783
|
||||
DIST github.com-gosexy-gettext-74466a0a0c4a62fea38f44aa161d4bbfbe79dd6b.tar.gz 9682 SHA256 23e121b4ea15818e26d840cba571fb1c165b785271b07f44d3b575e17070fc1a SHA512 99a00ecfeb4226bba01dbef615f02b22f54959252c9fb99ed55f8c040026305fa54256f78eceb5c02ac6a77842c72fda43d1790590adfdcf3202095ad836a198 WHIRLPOOL 0e3c101756336766d38a5a8d80349b55378456f6241ee53a873edf5a23e44f557dc1125c12892aef6a5fa70797da47f1ab72b0f5acb4502c10aa2be8d6c1aaf4
|
||||
DIST github.com-inconshreveable-log15-0decfc6c20d9ca0ad143b0e89dcaa20f810b4fb3.tar.gz 23111 SHA256 b36b95c90bdd5730b16458db36503050ced16926a0bd33b53cf3220d7b6918a8 SHA512 bdc21cacdf56c5e4e9b03dae107f646a25f1e757b4e1bd57d24bca92f7c4574f8b716e3f3a3ac756e77100e61688e743ffcc5388989268a95028060db9449cc7 WHIRLPOOL fe72f92bb495ae2b9c9b6ff0ae4b557ea402c1518d895788198d203a48ac7f0779ec41b589a1820214ddaf22f674c3f8a8d4aa19b69797b1e35c856e7a2f5d99
|
||||
DIST github.com-inconshreveable-log15-b105bd37f74e5d9dc7b6ad7806715c7a2b83fd3f.tar.gz 24466 SHA256 3eb782a5ca1fe5da13d89a371cf9d41b870c1e03c4625064ae88aa6e489bfe65 SHA512 f5add63516e3d4a0797cda4fde3568aefd392a2986186cdca8c060ca51a8d5d09d3ba990578942c6ebf0441f94b9f042f7379c5c3897b4210ab861998a597088 WHIRLPOOL dadfadd3d5ae01c154dc1e09617b8ca0badd00d0015b6304619d6fa79b2040a65bf0f39f6aa6fb8503052ce9680188761d21f033e5d4ccabcb00299cdf393c57
|
||||
DIST github.com-jessevdk-go-flags-5695738f733662da3e9afc2283bba6f3c879002d.tar.gz 54989 SHA256 6a46bc8a692a1153b12a889b357683aa2aa2254d162ddb1c38253d7988cf1030 SHA512 9f117c43a41ee7b8753ba8bcb9ad49ad5106ce01b3be617921ed9d1208bd5bc1c4c155d797f2b1f7134955b16f3d82e46de2b0a45e5e8808199e0173687719b1 WHIRLPOOL c6f230afc0467fb6d76a2da9867e8437833471a7c36073d74834a5af399e8e6cfef0bd40bc5ae9cce4fad15c8b1d03b03110ee20c86ca4c281b5204f9e28e0fd
|
||||
DIST github.com-jessevdk-go-flags-6cf8f02b4ae8ba723ddc64dcfd403e530c06d927.tar.gz 55513 SHA256 c67846e5532a92d3ee629bc67eed7a12bfefe0b837182daef51ebb9774697d25 SHA512 cf4c45b2a0f314874dc4bd2cbedddfd6f46ed71d6b51198365db17d4a4fc6b2ecce000968b62d6c883f596bd8847f0429f3fbbfddb0ab7369a3a6b78d83c48c8 WHIRLPOOL 59be6ddb176a25cdbd0a48ed829259c49911e76c63f9f1f3a4027a0f4e0ed7c7ae39b7b3a99cc49fec99fcec6b4941ab066da9795eeee41a168c63f7e8425786
|
||||
DIST github.com-jessevdk-go-flags-f88afde2fa19a30cf50ba4b05b3d13bc6bae3079.tar.gz 55513 SHA256 25c78a054a333e2aad2ed47afe64dd8c45e319b0d43a99cae95811cf60512cf1 SHA512 386a0fcd1029b6c4055e8cbef535344e2508e4d6eeb7cec2c9e9d0f1a080ad86eae0a8f13ebe65b056be941af5170feb41a1798c6065bf781b6dba71bcb2c567 WHIRLPOOL 052af9256da1b6e56fe271ef6c201475e449d56534793a9e57a6d6fe9fc6e088424006f54c897ae8973ed80987715df4b0ccf93eb9a8b3c40e2c8af7bad738ab
|
||||
DIST github.com-juju-errors-c7d06af17c68cd34c835053720b21f6549d9b0ee.tar.gz 16210 SHA256 eafa160a17919edabe61aed53ea7c129499ad9ee169134da8532b89c920d01d0 SHA512 04dfe2f155724d98c31fa2d274a13e77efc34364ffae172fffbc8e14b72f68a6301e6f582c1ff9f37cb105d11a7b3197e2ffa635f410ffb64d54e7c6fd1b9d1a WHIRLPOOL 76989d50938b01ecad8f0fee239a3e5bd4a829e8fa78a4f9b6d9e0711ebef5fef7d8786e28cfc03477017a4b5b2b5e4659c05f98d7239a4d5251878004d010ff
|
||||
DIST github.com-lxc-go-lxc-74fb852c18ea4341f85e49bb6f33635946aabda7.tar.gz 37089 SHA256 c2d214d8f6a2f22680422a49427bfafb53579b0e41d4c4699c5d9437d698024c SHA512 260ced6801464464652f07b747e452b4b72e4ee0d318c82cce6a64673c34ea1844650a7c3c90a6391c58b7ba8c11ee7345564e2436a79b7014124f063a3bacbb WHIRLPOOL cc0172f82c2a6b7d7062aa76b6b5ea3c5dc7d3e826d973d262505a82a578bd75568d2629e8568248f3c983416857bfa79f5d091893030ef0fb777127b34cee03
|
||||
DIST github.com-lxc-go-lxc-89b06ca6fad6daea5a72a1f47e69e39716c46198.tar.gz 36894 SHA256 22bc63df7a27f2db7bf4e27bb286fe2a491f5b0d36ce02915fec7f6a63573537 SHA512 145168fb3defcc57785ae0b08d5386c098e6682fab2c48357a0e4dbdf4839ce1dc76a6818d77e620f542f452e31d075d817950a814c4e6d78781aae912587d96 WHIRLPOOL dccf7c2f88ca62f63e2ca86ca999cb50e9e34bd0680fe9eb53c068873304db94d91174a19d7a4f115bea63189146b1ae368631c58e198c7940db74616616cd1c
|
||||
DIST github.com-lxc-go-lxc-de2c8bfd65a78752d6a70b4ad99114c6969363b0.tar.gz 36156 SHA256 7e794163a24488854f2ff48468e699577dcff82871717913cd7a079dc83d292c SHA512 57e84c66b8c8260e3d2631b37e5dabcaf5136e47ed4233489f8fd3b2cc8796c495dbc78390e4372b0cc54ee5920d1f469579f77de1c0291c3ae31dfd6b628dbb WHIRLPOOL 61e8d12211a0ea1eebaba824f4adc2784f26ed0c8496e74d51f02a7647f526954001ced5d3559bd2e2de8fa4c6ab76dd6d15cb8cbf678ec36db5613fcce9accb
|
||||
DIST github.com-lxc-go-lxc-edfe59cec27b76afeb3b35c56f2948c27afac493.tar.gz 36344 SHA256 3c9f1a2ca36f10f08a5b4a5cddd4a17ac18dc6c85913e5e4e3b843e9b25ae40c SHA512 b21d17fad0ececf1d3d0e2bd4efedb11b976ef839de08f76cc0bf9c2fdc0490cd45d3ec3cf852726ba6cb1667e9d14f54a9b9b3f0a3a9bc471a90cf6eb531ab5 WHIRLPOOL 5ccb2839ad107ce84e336bbc1aeed31923d2bc09806a1c424a063b1fdfa8563b4fc7ec64b273126533d7a2ddcdda8d8165cc796aab8e157e86ae88d59af34ae4
|
||||
DIST github.com-mattn-go-colorable-ad5389df28cdac544c99bd7b9161a0b5b6ca9d1b.tar.gz 8089 SHA256 ad1e8de71cee50acb8492bcaa9b1a7d0ebe175f76266a8f3dd4d7fb48d8e53be SHA512 0f458e6acfec266b58cd458bd05bc04617df0ef223ffa6a6c374decd29555a78441f3a17df7b5f782d96a25f56bcece061407e9778e25ceafeedafa014a45bb4 WHIRLPOOL e18e5c426b611f5ba102c2bfa935c26bf5be3b42e48c2b337d3827936361daa28ba1185337b1e25d5732063e0cd539661cb740028f811577cd0250ea24b4e0fe
|
||||
DIST github.com-mattn-go-colorable-ded68f7a9561c023e790de24279db7ebf473ea80.tar.gz 7522 SHA256 454e4134a81b0913cd22fd6efc50164cc352218f81e1a73ee209a95a7d017f09 SHA512 ae09fd28e2aae98d0b73bf71ee7496d8d53e20232428d09e021ee8571ca7e990e85c0d9613c89851e2025624d317a26e1768f4e7af12294eb1a189a241bd8daf WHIRLPOOL 567d3a684eeca18e8703714197b23ad9d7157fa50664ea09a0ab130635cb75fdc543aacb23a347324d9dd15b44081f0393e7db1a1d8e9159b9fd3e703cb7d008
|
||||
DIST github.com-mattn-go-isatty-a5cdd64afdee435007ee3e9f6ed4684af949d568.tar.gz 3367 SHA256 d8992ce27d58ffa5dcd9b07dde153beb924f8cb0ad5089d7474aff3f671d2aa8 SHA512 16ccc654b77fbc405f7a72d6613376af53d18884288a070ec096df14e332ed387b81fc63daa2fe0d2b6e7a428fc00ab6da7da441f56a076d03b3327aacd0cee0 WHIRLPOOL 2e7aeed0194923d5dd8ca3a0c9bd33bc47d6b86dea12873e025746d6647a067c3b35565841af006d67811f55f9fd078217b393546a18a5b1c6e75e759a62f7e6
|
||||
DIST github.com-mattn-go-isatty-fc9e8d8ef48496124e79ae0df75490096eccf6fe.tar.gz 3262 SHA256 c013b75f090745e80bc5e3060a26d7053ebc63bd3d077177aa7a3e349bf151ca SHA512 8627d22f5ee5a087744bbf4dd391f8f87ebabe8940564206935dec9e406e40a98976479ea973e61afeb1774df211992cd61c67ee198d546e22fbf60826b64ac9 WHIRLPOOL be9969d0cca83428e9f6eadfffd970d95ae8c0562c00005303eb8122b2cd737410372458e2cd8e6328ff65536d5b7d6b60e34f94fac8cb4d582202dae4e0b94a
|
||||
DIST github.com-mattn-go-runewidth-97311d9f7767e3d6f422ea06661bc2c7a19e8a5d.tar.gz 22406 SHA256 60afaf4d86f11a5d256d240cbccba766c5ef6ba2e695661df6bc4608021ca186 SHA512 0452fbc64250169ea99fe4eb4e2ef4f81c7bce5b77572789186f749c9c502c29c7146f7ef57971b6b78db0abe33e9926931719dd610f59925e31e6dd6c0b8d70 WHIRLPOOL 5606a1879961eed55f00e3d7cfb21663db1d9f7059a586ea5a423f58655713a333d89ceb8dab328af0cea9d13e9dd02bde49bff6a086d80d571a03c79fc72ba8
|
||||
DIST github.com-mattn-go-sqlite3-05548ff55570cdb9ac72ff4a25a3b5e77a6fb7e5.tar.gz 2030395 SHA256 6253685c0e7ae8141e4b9f07c6fff664edac80b75b8c09b39965f7603850512b SHA512 0899042c28f4dec19f830155d1da03830ddf6c03c96fc10190184f1ad2ed5eb2d69b5b989c40f489846201ba664ed80554f76a03c9e1e291d7fb9636967aba52 WHIRLPOOL 9c7867e45d0dbbc2b9865f0215b7c2b747cfc2c2e35264ca2bf96adaaa71b59374f301548ccb8cf34ff989fbc688e787dde2ce6de770962ef365b6ff6c5328ef
|
||||
DIST github.com-mattn-go-sqlite3-615c193e01d8d462eef7ee390171506f531a1c9a.tar.gz 2030347 SHA256 46e5b3116b55b9e7b6555366008a49cc70eb33a6068c0bb0355caddf6b137e59 SHA512 ee5ec75c9e1ac8ba5b21d4221af754055fb7f8fedca8c4a53b72c16a216eea570ecb436b14a3632cf5541b2053874d82898e601f27bbdaf97f2b230e64ee822b WHIRLPOOL 28027c692309c1c420b6fefd9fdc37d23604a331fadfe235161e6bada89407cfeab67c5d5bf8890a9aa87fdae4a55721e7da920e35c9003228ca49a5fa48f9da
|
||||
DIST github.com-mattn-go-sqlite3-83772a7051f5e30d8e59746a9e43dfa706b72f3b.tar.gz 2027317 SHA256 f108517a1ef06a51044a869f4da473b5e3f5f664afeaf4eeb9956c4bc2ad059c SHA512 687b1c9f7b2f27be4ef0d924f691f17251fb84522647436d3e6d1ba5946208618156663d817d146f954ea07d31619c446a3023f9a811f113a3761cda0daebdec WHIRLPOOL 26747056149e68ed1c9b59cfe5e1a6b0b38cdcd06a2d28ea68fef09085969dc1d706be70438552854c35096d3ce6405b6450da6fa5beae911da0e4b8730df8d0
|
||||
DIST github.com-olekukonko-tablewriter-0fd34425a5aee40ff3f260b34e6c3b0d59f58c66.tar.gz 14765 SHA256 8e362aed0c169b6f0f1a1263aa7a04ec2208c70d0800a182706007b81ac02da2 SHA512 8006135ecba382466b8a283f1520ef052a909dacf7e4fc68f48549239675fc6225ee0382ef8008b051ac269eb827978dbd5a7e2391ad9f2cab99118189cf90f8 WHIRLPOOL 03c88724d658c62c5acc9d1b7016b891065789965955c9df02390e9eda94c6195b0e5c803152abe873cfcb3cd8d7f834890e8ed1d8a89922b03534ec9e603e51
|
||||
DIST github.com-olekukonko-tablewriter-be5337e7b39e64e5f91445ce7e721888dbab7387.tar.gz 12269 SHA256 a3f2a6f367b97d8406402a674eaf96c5ee9baab05de32b2031085b8d92e7eea1 SHA512 444bf361e0b602fba43a4b0d991614f10ed79a105bbba30bf3054d0dec687de6e9f4583793d52d5e25c99d55f3d39c5121f60110f3a879cf0bbd37594834a929 WHIRLPOOL f43f7093b37580845a7e87fe487684d5ef5e51646413d9188e6e3895403a6e028f873c1fc52ae60cf9d677cc9c3d5373c6cb39cb05e3632172ff3827ae4f7064
|
||||
DIST github.com-olekukonko-tablewriter-a7a4c189eb47ed33ce7b35f2880070a0c82a67d4.tar.gz 15206 SHA256 21d5a132024d3ee38449d56736ebe688ef1abc542eff1527d3a89895f2b787b5 SHA512 38bdb92ea0444dd0e32869f0d4f7f96c19997ef3382e9eb7a2eb0bf9475f8640e8d4f6639cbd48a7f12e90743b53a9c8bcbb0b6bc3e749f956446c6dfc6fc544 WHIRLPOOL da8cd2462ff663d9c7546739f251d013fcf1eea382ab9f5b008a999a8fdb56c7e5be4a823ef92ec1aa9461fa8acc0301c378fd81ae103cb0ba50818fa872d885
|
||||
DIST github.com-olekukonko-tablewriter-febf2d34b54a69ce7530036c7503b1c9fbfdf0bb.tar.gz 11822 SHA256 080a2090ffb58f682a3b15aeccc866b8ff3acfa2020eaaf138b3d0b27f29d0db SHA512 bfccf8eacd32840ec195c0e69d141fc24ca55d9f0832b38ad87e0c2292c61f5ff0731e83a19045ddebde4db8b9cd77b0b84214c5442f4cd4f8a892e77efce758 WHIRLPOOL ca608bae83163bfb2640d2956021f849cbfe6e827f40120b9151ba663fcf248b3157d3a0eb294747ae0f8b9510c79443d9e3193294b874578b2dd3e68cf9a3c2
|
||||
DIST github.com-pborman-uuid-1b00554d822231195d1babd97ff4a781231955c9.tar.gz 12808 SHA256 54da54d54a914e569fb2b31132e0c458ece12d7cd70c14a33adf95731e07afe7 SHA512 c332bd39781e7a3bd7125bbf26e62da2aca24bb89975491a4165a17580f3ffb99587e4620a9c9c17afff5d34865ae0b86065e1516ca325d0edc4dd84be269283 WHIRLPOOL fb245c1056abe69f7e3fa5a4ded80111777af2fdc107dee3fc36faa25bea8394eb30fda6000075cbdf124cb01c4165ed08fb154d70c30c8a1812988e2bd86619
|
||||
DIST github.com-pborman-uuid-e790cca94e6cc75c7064b1332e63811d4aae1a53.tar.gz 12805 SHA256 5093e139937f8da5577e9f33e21ffc3a59ebff6a3264b80e8c5524c113bdaf44 SHA512 ab27b50c06384f20637e628d7e7289ff4b9f00f2fdb5e650aa7f4bf19bcd54cdd1b83fd9e3c45eede2ba8f35af9b177972597205ea29570b129f9a97e6c63c0e WHIRLPOOL 5baf15dc682df9daac2bed1ee083e49a4823a09599a85f38ef2bc3b17fe5d7fa5f0d02f841148a6e247fd664812e0a4ee4ce238aa93ceecc98e9c5a75921751d
|
||||
DIST github.com-stretchr-testify-2aa2c176b9dab406a6970f6a55f513e8a8c8b18f.tar.gz 94502 SHA256 b1cf3491b13cbfa65ccef66d67028189040f0642c425525ee8c9587c7c82a9e1 SHA512 b54e5d558d8419f1a5110c9803d8d120056264b4ccf0119207c1461a650c1a48fad35b4a6fdb681459be51f8bd6a728097e6c7c86bce0c0d828234aea6953ee0 WHIRLPOOL 106e1b22e9aa8422afe5e3379563311d74be088cbbdbb72b9792e55cce41e508b638a05a4c91b8df9156fdfcda460ef55e6d37abfb93a937fcde8b98a5d884fd
|
||||
DIST github.com-stretchr-testify-890a5c3458b43e6104ff5da8dfa139d013d77544.tar.gz 94296 SHA256 39889d7ef7b263edc99dd0ec8a72d86fd44915a59dad41a958d522c2b23d8e64 SHA512 7cdc1bdd6711496280aae5ad5efb51bf9d6f9a271e89ab7c2af4a94d6bccf67958ef00d1805b9278903309dab20aa0d5b15105a7284a940b1e0ebfd78901ecb0 WHIRLPOOL 9565e5f455c1843732fa394dfb6f6a296cbb5f10afb6f82646b437273bd3c1c587b9991cde6a650ab760947a8547d82d5eb80f6965d16e2b2ced3857b9a1bb3a
|
||||
DIST github.com-stretchr-testify-f6abca593680b2315d2075e0f5e2a9751e3f431a.tar.gz 94237 SHA256 91f64ae4d5093511464b5ddce34b88b0134219a0a17d638fe148b6cb9f9e261a SHA512 3aaa245f70dcee49b08e5f677dfa2137b00cc0cbc18cd52d773722b951ec579e3f4e146f951de51973630488a9d9efc7c54462842c6fe5987cc099a44f04a03f WHIRLPOOL 3e55426a5f3086c3e46652da4f5bebf214ae620950556b6659b48cad01e51781d836a3c1ea9c692dc59b4a3d4862e16cec1acffd31a0b4853f97c4f67c22c2c8
|
||||
DIST github.com-syndtr-gocapability-db04d3cc01c8b54962a58ec7e491717d06cfcc16.tar.gz 9899 SHA256 e63800ecdd704541bafcf8788d651a73599cdead61cd5bccedd31418c4fe58bc SHA512 fdd8a3cc1add7570269df6ad8867fd9d2da7bbf751416a5376ff123dcf959be13912b766f5214123e20fabd242a629e02f3bdaf0680782805afb81f6f08a78ae WHIRLPOOL ec73f593f37d28565f9efe9b21d17175353b922e144842666b81163538b5d464dcdb4857897f5c1a4362fb44637490c3994f958498672fc31054539f2b5c64e3
|
||||
DIST github.com-syndtr-gocapability-e7cb7fa329f456b3855136a2642b197bad7366ba.tar.gz 9894 SHA256 1c90570f690a5b753633bce84097942021893f180c9d27c0b83f7a1bddaf59d9 SHA512 ee2de5568b76b87723e80e081e16094093f09a6be68dd0920793e007d4b705808ec1eac7a15b4c0ce7ed20aff04978f4ade264ab5bf5bdc5e2fdc46db2f4116c WHIRLPOOL ce1a13e5374248ffccaa613d399447d619ad94156f6ebf198d9e63019bd698496d67770ef520b802c59451ff9ad95d9fd789e8c9f758d1df553e2432c3b29289
|
||||
DIST lxd-2.14.tar.gz 629982 SHA256 0ccf98257482458ff417c8af141a1f726fe7e696b7ab8b089ed1ee741280b2b8 SHA512 a1b6d7eb055a29ba3c28f9184e6dbac5f279332a6445347bbf8f946ab23b0afb353ac146b379f22922fe678ce034c18dc9d5d2f2dd7704b8cce1730c29dfa9c3 WHIRLPOOL 3483b15f7e09e8212fa5b646e5fc6be305b48e6cfcad5538ff9a4967820928b3f87931ca38fc4787ecab67216d2c876476880551ce56e3ed0c080a7b769e2823
|
||||
DIST lxd-2.17.tar.gz 703925 SHA256 e50da1ffd5c8c1758266ea193b68563dad57b0141adeb17f1a190c9b2c117d0d SHA512 4d2e2bdfb92c08025bf360b8b655300c0c01f3e249bab98b1d346daa6f995c638cbd0b6c48bcbb26c18c875de1ed223afe4b4004fe4c5589715779d53646be0d WHIRLPOOL d5afd3e3a6eb620aaf2b01b31fe918c36397b692df8c8df0b9140cd2a0fdeedda0aa1b495e8c35d4ebb986dbb354481f76a5e1b1cec76b2a7e7a0ab15cc234fc
|
||||
DIST lxd-2.18.tar.gz 725957 SHA256 2ae07f56b451ffe78718aeb56b6016c8708b1ed8f1ac79dd9bb6a8916019fc22 SHA512 51116a41c4c13c85729e36047a9c36a997fb79abd383ecf2490be3160a39b90b05042aa0f4c979849c255b9630b03ed2c7acb92c26aed3c20aacce65ef0c70c5 WHIRLPOOL b34eb8f0fd8dc1690df4cf730258c30410f3959e31e6aaebdcddb499c47cdee9fd77dc3319ed9821e5368fa35360d8d9f6d3777c596124f7563e842efa157fbb
|
||||
DIST lxd-2.19.tar.gz 756698 SHA256 41ef83000d2ebe2d8f0f944013c1dd50d48da9fe07b278352808bf16a6b09f9a SHA512 18461bc5decacdb39ebf7839a376da9a02af428a324bd5642c2bc6f1bb2e5d5b3e03af1d4be333348b0f001f0ebb08e7d36bdcc1d2f928c6e588a8751c29e981 WHIRLPOOL 9dd7faab6f10201efc9c2a8cd621f270e9511ccc8f20e21989eb4c2f7cdaad824b29fe8fca5512c8943b039bb9b0a3e83b16a8510ee3bd68f7ce43da3655e254
|
||||
EBUILD lxd-2.14-r1.ebuild 6692 BLAKE2B 18fb97ba06393a1f28e028382ced5f6193a4b574b5b5e37240cb6a2fd232ed64e487915b93e180e23fd0a90efc56a97c8f7713881bfc90367ad689e3085dfc68 SHA512 0ca104293f5d3555f9898bba38804f72053702708baf8a644d42e924f0d291a6a604291ed9db24e437c559d05829ac53a108c46f932cb34794cf034bf821d724
|
||||
EBUILD lxd-2.17.ebuild 6444 BLAKE2B 1b369aa6aebee289f8b37f840543fd0fbcd93060d4c28ce0136da119456d3c2587938cb1fbfd84cb9bf12473e06164282451232795630f81ea3a961e9f48b5e2 SHA512 e4c52fa7c5b486ec686619faca37bb309b4ab4967d54efae5e5cc59e5edf41686bdcf732e03e22164f96d843a409c3f0dae8ea8baa7aff6b75d18d6749c1d469
|
||||
EBUILD lxd-2.18.ebuild 6471 BLAKE2B 26ef1758858b21af7faefc092ee430a26725c402b0326d4e4098ff18a2049f4dbef3f3952429c5fff04e77332537eda02b45907480ab564dc0d5f987e40f8db8 SHA512 a783705e98da19c3c59e2d9dbb3f7c1afb44116434276de45b7de13e4dfb171cbf982f0153b9ec40f030f8ca4d47f1aa92801a195cc0d858b3bc6ad0b3172e3f
|
||||
EBUILD lxd-2.19.ebuild 6605 BLAKE2B c39104cd32ac100377c6486219af4c7c8e448594501991f89314f9b6275a83080fa5adf956794efc3e36ab72205a42b8c642f04800f09a5995b3db4a391d4206 SHA512 45388ffb9cf442c6a0eb645f5302e48cce7aa721d6e016b953c730e63a1b2769cce2975f2edfb9162afaa196045363027e51bb09759428f0be0233d4260a7dff
|
||||
MISC metadata.xml 952 BLAKE2B 1d16ed30ed5222c36a5ccd6355ad5f036fad77152533d8c0fb66fd2a43ad34c8136cb8044f9b5d2c8806d08711b20f7dcd883db57fde229c869382775a5bddff SHA512 962339d8aff6dd9c44e7642449468ffff20dccbdc45bdb614199d576ed4595edac356dd216ebaac50290ca7383630ab8e5355eeb05a76d91ad542cab7cd8a456
|
||||
|
|
|
@ -9,35 +9,36 @@ EGO_PN_PARENT="github.com/lxc"
|
|||
EGO_PN="${EGO_PN_PARENT}/lxd"
|
||||
|
||||
# Maintained with https://github.com/hsoft/gentoo-ego-vendor-update
|
||||
# The "# branch" comments are there for the script, they're important.
|
||||
EGO_VENDOR=(
|
||||
"github.com/dustinkirkland/golang-petname 1f4996aa8aa05ee066aaf9e3179d340b48c6da74"
|
||||
"github.com/golang/protobuf 17ce1425424ab154092bbb43af630bd647f3bb0d"
|
||||
"github.com/gorilla/mux bb285ea687c5c77bb6935fdb2402b121d8efcbec"
|
||||
"github.com/gorilla/websocket a69d9f6de432e2c6b296a947d8a5ee88f68522cf"
|
||||
"github.com/dustinkirkland/golang-petname d3c2ba80e75eeef10c5cf2fc76d2c809637376b3"
|
||||
"github.com/golang/protobuf 1643683e1b54a9e88ad26d98f81400c8c9d9f4f9"
|
||||
"github.com/gorilla/mux 7625a85c14e615274a4ee4bc8654f72310a563e4"
|
||||
"github.com/gorilla/websocket 71fa72d4842364bc5f74185f4161e0099ea3624a"
|
||||
"github.com/gosexy/gettext 74466a0a0c4a62fea38f44aa161d4bbfbe79dd6b"
|
||||
"github.com/jessevdk/go-flags 6cf8f02b4ae8ba723ddc64dcfd403e530c06d927"
|
||||
"github.com/jessevdk/go-flags f88afde2fa19a30cf50ba4b05b3d13bc6bae3079"
|
||||
"github.com/mattn/go-colorable ad5389df28cdac544c99bd7b9161a0b5b6ca9d1b"
|
||||
"github.com/mattn/go-runewidth 97311d9f7767e3d6f422ea06661bc2c7a19e8a5d"
|
||||
"github.com/mattn/go-sqlite3 05548ff55570cdb9ac72ff4a25a3b5e77a6fb7e5"
|
||||
"github.com/olekukonko/tablewriter be5337e7b39e64e5f91445ce7e721888dbab7387"
|
||||
"github.com/mattn/go-sqlite3 615c193e01d8d462eef7ee390171506f531a1c9a"
|
||||
"github.com/olekukonko/tablewriter a7a4c189eb47ed33ce7b35f2880070a0c82a67d4"
|
||||
"github.com/pborman/uuid e790cca94e6cc75c7064b1332e63811d4aae1a53"
|
||||
"github.com/stretchr/testify 890a5c3458b43e6104ff5da8dfa139d013d77544"
|
||||
"github.com/stretchr/testify 2aa2c176b9dab406a6970f6a55f513e8a8c8b18f"
|
||||
"github.com/syndtr/gocapability db04d3cc01c8b54962a58ec7e491717d06cfcc16"
|
||||
"github.com/go-stack/stack 817915b46b97fd7bb80e8ab6b69f01a53ac3eebf"
|
||||
"github.com/mattn/go-isatty fc9e8d8ef48496124e79ae0df75490096eccf6fe"
|
||||
"github.com/mattn/go-isatty a5cdd64afdee435007ee3e9f6ed4684af949d568"
|
||||
"github.com/juju/errors c7d06af17c68cd34c835053720b21f6549d9b0ee"
|
||||
"golang.org/x/crypto 81e90905daefcd6fd217b62423c0908922eadb30 github.com/golang/crypto"
|
||||
"golang.org/x/net 66aacef3dd8a676686c7ae3716979581e8b03c47 github.com/golang/net"
|
||||
"golang.org/x/sync f52d1811a62927559de87708c8913c1650ce4f26 github.com/golang/sync"
|
||||
"golang.org/x/text bd91bbf73e9a4a801adbfb97133c992678533126 github.com/golang/text"
|
||||
"golang.org/x/tools 3b1faeda9afbcba128c2d794b38ffe7982141139 github.com/golang/tools"
|
||||
"golang.org/x/sys 7ddbeae9ae08c6a06a59597f0c9edbc5ff2444ce github.com/golang/sys"
|
||||
"gopkg.in/check.v1 20d25e2804050c1cd24a7eea1e7a6447dd0e74ec github.com/go-check/check"
|
||||
"gopkg.in/flosch/pongo2.v3 5e81b817a0c48c1c57cdf1a9056cf76bdee02ca9 github.com/flosch/pongo2"
|
||||
"gopkg.in/inconshreveable/log15.v2 b105bd37f74e5d9dc7b6ad7806715c7a2b83fd3f github.com/inconshreveable/log15"
|
||||
"gopkg.in/lxc/go-lxc.v2 edfe59cec27b76afeb3b35c56f2948c27afac493 github.com/lxc/go-lxc"
|
||||
"gopkg.in/tomb.v2 d5d1b5820637886def9eef33e03a27a9f166942c github.com/go-tomb/tomb"
|
||||
"gopkg.in/yaml.v2 eb3733d160e74a9c7e442f435eb3bea458e1d19f github.com/go-yaml/yaml"
|
||||
"golang.org/x/crypto 2509b142fb2b797aa7587dad548f113b2c0f20ce github.com/golang/crypto"
|
||||
"golang.org/x/net c73622c77280266305273cb545f54516ced95b93 github.com/golang/net"
|
||||
"golang.org/x/sync 8e0aa688b654ef28caa72506fa5ec8dba9fc7690 github.com/golang/sync"
|
||||
"golang.org/x/text 6eab0e8f74e86c598ec3b6fad4888e0c11482d48 github.com/golang/text"
|
||||
"golang.org/x/tools 9b61fcc4c548d69663d915801fc4b42a43b6cd9c github.com/golang/tools"
|
||||
"golang.org/x/sys 661970f62f5897bc0cd5fdca7e087ba8a98a8fa1 github.com/golang/sys"
|
||||
"gopkg.in/check.v1 20d25e2804050c1cd24a7eea1e7a6447dd0e74ec github.com/go-check/check" # branch v1
|
||||
"gopkg.in/flosch/pongo2.v3 5e81b817a0c48c1c57cdf1a9056cf76bdee02ca9 github.com/flosch/pongo2" # branch v3
|
||||
"gopkg.in/inconshreveable/log15.v2 0decfc6c20d9ca0ad143b0e89dcaa20f810b4fb3 github.com/inconshreveable/log15" # branch master
|
||||
"gopkg.in/lxc/go-lxc.v2 74fb852c18ea4341f85e49bb6f33635946aabda7 github.com/lxc/go-lxc" # branch v2
|
||||
"gopkg.in/tomb.v2 d5d1b5820637886def9eef33e03a27a9f166942c github.com/go-tomb/tomb" # branch v2
|
||||
"gopkg.in/yaml.v2 eb3733d160e74a9c7e442f435eb3bea458e1d19f github.com/go-yaml/yaml" # branch v2
|
||||
)
|
||||
|
||||
ARCHIVE_URI="https://${EGO_PN}/archive/${P}.tar.gz -> ${P}.tar.gz"
|
||||
|
@ -45,7 +46,7 @@ LICENSE="Apache-2.0"
|
|||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
IUSE="+daemon +ipv6 nls test"
|
||||
IUSE="+daemon +ipv6 +dnsmasq nls test"
|
||||
|
||||
inherit bash-completion-r1 linux-info systemd user golang-vcs-snapshot
|
||||
|
||||
|
@ -68,7 +69,9 @@ RDEPEND="
|
|||
daemon? (
|
||||
app-arch/xz-utils
|
||||
>=app-emulation/lxc-2.0.7[seccomp]
|
||||
net-dns/dnsmasq[dhcp,ipv6?]
|
||||
dnsmasq? (
|
||||
net-dns/dnsmasq[dhcp,ipv6?]
|
||||
)
|
||||
net-misc/rsync[xattr]
|
||||
sys-apps/iproute2[ipv6?]
|
||||
sys-fs/squashfs-tools
|
||||
|
@ -161,15 +164,15 @@ src_install() {
|
|||
fi
|
||||
|
||||
if use daemon; then
|
||||
newinitd "${FILESDIR}"/${P}.initd lxd
|
||||
newconfd "${FILESDIR}"/${P}.confd lxd
|
||||
newinitd "${FILESDIR}"/${PN}.initd lxd
|
||||
newconfd "${FILESDIR}"/${PN}.confd lxd
|
||||
|
||||
systemd_newunit "${FILESDIR}"/${P}.service ${PN}.service
|
||||
systemd_newunit "${FILESDIR}"/${PN}.service ${PN}.service
|
||||
fi
|
||||
|
||||
newbashcomp config/bash/lxd-client lxc
|
||||
|
||||
dodoc AUTHORS CONTRIBUTING.md README.md doc/*
|
||||
dodoc AUTHORS README.md doc/*
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
|
@ -5,6 +5,8 @@ AUX mount.vmhgfs 63 BLAKE2B 8214f6eaae9e1c2b6af7cb364572323f91e544d17d816ce93ca1
|
|||
AUX open-vm-tools.confd 88 BLAKE2B d82267674328d1e38cc850df238b8cc6c566588883d81e59f308ddd070fde6e4f9ae4950c9d68ac6daf2ed33e1a45f323d8f954430559b03697f1a25f1e7ef6a SHA512 fca30a3be4dd3247e16115fe32b4d27ede8751f96b5a33b9f489b0ce57823c605b6249ff722d6f4ed82a98979f36d28821603b4a5a1d967d3048d23d983a19be
|
||||
AUX open-vm-tools.initd 1225 BLAKE2B 279f572bfb07c40f0612c39989ba0048c640b5bdfdb06e624d8af974cd9fdff42ab0b4bb6ad79e19dedf3cd89fd90d61f7d549b9c8a8a6406129a5eab5e60cbc SHA512 a612dd69e671cd32b028caeefa8123243e46ed6ffe5f6f7cbd1f805ec10088dbe994d4ecb2346a7f6d094e913e70e87fa17fa195702a0825cc3af319d350d34d
|
||||
AUX vmtoolsd.service 251 BLAKE2B 7a48f2e4dec67044e457e8e75aa654b5d3c234dbcfa8b35821c52a5dfdb729b3589ecf43bcddb6fd92fba3219a8fc3f2374b48bd68fde92d6b72825a990b301a SHA512 912447c338f7875acc9fe420b7bc1430984d27d2cae6168ded14eea28b7516ff0b8fcdfa252aec3ab44c738697ece1a621e996cac18829b5631e28a99b743044
|
||||
DIST open-vm-tools-10.1.10-6082533.tar.gz 5111726 SHA256 4632d815996e7f2c283818b0d84b0c4cf2fb82a0897d77aee0f8cbcdc5678c61 SHA512 60c52a24509cb0630f2ad649fe6717fefff624fc2a5c736ced35cbdb8f639264d482e063e8140eedb39216adfb1231d58232bfef0233ebc477ba4f9a732c5965 WHIRLPOOL a895246a9cc9d7fa664203a696b8f1c8d84bb231601f7e95c4291624b812d5504168e019cb33f9b9a64eb62baf048001c0952e54a8002bc6eb57dc0664f1d164
|
||||
DIST open-vm-tools-10.1.10-6082533.tar.gz 5111726 BLAKE2B 22e2e901c542ae14b7537bc26ff848359f30bde6824a16968b70070dd6e57c92fbf76dca0d02e35ef45bda257725e207632b0602a4336bd2d9c97d10fb094967 SHA512 60c52a24509cb0630f2ad649fe6717fefff624fc2a5c736ced35cbdb8f639264d482e063e8140eedb39216adfb1231d58232bfef0233ebc477ba4f9a732c5965
|
||||
DIST open-vm-tools-10.1.15-6677369.tar.gz 5153995 BLAKE2B 03c6b359df8f42f1ba65331dcac67e8ce86b0fce9a572c1665d3f385cae14f1757611d3948d30bb5b2e40bb2b4673bb244c45f56098faf09d6de515bb937ea3f SHA512 fe3699a7f704bdadc4c274c963d177f4700067e7436074554b7cf113ffa341ad0e4753016214f947418fd5a7cb4a6f2c0342acf074b6b414b3fd18fd2ea2bc58
|
||||
EBUILD open-vm-tools-10.1.10.ebuild 3412 BLAKE2B 230f0c96a19168f8097772f2b962829b430732c025c091f0c5a2b5deb22a8dd038036b3482d7347aadab490c2335cd56a6279e2380bab925b456a5af0278281d SHA512 20d56ddb09464c77792febabe57db66a33d1c6f81e22a8b6f7b6e4c4d0ca6f58b1646bc155d1fb77a96774e023f321a74af0bb5b2f8aa08d3f50459f2f041ce5
|
||||
EBUILD open-vm-tools-10.1.15.ebuild 3595 BLAKE2B ea59a4e1215c394c1d82f5a805d7584836ec414eb6df67bd89b62fda32c8f981ce52741609e7fd7d9dcc5f8ebd305887a710a4eb10f412de64fbda3fc52198a8 SHA512 c517b55894fc676edb108d45b65805c528781d9330e2d68ec7310d2206518625f92801c36410d2870a11f558e0ccac82098318b1defc3286e717c5363d259e61
|
||||
MISC metadata.xml 1022 BLAKE2B d9c8579da7ad5032875c1486c9a942dcdcb1b549cf0b71fc9a842a1b635340d0cf518504decba0033b4b8c8a8a34d509c3430ff1247692ec0ce3f7bd7da4347d SHA512 c44fb55ce46aca3c218babe58ca2bb9ce12ad083ec850d4075dc2be5182e3c26e1c93cca76c04abf26ea33305da65143295e1119dc22957d2c2c3876d3f62b49
|
||||
|
|
156
app-emulation/open-vm-tools/open-vm-tools-10.1.15.ebuild
Normal file
156
app-emulation/open-vm-tools/open-vm-tools-10.1.15.ebuild
Normal file
|
@ -0,0 +1,156 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
MODULES_OPTIONAL_USE="modules"
|
||||
|
||||
inherit autotools flag-o-matic linux-mod pam systemd toolchain-funcs user
|
||||
|
||||
DESCRIPTION="Opensourced tools for VMware guests"
|
||||
HOMEPAGE="https://github.com/vmware/open-vm-tools"
|
||||
MY_P="${P}-6677369"
|
||||
SRC_URI="https://github.com/vmware/open-vm-tools/releases/download/stable-${PV}/${MY_P}.tar.gz"
|
||||
|
||||
LICENSE="LGPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="X doc grabbitmqproxy icu pam +pic vgauth xinerama"
|
||||
|
||||
COMMON_DEPEND="
|
||||
dev-libs/glib:2
|
||||
dev-libs/libdnet
|
||||
net-libs/libtirpc:0=
|
||||
sys-fs/fuse:0
|
||||
>=sys-process/procps-3.3.2
|
||||
grabbitmqproxy? ( dev-libs/openssl:0 )
|
||||
icu? ( dev-libs/icu:= )
|
||||
pam? ( virtual/pam )
|
||||
vgauth? (
|
||||
dev-libs/openssl:0
|
||||
dev-libs/xerces-c
|
||||
dev-libs/xml-security-c
|
||||
)
|
||||
X? (
|
||||
dev-cpp/gtkmm:3.0
|
||||
x11-libs/gtk+:3
|
||||
x11-libs/libICE
|
||||
x11-libs/libSM
|
||||
x11-libs/libX11
|
||||
x11-libs/libXcomposite
|
||||
x11-libs/libXext
|
||||
x11-libs/libXi
|
||||
x11-libs/libXrender
|
||||
x11-libs/libXrandr
|
||||
x11-libs/libXtst
|
||||
xinerama? ( x11-libs/libXinerama )
|
||||
)
|
||||
"
|
||||
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
doc? ( app-doc/doxygen )
|
||||
net-libs/rpcsvc-proto
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/10.1.0-mount.vmhgfs.patch"
|
||||
"${FILESDIR}/10.1.0-vgauth.patch"
|
||||
"${FILESDIR}/10.1.0-Werror.patch"
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
linux-info_get_any_version
|
||||
local CONFIG_CHECK="~VMWARE_BALLOON ~VMWARE_PVSCSI ~VMXNET3"
|
||||
use X && CONFIG_CHECK+=" ~DRM_VMWGFX"
|
||||
kernel_is -lt 3 9 || CONFIG_CHECK+=" ~VMWARE_VMCI ~VMWARE_VMCI_VSOCKETS"
|
||||
kernel_is -lt 3 || CONFIG_CHECK+=" ~FUSE_FS"
|
||||
if use modules; then
|
||||
linux-mod_pkg_setup
|
||||
else
|
||||
linux-info_pkg_setup
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
eapply -p2 "${PATCHES[@]}"
|
||||
eapply_user
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
append-cflags "$($(tc-getPKG_CONFIG) --cflags libtirpc)"
|
||||
export LIBVMTOOLS_LIBADD="$($(tc-getPKG_CONFIG) --libs libtirpc)"
|
||||
local myeconfargs=(
|
||||
--disable-deploypkg
|
||||
--disable-static
|
||||
--disable-tests
|
||||
--with-procps
|
||||
--with-dnet
|
||||
$(use_enable doc docs)
|
||||
$(use_enable grabbitmqproxy)
|
||||
$(use_enable vgauth)
|
||||
$(use_enable xinerama multimon)
|
||||
$(use_with icu)
|
||||
$(use_with pam)
|
||||
$(use_with pic)
|
||||
--without-gtk2
|
||||
--without-gtkmm
|
||||
$(use_with X gtk3)
|
||||
$(use_with X gtkmm3)
|
||||
$(use_with X x)
|
||||
|
||||
# configure locates the kernel object directory by looking for
|
||||
# "/lib/modules/${KERNEL_RELEASE}/build".
|
||||
# This will fail if the user is building against an uninstalled kernel.
|
||||
# Fixing this would mean reworking the build system.
|
||||
$(use_with modules kernel-modules)
|
||||
--without-root-privileges
|
||||
--with-kernel-release="${KV_FULL}"
|
||||
)
|
||||
|
||||
econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
use modules && set_arch_to_kernel
|
||||
default
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
prune_libtool_files --modules
|
||||
|
||||
if use pam; then
|
||||
rm "${ED%/}"/etc/pam.d/vmtoolsd || die
|
||||
pamd_mimic_system vmtoolsd auth account
|
||||
fi
|
||||
|
||||
newinitd "${FILESDIR}/open-vm-tools.initd" vmware-tools
|
||||
newconfd "${FILESDIR}/open-vm-tools.confd" vmware-tools
|
||||
systemd_dounit "${FILESDIR}"/vmtoolsd.service
|
||||
|
||||
# Replace mount.vmhgfs with a wrapper
|
||||
mv "${ED%/}"/usr/sbin/{mount.vmhgfs,hgfsmounter} || die
|
||||
dosbin "${FILESDIR}/mount.vmhgfs"
|
||||
|
||||
# Make fstype = vmhgfs-fuse work in fstab
|
||||
dosym vmhgfs-fuse /usr/bin/mount.vmhgfs-fuse
|
||||
|
||||
if use X; then
|
||||
fperms 4711 /usr/bin/vmware-user-suid-wrapper
|
||||
dobin scripts/common/vmware-xdg-detect-de
|
||||
|
||||
elog "To be able to use the drag'n'drop feature of VMware for file"
|
||||
elog "exchange, please add the users to the 'vmware' group."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
enewgroup vmware
|
||||
linux-mod_pkg_postinst
|
||||
}
|
|
@ -1,83 +1,19 @@
|
|||
DIST gentoo-wine-patches-20170830.tar.xz 58456 SHA256 fb7781d0ae360cbc3860c2d2e81527a1b903da824c01f5d5040e95aaf99a3970 SHA512 5e5159e3252b246bba0ef7fdba345db3ab1071c5b8b8b625f98eda18779d4024c5b76bdbf49ce7bd5c6b01b422807adf76820beddb2b4a6ee9e67d13052cc575 WHIRLPOOL a79be264bab3fcdeee06fef47efd28e6e1125254ac7f82300cb6ba2591ef69cd76b5fed8f778b1849a0659e680e9fc785f0273d55cb2ed95648a74dffa5e22d2
|
||||
DIST wine-2.0.tar.bz2 23662707 SHA256 9756f5a2129b6a83ba701e546173cbff86caa671b0af73eb8f72c03b20c066c6 SHA512 b0a57ba8202d9fc396e5bfb7a7718d6bababbed8f3351e7fdc36afa37f35a871e04903757618f73427aeb71a52b2d323977d79e48f8b38d636f23fd404441186 WHIRLPOOL fa9f774d87dae73c7d1f3b86dc3b03ea27065eb6140f1cac13c82fe16f7ebff8f8365ed447220cf5c2788b9f4aae7c482e4f9e2e69f47e5435209e148f5dbdfe
|
||||
DIST wine-2.1.tar.xz 18887032 SHA256 bfb9abf63691c93df28d9599aaa866dc2b4e27209b3b7b546df8a37d7d9d1e6e SHA512 03d678ee6e89c2804813f2827255fcf59e96ca9a45b7d8ac441cfc84f835e5e5689c70a79a41a04c631e1add7807fa4a5758acef3bd7aadfb2e92e68958c6ef6 WHIRLPOOL 063d935f1ff0922100641f2f53cdac23d2993a83182d45e028e485fd7d0a13bc5cfb77bca76550b1537b3f42fecacef7fd64785adbf6425af823f56f96973b54
|
||||
DIST wine-2.10.tar.xz 19209580 SHA256 488df7ffd2e81da455bf428fc9eb784bb4273a890334500895665711bd52f179 SHA512 8807e16a571bf45d99097ad5fdfb9fe755f6dbe84010a330fed82f1d48c76b7f19589bfc0e5dde0b9e49a608fd0501db3f7e3e129e4d9d34bcae03bc51a73139 WHIRLPOOL e9a8248aac31593fbac28a3d8d4e62bfce14a7c41cc416ebfca8606518d28efd31b32196133da211f75f48bd228bd5d21fcbbc0479293e813ed99b258b37126e
|
||||
DIST wine-2.11.tar.xz 19251116 SHA256 efa96dade206aa21accf0da195335a805d38209d6a14320607c6308ebde4cc3c SHA512 691f329c47af5e51498287029988b8ca0777bfc3902ed80fd315004aba2337a938e79177e752efe86423c9b34544df3952b8c443bf43149356575fac75a779ac WHIRLPOOL 4933e1ce640b0abeebccd6969b5eaf4eec76cd135d9cfc1d904a902219f776a68f72e2bd1ae9019d69f0d0d81fd8ead0084785d1b9710590349365977f9c1817
|
||||
DIST wine-2.12.tar.xz 19301968 SHA256 496c11af841487e6ec4e1953ac19b05a7f48e397da502653ffbd9fe9004213a7 SHA512 d44c1937d7d2d797150381f70317b810616d61355a59be096366d3507f59b678cffaf6d841cecf02bf9d2afa3dbf4d19270f80fb1d3ba5f0f93787d40c328f62 WHIRLPOOL 6f4b9baa6fcfe86f3d195fe603c2b9450a72a593c8f7042959b42a76880cb4ae680fde7beb70a8e823150849fda36c42985035de891ebf0088c8ffc2bceb15bf
|
||||
DIST wine-2.13.tar.xz 19439328 SHA256 6fbca3ddd19b061ce65a267639efae93cf38cfabbe4a9c148a17a44703587ef8 SHA512 71873b9ec1605dd5f7502b87b0f3429c3d14a4196543d7304df455854b58ef82b8fafdcea91450cbfc01434a44886a0e0c4c4cf289ffb53167dde0f969cddc48 WHIRLPOOL 6faf1e6aeea2ab7ccc496ed85834f98eb25111c8f541c24d4876a142ad4acf7d9a4c08c2716e11fb6c92fe7aad29980cab912eb9dbb6759bdbdeca2f2f8e78a7
|
||||
DIST wine-2.14.tar.xz 19447812 SHA256 03f934d95181f728600ca04d395f10e821ee38cfa31655e872e4d27d2a8795c6 SHA512 ff43d386d46c0c74449e667b61d8cebd5fa768c88e6220aa2f13df03d80b71b6c0bdf8cbab023aed96f7c88b9787a3be4989da892fa1778412534ae82a7279bb WHIRLPOOL 2d2784e1b2ddeac39a3cea4cb08a62d99d1d062d8d801874e8bf4f56d2538a4cb019418c60299556548028e2362dd533d9ea0956014a65ac7a367ed489c0c392
|
||||
DIST wine-2.15.tar.xz 19463720 SHA256 d82d500cbf81fb08c711d3619bd52373138a05574d044f089af89707274868b3 SHA512 a52a42dd1f20fe68213c55a07ac5b2455150806e534f0ab77a8e9ae3d2f12840983fa92290dac569207d3640c7f45cda83801e9f2e80294863ffa854c6c89171 WHIRLPOOL 99c9497a44859ce310c764b3cd172d83ca1a2dce13633fee930ddbf1c40651ee4470f6bc9cfcb407ce65298a2afd73dc9edc536c2ba6f076631e5cf2085b8e61
|
||||
DIST wine-2.16.tar.xz 19484716 SHA256 a561edcabecd6c44948e5b2ef11941b2ba047275240418fa2c98c1fdceda2c21 SHA512 749a36b536506c4b63ff7512e316f44503cdb0db46e38a124da86df638f3e8ff9c404b034ece5cbb95cf20c09bc46be9a38f2ee66480aa6a4f2385e2a7a7eea4 WHIRLPOOL 92ae0a427d89b24d41d4565e333cf3b7499c1dfedb6d2a204f934975c35cb589d38b4f669890c1fd6a37b9fe8f34d98be3e7d0986e9ff99516fe00a004574520
|
||||
DIST wine-2.17.tar.xz 19505528 SHA256 7edc95739043ccc55957af663fb910318283dc5d1db42cd7f0224e30acfcea69 SHA512 cb10c876e689aa601c68673aab32c0514dd174692a01bdb3afc78d5e6079b0e77f48783af2f54245f397c762da3b4e5f2c1d39d2ce7fdb3b117d338b95c24810 WHIRLPOOL 196427a68ab3b1261cb63bafd7f82b7a688ad439fa82ae3fc04b18c9da14cc8e95b827ca8ddd07124e1179c55ed0e0aba3bdcb4639b724a6dacf4952e8827e16
|
||||
DIST wine-2.18.tar.xz 19546360 SHA256 9f0931129878157d717cb39f16cd33bf49f40aac77331c93d0ad30f2ccac4f50 SHA512 61cc39fa3d2b0a0ab3c5d17579865e6aea76dd9513a4b3c45975a2d5c05f2b4ba952b97eef547131a014763c7f692a08df29bc2ebf7e4ac7e2616e6a7822ddb9 WHIRLPOOL e864dd1705c0480d3f3095aa02ab1e7bc5b41693cd6b791cdf05e636c7099562020ac3adcba6421653efdf5dbe232b5abe9071792785e008ea30dedbb63e080e
|
||||
DIST wine-2.19.tar.xz 19549464 SHA256 487131e69875ae9c2d042798f954160146e603e449c3c97981f29b42f4a66095 SHA512 83558231bdc592b1f69cfedf6c689063df7bd9fecdfafba6fb7f6a2c7fa7783973efb85a6a49305afc18b1aa268209ee5b9c0655756e05d7550468698dfa51ae WHIRLPOOL 123aec3a367e67353655d940ba2ffe9386a583afbd0961dd3f446a00b0cf82ad4ed590508e03bf2a4e60b11753f8f430e748e6614f476675423f3bdaf7089288
|
||||
DIST wine-2.2.tar.xz 18916364 SHA256 64cb57e1d8aa07f5c89ef26743b494f2d3ef9c0f4e50d3ee896a93535f7751f4 SHA512 0700868244d397c1442948716321e5ff030c667edce464570f76aa4340199489a422872aa3975bc0a57b8285c9d59fc04e223a4bde094169fc6db460acb626c4 WHIRLPOOL ffc3d357a76592651b589c6ac6608720d0258474890faf8fe3e20ac29cdd1496d569721256f9389d347bf2734a556099154fd18ef1b56f45bb46c4c15771d6ca
|
||||
DIST wine-2.3.tar.xz 18931732 SHA256 afc95c7a87cc8f0730b462c50a5dfc9c462eb02c6bf5874b4fa99946f49e067e SHA512 bea78e8468555ff9e08dedf3918da5ea82721549c43984869989bbdafeea00e454820ff9558aa29925c97a165a9b01e5cd1fd397f133833c58824984a6686171 WHIRLPOOL 1f5ec8e5c32d124277e4c71d95726d3a5337575757c3029567c77165d65fcfec2ddf33d3863b4bf55c9eff7c3582c1ec7dbd76d84ed8bbbe89dd16db6b0128c1
|
||||
DIST wine-2.4.tar.xz 18953748 SHA256 87b5df07e4781fecce2f92415a4717208ea253a20a0df8b36b9f90b69b72748e SHA512 15ae7e97dc72a8636b2c15c93803ed430fa456d673add61457cf3e479e769559c682b40949b5d38828f6681f13183e560fcb4a2eb0f0ba25e6eade46f7d3d7c0 WHIRLPOOL 558ab7b7517ad5e03366b4db974047eba776585e958a5b71bb2e93993e21bc725ea7a8bcf2a4354f34ca38c94ba99ccd15f2f8b5e4b58066bf339d3517eec56c
|
||||
DIST wine-2.5.tar.xz 18993176 SHA256 13f92b7ab483323aaabbc6519851e688ad4372ea30569961c831d40d6d3bccd2 SHA512 7b6faf6d8aa3d41465ad93ebae055581136f736c7eb8b4c61682e5a05589c83a0ff2c85e0f9abbca016f31b6f1c1435617c4994f1913f715a8707ebee3f28467 WHIRLPOOL 5acd2ac65df5dee1c860ddca72b8df8e021a0b95a3a1870d15468ce4591d569fa15bf8a0a6d341bcd3a624d13d0affe5b0263e67f9dfcbbf3ae7b59218dcded9
|
||||
DIST wine-2.6.tar.xz 19023352 SHA256 e6ff64758f437647e99a36c1275e41adf54f0432907172d3bba22b070a97aac0 SHA512 2aa55413ac090e011725566d004e42ee46323cd4c6961b9faa63e3de422ba60bb657bf224a4d7e8aa712a8e26e11977d07acb7c088ffeef8c37310e8cc698970 WHIRLPOOL 82e6a06cc342c7d6eace64a97bae10cc39c120c5776170b059700542b8b6fef56be9a697f05b3bc21ae82621f4bf50f3ab478311c9a3a55d86ed7c0a009766b0
|
||||
DIST wine-2.7.tar.xz 19101108 SHA256 e55a43088e313c45f7ab49272b7cb441c06f5659fb4220b2325dc060db0ee14c SHA512 1e61b9a4aa1f5f42fb27d11d5254a9ba90f348ad9c4d1ddd4b5da47cd7de638290a20accf7447db9c0e4ced4c2144497cdf5fc906a5eac60e923dabb61f65d3a WHIRLPOOL 133426a0313facc856eebad3d16d199948b780ce4c4561e5784845c119fe462b8942ed86fa5e823e729a997d704bd3c70f44a64ce3eef965b4f3eb92587dfa4d
|
||||
DIST wine-2.8.tar.xz 19120740 SHA256 83e9607af66d86020dc27a368ebba28fa7e8ffecfdf8f149da06b3531ac3e579 SHA512 4d0b167b1e5add31ed0ed05b328d16fc13cd268285c03a9100e7ddc53864aa07f6b216a555ef0c2e51dee550e3f4abf0c7c20db2cbca177bb38e8c3e11f05b97 WHIRLPOOL 568cf46caf7322eb5e26b364bd15f9e80c41a65340952a1ee0fa80514bbee3c5adfa72af40809a978a5d4202f5e8d3da3e4581767bab9fa08ab441cdd5d1da31
|
||||
DIST wine-2.9.tar.xz 19154668 SHA256 ac46f7bbbbc1dc135c95e4f98d28bf6e3d7a78fb7f9ba6caa7354a3e8786545f SHA512 6d06e511d8f338297ed0ddb7bf2ffb501f528209eaecbbee3d4e5d53db649dd5ea0aeb78bba661a9bcfda5f97e170ca10eb8fab355e229bfe7db6a5feb7ec4e8 WHIRLPOOL 7355166aeaac54abb6e1d25da6f87a4814d37764044e95462bc2a83f8d5a9b7a3bb10730bb5506516e130a4fc9ee35e3656d1106939bbbc1310c6aff0d798a1c
|
||||
DIST wine-d3d9-2.0.tar.gz 48373 SHA256 7bfac23706723c6d51a7a95e416e47fb2678cd4d0945b990f74eba2b059e6206 SHA512 a9e2d1c9f2784128e4c53a8dc923070a5057b5ff3d83c2b536a2d2df0bc8433ac92b8ab1c3cdf34158c0e7bfe497ddb5974605fbc1736a92307639d59450c7a1 WHIRLPOOL 53044c0a4b7159c3af75fc935d1ac45030e80dbfd70d787f64885ddc025cfcd62f724c3256e389a7fde680670e594101955f52301cf6b9bbf23ebc64552790c2
|
||||
DIST wine-d3d9-2.1.tar.gz 48385 SHA256 9fd80e3e2ea905272c42dbc14679e94c8e2f955101ae098c84060d4c62ffc9c6 SHA512 9234d8227412d940a6befcf79433f1d5ab0634d5e829f3771ffeea235af05be29ffc40438818b1976c77d1e2e79da8a67c4dab2b7d2e822b502fb6e4a1a7f8b7 WHIRLPOOL 790e482850a13c5bf0967e900620c36d71c4d6673106f8f5c2848550ed574d326d3945d9906de88d847bb5644a520aab7fe6d460b3c3afd49a396798dd253392
|
||||
DIST wine-d3d9-2.10.tar.gz 48713 SHA256 62a199a239fca4f172f9ff871086196f8eeb35483d7bcab4acb144c05e60debb SHA512 808241f545e60c0546ff3918cac28e2abb6fe8496e8ade3cfa8bf81612724e827d31787d1d320cbac80b71a5d6180bcc8e51249c12c099e44637e0bb9f4875cd WHIRLPOOL a8c58c5321107b958780348aebad41d57ac0a3a307e176715950e1ed1eae7d19d858db3f9b0e5cb86484919d683321ff6fc19ec1696ba5418e0d2dd861bfaff4
|
||||
DIST wine-d3d9-2.11.tar.gz 48714 SHA256 3432863940fdb9ea6f36688d670c6fe800e7359d7b18723828447bedf694b786 SHA512 716dad66fce962246e57a29c239d6b69b78656a11d01a421b490ad61c2c3dd9850b34e2346319a6a35c2a01e0c28193adf78f21b9de1ffde95a06d5fae51fe0d WHIRLPOOL eeef55dca716a68e03b84d4f916955c4194810c1c460a55a30ac2c4257e256b8fc709837d7b35aa86ce3f523f2b9c11222b9096ae4d87979f1fee4a8257ddabb
|
||||
DIST wine-d3d9-2.12.tar.gz 48716 SHA256 544e8b901b2fe1e0da90828f07683abf45794a3a41fdfae20eb5d29b5ee7d22b SHA512 8fe9b37ff54372984a234b18037bc736f69f2adf41478f037bc93e3d72893c46174fc3fbff78042ac66bb03d31ea85d293dbadc2b32630218ae53be8e360425d WHIRLPOOL 17f28bafb20c559424945ff92041a5c634b8775a8e97ed8aa940308fa815f2b3cfa48499a58a511fc5c33bde47db07008d168d8b0c103eec379ba27b33b8ffdd
|
||||
DIST wine-d3d9-2.13.tar.gz 48711 SHA256 738583d1ad80ddeff5d437ef07885e25a2bba7da9d161ee01e45fef246edd327 SHA512 75481c73c88757c4f15eb00dc427d873ea71109f18fd64c758e858bb2fc2dc1ee7cc29ee912ec93f254186f2055277d07e2e4f1d2ee3c537c76601aa009cf632 WHIRLPOOL 57c5cd0903151eed7c2b719831581aa3216c0fc49a257f7fb9e872ca698a330b5a10d50c945937924c7efefa497dc14117a35c5b39fbccf14cb1fb711e5bbe98
|
||||
DIST wine-d3d9-2.14.tar.gz 48718 SHA256 71a3aff0b348f033d4ca610e34ce6faa02eb2b5c822fa2e00b372de66541ffd4 SHA512 77aa93ac9b1a81581c27e74641722666026e2e6e03def57955a05fc76c6c02730271a562130dc87ed1caefc9b00b3e0421b2640fa17165aef2f8be5da0cf07d3 WHIRLPOOL 1319fdfb4426a0a294702a5c43641008654a1352d91d23b9bd422d83fb5cd50053110052eef09ae128dfb570523d9208272abd21cb5975adff060fe7d31ac5ad
|
||||
DIST wine-d3d9-2.15.tar.gz 48717 SHA256 c0aa58e7fa3b595c38cf06fe72b54a096e43e526142a7576f839ed8aaa85cabf SHA512 5298de273fc95f65ee481416f8ed16059f244e3781058cb76ee60b6a85aaf8d977a619c75cccd08aadeac9aae9ad2e08b49c5b52ab141cbff351a4b001e7c434 WHIRLPOOL 63337e2c86be5ff2fc16ff0817719ed668360ad2258b095e88b98b1f31e382593b14cabdcb8be58a6dc0cc047cd67a3eb1f14d3ecb806ba2ac9c6f7102368c94
|
||||
DIST wine-d3d9-2.16.tar.gz 48728 SHA256 2a681d28a4e042437c32ecf3f92c7abaadc862feba6aacf0df76469acab98f3e SHA512 f3950d7e34ec537b95b963fb3b35ee3729c1b3f9d8c225e96ae9ab9cf8011571ba22105a17309c481f3a504a8aa4d5ae04270691c49098924aa2f72463b79e08 WHIRLPOOL c1f3cb0922cb381f6e2aa7fd54538b98dbd04daa7f36f66742af4c544c80e894e33ebf4866520af35faec27519f0015cd5cc1139fe191bb0b3192cb2134035c3
|
||||
DIST wine-d3d9-2.17.tar.gz 48722 SHA256 557ae75a68529f282f1f5e7e9991892d7d994f199060ced43db22291ec66fe71 SHA512 530d44a968a68e06449da2286b8c9740a80b681ff610f6ddc87e6fb569e6c29181341266a04238965a7bfc209e20c1521847b70daa8d3532c2a269db0d200154 WHIRLPOOL 0c70a88949eaa27ebbc28a6951651e4b55166c1d54a8db6d9fdfe3f516d2f4e24ba0f08defddf637b9c2ed0702b250af4d41146684b79e90d84aefe284351059
|
||||
DIST wine-d3d9-2.18.tar.gz 48722 SHA256 d1b5210d4228ddcc60f76b4a8694d5feb4e3c68ca4436666ee182c8b14f25356 SHA512 0e66c51e1957b27ccb9f326b0aaf2b0d09b7bbc9d03e1d321aa1789d2560b8e60fd83c4e86999d96a03aa73a37c96f34d93245763969a314150900741aa03933 WHIRLPOOL c879d7ca20e2b339ab1ad862274320ceced84693311dfc02652a83304d0beb263a59e8978fae65ad50bbb51eaac51988ab2a0105c50dafa9176caf1baa791506
|
||||
DIST wine-d3d9-2.19.tar.gz 48818 SHA256 54b5fbda45585304e65665e5b2da96a8dc30398c3f8ee12b77a613970b5af9f9 SHA512 be43435cd53f367ca57080c08218db302a90bf85ec6e917e89375904c456b585b61fb6053f9b4366b7e844f8246cabe83460a9866f614dbb5df3edfb43b2f54a WHIRLPOOL bec78732ad8b0036999c4e481e2d6f50d2ec4002590f15fbebab740bbddbc5069f77853993a122ccc03b24cf2b6c76b80117b000648a97fec09eba988c792f57
|
||||
DIST wine-d3d9-2.2.tar.gz 48387 SHA256 203ed60980ec584c09b413266728e3a93e2d980dbff9b4f65375a4e9744b5042 SHA512 6e9e031b51afc8ec200bbd252ff0d768c29af23907f782409834de593f896afb128f86fe012c95dc18e5f3c7267f170eb343d2a2c53d639933a337f0c1e04fab WHIRLPOOL 6b32c0dfd3068e87d94bbcd83718dd75a14b36d69b151e9257e04793d2d3ae78ce7da10b80cbc824ccefb6c11666241593f91963ddee6a58301f95bbde35285d
|
||||
DIST wine-d3d9-2.3.tar.gz 48510 SHA256 fc17488a782def19fc02bf967128ab43236db49509e31771361a60fa3d17dd60 SHA512 58449f6b7ed7fd8182e2cce92e1d1195bf64a567c1cc92fd3f46af195e7e4039c3b2a128be9d3572d9067be6c1bb020f417c6d558bb551c60096c107067177b8 WHIRLPOOL f648a921cf4cd257a3a7dfbd3abf45d58c07782f329ec11c3a1eff3afe32e8040adb351d4a60e1b1f78c7cae0379f23468764ad162a101179d0f5b0e2c6d9413
|
||||
DIST wine-d3d9-2.4.tar.gz 48502 SHA256 4c7084e733d95545b894b152b2c6c9564dfb8df594cfeb1512dad80743b39ae0 SHA512 623b1720b8cd79ab6ad2a177b9beb174f31e6fc402d6885fa2006223c855919c6f5d4267c64212ecf8cf1746430c9715c506343fb740828fc99910f916b10ebe WHIRLPOOL 9c0ea34dedc2e39ce36f1539a6d761ba07429b316a1f7fad49067eec5c28a5c60b33b3d2473cbf66b009d9772c1fb123414bfa201eb8df3e61f8efc38aa1f3fa
|
||||
DIST wine-d3d9-2.5.tar.gz 48692 SHA256 8b28c16701ec1cefab11d41d00954a92a5ced9a63f1ede81e96f247d2f498f94 SHA512 8b5ebec6341f70ec977aabee35decbe2d22fe43e111c1fd6015066a2b0e4fd259cd964fdb79306a489be4406078cb1e241d90ed636222174ed4abcc8026e7d03 WHIRLPOOL d5fcc5fbea4c4a4900235d33cb5de8f2a7cbf2b51b1a5c47d75ab765aa88ce1f8f81a61eefe0a742a55bb2ca210747b345589628fd1020430e4d962319b1c6fe
|
||||
DIST wine-d3d9-2.6.tar.gz 48702 SHA256 06ed18f2d5fff04613ea1401c37ad70e163135c159528745ff1063d617f31e2d SHA512 17df692df8ff3c1419258a3faf9ddacde67f185a797dce76cd07c07e6f4fa2040b981662d311329a80921c039bfba0da5fed3ee53f8c36e34eeaa92af1c7b755 WHIRLPOOL e614b4af0f3c92113617f533255fd67a4b322bdaf0939fb98e09bf77e3b0437cb2b813032e33300e45294a60d5c3586a302669c28c293e180c775666cddc2581
|
||||
DIST wine-d3d9-2.7.tar.gz 48708 SHA256 df6ed1e50d8af0624b8f4f658705f75102094f6e17fec53ec8461991ce5dca2a SHA512 d258e81a942f905255a637aa80dd647878691caa79adc52fd79f66ce1320d42d7d36ea776876d6a26a2c711a168da4c64f27fa8744ca6d8318c5526f8a8af75a WHIRLPOOL 2d62cab5e3b14eaf29ecc96ac97555f48845a78c751040a850750d3b19fbc64efb3f3589dd3475a03cb1e3dff3e200528dabd2952b1ee8d0520a5db0d7db154b
|
||||
DIST wine-d3d9-2.8.tar.gz 48700 SHA256 c67de9fee6e97859896aa2326fbc245e8b0f7393a1c6341126607b03afebc964 SHA512 bb933b51d0022ce616331f2550faedeff3058007525b4519833b925c57999ab08b08380b8967d48ad7c56458e812342428388a5eac2ed8fcdd8cfbfee74a8e8c WHIRLPOOL 52c8538e3f4b3be3412ee544efebae69c3de781255e12298d544f47523aba3afaadbffa8dedc463c207b0ae8a0a92599beca17017f266648b9b229847990ae2e
|
||||
DIST wine-d3d9-2.9.tar.gz 48693 SHA256 32b847adf74c293e858800248aa1b164688f98cde89ca4d2cd0808fae7f94340 SHA512 89d06587481f7702b6884c83627a27c7b38a078e2b333bea2612a58840695211c19ab4ca02669c983580f95ae42ef114020f6b6bbb1a17d72449c0ed2212dc49 WHIRLPOOL e32b261f6e87580eec2c2ee57848b08b2487d1f280b8b257403e0722ec1b44cb31dcb240d89757599be2c3c6d958c48f92510bc625e5c05fc08116d13c303168
|
||||
DIST wine-staging-2.0.tar.gz 10182575 SHA256 22a43cb50c1fff9c6f233a965247056e3321533aa73a6419aa34a22de7180039 SHA512 51412299259d6e92c8993543d5fdb3239ebe31e0d1d715e0a9e8ce94b3139c0567b08ff1600d41be94f12427cbfccc2f6b6b2ed030535445c95618aaf6578580 WHIRLPOOL 9879174bc3a7c8ece156c822b7a7b870908e51335702a78e6f04ea1496125a2018a879bfc53d1302e4825138d22af526308ba7f656d683a535be44d4515f1bac
|
||||
DIST wine-staging-2.1.tar.gz 10101781 SHA256 1d193be2734ea495df2cae1dc54ce89204ca68699979174b0bd726d2e5e0576b SHA512 c64c48b265f0779c621a643ddbd2d12aaa548e4bff3b2b728280cdb9613214989911ee8ba5e46c7770f5f6430014a5da1c98e95d5008c1174bd14bf9ce5250db WHIRLPOOL ecf970ef436089bbcd0088e1608b22e808d54560e905c7d8046b3e21508166a595c3ef7b69819c45e4b13183bd9134a2bd7016d29c4da52985701d392eb35a0a
|
||||
DIST wine-staging-2.10.tar.gz 10091114 SHA256 b361ec92b2e40de983b987f6564dbb75dcb121c6e2f0123fe1ae234fd81a591b SHA512 c3bf7027ddfd1405263cce844a7cbeb923e9de56cffdb296384449c0cc600b3c9a37c7fe09b62fb9ae0b47f97a2d4f208cc589f0e4205fa84ce5d112953ac2e7 WHIRLPOOL 01c5436179bcbd29ee0468f2f4d839ba805c064d80835fcd1d5e6eba562881c65ac576657a733c726ccf4b37473da6724ae06ebc023fb988d8810ed1f8096c6b
|
||||
DIST wine-staging-2.11.tar.gz 10083147 SHA256 45c40fbca76cab987e7adfe47fc8e24692f896805c8a6dc6030da28e3bd842bc SHA512 e2d05ee88e1cc932c2890f1db867a9382f2c62a00ea7d63fc6bd7b3fab57ea2f0e4908313cbed08b92e48d5bc17753b0b78f6cdf2cb64e81aa5725fd86cbc695 WHIRLPOOL e2d13ed7d258b1ee442c8c87f852c1564ce5f262bd7cd31710b975882ab8cb454a1e2ec308c6c17e5bd0a691b0492fdea22a182323cb963c055592ce538db690
|
||||
DIST wine-staging-2.12.tar.gz 10105899 SHA256 0f186d2268011c12094ecac8747378ad8f4ee7152e8854cb00496ba9565b7974 SHA512 a8c21c923153a42609e3ea9065b84208b01f3b14d55b7e68e548ebf6d27df956051b29dc2f053aec6287422c13eed5b6ec71e667ae6f46b1c80ae7c84a51b648 WHIRLPOOL 01cf39fa257e9975cfd16976e680117dac3d0ea3f9bc41e2d0a636023bd4afba0676587e41c55d4417cff97080b90eb11b3fe475970eec70be64f5c788c1cf88
|
||||
DIST wine-staging-2.13.tar.gz 10137549 SHA256 0796440ebfa2aa651051e7081cc64f83774f966f26353876e024e42c59e24b46 SHA512 86077747d8a4f6e56dc1b0dda1688810defa9bcebaaadbf2419ce56e4590d4249881105e1dda24236f861baf0b1cc42019b2538de5d24a6d3c4f27c7a8248086 WHIRLPOOL e0c147519fde14f74031fcb7ba154c39583a9c817460d21ec50fdae40039136d46b8cc0ce9a8fb558ddbf8b62c6f0a572ad04a887c47046c0e921e6f08c4b44d
|
||||
DIST wine-staging-2.14.tar.gz 10179829 SHA256 cd4c8e400a808cbfa5c5cf088ea874c761d09db897f25bc33eab840101020b19 SHA512 1e794f77309e94612f822b72872ac2726e37d219a40c4a45feb2fb56f4413c34eae966a4ae8708d502c837cd47db22979e9a05cb73b681703cd729f701cdb210 WHIRLPOOL 63f9ff9cd4d54d6ff91997a904e7cd612bb8bca905399e9c6950b274cd8218c0c04a40dca9f4e12180e1080f1631bfec38e3633fcd457e688e8f8883661a4e59
|
||||
DIST wine-staging-2.15.tar.gz 10190900 SHA256 f2b5c43fbc185a6fd6399f4c351b83a172737977b2ebb1cbdeddd1838d044bc2 SHA512 75d64d103839da2daed6e5b2400185c0a5274d0e50b675283bbadff70cafe712e573701207d80c8e8af7f68d1d273efec3c0d705dc982c74b8574929daadecfa WHIRLPOOL 13239aa636fc102fb374ab8724b7dbce8e9b95f16797a4f5faf8a5e7789d60e6b485c7495ccef4568edbbb0549d657a6758642de2e98b449b0ced2725136e444
|
||||
DIST wine-staging-2.16.tar.gz 10220855 SHA256 da0ef4b0eafe9cd1b9cf26a5b950088adf1308e17a0d6f4ae62516b6ee64248e SHA512 96585caf77569a31f516aefe230a8907ef91db29759f75075593b751985f294bf292a1c146d287a3f0859a6b6273560670c4bc734ef0fbecb0809574eb3f09ba WHIRLPOOL 66128c8d59593243e95d6765b9fd8ace59e85e365a5e8a41eeb17d370464005aef060ddf3d862d0a3638048fd92189860e69a3cbf7d24d3ce1e420200d4b3cf5
|
||||
DIST wine-staging-2.17.tar.gz 10211107 SHA256 f511bf3438dc418b4f667513bf1ae419255e4ee62229e9205c0c64b047222183 SHA512 b652f6a852a1382c1b8275e172b7ac7608749c34aef5c0c5387cf262bf0da8db67a77ce397d49e53f3e2a8f210a3dbea1a9b3f3feb15c7d5bad8952b6fb7b53c WHIRLPOOL c45dc5fc91bc774f9f28bb06dff959391829fafac398bef198755395afe5a65bb2d32ba3ce157607a6040481955926866ed8f0760850bfca821be8599f4d7b64
|
||||
DIST wine-staging-2.18.tar.gz 10243957 SHA256 69c75d3ca17b1c3617cd0934a9e9ad6fca37c6679900d2cb63f6981aa1026cc8 SHA512 fe18b53d4160596d134ceed392f6459e9c183381f4712add43d8422e77d7d5d89ff34a3bb3afbd7740f250d85dfda0f3501e9600a41270790ae02138ed6d7dc7 WHIRLPOOL 2dc1429a7a4f13ee01b1317f1937ef7ec6b42c3cfdd78ff78bb8273e1056751edb2ac119904ba48ab645b430f269a9361a6d42bcbb5dfb46bd15a129569d3194
|
||||
DIST wine-staging-2.19.tar.gz 10241240 SHA256 2fdb083a484708362433000f92b54a5d648df190b2ab084647c45f5624063bd2 SHA512 90916cb096bbfec35514eff4c1b6e2090b6e68e3e7af1164715f5abb1d255c5cfd6411f53c27cb277adcf0982fa6d6e508a7cdbc1404dcca6c2700b05c2c5483 WHIRLPOOL 3ed1a5d39d0ec186538e04ca09e4fa2729f356385523177b753e7c7183416f666f336bec7d4b606f29266cd227cf5e72f707c79adf510bc3899adb76ce3df84f
|
||||
DIST wine-staging-2.2.tar.gz 10078327 SHA256 9d3cbf7e5f12c623d275457b910a158e0b176fcf50c09a5f8425864de604bc1d SHA512 8ad3f8ba4c6439a9ec4884a55018a67c9e2c2384830074646aac7b70cb9f4f5a20f760247ab42dc3d2f697cdac7ea5322be8ed12c435cb0bc185ac08fdd4dd91 WHIRLPOOL a34c19aaace64307de56d935cb0cef17d7c066c39b83c51e70ea76a20083f928bea55fe38d62b7a8250b0a9e8f00e0d2b744f43fcab433069ffb96625d955303
|
||||
DIST wine-staging-2.3.tar.gz 10071742 SHA256 9a81be606836fab6203857f7937ff97575947f75d52c80fb5489418efb8b87e1 SHA512 8e8af1e36cc69c63ec3542f0ec4db18b6d8c16b5c9077eb211297f3a886519da71bcf72934bf8d6d72e44c7c9f765e1d00203d0d75cab8544f69f9b0c10a7133 WHIRLPOOL 50738a6e20890748d7eb01152244d34b259759f61b3587ba39815dc066fc8e2b66ce182e1ddbc912f50076a3599aa060ec6a94eeaab4513ce3a776711929b9b1
|
||||
DIST wine-staging-2.4.tar.gz 10067020 SHA256 709cab12c0ebf7cf9504fd4a67eb851272309e00066ad81f184b0f55c63e9deb SHA512 55d11851697836b582ba54696cadc812ef6b14872440f5c3ed6fbe30a05abcb8abe2ab31a11ea4daeb354854c7c0e6549401d4b26b26621808bdeb89aeb206f9 WHIRLPOOL 8d344b7e6e89322c8dbbe6fd211851c90a45a33b514c182609cc60dc21939f791abc71d8665cd66e5c5161f159fe24c4772b99405833e3d11985a644e1335eaf
|
||||
DIST wine-staging-2.5.tar.gz 10062025 SHA256 b5cf6fa38151ff47ab6d725077693b02b37bb07b2ab7fda55290bb1f63ac54ad SHA512 6ab981886776f624c6478230aad18870f55b7252f1c6df90bfe1a248f7ea76cbb181f8e0780fdd4bb5e3c589a785baa7cf126a2c838adf65db2a67f873ed1698 WHIRLPOOL 7045b1642a3b14e5a507854cb8bf910c7cfb3c64ada4ee3534175c75b03cd604206617a55fb870e47fb248a4db8a9ca2abc0b4688005c1c0de0d542fec8cbc57
|
||||
DIST wine-staging-2.6.tar.gz 10034709 SHA256 ff86ddcceb7f6857bd415db3842ddf216a5cb301452e2a08053a9378cbf5580a SHA512 dc199b5345985d261b708ac811b02253ab9fbc4966889f2382ce518d991fe43b7c771c1d56d055c6234c9329d5c571cd9cf0b16587b77124b9c46917ddd066d2 WHIRLPOOL 375f484c6c50645c605994eb08c38c649ca6c8b47430e2f2f285a63fc24eca81588d0496a8c32074f90e4ea8f4330f76854bf8874f042e27581a7eee19aedf98
|
||||
DIST wine-staging-2.7.tar.gz 10018082 SHA256 3095f9c634f00b143c2407dce8c3f29c629ec95074cf14c8e8dc2e0cdba45b6d SHA512 0abc89af701ae1b95c0eb08e72894c7bc40bdfe792e05b8af9282eab8407bb90b7dfcd4eb3a193a88759ce5d6ea6c2aa9696cac2d744f543c92529bb0d2636ee WHIRLPOOL 6cc666f702ef1bd574ede54a7f6755e07d768c9fa549b9bdb9b5416288619347e0c1b9c70893b6300800d8e6c94e8d2396937f639d1e821945ba9fe144b32c95
|
||||
DIST wine-staging-2.8.tar.gz 10043842 SHA256 8680614be6c3b01c7c577eb6924fc05cc3de92394384939dd5b2e12e08235fff SHA512 af1707fe3119664a0d97d94fc4c955612d80cb76eae8c4248a268c0f6be9e659fccf7c26899c9e9ae5822f74474c0db5283b598dd4d9d69a3b108f947653217a WHIRLPOOL 7e9aa61a7666404475abb442304e63c76c2e6df26479711b7c08ebe7c15b9b53017e7a1d2dca4f9f8aeba78290df03f06076c99ac06c30d5ed893cfc3842107a
|
||||
DIST wine-staging-2.9.tar.gz 10062408 SHA256 cde0895142c0ca0be5b532560ec0546d6e4f655615572d80cfcce663f92c57f6 SHA512 7862a403817791c54c5c1b8f233b06a850500305c46283bccb9026fb6db041a8fba619d145ab21fe2fdc5f25ed3bbb75fde05245fbbbd67139a5f64b547b1196 WHIRLPOOL 52c0b9065cfa54f6b86b74f9a98c9d232e3a88aa9d61d06c6e01044122fab8b01a567e99f93014042031e9eb991fd9234c4a02ebe3d2aa8c042e5e769269095c
|
||||
DIST gentoo-wine-patches-20170830.tar.xz 58456 BLAKE2B 86445a6d91d9981d069ff2fb3b64a47e166c76b4721ef877c74cd60e359ee5bdbe36ebf37cf796a18e9cf42dbc69ce1496777144fc28b072f47c965173bf48b4 SHA512 5e5159e3252b246bba0ef7fdba345db3ab1071c5b8b8b625f98eda18779d4024c5b76bdbf49ce7bd5c6b01b422807adf76820beddb2b4a6ee9e67d13052cc575
|
||||
DIST wine-2.0.tar.bz2 23662707 BLAKE2B 1d485c1359ce8a0395a9f6378c1f8be33ea2836b80390d1eb1095057a0acedd21708daab16e1851a315391b9f9b0a360879b9d98c73bcc8371c5023e9a8037f5 SHA512 b0a57ba8202d9fc396e5bfb7a7718d6bababbed8f3351e7fdc36afa37f35a871e04903757618f73427aeb71a52b2d323977d79e48f8b38d636f23fd404441186
|
||||
DIST wine-2.17.tar.xz 19505528 BLAKE2B 5b4b0c708fb4c5bb7367ad87fd4438b75fbe84fa4fb0f4514aa816de771f91f38dc76da80410fa25711b060c26d95127c49d2ce0db613e3560a04d7bf2bff4f7 SHA512 cb10c876e689aa601c68673aab32c0514dd174692a01bdb3afc78d5e6079b0e77f48783af2f54245f397c762da3b4e5f2c1d39d2ce7fdb3b117d338b95c24810
|
||||
DIST wine-2.18.tar.xz 19546360 BLAKE2B 711b1396160b325a3021f066cc80eda0e2eb69c46ab671c6a4d1f417d0c2439e53854d37fee8507296386d1a828484af93e833f6c08413fd2571c03477e97386 SHA512 61cc39fa3d2b0a0ab3c5d17579865e6aea76dd9513a4b3c45975a2d5c05f2b4ba952b97eef547131a014763c7f692a08df29bc2ebf7e4ac7e2616e6a7822ddb9
|
||||
DIST wine-2.19.tar.xz 19549464 BLAKE2B 86d130cc43d7d674d2f478365952962b2792fd585b8d074564108bc7e9f4f7690337e4758b9a24e54fe8fd60187d3a96496a5ffc454ba674b02ecdde68efd3bb SHA512 83558231bdc592b1f69cfedf6c689063df7bd9fecdfafba6fb7f6a2c7fa7783973efb85a6a49305afc18b1aa268209ee5b9c0655756e05d7550468698dfa51ae
|
||||
DIST wine-d3d9-2.0.tar.gz 48373 BLAKE2B 80370a7519141030a7e54c2ea5db410b2bf1cde8d8389618487c52e4ff40f87cf7b0f9087331bb43fa6436e1b9936de9cc00a02b9ab9ce6528635a245e6a8b3f SHA512 a9e2d1c9f2784128e4c53a8dc923070a5057b5ff3d83c2b536a2d2df0bc8433ac92b8ab1c3cdf34158c0e7bfe497ddb5974605fbc1736a92307639d59450c7a1
|
||||
DIST wine-d3d9-2.17.tar.gz 48722 BLAKE2B fa226943210349feb1b906233010fe874b28caf385fca6749a84903c5eba2ed7303a6a7b0e2a15dfe20af399ec9d755ad7ed71c18248018d3968c1e1bcc44951 SHA512 530d44a968a68e06449da2286b8c9740a80b681ff610f6ddc87e6fb569e6c29181341266a04238965a7bfc209e20c1521847b70daa8d3532c2a269db0d200154
|
||||
DIST wine-d3d9-2.18.tar.gz 48722 BLAKE2B 47bfd1514cf135b84be7b2a9843e3125acae6f7f817443730498739290503921f998455e1e093ad15c4ac68e020af447add9dfdc4385cbc9bf7af6f3143583f5 SHA512 0e66c51e1957b27ccb9f326b0aaf2b0d09b7bbc9d03e1d321aa1789d2560b8e60fd83c4e86999d96a03aa73a37c96f34d93245763969a314150900741aa03933
|
||||
DIST wine-d3d9-2.19.tar.gz 48818 BLAKE2B b053ee0ad798a7d8ad53b3daff1757caaa52f095435f2fb89893c7313d490a2359217a5638529e918a1446f13533a746836c1c22218cba875a1420816618408a SHA512 be43435cd53f367ca57080c08218db302a90bf85ec6e917e89375904c456b585b61fb6053f9b4366b7e844f8246cabe83460a9866f614dbb5df3edfb43b2f54a
|
||||
DIST wine-staging-2.0.tar.gz 10182575 BLAKE2B 1de645f66fa3e5e0d8ceddf5439fd246510470f63d6331c7029abed7192180b7b8430e43a2e732a30a5fbe0c73ba39b7fafcfc08830c68e679dff90576c3a960 SHA512 51412299259d6e92c8993543d5fdb3239ebe31e0d1d715e0a9e8ce94b3139c0567b08ff1600d41be94f12427cbfccc2f6b6b2ed030535445c95618aaf6578580
|
||||
DIST wine-staging-2.17.tar.gz 10211107 BLAKE2B 7f791811f2c1f6e70aaa80841b49d8e6af90eae8ecd3b48fced5b7a14d069e90d8a6c23ac1c588254171695c04033e7d18a6dd373b94614fe044cd696664c532 SHA512 b652f6a852a1382c1b8275e172b7ac7608749c34aef5c0c5387cf262bf0da8db67a77ce397d49e53f3e2a8f210a3dbea1a9b3f3feb15c7d5bad8952b6fb7b53c
|
||||
DIST wine-staging-2.18.tar.gz 10243957 BLAKE2B 9592fd26564df981353c686bcaf1bd32028d04e4ae97cc412739abf05c845d43135ad6c3ee27ba14d8eda6e657c5c5fee96d4e76a546d4b6e6e905e5505b4898 SHA512 fe18b53d4160596d134ceed392f6459e9c183381f4712add43d8422e77d7d5d89ff34a3bb3afbd7740f250d85dfda0f3501e9600a41270790ae02138ed6d7dc7
|
||||
DIST wine-staging-2.19.tar.gz 10241240 BLAKE2B e661e3272328988e9a1aacc22fc02f0773804b58777f208c79c6af866032f31b6140a52e2aa5af954e52437db234712863d1369e960e98e2c212d1efc7f6344f SHA512 90916cb096bbfec35514eff4c1b6e2090b6e68e3e7af1164715f5abb1d255c5cfd6411f53c27cb277adcf0982fa6d6e508a7cdbc1404dcca6c2700b05c2c5483
|
||||
EBUILD wine-any-2.0-r1.ebuild 21057 BLAKE2B 2355047e0496ac9b3d97a13370cf224fe9be4763fb6d25442e571915530789e7faf0c26e2831fca16dfc8c938cb0175f04cd2b9d885f0a8fe975bc9fb02fd7c1 SHA512 3b0c81feb94e1b885a5df9d8a2e515f0d83c4a7b0fb596a2038bbdea36fec9eb34330ebd85478b76c8d5236fba4afd9fafdc4990e8e1c800b7043fad67c7d69f
|
||||
EBUILD wine-any-2.1-r1.ebuild 21056 BLAKE2B 30d94bd559746f19e06c5ab15e51913abd630218a42152e8aa5b88d9686b6c0fff8a4c916636b851cb55818b43fa75e365dcab42fc528281526989cf4ad2ee6d SHA512 3ab2d79fc4567249e5ea78b7d61841b8be92cd1a653eb9fe6649999cfbc20edfc08ebf69c1fcfede9f7f5196297427e1250a8f2948874305dbb32b2da5b80a8b
|
||||
EBUILD wine-any-2.10-r1.ebuild 21120 BLAKE2B 85ab848b568a42f1c69cddaaa509cf9e780756d95a0cdd6f2510daced7ee4f401f1058bd6a2c71c31d62ca3ebcd9eab8fe4ac51922050ce6928a05029cc17e13 SHA512 b2035195fa58d7684dbb42df77df615a32d98588911771f82d0408d2bee0cd931f7861482abf32ad9e7f22c09de95a4ee194662300e0c5e66e722bbe624eb0dc
|
||||
EBUILD wine-any-2.11-r1.ebuild 21120 BLAKE2B 85ab848b568a42f1c69cddaaa509cf9e780756d95a0cdd6f2510daced7ee4f401f1058bd6a2c71c31d62ca3ebcd9eab8fe4ac51922050ce6928a05029cc17e13 SHA512 b2035195fa58d7684dbb42df77df615a32d98588911771f82d0408d2bee0cd931f7861482abf32ad9e7f22c09de95a4ee194662300e0c5e66e722bbe624eb0dc
|
||||
EBUILD wine-any-2.12-r1.ebuild 21120 BLAKE2B 85ab848b568a42f1c69cddaaa509cf9e780756d95a0cdd6f2510daced7ee4f401f1058bd6a2c71c31d62ca3ebcd9eab8fe4ac51922050ce6928a05029cc17e13 SHA512 b2035195fa58d7684dbb42df77df615a32d98588911771f82d0408d2bee0cd931f7861482abf32ad9e7f22c09de95a4ee194662300e0c5e66e722bbe624eb0dc
|
||||
EBUILD wine-any-2.13-r1.ebuild 21120 BLAKE2B 85ab848b568a42f1c69cddaaa509cf9e780756d95a0cdd6f2510daced7ee4f401f1058bd6a2c71c31d62ca3ebcd9eab8fe4ac51922050ce6928a05029cc17e13 SHA512 b2035195fa58d7684dbb42df77df615a32d98588911771f82d0408d2bee0cd931f7861482abf32ad9e7f22c09de95a4ee194662300e0c5e66e722bbe624eb0dc
|
||||
EBUILD wine-any-2.14-r1.ebuild 21120 BLAKE2B 06de4fea63e546484035fb616a1df5be78a400e47ffef01587f94eda8e1dc598a8879c15d247e341a08770d179cf9155af1a311f71af58608c263dd44872242a SHA512 5e2353d57c43a14a090928e648c2ad49b6af2e42e4e209a36ea9d14742778534419fd5e6836d08d441b0c9b7d09ac3a5b55324c68914340c358e9fa3c1e88b8d
|
||||
EBUILD wine-any-2.15-r1.ebuild 21120 BLAKE2B 06de4fea63e546484035fb616a1df5be78a400e47ffef01587f94eda8e1dc598a8879c15d247e341a08770d179cf9155af1a311f71af58608c263dd44872242a SHA512 5e2353d57c43a14a090928e648c2ad49b6af2e42e4e209a36ea9d14742778534419fd5e6836d08d441b0c9b7d09ac3a5b55324c68914340c358e9fa3c1e88b8d
|
||||
EBUILD wine-any-2.16-r1.ebuild 21120 BLAKE2B 06de4fea63e546484035fb616a1df5be78a400e47ffef01587f94eda8e1dc598a8879c15d247e341a08770d179cf9155af1a311f71af58608c263dd44872242a SHA512 5e2353d57c43a14a090928e648c2ad49b6af2e42e4e209a36ea9d14742778534419fd5e6836d08d441b0c9b7d09ac3a5b55324c68914340c358e9fa3c1e88b8d
|
||||
EBUILD wine-any-2.17-r1.ebuild 21120 BLAKE2B 06de4fea63e546484035fb616a1df5be78a400e47ffef01587f94eda8e1dc598a8879c15d247e341a08770d179cf9155af1a311f71af58608c263dd44872242a SHA512 5e2353d57c43a14a090928e648c2ad49b6af2e42e4e209a36ea9d14742778534419fd5e6836d08d441b0c9b7d09ac3a5b55324c68914340c358e9fa3c1e88b8d
|
||||
EBUILD wine-any-2.18.ebuild 20930 BLAKE2B 2c91c2174403adeabc1e633cdd4445776b3d433b554da0c7eef7f0fd5fb16b993134323822ab598f560970362eaf5aa4ea854fe0d3fb1a48e0d5abe50ebbd33c SHA512 9b04a9ac2afda0d091707633059d709554f5a2b99c8dfe01938ed4b384d21631064f19bf05c3f727ef776424f2417717ae39c77d03c0ee82b9b325b9612f1dfb
|
||||
EBUILD wine-any-2.19.ebuild 20930 BLAKE2B 2c91c2174403adeabc1e633cdd4445776b3d433b554da0c7eef7f0fd5fb16b993134323822ab598f560970362eaf5aa4ea854fe0d3fb1a48e0d5abe50ebbd33c SHA512 9b04a9ac2afda0d091707633059d709554f5a2b99c8dfe01938ed4b384d21631064f19bf05c3f727ef776424f2417717ae39c77d03c0ee82b9b325b9612f1dfb
|
||||
EBUILD wine-any-2.2-r1.ebuild 21056 BLAKE2B 30d94bd559746f19e06c5ab15e51913abd630218a42152e8aa5b88d9686b6c0fff8a4c916636b851cb55818b43fa75e365dcab42fc528281526989cf4ad2ee6d SHA512 3ab2d79fc4567249e5ea78b7d61841b8be92cd1a653eb9fe6649999cfbc20edfc08ebf69c1fcfede9f7f5196297427e1250a8f2948874305dbb32b2da5b80a8b
|
||||
EBUILD wine-any-2.3-r1.ebuild 21056 BLAKE2B 30d94bd559746f19e06c5ab15e51913abd630218a42152e8aa5b88d9686b6c0fff8a4c916636b851cb55818b43fa75e365dcab42fc528281526989cf4ad2ee6d SHA512 3ab2d79fc4567249e5ea78b7d61841b8be92cd1a653eb9fe6649999cfbc20edfc08ebf69c1fcfede9f7f5196297427e1250a8f2948874305dbb32b2da5b80a8b
|
||||
EBUILD wine-any-2.4-r1.ebuild 21056 BLAKE2B 3797510f97e91bf63a2248916d80c323130602ad7d013689403805637233e51362e82d0ee55a9473a932a4fed67beeb0adc4c4aeedef37eea88acb00f57d9b53 SHA512 8bfa45fa1181feaefebebb159f4d8f1be419688d618740c0e3e18346fd6dbd7cfec4cd4d7d5a6ec8c15a3e9ed74ba5e7730a1486b11837e5ee6d1af9a82bef62
|
||||
EBUILD wine-any-2.5-r1.ebuild 21056 BLAKE2B 3797510f97e91bf63a2248916d80c323130602ad7d013689403805637233e51362e82d0ee55a9473a932a4fed67beeb0adc4c4aeedef37eea88acb00f57d9b53 SHA512 8bfa45fa1181feaefebebb159f4d8f1be419688d618740c0e3e18346fd6dbd7cfec4cd4d7d5a6ec8c15a3e9ed74ba5e7730a1486b11837e5ee6d1af9a82bef62
|
||||
EBUILD wine-any-2.6-r1.ebuild 21056 BLAKE2B 3797510f97e91bf63a2248916d80c323130602ad7d013689403805637233e51362e82d0ee55a9473a932a4fed67beeb0adc4c4aeedef37eea88acb00f57d9b53 SHA512 8bfa45fa1181feaefebebb159f4d8f1be419688d618740c0e3e18346fd6dbd7cfec4cd4d7d5a6ec8c15a3e9ed74ba5e7730a1486b11837e5ee6d1af9a82bef62
|
||||
EBUILD wine-any-2.7-r1.ebuild 21056 BLAKE2B 3797510f97e91bf63a2248916d80c323130602ad7d013689403805637233e51362e82d0ee55a9473a932a4fed67beeb0adc4c4aeedef37eea88acb00f57d9b53 SHA512 8bfa45fa1181feaefebebb159f4d8f1be419688d618740c0e3e18346fd6dbd7cfec4cd4d7d5a6ec8c15a3e9ed74ba5e7730a1486b11837e5ee6d1af9a82bef62
|
||||
EBUILD wine-any-2.8-r1.ebuild 21056 BLAKE2B 3797510f97e91bf63a2248916d80c323130602ad7d013689403805637233e51362e82d0ee55a9473a932a4fed67beeb0adc4c4aeedef37eea88acb00f57d9b53 SHA512 8bfa45fa1181feaefebebb159f4d8f1be419688d618740c0e3e18346fd6dbd7cfec4cd4d7d5a6ec8c15a3e9ed74ba5e7730a1486b11837e5ee6d1af9a82bef62
|
||||
EBUILD wine-any-2.9-r1.ebuild 21120 BLAKE2B 85ab848b568a42f1c69cddaaa509cf9e780756d95a0cdd6f2510daced7ee4f401f1058bd6a2c71c31d62ca3ebcd9eab8fe4ac51922050ce6928a05029cc17e13 SHA512 b2035195fa58d7684dbb42df77df615a32d98588911771f82d0408d2bee0cd931f7861482abf32ad9e7f22c09de95a4ee194662300e0c5e66e722bbe624eb0dc
|
||||
EBUILD wine-any-9999.ebuild 20930 BLAKE2B 2c91c2174403adeabc1e633cdd4445776b3d433b554da0c7eef7f0fd5fb16b993134323822ab598f560970362eaf5aa4ea854fe0d3fb1a48e0d5abe50ebbd33c SHA512 9b04a9ac2afda0d091707633059d709554f5a2b99c8dfe01938ed4b384d21631064f19bf05c3f727ef776424f2417717ae39c77d03c0ee82b9b325b9612f1dfb
|
||||
MISC metadata.xml 3380 BLAKE2B 3f887b2ecf1dfc1873b97a59a27c5e648ff4e7870f8c673097b817016de92b280ea4c1405ec3deacac8ca091d3c7ac2f6ca1c1e7d46580475839172577c5c96f SHA512 eb5d7e8b3e996b32c86de67c317211cf9cf7b4e97aaff69b2c2343de4401e0a83240084c5ad461e4b96a2cd09315a97ecd5ea62bc75f1803d99f3bea722af4e1
|
||||
|
|
|
@ -1,636 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
STAGING_P="wine-staging-${PV}"
|
||||
STAGING_DIR="${WORKDIR}/${STAGING_P}"
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with optional external patchsets"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
STAGING_EGIT_REPO_URI="https://github.com/wine-compholio/wine-staging.git"
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes s3tc samba scanner selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
pipelight? ( staging )
|
||||
s3tc? ( staging )
|
||||
test? ( abi_x86_32 )
|
||||
themes? ( staging )
|
||||
vaapi? ( staging )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
|
||||
themes? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
x11-libs/cairo[${MULTILIB_USEDEP}]
|
||||
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
|
||||
)
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.6.4 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
s3tc? ( >=media-libs/libtxc_dxtn-1.0.1-r1[${MULTILIB_USEDEP}] )
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
staging? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use staging || use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use staging; then
|
||||
local CURRENT_WINE_COMMIT=${EGIT_VERSION}
|
||||
|
||||
git-r3_fetch "${STAGING_EGIT_REPO_URI}" "${STAGING_COMMIT}"
|
||||
git-r3_checkout "${STAGING_EGIT_REPO_URI}" "${STAGING_DIR}"
|
||||
|
||||
local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
|
||||
|
||||
if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
|
||||
einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
|
||||
einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
|
||||
einfo "Example: WINE_COMMIT=${COMPAT_WINE_COMMIT} emerge -1 wine"
|
||||
fi
|
||||
fi
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use staging; then
|
||||
ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
|
||||
ewarn "Wine bugzilla should explicitly state that staging was used."
|
||||
|
||||
local STAGING_EXCLUDE=""
|
||||
STAGING_EXCLUDE="${STAGING_EXCLUDE} -W winhlp32-Flex_Workaround" # Avoid double patching https://bugs.winehq.org/show_bug.cgi?id=42132
|
||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
||||
|
||||
# Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
|
||||
ebegin "Running Wine-Staging patch installer"
|
||||
(
|
||||
set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
|
||||
cd "${STAGING_DIR}/patches"
|
||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
||||
)
|
||||
eend $? || die "Failed to apply Wine-Staging patches"
|
||||
fi
|
||||
if use d3d9; then
|
||||
if use staging; then
|
||||
PATCHES+=( "${D3D9_DIR}/staging-helper.patch" )
|
||||
else
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
fi
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use staging && myconf+=(
|
||||
--with-xattr
|
||||
$(use_with themes gtk3)
|
||||
$(use_with vaapi va)
|
||||
)
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine register --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine deregister --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,638 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
STAGING_P="wine-staging-${PV}"
|
||||
STAGING_DIR="${WORKDIR}/${STAGING_P}"
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with optional external patchsets"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
STAGING_EGIT_REPO_URI="https://github.com/wine-compholio/wine-staging.git"
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes s3tc samba scanner selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
pipelight? ( staging )
|
||||
s3tc? ( staging )
|
||||
test? ( abi_x86_32 )
|
||||
themes? ( staging )
|
||||
vaapi? ( staging )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
|
||||
themes? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
x11-libs/cairo[${MULTILIB_USEDEP}]
|
||||
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
|
||||
)
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.0 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
s3tc? ( >=media-libs/libtxc_dxtn-1.0.1-r1[${MULTILIB_USEDEP}] )
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
staging? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use staging || use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use staging; then
|
||||
local CURRENT_WINE_COMMIT=${EGIT_VERSION}
|
||||
|
||||
git-r3_fetch "${STAGING_EGIT_REPO_URI}" "${STAGING_COMMIT}"
|
||||
git-r3_checkout "${STAGING_EGIT_REPO_URI}" "${STAGING_DIR}"
|
||||
|
||||
local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
|
||||
|
||||
if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
|
||||
einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
|
||||
einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
|
||||
einfo "Example: WINE_COMMIT=${COMPAT_WINE_COMMIT} emerge -1 wine"
|
||||
fi
|
||||
fi
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use staging; then
|
||||
ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
|
||||
ewarn "Wine bugzilla should explicitly state that staging was used."
|
||||
|
||||
local STAGING_EXCLUDE=""
|
||||
STAGING_EXCLUDE="${STAGING_EXCLUDE} -W winhlp32-Flex_Workaround" # Avoid double patching https://bugs.winehq.org/show_bug.cgi?id=42132
|
||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
||||
|
||||
# Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
|
||||
ebegin "Running Wine-Staging patch installer"
|
||||
(
|
||||
set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
|
||||
cd "${STAGING_DIR}/patches"
|
||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
||||
)
|
||||
eend $? || die "Failed to apply Wine-Staging patches"
|
||||
fi
|
||||
if use d3d9; then
|
||||
if use staging; then
|
||||
PATCHES+=( "${D3D9_DIR}/staging-helper.patch" )
|
||||
else
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
fi
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with X xfixes)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use staging && myconf+=(
|
||||
--with-xattr
|
||||
$(use_with themes gtk3)
|
||||
$(use_with vaapi va)
|
||||
)
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine register --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine deregister --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,638 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
STAGING_P="wine-staging-${PV}"
|
||||
STAGING_DIR="${WORKDIR}/${STAGING_P}"
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with optional external patchsets"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
STAGING_EGIT_REPO_URI="https://github.com/wine-compholio/wine-staging.git"
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes s3tc samba scanner selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
pipelight? ( staging )
|
||||
s3tc? ( staging )
|
||||
test? ( abi_x86_32 )
|
||||
themes? ( staging )
|
||||
vaapi? ( staging )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
|
||||
themes? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
x11-libs/cairo[${MULTILIB_USEDEP}]
|
||||
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
|
||||
)
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.0 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
s3tc? ( >=media-libs/libtxc_dxtn-1.0.1-r1[${MULTILIB_USEDEP}] )
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
staging? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use staging || use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use staging; then
|
||||
local CURRENT_WINE_COMMIT=${EGIT_VERSION}
|
||||
|
||||
git-r3_fetch "${STAGING_EGIT_REPO_URI}" "${STAGING_COMMIT}"
|
||||
git-r3_checkout "${STAGING_EGIT_REPO_URI}" "${STAGING_DIR}"
|
||||
|
||||
local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
|
||||
|
||||
if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
|
||||
einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
|
||||
einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
|
||||
einfo "Example: WINE_COMMIT=${COMPAT_WINE_COMMIT} emerge -1 wine"
|
||||
fi
|
||||
fi
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use staging; then
|
||||
ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
|
||||
ewarn "Wine bugzilla should explicitly state that staging was used."
|
||||
|
||||
local STAGING_EXCLUDE=""
|
||||
STAGING_EXCLUDE="${STAGING_EXCLUDE} -W winhlp32-Flex_Workaround" # Avoid double patching https://bugs.winehq.org/show_bug.cgi?id=42132
|
||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
||||
|
||||
# Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
|
||||
ebegin "Running Wine-Staging patch installer"
|
||||
(
|
||||
set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
|
||||
cd "${STAGING_DIR}/patches"
|
||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
||||
)
|
||||
eend $? || die "Failed to apply Wine-Staging patches"
|
||||
fi
|
||||
if use d3d9; then
|
||||
if use staging; then
|
||||
PATCHES+=( "${D3D9_DIR}/staging-helper.patch" )
|
||||
else
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
fi
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with X xfixes)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use staging && myconf+=(
|
||||
--with-xattr
|
||||
$(use_with themes gtk3)
|
||||
$(use_with vaapi va)
|
||||
)
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine register --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine deregister --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,638 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
STAGING_P="wine-staging-${PV}"
|
||||
STAGING_DIR="${WORKDIR}/${STAGING_P}"
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with optional external patchsets"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
STAGING_EGIT_REPO_URI="https://github.com/wine-compholio/wine-staging.git"
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes s3tc samba scanner selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
pipelight? ( staging )
|
||||
s3tc? ( staging )
|
||||
test? ( abi_x86_32 )
|
||||
themes? ( staging )
|
||||
vaapi? ( staging )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
|
||||
themes? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
x11-libs/cairo[${MULTILIB_USEDEP}]
|
||||
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
|
||||
)
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.0 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
s3tc? ( >=media-libs/libtxc_dxtn-1.0.1-r1[${MULTILIB_USEDEP}] )
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
staging? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use staging || use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use staging; then
|
||||
local CURRENT_WINE_COMMIT=${EGIT_VERSION}
|
||||
|
||||
git-r3_fetch "${STAGING_EGIT_REPO_URI}" "${STAGING_COMMIT}"
|
||||
git-r3_checkout "${STAGING_EGIT_REPO_URI}" "${STAGING_DIR}"
|
||||
|
||||
local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
|
||||
|
||||
if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
|
||||
einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
|
||||
einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
|
||||
einfo "Example: WINE_COMMIT=${COMPAT_WINE_COMMIT} emerge -1 wine"
|
||||
fi
|
||||
fi
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use staging; then
|
||||
ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
|
||||
ewarn "Wine bugzilla should explicitly state that staging was used."
|
||||
|
||||
local STAGING_EXCLUDE=""
|
||||
STAGING_EXCLUDE="${STAGING_EXCLUDE} -W winhlp32-Flex_Workaround" # Avoid double patching https://bugs.winehq.org/show_bug.cgi?id=42132
|
||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
||||
|
||||
# Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
|
||||
ebegin "Running Wine-Staging patch installer"
|
||||
(
|
||||
set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
|
||||
cd "${STAGING_DIR}/patches"
|
||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
||||
)
|
||||
eend $? || die "Failed to apply Wine-Staging patches"
|
||||
fi
|
||||
if use d3d9; then
|
||||
if use staging; then
|
||||
PATCHES+=( "${D3D9_DIR}/staging-helper.patch" )
|
||||
else
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
fi
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with X xfixes)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use staging && myconf+=(
|
||||
--with-xattr
|
||||
$(use_with themes gtk3)
|
||||
$(use_with vaapi va)
|
||||
)
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine register --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine deregister --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,638 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
STAGING_P="wine-staging-${PV}"
|
||||
STAGING_DIR="${WORKDIR}/${STAGING_P}"
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with optional external patchsets"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
STAGING_EGIT_REPO_URI="https://github.com/wine-compholio/wine-staging.git"
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes s3tc samba scanner selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
pipelight? ( staging )
|
||||
s3tc? ( staging )
|
||||
test? ( abi_x86_32 )
|
||||
themes? ( staging )
|
||||
vaapi? ( staging )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
|
||||
themes? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
x11-libs/cairo[${MULTILIB_USEDEP}]
|
||||
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
|
||||
)
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.0 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
s3tc? ( >=media-libs/libtxc_dxtn-1.0.1-r1[${MULTILIB_USEDEP}] )
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
staging? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use staging || use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use staging; then
|
||||
local CURRENT_WINE_COMMIT=${EGIT_VERSION}
|
||||
|
||||
git-r3_fetch "${STAGING_EGIT_REPO_URI}" "${STAGING_COMMIT}"
|
||||
git-r3_checkout "${STAGING_EGIT_REPO_URI}" "${STAGING_DIR}"
|
||||
|
||||
local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
|
||||
|
||||
if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
|
||||
einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
|
||||
einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
|
||||
einfo "Example: WINE_COMMIT=${COMPAT_WINE_COMMIT} emerge -1 wine"
|
||||
fi
|
||||
fi
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use staging; then
|
||||
ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
|
||||
ewarn "Wine bugzilla should explicitly state that staging was used."
|
||||
|
||||
local STAGING_EXCLUDE=""
|
||||
STAGING_EXCLUDE="${STAGING_EXCLUDE} -W winhlp32-Flex_Workaround" # Avoid double patching https://bugs.winehq.org/show_bug.cgi?id=42132
|
||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
||||
|
||||
# Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
|
||||
ebegin "Running Wine-Staging patch installer"
|
||||
(
|
||||
set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
|
||||
cd "${STAGING_DIR}/patches"
|
||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
||||
)
|
||||
eend $? || die "Failed to apply Wine-Staging patches"
|
||||
fi
|
||||
if use d3d9; then
|
||||
if use staging; then
|
||||
PATCHES+=( "${D3D9_DIR}/staging-helper.patch" )
|
||||
else
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
fi
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with X xfixes)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use staging && myconf+=(
|
||||
--with-xattr
|
||||
$(use_with themes gtk3)
|
||||
$(use_with vaapi va)
|
||||
)
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine register --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine deregister --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,638 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
STAGING_P="wine-staging-${PV}"
|
||||
STAGING_DIR="${WORKDIR}/${STAGING_P}"
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with optional external patchsets"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
STAGING_EGIT_REPO_URI="https://github.com/wine-compholio/wine-staging.git"
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes s3tc samba scanner selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
pipelight? ( staging )
|
||||
s3tc? ( staging )
|
||||
test? ( abi_x86_32 )
|
||||
themes? ( staging )
|
||||
vaapi? ( staging )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
|
||||
themes? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
x11-libs/cairo[${MULTILIB_USEDEP}]
|
||||
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
|
||||
)
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.1 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
s3tc? ( >=media-libs/libtxc_dxtn-1.0.1-r1[${MULTILIB_USEDEP}] )
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
staging? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use staging || use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use staging; then
|
||||
local CURRENT_WINE_COMMIT=${EGIT_VERSION}
|
||||
|
||||
git-r3_fetch "${STAGING_EGIT_REPO_URI}" "${STAGING_COMMIT}"
|
||||
git-r3_checkout "${STAGING_EGIT_REPO_URI}" "${STAGING_DIR}"
|
||||
|
||||
local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
|
||||
|
||||
if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
|
||||
einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
|
||||
einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
|
||||
einfo "Example: WINE_COMMIT=${COMPAT_WINE_COMMIT} emerge -1 wine"
|
||||
fi
|
||||
fi
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use staging; then
|
||||
ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
|
||||
ewarn "Wine bugzilla should explicitly state that staging was used."
|
||||
|
||||
local STAGING_EXCLUDE=""
|
||||
STAGING_EXCLUDE="${STAGING_EXCLUDE} -W winhlp32-Flex_Workaround" # Avoid double patching https://bugs.winehq.org/show_bug.cgi?id=42132
|
||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
||||
|
||||
# Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
|
||||
ebegin "Running Wine-Staging patch installer"
|
||||
(
|
||||
set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
|
||||
cd "${STAGING_DIR}/patches"
|
||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
||||
)
|
||||
eend $? || die "Failed to apply Wine-Staging patches"
|
||||
fi
|
||||
if use d3d9; then
|
||||
if use staging; then
|
||||
PATCHES+=( "${D3D9_DIR}/staging-helper.patch" )
|
||||
else
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
fi
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with X xfixes)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use staging && myconf+=(
|
||||
--with-xattr
|
||||
$(use_with themes gtk3)
|
||||
$(use_with vaapi va)
|
||||
)
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine register --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine deregister --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,638 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
STAGING_P="wine-staging-${PV}"
|
||||
STAGING_DIR="${WORKDIR}/${STAGING_P}"
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with optional external patchsets"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
STAGING_EGIT_REPO_URI="https://github.com/wine-compholio/wine-staging.git"
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes s3tc samba scanner selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
pipelight? ( staging )
|
||||
s3tc? ( staging )
|
||||
test? ( abi_x86_32 )
|
||||
themes? ( staging )
|
||||
vaapi? ( staging )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
|
||||
themes? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
x11-libs/cairo[${MULTILIB_USEDEP}]
|
||||
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
|
||||
)
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.1 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
s3tc? ( >=media-libs/libtxc_dxtn-1.0.1-r1[${MULTILIB_USEDEP}] )
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
staging? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use staging || use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use staging; then
|
||||
local CURRENT_WINE_COMMIT=${EGIT_VERSION}
|
||||
|
||||
git-r3_fetch "${STAGING_EGIT_REPO_URI}" "${STAGING_COMMIT}"
|
||||
git-r3_checkout "${STAGING_EGIT_REPO_URI}" "${STAGING_DIR}"
|
||||
|
||||
local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
|
||||
|
||||
if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
|
||||
einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
|
||||
einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
|
||||
einfo "Example: WINE_COMMIT=${COMPAT_WINE_COMMIT} emerge -1 wine"
|
||||
fi
|
||||
fi
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use staging; then
|
||||
ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
|
||||
ewarn "Wine bugzilla should explicitly state that staging was used."
|
||||
|
||||
local STAGING_EXCLUDE=""
|
||||
STAGING_EXCLUDE="${STAGING_EXCLUDE} -W winhlp32-Flex_Workaround" # Avoid double patching https://bugs.winehq.org/show_bug.cgi?id=42132
|
||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
||||
|
||||
# Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
|
||||
ebegin "Running Wine-Staging patch installer"
|
||||
(
|
||||
set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
|
||||
cd "${STAGING_DIR}/patches"
|
||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
||||
)
|
||||
eend $? || die "Failed to apply Wine-Staging patches"
|
||||
fi
|
||||
if use d3d9; then
|
||||
if use staging; then
|
||||
PATCHES+=( "${D3D9_DIR}/staging-helper.patch" )
|
||||
else
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
fi
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with X xfixes)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use staging && myconf+=(
|
||||
--with-xattr
|
||||
$(use_with themes gtk3)
|
||||
$(use_with vaapi va)
|
||||
)
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine register --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine deregister --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,638 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
STAGING_P="wine-staging-${PV}"
|
||||
STAGING_DIR="${WORKDIR}/${STAGING_P}"
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with optional external patchsets"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
STAGING_EGIT_REPO_URI="https://github.com/wine-compholio/wine-staging.git"
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes s3tc samba scanner selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
pipelight? ( staging )
|
||||
s3tc? ( staging )
|
||||
test? ( abi_x86_32 )
|
||||
themes? ( staging )
|
||||
vaapi? ( staging )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
|
||||
themes? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
x11-libs/cairo[${MULTILIB_USEDEP}]
|
||||
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
|
||||
)
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.1 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
s3tc? ( >=media-libs/libtxc_dxtn-1.0.1-r1[${MULTILIB_USEDEP}] )
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
staging? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use staging || use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use staging; then
|
||||
local CURRENT_WINE_COMMIT=${EGIT_VERSION}
|
||||
|
||||
git-r3_fetch "${STAGING_EGIT_REPO_URI}" "${STAGING_COMMIT}"
|
||||
git-r3_checkout "${STAGING_EGIT_REPO_URI}" "${STAGING_DIR}"
|
||||
|
||||
local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
|
||||
|
||||
if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
|
||||
einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
|
||||
einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
|
||||
einfo "Example: WINE_COMMIT=${COMPAT_WINE_COMMIT} emerge -1 wine"
|
||||
fi
|
||||
fi
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use staging; then
|
||||
ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
|
||||
ewarn "Wine bugzilla should explicitly state that staging was used."
|
||||
|
||||
local STAGING_EXCLUDE=""
|
||||
STAGING_EXCLUDE="${STAGING_EXCLUDE} -W winhlp32-Flex_Workaround" # Avoid double patching https://bugs.winehq.org/show_bug.cgi?id=42132
|
||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
||||
|
||||
# Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
|
||||
ebegin "Running Wine-Staging patch installer"
|
||||
(
|
||||
set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
|
||||
cd "${STAGING_DIR}/patches"
|
||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
||||
)
|
||||
eend $? || die "Failed to apply Wine-Staging patches"
|
||||
fi
|
||||
if use d3d9; then
|
||||
if use staging; then
|
||||
PATCHES+=( "${D3D9_DIR}/staging-helper.patch" )
|
||||
else
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
fi
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with X xfixes)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use staging && myconf+=(
|
||||
--with-xattr
|
||||
$(use_with themes gtk3)
|
||||
$(use_with vaapi va)
|
||||
)
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine register --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine deregister --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,636 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
STAGING_P="wine-staging-${PV}"
|
||||
STAGING_DIR="${WORKDIR}/${STAGING_P}"
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with optional external patchsets"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
STAGING_EGIT_REPO_URI="https://github.com/wine-compholio/wine-staging.git"
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes s3tc samba scanner selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
pipelight? ( staging )
|
||||
s3tc? ( staging )
|
||||
test? ( abi_x86_32 )
|
||||
themes? ( staging )
|
||||
vaapi? ( staging )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
|
||||
themes? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
x11-libs/cairo[${MULTILIB_USEDEP}]
|
||||
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
|
||||
)
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.6.4 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
s3tc? ( >=media-libs/libtxc_dxtn-1.0.1-r1[${MULTILIB_USEDEP}] )
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
staging? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use staging || use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use staging; then
|
||||
local CURRENT_WINE_COMMIT=${EGIT_VERSION}
|
||||
|
||||
git-r3_fetch "${STAGING_EGIT_REPO_URI}" "${STAGING_COMMIT}"
|
||||
git-r3_checkout "${STAGING_EGIT_REPO_URI}" "${STAGING_DIR}"
|
||||
|
||||
local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
|
||||
|
||||
if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
|
||||
einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
|
||||
einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
|
||||
einfo "Example: WINE_COMMIT=${COMPAT_WINE_COMMIT} emerge -1 wine"
|
||||
fi
|
||||
fi
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use staging; then
|
||||
ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
|
||||
ewarn "Wine bugzilla should explicitly state that staging was used."
|
||||
|
||||
local STAGING_EXCLUDE=""
|
||||
STAGING_EXCLUDE="${STAGING_EXCLUDE} -W winhlp32-Flex_Workaround" # Avoid double patching https://bugs.winehq.org/show_bug.cgi?id=42132
|
||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
||||
|
||||
# Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
|
||||
ebegin "Running Wine-Staging patch installer"
|
||||
(
|
||||
set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
|
||||
cd "${STAGING_DIR}/patches"
|
||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
||||
)
|
||||
eend $? || die "Failed to apply Wine-Staging patches"
|
||||
fi
|
||||
if use d3d9; then
|
||||
if use staging; then
|
||||
PATCHES+=( "${D3D9_DIR}/staging-helper.patch" )
|
||||
else
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
fi
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use staging && myconf+=(
|
||||
--with-xattr
|
||||
$(use_with themes gtk3)
|
||||
$(use_with vaapi va)
|
||||
)
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine register --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine deregister --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,636 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
STAGING_P="wine-staging-${PV}"
|
||||
STAGING_DIR="${WORKDIR}/${STAGING_P}"
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with optional external patchsets"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
STAGING_EGIT_REPO_URI="https://github.com/wine-compholio/wine-staging.git"
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes s3tc samba scanner selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
pipelight? ( staging )
|
||||
s3tc? ( staging )
|
||||
test? ( abi_x86_32 )
|
||||
themes? ( staging )
|
||||
vaapi? ( staging )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
|
||||
themes? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
x11-libs/cairo[${MULTILIB_USEDEP}]
|
||||
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
|
||||
)
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.6.4 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
s3tc? ( >=media-libs/libtxc_dxtn-1.0.1-r1[${MULTILIB_USEDEP}] )
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
staging? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use staging || use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use staging; then
|
||||
local CURRENT_WINE_COMMIT=${EGIT_VERSION}
|
||||
|
||||
git-r3_fetch "${STAGING_EGIT_REPO_URI}" "${STAGING_COMMIT}"
|
||||
git-r3_checkout "${STAGING_EGIT_REPO_URI}" "${STAGING_DIR}"
|
||||
|
||||
local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
|
||||
|
||||
if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
|
||||
einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
|
||||
einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
|
||||
einfo "Example: WINE_COMMIT=${COMPAT_WINE_COMMIT} emerge -1 wine"
|
||||
fi
|
||||
fi
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use staging; then
|
||||
ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
|
||||
ewarn "Wine bugzilla should explicitly state that staging was used."
|
||||
|
||||
local STAGING_EXCLUDE=""
|
||||
STAGING_EXCLUDE="${STAGING_EXCLUDE} -W winhlp32-Flex_Workaround" # Avoid double patching https://bugs.winehq.org/show_bug.cgi?id=42132
|
||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
||||
|
||||
# Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
|
||||
ebegin "Running Wine-Staging patch installer"
|
||||
(
|
||||
set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
|
||||
cd "${STAGING_DIR}/patches"
|
||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
||||
)
|
||||
eend $? || die "Failed to apply Wine-Staging patches"
|
||||
fi
|
||||
if use d3d9; then
|
||||
if use staging; then
|
||||
PATCHES+=( "${D3D9_DIR}/staging-helper.patch" )
|
||||
else
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
fi
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use staging && myconf+=(
|
||||
--with-xattr
|
||||
$(use_with themes gtk3)
|
||||
$(use_with vaapi va)
|
||||
)
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine register --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine deregister --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,636 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
STAGING_P="wine-staging-${PV}"
|
||||
STAGING_DIR="${WORKDIR}/${STAGING_P}"
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with optional external patchsets"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
STAGING_EGIT_REPO_URI="https://github.com/wine-compholio/wine-staging.git"
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes s3tc samba scanner selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
pipelight? ( staging )
|
||||
s3tc? ( staging )
|
||||
test? ( abi_x86_32 )
|
||||
themes? ( staging )
|
||||
vaapi? ( staging )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
|
||||
themes? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
x11-libs/cairo[${MULTILIB_USEDEP}]
|
||||
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
|
||||
)
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.0 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
s3tc? ( >=media-libs/libtxc_dxtn-1.0.1-r1[${MULTILIB_USEDEP}] )
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
staging? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use staging || use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use staging; then
|
||||
local CURRENT_WINE_COMMIT=${EGIT_VERSION}
|
||||
|
||||
git-r3_fetch "${STAGING_EGIT_REPO_URI}" "${STAGING_COMMIT}"
|
||||
git-r3_checkout "${STAGING_EGIT_REPO_URI}" "${STAGING_DIR}"
|
||||
|
||||
local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
|
||||
|
||||
if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
|
||||
einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
|
||||
einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
|
||||
einfo "Example: WINE_COMMIT=${COMPAT_WINE_COMMIT} emerge -1 wine"
|
||||
fi
|
||||
fi
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use staging; then
|
||||
ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
|
||||
ewarn "Wine bugzilla should explicitly state that staging was used."
|
||||
|
||||
local STAGING_EXCLUDE=""
|
||||
STAGING_EXCLUDE="${STAGING_EXCLUDE} -W winhlp32-Flex_Workaround" # Avoid double patching https://bugs.winehq.org/show_bug.cgi?id=42132
|
||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
||||
|
||||
# Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
|
||||
ebegin "Running Wine-Staging patch installer"
|
||||
(
|
||||
set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
|
||||
cd "${STAGING_DIR}/patches"
|
||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
||||
)
|
||||
eend $? || die "Failed to apply Wine-Staging patches"
|
||||
fi
|
||||
if use d3d9; then
|
||||
if use staging; then
|
||||
PATCHES+=( "${D3D9_DIR}/staging-helper.patch" )
|
||||
else
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
fi
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use staging && myconf+=(
|
||||
--with-xattr
|
||||
$(use_with themes gtk3)
|
||||
$(use_with vaapi va)
|
||||
)
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine register --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine deregister --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,636 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
STAGING_P="wine-staging-${PV}"
|
||||
STAGING_DIR="${WORKDIR}/${STAGING_P}"
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with optional external patchsets"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
STAGING_EGIT_REPO_URI="https://github.com/wine-compholio/wine-staging.git"
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes s3tc samba scanner selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
pipelight? ( staging )
|
||||
s3tc? ( staging )
|
||||
test? ( abi_x86_32 )
|
||||
themes? ( staging )
|
||||
vaapi? ( staging )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
|
||||
themes? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
x11-libs/cairo[${MULTILIB_USEDEP}]
|
||||
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
|
||||
)
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.0 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
s3tc? ( >=media-libs/libtxc_dxtn-1.0.1-r1[${MULTILIB_USEDEP}] )
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
staging? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use staging || use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use staging; then
|
||||
local CURRENT_WINE_COMMIT=${EGIT_VERSION}
|
||||
|
||||
git-r3_fetch "${STAGING_EGIT_REPO_URI}" "${STAGING_COMMIT}"
|
||||
git-r3_checkout "${STAGING_EGIT_REPO_URI}" "${STAGING_DIR}"
|
||||
|
||||
local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
|
||||
|
||||
if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
|
||||
einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
|
||||
einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
|
||||
einfo "Example: WINE_COMMIT=${COMPAT_WINE_COMMIT} emerge -1 wine"
|
||||
fi
|
||||
fi
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use staging; then
|
||||
ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
|
||||
ewarn "Wine bugzilla should explicitly state that staging was used."
|
||||
|
||||
local STAGING_EXCLUDE=""
|
||||
STAGING_EXCLUDE="${STAGING_EXCLUDE} -W winhlp32-Flex_Workaround" # Avoid double patching https://bugs.winehq.org/show_bug.cgi?id=42132
|
||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
||||
|
||||
# Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
|
||||
ebegin "Running Wine-Staging patch installer"
|
||||
(
|
||||
set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
|
||||
cd "${STAGING_DIR}/patches"
|
||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
||||
)
|
||||
eend $? || die "Failed to apply Wine-Staging patches"
|
||||
fi
|
||||
if use d3d9; then
|
||||
if use staging; then
|
||||
PATCHES+=( "${D3D9_DIR}/staging-helper.patch" )
|
||||
else
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
fi
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use staging && myconf+=(
|
||||
--with-xattr
|
||||
$(use_with themes gtk3)
|
||||
$(use_with vaapi va)
|
||||
)
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine register --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine deregister --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,636 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
STAGING_P="wine-staging-${PV}"
|
||||
STAGING_DIR="${WORKDIR}/${STAGING_P}"
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with optional external patchsets"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
STAGING_EGIT_REPO_URI="https://github.com/wine-compholio/wine-staging.git"
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes s3tc samba scanner selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
pipelight? ( staging )
|
||||
s3tc? ( staging )
|
||||
test? ( abi_x86_32 )
|
||||
themes? ( staging )
|
||||
vaapi? ( staging )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
|
||||
themes? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
x11-libs/cairo[${MULTILIB_USEDEP}]
|
||||
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
|
||||
)
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.0 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
s3tc? ( >=media-libs/libtxc_dxtn-1.0.1-r1[${MULTILIB_USEDEP}] )
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
staging? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use staging || use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use staging; then
|
||||
local CURRENT_WINE_COMMIT=${EGIT_VERSION}
|
||||
|
||||
git-r3_fetch "${STAGING_EGIT_REPO_URI}" "${STAGING_COMMIT}"
|
||||
git-r3_checkout "${STAGING_EGIT_REPO_URI}" "${STAGING_DIR}"
|
||||
|
||||
local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
|
||||
|
||||
if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
|
||||
einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
|
||||
einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
|
||||
einfo "Example: WINE_COMMIT=${COMPAT_WINE_COMMIT} emerge -1 wine"
|
||||
fi
|
||||
fi
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use staging; then
|
||||
ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
|
||||
ewarn "Wine bugzilla should explicitly state that staging was used."
|
||||
|
||||
local STAGING_EXCLUDE=""
|
||||
STAGING_EXCLUDE="${STAGING_EXCLUDE} -W winhlp32-Flex_Workaround" # Avoid double patching https://bugs.winehq.org/show_bug.cgi?id=42132
|
||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
||||
|
||||
# Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
|
||||
ebegin "Running Wine-Staging patch installer"
|
||||
(
|
||||
set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
|
||||
cd "${STAGING_DIR}/patches"
|
||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
||||
)
|
||||
eend $? || die "Failed to apply Wine-Staging patches"
|
||||
fi
|
||||
if use d3d9; then
|
||||
if use staging; then
|
||||
PATCHES+=( "${D3D9_DIR}/staging-helper.patch" )
|
||||
else
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
fi
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use staging && myconf+=(
|
||||
--with-xattr
|
||||
$(use_with themes gtk3)
|
||||
$(use_with vaapi va)
|
||||
)
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine register --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine deregister --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,636 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
STAGING_P="wine-staging-${PV}"
|
||||
STAGING_DIR="${WORKDIR}/${STAGING_P}"
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with optional external patchsets"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
STAGING_EGIT_REPO_URI="https://github.com/wine-compholio/wine-staging.git"
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes s3tc samba scanner selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
pipelight? ( staging )
|
||||
s3tc? ( staging )
|
||||
test? ( abi_x86_32 )
|
||||
themes? ( staging )
|
||||
vaapi? ( staging )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
|
||||
themes? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
x11-libs/cairo[${MULTILIB_USEDEP}]
|
||||
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
|
||||
)
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.0 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
s3tc? ( >=media-libs/libtxc_dxtn-1.0.1-r1[${MULTILIB_USEDEP}] )
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
staging? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use staging || use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use staging; then
|
||||
local CURRENT_WINE_COMMIT=${EGIT_VERSION}
|
||||
|
||||
git-r3_fetch "${STAGING_EGIT_REPO_URI}" "${STAGING_COMMIT}"
|
||||
git-r3_checkout "${STAGING_EGIT_REPO_URI}" "${STAGING_DIR}"
|
||||
|
||||
local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
|
||||
|
||||
if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
|
||||
einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
|
||||
einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
|
||||
einfo "Example: WINE_COMMIT=${COMPAT_WINE_COMMIT} emerge -1 wine"
|
||||
fi
|
||||
fi
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use staging; then
|
||||
ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
|
||||
ewarn "Wine bugzilla should explicitly state that staging was used."
|
||||
|
||||
local STAGING_EXCLUDE=""
|
||||
STAGING_EXCLUDE="${STAGING_EXCLUDE} -W winhlp32-Flex_Workaround" # Avoid double patching https://bugs.winehq.org/show_bug.cgi?id=42132
|
||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
||||
|
||||
# Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
|
||||
ebegin "Running Wine-Staging patch installer"
|
||||
(
|
||||
set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
|
||||
cd "${STAGING_DIR}/patches"
|
||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
||||
)
|
||||
eend $? || die "Failed to apply Wine-Staging patches"
|
||||
fi
|
||||
if use d3d9; then
|
||||
if use staging; then
|
||||
PATCHES+=( "${D3D9_DIR}/staging-helper.patch" )
|
||||
else
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
fi
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use staging && myconf+=(
|
||||
--with-xattr
|
||||
$(use_with themes gtk3)
|
||||
$(use_with vaapi va)
|
||||
)
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine register --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine deregister --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,636 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
STAGING_P="wine-staging-${PV}"
|
||||
STAGING_DIR="${WORKDIR}/${STAGING_P}"
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with optional external patchsets"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
STAGING_EGIT_REPO_URI="https://github.com/wine-compholio/wine-staging.git"
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes s3tc samba scanner selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
pipelight? ( staging )
|
||||
s3tc? ( staging )
|
||||
test? ( abi_x86_32 )
|
||||
themes? ( staging )
|
||||
vaapi? ( staging )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
|
||||
themes? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
x11-libs/cairo[${MULTILIB_USEDEP}]
|
||||
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
|
||||
)
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.0 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
s3tc? ( >=media-libs/libtxc_dxtn-1.0.1-r1[${MULTILIB_USEDEP}] )
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
staging? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use staging || use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use staging; then
|
||||
local CURRENT_WINE_COMMIT=${EGIT_VERSION}
|
||||
|
||||
git-r3_fetch "${STAGING_EGIT_REPO_URI}" "${STAGING_COMMIT}"
|
||||
git-r3_checkout "${STAGING_EGIT_REPO_URI}" "${STAGING_DIR}"
|
||||
|
||||
local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
|
||||
|
||||
if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
|
||||
einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
|
||||
einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
|
||||
einfo "Example: WINE_COMMIT=${COMPAT_WINE_COMMIT} emerge -1 wine"
|
||||
fi
|
||||
fi
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use staging; then
|
||||
ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
|
||||
ewarn "Wine bugzilla should explicitly state that staging was used."
|
||||
|
||||
local STAGING_EXCLUDE=""
|
||||
STAGING_EXCLUDE="${STAGING_EXCLUDE} -W winhlp32-Flex_Workaround" # Avoid double patching https://bugs.winehq.org/show_bug.cgi?id=42132
|
||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
||||
|
||||
# Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
|
||||
ebegin "Running Wine-Staging patch installer"
|
||||
(
|
||||
set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
|
||||
cd "${STAGING_DIR}/patches"
|
||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
||||
)
|
||||
eend $? || die "Failed to apply Wine-Staging patches"
|
||||
fi
|
||||
if use d3d9; then
|
||||
if use staging; then
|
||||
PATCHES+=( "${D3D9_DIR}/staging-helper.patch" )
|
||||
else
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
fi
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use staging && myconf+=(
|
||||
--with-xattr
|
||||
$(use_with themes gtk3)
|
||||
$(use_with vaapi va)
|
||||
)
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine register --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine deregister --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,638 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
STAGING_P="wine-staging-${PV}"
|
||||
STAGING_DIR="${WORKDIR}/${STAGING_P}"
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with optional external patchsets"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
STAGING_EGIT_REPO_URI="https://github.com/wine-compholio/wine-staging.git"
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes s3tc samba scanner selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
pipelight? ( staging )
|
||||
s3tc? ( staging )
|
||||
test? ( abi_x86_32 )
|
||||
themes? ( staging )
|
||||
vaapi? ( staging )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
|
||||
themes? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
x11-libs/cairo[${MULTILIB_USEDEP}]
|
||||
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
|
||||
)
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.0 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
s3tc? ( >=media-libs/libtxc_dxtn-1.0.1-r1[${MULTILIB_USEDEP}] )
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
staging? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use staging || use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use staging; then
|
||||
local CURRENT_WINE_COMMIT=${EGIT_VERSION}
|
||||
|
||||
git-r3_fetch "${STAGING_EGIT_REPO_URI}" "${STAGING_COMMIT}"
|
||||
git-r3_checkout "${STAGING_EGIT_REPO_URI}" "${STAGING_DIR}"
|
||||
|
||||
local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
|
||||
|
||||
if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
|
||||
einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
|
||||
einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
|
||||
einfo "Example: WINE_COMMIT=${COMPAT_WINE_COMMIT} emerge -1 wine"
|
||||
fi
|
||||
fi
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use staging; then
|
||||
ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
|
||||
ewarn "Wine bugzilla should explicitly state that staging was used."
|
||||
|
||||
local STAGING_EXCLUDE=""
|
||||
STAGING_EXCLUDE="${STAGING_EXCLUDE} -W winhlp32-Flex_Workaround" # Avoid double patching https://bugs.winehq.org/show_bug.cgi?id=42132
|
||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
||||
|
||||
# Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
|
||||
ebegin "Running Wine-Staging patch installer"
|
||||
(
|
||||
set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
|
||||
cd "${STAGING_DIR}/patches"
|
||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
||||
)
|
||||
eend $? || die "Failed to apply Wine-Staging patches"
|
||||
fi
|
||||
if use d3d9; then
|
||||
if use staging; then
|
||||
PATCHES+=( "${D3D9_DIR}/staging-helper.patch" )
|
||||
else
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
fi
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with X xfixes)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use staging && myconf+=(
|
||||
--with-xattr
|
||||
$(use_with themes gtk3)
|
||||
$(use_with vaapi va)
|
||||
)
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine register --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine deregister --staging ${P} || die
|
||||
fi
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,63 +1,15 @@
|
|||
DIST gentoo-wine-patches-20170830.tar.xz 58456 SHA256 fb7781d0ae360cbc3860c2d2e81527a1b903da824c01f5d5040e95aaf99a3970 SHA512 5e5159e3252b246bba0ef7fdba345db3ab1071c5b8b8b625f98eda18779d4024c5b76bdbf49ce7bd5c6b01b422807adf76820beddb2b4a6ee9e67d13052cc575 WHIRLPOOL a79be264bab3fcdeee06fef47efd28e6e1125254ac7f82300cb6ba2591ef69cd76b5fed8f778b1849a0659e680e9fc785f0273d55cb2ed95648a74dffa5e22d2
|
||||
DIST wine-2.0.tar.bz2 23662707 SHA256 9756f5a2129b6a83ba701e546173cbff86caa671b0af73eb8f72c03b20c066c6 SHA512 b0a57ba8202d9fc396e5bfb7a7718d6bababbed8f3351e7fdc36afa37f35a871e04903757618f73427aeb71a52b2d323977d79e48f8b38d636f23fd404441186 WHIRLPOOL fa9f774d87dae73c7d1f3b86dc3b03ea27065eb6140f1cac13c82fe16f7ebff8f8365ed447220cf5c2788b9f4aae7c482e4f9e2e69f47e5435209e148f5dbdfe
|
||||
DIST wine-2.1.tar.xz 18887032 SHA256 bfb9abf63691c93df28d9599aaa866dc2b4e27209b3b7b546df8a37d7d9d1e6e SHA512 03d678ee6e89c2804813f2827255fcf59e96ca9a45b7d8ac441cfc84f835e5e5689c70a79a41a04c631e1add7807fa4a5758acef3bd7aadfb2e92e68958c6ef6 WHIRLPOOL 063d935f1ff0922100641f2f53cdac23d2993a83182d45e028e485fd7d0a13bc5cfb77bca76550b1537b3f42fecacef7fd64785adbf6425af823f56f96973b54
|
||||
DIST wine-2.10.tar.xz 19209580 SHA256 488df7ffd2e81da455bf428fc9eb784bb4273a890334500895665711bd52f179 SHA512 8807e16a571bf45d99097ad5fdfb9fe755f6dbe84010a330fed82f1d48c76b7f19589bfc0e5dde0b9e49a608fd0501db3f7e3e129e4d9d34bcae03bc51a73139 WHIRLPOOL e9a8248aac31593fbac28a3d8d4e62bfce14a7c41cc416ebfca8606518d28efd31b32196133da211f75f48bd228bd5d21fcbbc0479293e813ed99b258b37126e
|
||||
DIST wine-2.11.tar.xz 19251116 SHA256 efa96dade206aa21accf0da195335a805d38209d6a14320607c6308ebde4cc3c SHA512 691f329c47af5e51498287029988b8ca0777bfc3902ed80fd315004aba2337a938e79177e752efe86423c9b34544df3952b8c443bf43149356575fac75a779ac WHIRLPOOL 4933e1ce640b0abeebccd6969b5eaf4eec76cd135d9cfc1d904a902219f776a68f72e2bd1ae9019d69f0d0d81fd8ead0084785d1b9710590349365977f9c1817
|
||||
DIST wine-2.12.tar.xz 19301968 SHA256 496c11af841487e6ec4e1953ac19b05a7f48e397da502653ffbd9fe9004213a7 SHA512 d44c1937d7d2d797150381f70317b810616d61355a59be096366d3507f59b678cffaf6d841cecf02bf9d2afa3dbf4d19270f80fb1d3ba5f0f93787d40c328f62 WHIRLPOOL 6f4b9baa6fcfe86f3d195fe603c2b9450a72a593c8f7042959b42a76880cb4ae680fde7beb70a8e823150849fda36c42985035de891ebf0088c8ffc2bceb15bf
|
||||
DIST wine-2.13.tar.xz 19439328 SHA256 6fbca3ddd19b061ce65a267639efae93cf38cfabbe4a9c148a17a44703587ef8 SHA512 71873b9ec1605dd5f7502b87b0f3429c3d14a4196543d7304df455854b58ef82b8fafdcea91450cbfc01434a44886a0e0c4c4cf289ffb53167dde0f969cddc48 WHIRLPOOL 6faf1e6aeea2ab7ccc496ed85834f98eb25111c8f541c24d4876a142ad4acf7d9a4c08c2716e11fb6c92fe7aad29980cab912eb9dbb6759bdbdeca2f2f8e78a7
|
||||
DIST wine-2.14.tar.xz 19447812 SHA256 03f934d95181f728600ca04d395f10e821ee38cfa31655e872e4d27d2a8795c6 SHA512 ff43d386d46c0c74449e667b61d8cebd5fa768c88e6220aa2f13df03d80b71b6c0bdf8cbab023aed96f7c88b9787a3be4989da892fa1778412534ae82a7279bb WHIRLPOOL 2d2784e1b2ddeac39a3cea4cb08a62d99d1d062d8d801874e8bf4f56d2538a4cb019418c60299556548028e2362dd533d9ea0956014a65ac7a367ed489c0c392
|
||||
DIST wine-2.15.tar.xz 19463720 SHA256 d82d500cbf81fb08c711d3619bd52373138a05574d044f089af89707274868b3 SHA512 a52a42dd1f20fe68213c55a07ac5b2455150806e534f0ab77a8e9ae3d2f12840983fa92290dac569207d3640c7f45cda83801e9f2e80294863ffa854c6c89171 WHIRLPOOL 99c9497a44859ce310c764b3cd172d83ca1a2dce13633fee930ddbf1c40651ee4470f6bc9cfcb407ce65298a2afd73dc9edc536c2ba6f076631e5cf2085b8e61
|
||||
DIST wine-2.16.tar.xz 19484716 SHA256 a561edcabecd6c44948e5b2ef11941b2ba047275240418fa2c98c1fdceda2c21 SHA512 749a36b536506c4b63ff7512e316f44503cdb0db46e38a124da86df638f3e8ff9c404b034ece5cbb95cf20c09bc46be9a38f2ee66480aa6a4f2385e2a7a7eea4 WHIRLPOOL 92ae0a427d89b24d41d4565e333cf3b7499c1dfedb6d2a204f934975c35cb589d38b4f669890c1fd6a37b9fe8f34d98be3e7d0986e9ff99516fe00a004574520
|
||||
DIST wine-2.17.tar.xz 19505528 SHA256 7edc95739043ccc55957af663fb910318283dc5d1db42cd7f0224e30acfcea69 SHA512 cb10c876e689aa601c68673aab32c0514dd174692a01bdb3afc78d5e6079b0e77f48783af2f54245f397c762da3b4e5f2c1d39d2ce7fdb3b117d338b95c24810 WHIRLPOOL 196427a68ab3b1261cb63bafd7f82b7a688ad439fa82ae3fc04b18c9da14cc8e95b827ca8ddd07124e1179c55ed0e0aba3bdcb4639b724a6dacf4952e8827e16
|
||||
DIST wine-2.18.tar.xz 19546360 SHA256 9f0931129878157d717cb39f16cd33bf49f40aac77331c93d0ad30f2ccac4f50 SHA512 61cc39fa3d2b0a0ab3c5d17579865e6aea76dd9513a4b3c45975a2d5c05f2b4ba952b97eef547131a014763c7f692a08df29bc2ebf7e4ac7e2616e6a7822ddb9 WHIRLPOOL e864dd1705c0480d3f3095aa02ab1e7bc5b41693cd6b791cdf05e636c7099562020ac3adcba6421653efdf5dbe232b5abe9071792785e008ea30dedbb63e080e
|
||||
DIST wine-2.19.tar.xz 19549464 SHA256 487131e69875ae9c2d042798f954160146e603e449c3c97981f29b42f4a66095 SHA512 83558231bdc592b1f69cfedf6c689063df7bd9fecdfafba6fb7f6a2c7fa7783973efb85a6a49305afc18b1aa268209ee5b9c0655756e05d7550468698dfa51ae WHIRLPOOL 123aec3a367e67353655d940ba2ffe9386a583afbd0961dd3f446a00b0cf82ad4ed590508e03bf2a4e60b11753f8f430e748e6614f476675423f3bdaf7089288
|
||||
DIST wine-2.2.tar.xz 18916364 SHA256 64cb57e1d8aa07f5c89ef26743b494f2d3ef9c0f4e50d3ee896a93535f7751f4 SHA512 0700868244d397c1442948716321e5ff030c667edce464570f76aa4340199489a422872aa3975bc0a57b8285c9d59fc04e223a4bde094169fc6db460acb626c4 WHIRLPOOL ffc3d357a76592651b589c6ac6608720d0258474890faf8fe3e20ac29cdd1496d569721256f9389d347bf2734a556099154fd18ef1b56f45bb46c4c15771d6ca
|
||||
DIST wine-2.3.tar.xz 18931732 SHA256 afc95c7a87cc8f0730b462c50a5dfc9c462eb02c6bf5874b4fa99946f49e067e SHA512 bea78e8468555ff9e08dedf3918da5ea82721549c43984869989bbdafeea00e454820ff9558aa29925c97a165a9b01e5cd1fd397f133833c58824984a6686171 WHIRLPOOL 1f5ec8e5c32d124277e4c71d95726d3a5337575757c3029567c77165d65fcfec2ddf33d3863b4bf55c9eff7c3582c1ec7dbd76d84ed8bbbe89dd16db6b0128c1
|
||||
DIST wine-2.4.tar.xz 18953748 SHA256 87b5df07e4781fecce2f92415a4717208ea253a20a0df8b36b9f90b69b72748e SHA512 15ae7e97dc72a8636b2c15c93803ed430fa456d673add61457cf3e479e769559c682b40949b5d38828f6681f13183e560fcb4a2eb0f0ba25e6eade46f7d3d7c0 WHIRLPOOL 558ab7b7517ad5e03366b4db974047eba776585e958a5b71bb2e93993e21bc725ea7a8bcf2a4354f34ca38c94ba99ccd15f2f8b5e4b58066bf339d3517eec56c
|
||||
DIST wine-2.5.tar.xz 18993176 SHA256 13f92b7ab483323aaabbc6519851e688ad4372ea30569961c831d40d6d3bccd2 SHA512 7b6faf6d8aa3d41465ad93ebae055581136f736c7eb8b4c61682e5a05589c83a0ff2c85e0f9abbca016f31b6f1c1435617c4994f1913f715a8707ebee3f28467 WHIRLPOOL 5acd2ac65df5dee1c860ddca72b8df8e021a0b95a3a1870d15468ce4591d569fa15bf8a0a6d341bcd3a624d13d0affe5b0263e67f9dfcbbf3ae7b59218dcded9
|
||||
DIST wine-2.6.tar.xz 19023352 SHA256 e6ff64758f437647e99a36c1275e41adf54f0432907172d3bba22b070a97aac0 SHA512 2aa55413ac090e011725566d004e42ee46323cd4c6961b9faa63e3de422ba60bb657bf224a4d7e8aa712a8e26e11977d07acb7c088ffeef8c37310e8cc698970 WHIRLPOOL 82e6a06cc342c7d6eace64a97bae10cc39c120c5776170b059700542b8b6fef56be9a697f05b3bc21ae82621f4bf50f3ab478311c9a3a55d86ed7c0a009766b0
|
||||
DIST wine-2.7.tar.xz 19101108 SHA256 e55a43088e313c45f7ab49272b7cb441c06f5659fb4220b2325dc060db0ee14c SHA512 1e61b9a4aa1f5f42fb27d11d5254a9ba90f348ad9c4d1ddd4b5da47cd7de638290a20accf7447db9c0e4ced4c2144497cdf5fc906a5eac60e923dabb61f65d3a WHIRLPOOL 133426a0313facc856eebad3d16d199948b780ce4c4561e5784845c119fe462b8942ed86fa5e823e729a997d704bd3c70f44a64ce3eef965b4f3eb92587dfa4d
|
||||
DIST wine-2.8.tar.xz 19120740 SHA256 83e9607af66d86020dc27a368ebba28fa7e8ffecfdf8f149da06b3531ac3e579 SHA512 4d0b167b1e5add31ed0ed05b328d16fc13cd268285c03a9100e7ddc53864aa07f6b216a555ef0c2e51dee550e3f4abf0c7c20db2cbca177bb38e8c3e11f05b97 WHIRLPOOL 568cf46caf7322eb5e26b364bd15f9e80c41a65340952a1ee0fa80514bbee3c5adfa72af40809a978a5d4202f5e8d3da3e4581767bab9fa08ab441cdd5d1da31
|
||||
DIST wine-2.9.tar.xz 19154668 SHA256 ac46f7bbbbc1dc135c95e4f98d28bf6e3d7a78fb7f9ba6caa7354a3e8786545f SHA512 6d06e511d8f338297ed0ddb7bf2ffb501f528209eaecbbee3d4e5d53db649dd5ea0aeb78bba661a9bcfda5f97e170ca10eb8fab355e229bfe7db6a5feb7ec4e8 WHIRLPOOL 7355166aeaac54abb6e1d25da6f87a4814d37764044e95462bc2a83f8d5a9b7a3bb10730bb5506516e130a4fc9ee35e3656d1106939bbbc1310c6aff0d798a1c
|
||||
DIST wine-d3d9-2.0.tar.gz 48373 SHA256 7bfac23706723c6d51a7a95e416e47fb2678cd4d0945b990f74eba2b059e6206 SHA512 a9e2d1c9f2784128e4c53a8dc923070a5057b5ff3d83c2b536a2d2df0bc8433ac92b8ab1c3cdf34158c0e7bfe497ddb5974605fbc1736a92307639d59450c7a1 WHIRLPOOL 53044c0a4b7159c3af75fc935d1ac45030e80dbfd70d787f64885ddc025cfcd62f724c3256e389a7fde680670e594101955f52301cf6b9bbf23ebc64552790c2
|
||||
DIST wine-d3d9-2.1.tar.gz 48385 SHA256 9fd80e3e2ea905272c42dbc14679e94c8e2f955101ae098c84060d4c62ffc9c6 SHA512 9234d8227412d940a6befcf79433f1d5ab0634d5e829f3771ffeea235af05be29ffc40438818b1976c77d1e2e79da8a67c4dab2b7d2e822b502fb6e4a1a7f8b7 WHIRLPOOL 790e482850a13c5bf0967e900620c36d71c4d6673106f8f5c2848550ed574d326d3945d9906de88d847bb5644a520aab7fe6d460b3c3afd49a396798dd253392
|
||||
DIST wine-d3d9-2.10.tar.gz 48713 SHA256 62a199a239fca4f172f9ff871086196f8eeb35483d7bcab4acb144c05e60debb SHA512 808241f545e60c0546ff3918cac28e2abb6fe8496e8ade3cfa8bf81612724e827d31787d1d320cbac80b71a5d6180bcc8e51249c12c099e44637e0bb9f4875cd WHIRLPOOL a8c58c5321107b958780348aebad41d57ac0a3a307e176715950e1ed1eae7d19d858db3f9b0e5cb86484919d683321ff6fc19ec1696ba5418e0d2dd861bfaff4
|
||||
DIST wine-d3d9-2.11.tar.gz 48714 SHA256 3432863940fdb9ea6f36688d670c6fe800e7359d7b18723828447bedf694b786 SHA512 716dad66fce962246e57a29c239d6b69b78656a11d01a421b490ad61c2c3dd9850b34e2346319a6a35c2a01e0c28193adf78f21b9de1ffde95a06d5fae51fe0d WHIRLPOOL eeef55dca716a68e03b84d4f916955c4194810c1c460a55a30ac2c4257e256b8fc709837d7b35aa86ce3f523f2b9c11222b9096ae4d87979f1fee4a8257ddabb
|
||||
DIST wine-d3d9-2.12.tar.gz 48716 SHA256 544e8b901b2fe1e0da90828f07683abf45794a3a41fdfae20eb5d29b5ee7d22b SHA512 8fe9b37ff54372984a234b18037bc736f69f2adf41478f037bc93e3d72893c46174fc3fbff78042ac66bb03d31ea85d293dbadc2b32630218ae53be8e360425d WHIRLPOOL 17f28bafb20c559424945ff92041a5c634b8775a8e97ed8aa940308fa815f2b3cfa48499a58a511fc5c33bde47db07008d168d8b0c103eec379ba27b33b8ffdd
|
||||
DIST wine-d3d9-2.13.tar.gz 48711 SHA256 738583d1ad80ddeff5d437ef07885e25a2bba7da9d161ee01e45fef246edd327 SHA512 75481c73c88757c4f15eb00dc427d873ea71109f18fd64c758e858bb2fc2dc1ee7cc29ee912ec93f254186f2055277d07e2e4f1d2ee3c537c76601aa009cf632 WHIRLPOOL 57c5cd0903151eed7c2b719831581aa3216c0fc49a257f7fb9e872ca698a330b5a10d50c945937924c7efefa497dc14117a35c5b39fbccf14cb1fb711e5bbe98
|
||||
DIST wine-d3d9-2.14.tar.gz 48718 SHA256 71a3aff0b348f033d4ca610e34ce6faa02eb2b5c822fa2e00b372de66541ffd4 SHA512 77aa93ac9b1a81581c27e74641722666026e2e6e03def57955a05fc76c6c02730271a562130dc87ed1caefc9b00b3e0421b2640fa17165aef2f8be5da0cf07d3 WHIRLPOOL 1319fdfb4426a0a294702a5c43641008654a1352d91d23b9bd422d83fb5cd50053110052eef09ae128dfb570523d9208272abd21cb5975adff060fe7d31ac5ad
|
||||
DIST wine-d3d9-2.15.tar.gz 48717 SHA256 c0aa58e7fa3b595c38cf06fe72b54a096e43e526142a7576f839ed8aaa85cabf SHA512 5298de273fc95f65ee481416f8ed16059f244e3781058cb76ee60b6a85aaf8d977a619c75cccd08aadeac9aae9ad2e08b49c5b52ab141cbff351a4b001e7c434 WHIRLPOOL 63337e2c86be5ff2fc16ff0817719ed668360ad2258b095e88b98b1f31e382593b14cabdcb8be58a6dc0cc047cd67a3eb1f14d3ecb806ba2ac9c6f7102368c94
|
||||
DIST wine-d3d9-2.16.tar.gz 48728 SHA256 2a681d28a4e042437c32ecf3f92c7abaadc862feba6aacf0df76469acab98f3e SHA512 f3950d7e34ec537b95b963fb3b35ee3729c1b3f9d8c225e96ae9ab9cf8011571ba22105a17309c481f3a504a8aa4d5ae04270691c49098924aa2f72463b79e08 WHIRLPOOL c1f3cb0922cb381f6e2aa7fd54538b98dbd04daa7f36f66742af4c544c80e894e33ebf4866520af35faec27519f0015cd5cc1139fe191bb0b3192cb2134035c3
|
||||
DIST wine-d3d9-2.17.tar.gz 48722 SHA256 557ae75a68529f282f1f5e7e9991892d7d994f199060ced43db22291ec66fe71 SHA512 530d44a968a68e06449da2286b8c9740a80b681ff610f6ddc87e6fb569e6c29181341266a04238965a7bfc209e20c1521847b70daa8d3532c2a269db0d200154 WHIRLPOOL 0c70a88949eaa27ebbc28a6951651e4b55166c1d54a8db6d9fdfe3f516d2f4e24ba0f08defddf637b9c2ed0702b250af4d41146684b79e90d84aefe284351059
|
||||
DIST wine-d3d9-2.18.tar.gz 48722 SHA256 d1b5210d4228ddcc60f76b4a8694d5feb4e3c68ca4436666ee182c8b14f25356 SHA512 0e66c51e1957b27ccb9f326b0aaf2b0d09b7bbc9d03e1d321aa1789d2560b8e60fd83c4e86999d96a03aa73a37c96f34d93245763969a314150900741aa03933 WHIRLPOOL c879d7ca20e2b339ab1ad862274320ceced84693311dfc02652a83304d0beb263a59e8978fae65ad50bbb51eaac51988ab2a0105c50dafa9176caf1baa791506
|
||||
DIST wine-d3d9-2.19.tar.gz 48818 SHA256 54b5fbda45585304e65665e5b2da96a8dc30398c3f8ee12b77a613970b5af9f9 SHA512 be43435cd53f367ca57080c08218db302a90bf85ec6e917e89375904c456b585b61fb6053f9b4366b7e844f8246cabe83460a9866f614dbb5df3edfb43b2f54a WHIRLPOOL bec78732ad8b0036999c4e481e2d6f50d2ec4002590f15fbebab740bbddbc5069f77853993a122ccc03b24cf2b6c76b80117b000648a97fec09eba988c792f57
|
||||
DIST wine-d3d9-2.2.tar.gz 48387 SHA256 203ed60980ec584c09b413266728e3a93e2d980dbff9b4f65375a4e9744b5042 SHA512 6e9e031b51afc8ec200bbd252ff0d768c29af23907f782409834de593f896afb128f86fe012c95dc18e5f3c7267f170eb343d2a2c53d639933a337f0c1e04fab WHIRLPOOL 6b32c0dfd3068e87d94bbcd83718dd75a14b36d69b151e9257e04793d2d3ae78ce7da10b80cbc824ccefb6c11666241593f91963ddee6a58301f95bbde35285d
|
||||
DIST wine-d3d9-2.3.tar.gz 48510 SHA256 fc17488a782def19fc02bf967128ab43236db49509e31771361a60fa3d17dd60 SHA512 58449f6b7ed7fd8182e2cce92e1d1195bf64a567c1cc92fd3f46af195e7e4039c3b2a128be9d3572d9067be6c1bb020f417c6d558bb551c60096c107067177b8 WHIRLPOOL f648a921cf4cd257a3a7dfbd3abf45d58c07782f329ec11c3a1eff3afe32e8040adb351d4a60e1b1f78c7cae0379f23468764ad162a101179d0f5b0e2c6d9413
|
||||
DIST wine-d3d9-2.4.tar.gz 48502 SHA256 4c7084e733d95545b894b152b2c6c9564dfb8df594cfeb1512dad80743b39ae0 SHA512 623b1720b8cd79ab6ad2a177b9beb174f31e6fc402d6885fa2006223c855919c6f5d4267c64212ecf8cf1746430c9715c506343fb740828fc99910f916b10ebe WHIRLPOOL 9c0ea34dedc2e39ce36f1539a6d761ba07429b316a1f7fad49067eec5c28a5c60b33b3d2473cbf66b009d9772c1fb123414bfa201eb8df3e61f8efc38aa1f3fa
|
||||
DIST wine-d3d9-2.5.tar.gz 48692 SHA256 8b28c16701ec1cefab11d41d00954a92a5ced9a63f1ede81e96f247d2f498f94 SHA512 8b5ebec6341f70ec977aabee35decbe2d22fe43e111c1fd6015066a2b0e4fd259cd964fdb79306a489be4406078cb1e241d90ed636222174ed4abcc8026e7d03 WHIRLPOOL d5fcc5fbea4c4a4900235d33cb5de8f2a7cbf2b51b1a5c47d75ab765aa88ce1f8f81a61eefe0a742a55bb2ca210747b345589628fd1020430e4d962319b1c6fe
|
||||
DIST wine-d3d9-2.6.tar.gz 48702 SHA256 06ed18f2d5fff04613ea1401c37ad70e163135c159528745ff1063d617f31e2d SHA512 17df692df8ff3c1419258a3faf9ddacde67f185a797dce76cd07c07e6f4fa2040b981662d311329a80921c039bfba0da5fed3ee53f8c36e34eeaa92af1c7b755 WHIRLPOOL e614b4af0f3c92113617f533255fd67a4b322bdaf0939fb98e09bf77e3b0437cb2b813032e33300e45294a60d5c3586a302669c28c293e180c775666cddc2581
|
||||
DIST wine-d3d9-2.7.tar.gz 48708 SHA256 df6ed1e50d8af0624b8f4f658705f75102094f6e17fec53ec8461991ce5dca2a SHA512 d258e81a942f905255a637aa80dd647878691caa79adc52fd79f66ce1320d42d7d36ea776876d6a26a2c711a168da4c64f27fa8744ca6d8318c5526f8a8af75a WHIRLPOOL 2d62cab5e3b14eaf29ecc96ac97555f48845a78c751040a850750d3b19fbc64efb3f3589dd3475a03cb1e3dff3e200528dabd2952b1ee8d0520a5db0d7db154b
|
||||
DIST wine-d3d9-2.8.tar.gz 48700 SHA256 c67de9fee6e97859896aa2326fbc245e8b0f7393a1c6341126607b03afebc964 SHA512 bb933b51d0022ce616331f2550faedeff3058007525b4519833b925c57999ab08b08380b8967d48ad7c56458e812342428388a5eac2ed8fcdd8cfbfee74a8e8c WHIRLPOOL 52c8538e3f4b3be3412ee544efebae69c3de781255e12298d544f47523aba3afaadbffa8dedc463c207b0ae8a0a92599beca17017f266648b9b229847990ae2e
|
||||
DIST wine-d3d9-2.9.tar.gz 48693 SHA256 32b847adf74c293e858800248aa1b164688f98cde89ca4d2cd0808fae7f94340 SHA512 89d06587481f7702b6884c83627a27c7b38a078e2b333bea2612a58840695211c19ab4ca02669c983580f95ae42ef114020f6b6bbb1a17d72449c0ed2212dc49 WHIRLPOOL e32b261f6e87580eec2c2ee57848b08b2487d1f280b8b257403e0722ec1b44cb31dcb240d89757599be2c3c6d958c48f92510bc625e5c05fc08116d13c303168
|
||||
DIST gentoo-wine-patches-20170830.tar.xz 58456 BLAKE2B 86445a6d91d9981d069ff2fb3b64a47e166c76b4721ef877c74cd60e359ee5bdbe36ebf37cf796a18e9cf42dbc69ce1496777144fc28b072f47c965173bf48b4 SHA512 5e5159e3252b246bba0ef7fdba345db3ab1071c5b8b8b625f98eda18779d4024c5b76bdbf49ce7bd5c6b01b422807adf76820beddb2b4a6ee9e67d13052cc575
|
||||
DIST wine-2.0.tar.bz2 23662707 BLAKE2B 1d485c1359ce8a0395a9f6378c1f8be33ea2836b80390d1eb1095057a0acedd21708daab16e1851a315391b9f9b0a360879b9d98c73bcc8371c5023e9a8037f5 SHA512 b0a57ba8202d9fc396e5bfb7a7718d6bababbed8f3351e7fdc36afa37f35a871e04903757618f73427aeb71a52b2d323977d79e48f8b38d636f23fd404441186
|
||||
DIST wine-2.17.tar.xz 19505528 BLAKE2B 5b4b0c708fb4c5bb7367ad87fd4438b75fbe84fa4fb0f4514aa816de771f91f38dc76da80410fa25711b060c26d95127c49d2ce0db613e3560a04d7bf2bff4f7 SHA512 cb10c876e689aa601c68673aab32c0514dd174692a01bdb3afc78d5e6079b0e77f48783af2f54245f397c762da3b4e5f2c1d39d2ce7fdb3b117d338b95c24810
|
||||
DIST wine-2.18.tar.xz 19546360 BLAKE2B 711b1396160b325a3021f066cc80eda0e2eb69c46ab671c6a4d1f417d0c2439e53854d37fee8507296386d1a828484af93e833f6c08413fd2571c03477e97386 SHA512 61cc39fa3d2b0a0ab3c5d17579865e6aea76dd9513a4b3c45975a2d5c05f2b4ba952b97eef547131a014763c7f692a08df29bc2ebf7e4ac7e2616e6a7822ddb9
|
||||
DIST wine-2.19.tar.xz 19549464 BLAKE2B 86d130cc43d7d674d2f478365952962b2792fd585b8d074564108bc7e9f4f7690337e4758b9a24e54fe8fd60187d3a96496a5ffc454ba674b02ecdde68efd3bb SHA512 83558231bdc592b1f69cfedf6c689063df7bd9fecdfafba6fb7f6a2c7fa7783973efb85a6a49305afc18b1aa268209ee5b9c0655756e05d7550468698dfa51ae
|
||||
DIST wine-d3d9-2.0.tar.gz 48373 BLAKE2B 80370a7519141030a7e54c2ea5db410b2bf1cde8d8389618487c52e4ff40f87cf7b0f9087331bb43fa6436e1b9936de9cc00a02b9ab9ce6528635a245e6a8b3f SHA512 a9e2d1c9f2784128e4c53a8dc923070a5057b5ff3d83c2b536a2d2df0bc8433ac92b8ab1c3cdf34158c0e7bfe497ddb5974605fbc1736a92307639d59450c7a1
|
||||
DIST wine-d3d9-2.17.tar.gz 48722 BLAKE2B fa226943210349feb1b906233010fe874b28caf385fca6749a84903c5eba2ed7303a6a7b0e2a15dfe20af399ec9d755ad7ed71c18248018d3968c1e1bcc44951 SHA512 530d44a968a68e06449da2286b8c9740a80b681ff610f6ddc87e6fb569e6c29181341266a04238965a7bfc209e20c1521847b70daa8d3532c2a269db0d200154
|
||||
DIST wine-d3d9-2.18.tar.gz 48722 BLAKE2B 47bfd1514cf135b84be7b2a9843e3125acae6f7f817443730498739290503921f998455e1e093ad15c4ac68e020af447add9dfdc4385cbc9bf7af6f3143583f5 SHA512 0e66c51e1957b27ccb9f326b0aaf2b0d09b7bbc9d03e1d321aa1789d2560b8e60fd83c4e86999d96a03aa73a37c96f34d93245763969a314150900741aa03933
|
||||
DIST wine-d3d9-2.19.tar.gz 48818 BLAKE2B b053ee0ad798a7d8ad53b3daff1757caaa52f095435f2fb89893c7313d490a2359217a5638529e918a1446f13533a746836c1c22218cba875a1420816618408a SHA512 be43435cd53f367ca57080c08218db302a90bf85ec6e917e89375904c456b585b61fb6053f9b4366b7e844f8246cabe83460a9866f614dbb5df3edfb43b2f54a
|
||||
EBUILD wine-d3d9-2.0-r1.ebuild 18550 BLAKE2B 01fdc9d3b7693c632ecbb5b02be216760a49fc17285ee7bf4c58bc532721d5d5241ae65d703db3416a2449f12763137a2db4c7d8daa9211199f542fa133085ff SHA512 bab4e3dba15b15ef1c6a92a3a3644d22dfc64d579aa75f802610daf6388b3a342fff141494f980438ea2183676cf9f781c62c6114afdb2254e1a3755f8194de6
|
||||
EBUILD wine-d3d9-2.1-r1.ebuild 18549 BLAKE2B 436d846e2092b2233109ed3ec0876ba1921122f2c4e165b3e6033bc4fbc5ef01bdbebdbff3c87aba2b35f7b4e800f54f1851083140f43e573c9c8c2d5b150626 SHA512 3d093f32b5d7d67590acaf44072c96035d2fca32ef8be7fa8b703a532c75b127c905b346c5889ff8cfde792648d8c4c39bbbc9604c7d313003305b022dc87d3a
|
||||
EBUILD wine-d3d9-2.10-r1.ebuild 18613 BLAKE2B 99f7c4dff750201e05f3fdaa7eac016595464a74a43cec55775a18ee31f03db629c9083247d2621ceb5665912bcd040e2847d03a921420bfc6b42d14840ff101 SHA512 59eec4428937ee2041e5182ed75f534ac5668ca4340ade988462864a195affd001ae4b2ec118a757ac5569509ae77a9d3a0b2438c1bf9152f16d48c58f294fdb
|
||||
EBUILD wine-d3d9-2.11-r1.ebuild 18613 BLAKE2B 99f7c4dff750201e05f3fdaa7eac016595464a74a43cec55775a18ee31f03db629c9083247d2621ceb5665912bcd040e2847d03a921420bfc6b42d14840ff101 SHA512 59eec4428937ee2041e5182ed75f534ac5668ca4340ade988462864a195affd001ae4b2ec118a757ac5569509ae77a9d3a0b2438c1bf9152f16d48c58f294fdb
|
||||
EBUILD wine-d3d9-2.12-r1.ebuild 18613 BLAKE2B 99f7c4dff750201e05f3fdaa7eac016595464a74a43cec55775a18ee31f03db629c9083247d2621ceb5665912bcd040e2847d03a921420bfc6b42d14840ff101 SHA512 59eec4428937ee2041e5182ed75f534ac5668ca4340ade988462864a195affd001ae4b2ec118a757ac5569509ae77a9d3a0b2438c1bf9152f16d48c58f294fdb
|
||||
EBUILD wine-d3d9-2.13-r1.ebuild 18613 BLAKE2B 99f7c4dff750201e05f3fdaa7eac016595464a74a43cec55775a18ee31f03db629c9083247d2621ceb5665912bcd040e2847d03a921420bfc6b42d14840ff101 SHA512 59eec4428937ee2041e5182ed75f534ac5668ca4340ade988462864a195affd001ae4b2ec118a757ac5569509ae77a9d3a0b2438c1bf9152f16d48c58f294fdb
|
||||
EBUILD wine-d3d9-2.14-r1.ebuild 18613 BLAKE2B d0bd6a860c43343ba74467c783e5c027ebc8432bbc35c5f978c08741ae0d6f1c2303ca4c1d06d5b8e7a8c9fcc4ceaee49ffec39d15551fc08a117952cad452a2 SHA512 eb38e3fb9f40c45e7eb7cd7a5eb14a1337266438b9177b8ff41bbbecc557141ef24eccd67892a4ad9c50cf57793e08169607a6a37c807398a7ccc21b9bfc2ce3
|
||||
EBUILD wine-d3d9-2.15-r1.ebuild 18613 BLAKE2B d0bd6a860c43343ba74467c783e5c027ebc8432bbc35c5f978c08741ae0d6f1c2303ca4c1d06d5b8e7a8c9fcc4ceaee49ffec39d15551fc08a117952cad452a2 SHA512 eb38e3fb9f40c45e7eb7cd7a5eb14a1337266438b9177b8ff41bbbecc557141ef24eccd67892a4ad9c50cf57793e08169607a6a37c807398a7ccc21b9bfc2ce3
|
||||
EBUILD wine-d3d9-2.16-r1.ebuild 18613 BLAKE2B d0bd6a860c43343ba74467c783e5c027ebc8432bbc35c5f978c08741ae0d6f1c2303ca4c1d06d5b8e7a8c9fcc4ceaee49ffec39d15551fc08a117952cad452a2 SHA512 eb38e3fb9f40c45e7eb7cd7a5eb14a1337266438b9177b8ff41bbbecc557141ef24eccd67892a4ad9c50cf57793e08169607a6a37c807398a7ccc21b9bfc2ce3
|
||||
EBUILD wine-d3d9-2.17-r1.ebuild 18613 BLAKE2B d0bd6a860c43343ba74467c783e5c027ebc8432bbc35c5f978c08741ae0d6f1c2303ca4c1d06d5b8e7a8c9fcc4ceaee49ffec39d15551fc08a117952cad452a2 SHA512 eb38e3fb9f40c45e7eb7cd7a5eb14a1337266438b9177b8ff41bbbecc557141ef24eccd67892a4ad9c50cf57793e08169607a6a37c807398a7ccc21b9bfc2ce3
|
||||
EBUILD wine-d3d9-2.18.ebuild 18423 BLAKE2B 475631fe63bf94c94517a794434f312ec8f8e20e86e7fb293ffc219d9c3af62966893f6d521057158acd7b1ccc4f602760cda3351aea49bd6b2e960de2755f99 SHA512 313b82c024888c5fde974975cb129cd2913662963cbdd14c97b29174c3e1a32df11af91630d7302d0b545f952cc2bc3e47f7c1ed3e640ab933d5727078257b3b
|
||||
EBUILD wine-d3d9-2.19.ebuild 18423 BLAKE2B 475631fe63bf94c94517a794434f312ec8f8e20e86e7fb293ffc219d9c3af62966893f6d521057158acd7b1ccc4f602760cda3351aea49bd6b2e960de2755f99 SHA512 313b82c024888c5fde974975cb129cd2913662963cbdd14c97b29174c3e1a32df11af91630d7302d0b545f952cc2bc3e47f7c1ed3e640ab933d5727078257b3b
|
||||
EBUILD wine-d3d9-2.2-r1.ebuild 18549 BLAKE2B 436d846e2092b2233109ed3ec0876ba1921122f2c4e165b3e6033bc4fbc5ef01bdbebdbff3c87aba2b35f7b4e800f54f1851083140f43e573c9c8c2d5b150626 SHA512 3d093f32b5d7d67590acaf44072c96035d2fca32ef8be7fa8b703a532c75b127c905b346c5889ff8cfde792648d8c4c39bbbc9604c7d313003305b022dc87d3a
|
||||
EBUILD wine-d3d9-2.3-r1.ebuild 18549 BLAKE2B 436d846e2092b2233109ed3ec0876ba1921122f2c4e165b3e6033bc4fbc5ef01bdbebdbff3c87aba2b35f7b4e800f54f1851083140f43e573c9c8c2d5b150626 SHA512 3d093f32b5d7d67590acaf44072c96035d2fca32ef8be7fa8b703a532c75b127c905b346c5889ff8cfde792648d8c4c39bbbc9604c7d313003305b022dc87d3a
|
||||
EBUILD wine-d3d9-2.4-r1.ebuild 18549 BLAKE2B 5b15fdfba72cf1a1bdd6c1d8e9bdcc93704225c3c301e22f2d847e50a0f6127138e73ab6e3d92a0ec080b82df309031ce2acf9775702f79568b600c35284d0aa SHA512 ade566b963c5b116dd399195f00c759cb39a0b13292f98da74ee2041f7e70ffdffe1cc8a3aff683c0a2b2137c25460a61de431337a8644be491cb9de55ca14be
|
||||
EBUILD wine-d3d9-2.5-r1.ebuild 18549 BLAKE2B 5b15fdfba72cf1a1bdd6c1d8e9bdcc93704225c3c301e22f2d847e50a0f6127138e73ab6e3d92a0ec080b82df309031ce2acf9775702f79568b600c35284d0aa SHA512 ade566b963c5b116dd399195f00c759cb39a0b13292f98da74ee2041f7e70ffdffe1cc8a3aff683c0a2b2137c25460a61de431337a8644be491cb9de55ca14be
|
||||
EBUILD wine-d3d9-2.6-r1.ebuild 18549 BLAKE2B 5b15fdfba72cf1a1bdd6c1d8e9bdcc93704225c3c301e22f2d847e50a0f6127138e73ab6e3d92a0ec080b82df309031ce2acf9775702f79568b600c35284d0aa SHA512 ade566b963c5b116dd399195f00c759cb39a0b13292f98da74ee2041f7e70ffdffe1cc8a3aff683c0a2b2137c25460a61de431337a8644be491cb9de55ca14be
|
||||
EBUILD wine-d3d9-2.7-r1.ebuild 18549 BLAKE2B 5b15fdfba72cf1a1bdd6c1d8e9bdcc93704225c3c301e22f2d847e50a0f6127138e73ab6e3d92a0ec080b82df309031ce2acf9775702f79568b600c35284d0aa SHA512 ade566b963c5b116dd399195f00c759cb39a0b13292f98da74ee2041f7e70ffdffe1cc8a3aff683c0a2b2137c25460a61de431337a8644be491cb9de55ca14be
|
||||
EBUILD wine-d3d9-2.8-r1.ebuild 18549 BLAKE2B 5b15fdfba72cf1a1bdd6c1d8e9bdcc93704225c3c301e22f2d847e50a0f6127138e73ab6e3d92a0ec080b82df309031ce2acf9775702f79568b600c35284d0aa SHA512 ade566b963c5b116dd399195f00c759cb39a0b13292f98da74ee2041f7e70ffdffe1cc8a3aff683c0a2b2137c25460a61de431337a8644be491cb9de55ca14be
|
||||
EBUILD wine-d3d9-2.9-r1.ebuild 18613 BLAKE2B 99f7c4dff750201e05f3fdaa7eac016595464a74a43cec55775a18ee31f03db629c9083247d2621ceb5665912bcd040e2847d03a921420bfc6b42d14840ff101 SHA512 59eec4428937ee2041e5182ed75f534ac5668ca4340ade988462864a195affd001ae4b2ec118a757ac5569509ae77a9d3a0b2438c1bf9152f16d48c58f294fdb
|
||||
EBUILD wine-d3d9-9999.ebuild 18423 BLAKE2B 475631fe63bf94c94517a794434f312ec8f8e20e86e7fb293ffc219d9c3af62966893f6d521057158acd7b1ccc4f602760cda3351aea49bd6b2e960de2755f99 SHA512 313b82c024888c5fde974975cb129cd2913662963cbdd14c97b29174c3e1a32df11af91630d7302d0b545f952cc2bc3e47f7c1ed3e640ab933d5727078257b3b
|
||||
MISC metadata.xml 2847 BLAKE2B 3812c6a1ab5c6e0afaf377d01df19779bfbf76a8dad4061f08c352e9ef7a6ef1eb7a4546f189373929930a147cdcb2d55f29473cd5cbb6de3625680b02a34a68 SHA512 aa92412a3858822c2bf82c517008a2730eb9710126b1ef336020c3085c4e36503ee921661bd88a5b20d9fa01b539fbcee617620a7c7762665592d8cd711863a0
|
||||
|
|
|
@ -1,570 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Gallium Nine patchset"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner selinux +ssl test +threads +truetype udev +udisks v4l +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.6.4 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use d3d9; then
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,572 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Gallium Nine patchset"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner selinux +ssl test +threads +truetype udev +udisks v4l +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.0 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use d3d9; then
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with X xfixes)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,572 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Gallium Nine patchset"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner selinux +ssl test +threads +truetype udev +udisks v4l +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.0 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use d3d9; then
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with X xfixes)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,572 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Gallium Nine patchset"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner selinux +ssl test +threads +truetype udev +udisks v4l +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.0 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use d3d9; then
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with X xfixes)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,572 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Gallium Nine patchset"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner selinux +ssl test +threads +truetype udev +udisks v4l +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.0 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use d3d9; then
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with X xfixes)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,572 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Gallium Nine patchset"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner selinux +ssl test +threads +truetype udev +udisks v4l +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.1 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use d3d9; then
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with X xfixes)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,572 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Gallium Nine patchset"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner selinux +ssl test +threads +truetype udev +udisks v4l +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.1 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use d3d9; then
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with X xfixes)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,572 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Gallium Nine patchset"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner selinux +ssl test +threads +truetype udev +udisks v4l +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.1 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use d3d9; then
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with X xfixes)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,570 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Gallium Nine patchset"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner selinux +ssl test +threads +truetype udev +udisks v4l +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.6.4 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use d3d9; then
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,570 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Gallium Nine patchset"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner selinux +ssl test +threads +truetype udev +udisks v4l +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.6.4 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use d3d9; then
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,570 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Gallium Nine patchset"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner selinux +ssl test +threads +truetype udev +udisks v4l +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.0 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use d3d9; then
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,570 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Gallium Nine patchset"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner selinux +ssl test +threads +truetype udev +udisks v4l +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.0 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use d3d9; then
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,570 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Gallium Nine patchset"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner selinux +ssl test +threads +truetype udev +udisks v4l +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.0 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use d3d9; then
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,570 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Gallium Nine patchset"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner selinux +ssl test +threads +truetype udev +udisks v4l +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.0 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use d3d9; then
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,570 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Gallium Nine patchset"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner selinux +ssl test +threads +truetype udev +udisks v4l +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.0 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use d3d9; then
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,572 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
D3D9_P="wine-d3d9-${PV}"
|
||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Gallium Nine patchset"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner selinux +ssl test +threads +truetype udev +udisks v4l +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
d3d9? (
|
||||
media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb[${MULTILIB_USEDEP}]
|
||||
)
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.0 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use d3d9; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, and D3D9_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use d3d9; then
|
||||
git-r3_fetch "${D3D9_EGIT_REPO_URI}" "${D3D9_COMMIT}"
|
||||
git-r3_checkout "${D3D9_EGIT_REPO_URI}" "${D3D9_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use d3d9; then
|
||||
PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
|
||||
PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with X xfixes)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine register --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use d3d9; then
|
||||
eselect wine deregister --d3d9 ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,63 +1,15 @@
|
|||
DIST gentoo-wine-patches-20170830.tar.xz 58456 SHA256 fb7781d0ae360cbc3860c2d2e81527a1b903da824c01f5d5040e95aaf99a3970 SHA512 5e5159e3252b246bba0ef7fdba345db3ab1071c5b8b8b625f98eda18779d4024c5b76bdbf49ce7bd5c6b01b422807adf76820beddb2b4a6ee9e67d13052cc575 WHIRLPOOL a79be264bab3fcdeee06fef47efd28e6e1125254ac7f82300cb6ba2591ef69cd76b5fed8f778b1849a0659e680e9fc785f0273d55cb2ed95648a74dffa5e22d2
|
||||
DIST wine-2.0.tar.bz2 23662707 SHA256 9756f5a2129b6a83ba701e546173cbff86caa671b0af73eb8f72c03b20c066c6 SHA512 b0a57ba8202d9fc396e5bfb7a7718d6bababbed8f3351e7fdc36afa37f35a871e04903757618f73427aeb71a52b2d323977d79e48f8b38d636f23fd404441186 WHIRLPOOL fa9f774d87dae73c7d1f3b86dc3b03ea27065eb6140f1cac13c82fe16f7ebff8f8365ed447220cf5c2788b9f4aae7c482e4f9e2e69f47e5435209e148f5dbdfe
|
||||
DIST wine-2.1.tar.xz 18887032 SHA256 bfb9abf63691c93df28d9599aaa866dc2b4e27209b3b7b546df8a37d7d9d1e6e SHA512 03d678ee6e89c2804813f2827255fcf59e96ca9a45b7d8ac441cfc84f835e5e5689c70a79a41a04c631e1add7807fa4a5758acef3bd7aadfb2e92e68958c6ef6 WHIRLPOOL 063d935f1ff0922100641f2f53cdac23d2993a83182d45e028e485fd7d0a13bc5cfb77bca76550b1537b3f42fecacef7fd64785adbf6425af823f56f96973b54
|
||||
DIST wine-2.10.tar.xz 19209580 SHA256 488df7ffd2e81da455bf428fc9eb784bb4273a890334500895665711bd52f179 SHA512 8807e16a571bf45d99097ad5fdfb9fe755f6dbe84010a330fed82f1d48c76b7f19589bfc0e5dde0b9e49a608fd0501db3f7e3e129e4d9d34bcae03bc51a73139 WHIRLPOOL e9a8248aac31593fbac28a3d8d4e62bfce14a7c41cc416ebfca8606518d28efd31b32196133da211f75f48bd228bd5d21fcbbc0479293e813ed99b258b37126e
|
||||
DIST wine-2.11.tar.xz 19251116 SHA256 efa96dade206aa21accf0da195335a805d38209d6a14320607c6308ebde4cc3c SHA512 691f329c47af5e51498287029988b8ca0777bfc3902ed80fd315004aba2337a938e79177e752efe86423c9b34544df3952b8c443bf43149356575fac75a779ac WHIRLPOOL 4933e1ce640b0abeebccd6969b5eaf4eec76cd135d9cfc1d904a902219f776a68f72e2bd1ae9019d69f0d0d81fd8ead0084785d1b9710590349365977f9c1817
|
||||
DIST wine-2.12.tar.xz 19301968 SHA256 496c11af841487e6ec4e1953ac19b05a7f48e397da502653ffbd9fe9004213a7 SHA512 d44c1937d7d2d797150381f70317b810616d61355a59be096366d3507f59b678cffaf6d841cecf02bf9d2afa3dbf4d19270f80fb1d3ba5f0f93787d40c328f62 WHIRLPOOL 6f4b9baa6fcfe86f3d195fe603c2b9450a72a593c8f7042959b42a76880cb4ae680fde7beb70a8e823150849fda36c42985035de891ebf0088c8ffc2bceb15bf
|
||||
DIST wine-2.13.tar.xz 19439328 SHA256 6fbca3ddd19b061ce65a267639efae93cf38cfabbe4a9c148a17a44703587ef8 SHA512 71873b9ec1605dd5f7502b87b0f3429c3d14a4196543d7304df455854b58ef82b8fafdcea91450cbfc01434a44886a0e0c4c4cf289ffb53167dde0f969cddc48 WHIRLPOOL 6faf1e6aeea2ab7ccc496ed85834f98eb25111c8f541c24d4876a142ad4acf7d9a4c08c2716e11fb6c92fe7aad29980cab912eb9dbb6759bdbdeca2f2f8e78a7
|
||||
DIST wine-2.14.tar.xz 19447812 SHA256 03f934d95181f728600ca04d395f10e821ee38cfa31655e872e4d27d2a8795c6 SHA512 ff43d386d46c0c74449e667b61d8cebd5fa768c88e6220aa2f13df03d80b71b6c0bdf8cbab023aed96f7c88b9787a3be4989da892fa1778412534ae82a7279bb WHIRLPOOL 2d2784e1b2ddeac39a3cea4cb08a62d99d1d062d8d801874e8bf4f56d2538a4cb019418c60299556548028e2362dd533d9ea0956014a65ac7a367ed489c0c392
|
||||
DIST wine-2.15.tar.xz 19463720 SHA256 d82d500cbf81fb08c711d3619bd52373138a05574d044f089af89707274868b3 SHA512 a52a42dd1f20fe68213c55a07ac5b2455150806e534f0ab77a8e9ae3d2f12840983fa92290dac569207d3640c7f45cda83801e9f2e80294863ffa854c6c89171 WHIRLPOOL 99c9497a44859ce310c764b3cd172d83ca1a2dce13633fee930ddbf1c40651ee4470f6bc9cfcb407ce65298a2afd73dc9edc536c2ba6f076631e5cf2085b8e61
|
||||
DIST wine-2.16.tar.xz 19484716 SHA256 a561edcabecd6c44948e5b2ef11941b2ba047275240418fa2c98c1fdceda2c21 SHA512 749a36b536506c4b63ff7512e316f44503cdb0db46e38a124da86df638f3e8ff9c404b034ece5cbb95cf20c09bc46be9a38f2ee66480aa6a4f2385e2a7a7eea4 WHIRLPOOL 92ae0a427d89b24d41d4565e333cf3b7499c1dfedb6d2a204f934975c35cb589d38b4f669890c1fd6a37b9fe8f34d98be3e7d0986e9ff99516fe00a004574520
|
||||
DIST wine-2.17.tar.xz 19505528 SHA256 7edc95739043ccc55957af663fb910318283dc5d1db42cd7f0224e30acfcea69 SHA512 cb10c876e689aa601c68673aab32c0514dd174692a01bdb3afc78d5e6079b0e77f48783af2f54245f397c762da3b4e5f2c1d39d2ce7fdb3b117d338b95c24810 WHIRLPOOL 196427a68ab3b1261cb63bafd7f82b7a688ad439fa82ae3fc04b18c9da14cc8e95b827ca8ddd07124e1179c55ed0e0aba3bdcb4639b724a6dacf4952e8827e16
|
||||
DIST wine-2.18.tar.xz 19546360 SHA256 9f0931129878157d717cb39f16cd33bf49f40aac77331c93d0ad30f2ccac4f50 SHA512 61cc39fa3d2b0a0ab3c5d17579865e6aea76dd9513a4b3c45975a2d5c05f2b4ba952b97eef547131a014763c7f692a08df29bc2ebf7e4ac7e2616e6a7822ddb9 WHIRLPOOL e864dd1705c0480d3f3095aa02ab1e7bc5b41693cd6b791cdf05e636c7099562020ac3adcba6421653efdf5dbe232b5abe9071792785e008ea30dedbb63e080e
|
||||
DIST wine-2.19.tar.xz 19549464 SHA256 487131e69875ae9c2d042798f954160146e603e449c3c97981f29b42f4a66095 SHA512 83558231bdc592b1f69cfedf6c689063df7bd9fecdfafba6fb7f6a2c7fa7783973efb85a6a49305afc18b1aa268209ee5b9c0655756e05d7550468698dfa51ae WHIRLPOOL 123aec3a367e67353655d940ba2ffe9386a583afbd0961dd3f446a00b0cf82ad4ed590508e03bf2a4e60b11753f8f430e748e6614f476675423f3bdaf7089288
|
||||
DIST wine-2.2.tar.xz 18916364 SHA256 64cb57e1d8aa07f5c89ef26743b494f2d3ef9c0f4e50d3ee896a93535f7751f4 SHA512 0700868244d397c1442948716321e5ff030c667edce464570f76aa4340199489a422872aa3975bc0a57b8285c9d59fc04e223a4bde094169fc6db460acb626c4 WHIRLPOOL ffc3d357a76592651b589c6ac6608720d0258474890faf8fe3e20ac29cdd1496d569721256f9389d347bf2734a556099154fd18ef1b56f45bb46c4c15771d6ca
|
||||
DIST wine-2.3.tar.xz 18931732 SHA256 afc95c7a87cc8f0730b462c50a5dfc9c462eb02c6bf5874b4fa99946f49e067e SHA512 bea78e8468555ff9e08dedf3918da5ea82721549c43984869989bbdafeea00e454820ff9558aa29925c97a165a9b01e5cd1fd397f133833c58824984a6686171 WHIRLPOOL 1f5ec8e5c32d124277e4c71d95726d3a5337575757c3029567c77165d65fcfec2ddf33d3863b4bf55c9eff7c3582c1ec7dbd76d84ed8bbbe89dd16db6b0128c1
|
||||
DIST wine-2.4.tar.xz 18953748 SHA256 87b5df07e4781fecce2f92415a4717208ea253a20a0df8b36b9f90b69b72748e SHA512 15ae7e97dc72a8636b2c15c93803ed430fa456d673add61457cf3e479e769559c682b40949b5d38828f6681f13183e560fcb4a2eb0f0ba25e6eade46f7d3d7c0 WHIRLPOOL 558ab7b7517ad5e03366b4db974047eba776585e958a5b71bb2e93993e21bc725ea7a8bcf2a4354f34ca38c94ba99ccd15f2f8b5e4b58066bf339d3517eec56c
|
||||
DIST wine-2.5.tar.xz 18993176 SHA256 13f92b7ab483323aaabbc6519851e688ad4372ea30569961c831d40d6d3bccd2 SHA512 7b6faf6d8aa3d41465ad93ebae055581136f736c7eb8b4c61682e5a05589c83a0ff2c85e0f9abbca016f31b6f1c1435617c4994f1913f715a8707ebee3f28467 WHIRLPOOL 5acd2ac65df5dee1c860ddca72b8df8e021a0b95a3a1870d15468ce4591d569fa15bf8a0a6d341bcd3a624d13d0affe5b0263e67f9dfcbbf3ae7b59218dcded9
|
||||
DIST wine-2.6.tar.xz 19023352 SHA256 e6ff64758f437647e99a36c1275e41adf54f0432907172d3bba22b070a97aac0 SHA512 2aa55413ac090e011725566d004e42ee46323cd4c6961b9faa63e3de422ba60bb657bf224a4d7e8aa712a8e26e11977d07acb7c088ffeef8c37310e8cc698970 WHIRLPOOL 82e6a06cc342c7d6eace64a97bae10cc39c120c5776170b059700542b8b6fef56be9a697f05b3bc21ae82621f4bf50f3ab478311c9a3a55d86ed7c0a009766b0
|
||||
DIST wine-2.7.tar.xz 19101108 SHA256 e55a43088e313c45f7ab49272b7cb441c06f5659fb4220b2325dc060db0ee14c SHA512 1e61b9a4aa1f5f42fb27d11d5254a9ba90f348ad9c4d1ddd4b5da47cd7de638290a20accf7447db9c0e4ced4c2144497cdf5fc906a5eac60e923dabb61f65d3a WHIRLPOOL 133426a0313facc856eebad3d16d199948b780ce4c4561e5784845c119fe462b8942ed86fa5e823e729a997d704bd3c70f44a64ce3eef965b4f3eb92587dfa4d
|
||||
DIST wine-2.8.tar.xz 19120740 SHA256 83e9607af66d86020dc27a368ebba28fa7e8ffecfdf8f149da06b3531ac3e579 SHA512 4d0b167b1e5add31ed0ed05b328d16fc13cd268285c03a9100e7ddc53864aa07f6b216a555ef0c2e51dee550e3f4abf0c7c20db2cbca177bb38e8c3e11f05b97 WHIRLPOOL 568cf46caf7322eb5e26b364bd15f9e80c41a65340952a1ee0fa80514bbee3c5adfa72af40809a978a5d4202f5e8d3da3e4581767bab9fa08ab441cdd5d1da31
|
||||
DIST wine-2.9.tar.xz 19154668 SHA256 ac46f7bbbbc1dc135c95e4f98d28bf6e3d7a78fb7f9ba6caa7354a3e8786545f SHA512 6d06e511d8f338297ed0ddb7bf2ffb501f528209eaecbbee3d4e5d53db649dd5ea0aeb78bba661a9bcfda5f97e170ca10eb8fab355e229bfe7db6a5feb7ec4e8 WHIRLPOOL 7355166aeaac54abb6e1d25da6f87a4814d37764044e95462bc2a83f8d5a9b7a3bb10730bb5506516e130a4fc9ee35e3656d1106939bbbc1310c6aff0d798a1c
|
||||
DIST wine-staging-2.0.tar.gz 10182575 SHA256 22a43cb50c1fff9c6f233a965247056e3321533aa73a6419aa34a22de7180039 SHA512 51412299259d6e92c8993543d5fdb3239ebe31e0d1d715e0a9e8ce94b3139c0567b08ff1600d41be94f12427cbfccc2f6b6b2ed030535445c95618aaf6578580 WHIRLPOOL 9879174bc3a7c8ece156c822b7a7b870908e51335702a78e6f04ea1496125a2018a879bfc53d1302e4825138d22af526308ba7f656d683a535be44d4515f1bac
|
||||
DIST wine-staging-2.1.tar.gz 10101781 SHA256 1d193be2734ea495df2cae1dc54ce89204ca68699979174b0bd726d2e5e0576b SHA512 c64c48b265f0779c621a643ddbd2d12aaa548e4bff3b2b728280cdb9613214989911ee8ba5e46c7770f5f6430014a5da1c98e95d5008c1174bd14bf9ce5250db WHIRLPOOL ecf970ef436089bbcd0088e1608b22e808d54560e905c7d8046b3e21508166a595c3ef7b69819c45e4b13183bd9134a2bd7016d29c4da52985701d392eb35a0a
|
||||
DIST wine-staging-2.10.tar.gz 10091114 SHA256 b361ec92b2e40de983b987f6564dbb75dcb121c6e2f0123fe1ae234fd81a591b SHA512 c3bf7027ddfd1405263cce844a7cbeb923e9de56cffdb296384449c0cc600b3c9a37c7fe09b62fb9ae0b47f97a2d4f208cc589f0e4205fa84ce5d112953ac2e7 WHIRLPOOL 01c5436179bcbd29ee0468f2f4d839ba805c064d80835fcd1d5e6eba562881c65ac576657a733c726ccf4b37473da6724ae06ebc023fb988d8810ed1f8096c6b
|
||||
DIST wine-staging-2.11.tar.gz 10083147 SHA256 45c40fbca76cab987e7adfe47fc8e24692f896805c8a6dc6030da28e3bd842bc SHA512 e2d05ee88e1cc932c2890f1db867a9382f2c62a00ea7d63fc6bd7b3fab57ea2f0e4908313cbed08b92e48d5bc17753b0b78f6cdf2cb64e81aa5725fd86cbc695 WHIRLPOOL e2d13ed7d258b1ee442c8c87f852c1564ce5f262bd7cd31710b975882ab8cb454a1e2ec308c6c17e5bd0a691b0492fdea22a182323cb963c055592ce538db690
|
||||
DIST wine-staging-2.12.tar.gz 10105899 SHA256 0f186d2268011c12094ecac8747378ad8f4ee7152e8854cb00496ba9565b7974 SHA512 a8c21c923153a42609e3ea9065b84208b01f3b14d55b7e68e548ebf6d27df956051b29dc2f053aec6287422c13eed5b6ec71e667ae6f46b1c80ae7c84a51b648 WHIRLPOOL 01cf39fa257e9975cfd16976e680117dac3d0ea3f9bc41e2d0a636023bd4afba0676587e41c55d4417cff97080b90eb11b3fe475970eec70be64f5c788c1cf88
|
||||
DIST wine-staging-2.13.tar.gz 10137549 SHA256 0796440ebfa2aa651051e7081cc64f83774f966f26353876e024e42c59e24b46 SHA512 86077747d8a4f6e56dc1b0dda1688810defa9bcebaaadbf2419ce56e4590d4249881105e1dda24236f861baf0b1cc42019b2538de5d24a6d3c4f27c7a8248086 WHIRLPOOL e0c147519fde14f74031fcb7ba154c39583a9c817460d21ec50fdae40039136d46b8cc0ce9a8fb558ddbf8b62c6f0a572ad04a887c47046c0e921e6f08c4b44d
|
||||
DIST wine-staging-2.14.tar.gz 10179829 SHA256 cd4c8e400a808cbfa5c5cf088ea874c761d09db897f25bc33eab840101020b19 SHA512 1e794f77309e94612f822b72872ac2726e37d219a40c4a45feb2fb56f4413c34eae966a4ae8708d502c837cd47db22979e9a05cb73b681703cd729f701cdb210 WHIRLPOOL 63f9ff9cd4d54d6ff91997a904e7cd612bb8bca905399e9c6950b274cd8218c0c04a40dca9f4e12180e1080f1631bfec38e3633fcd457e688e8f8883661a4e59
|
||||
DIST wine-staging-2.15.tar.gz 10190900 SHA256 f2b5c43fbc185a6fd6399f4c351b83a172737977b2ebb1cbdeddd1838d044bc2 SHA512 75d64d103839da2daed6e5b2400185c0a5274d0e50b675283bbadff70cafe712e573701207d80c8e8af7f68d1d273efec3c0d705dc982c74b8574929daadecfa WHIRLPOOL 13239aa636fc102fb374ab8724b7dbce8e9b95f16797a4f5faf8a5e7789d60e6b485c7495ccef4568edbbb0549d657a6758642de2e98b449b0ced2725136e444
|
||||
DIST wine-staging-2.16.tar.gz 10220855 SHA256 da0ef4b0eafe9cd1b9cf26a5b950088adf1308e17a0d6f4ae62516b6ee64248e SHA512 96585caf77569a31f516aefe230a8907ef91db29759f75075593b751985f294bf292a1c146d287a3f0859a6b6273560670c4bc734ef0fbecb0809574eb3f09ba WHIRLPOOL 66128c8d59593243e95d6765b9fd8ace59e85e365a5e8a41eeb17d370464005aef060ddf3d862d0a3638048fd92189860e69a3cbf7d24d3ce1e420200d4b3cf5
|
||||
DIST wine-staging-2.17.tar.gz 10211107 SHA256 f511bf3438dc418b4f667513bf1ae419255e4ee62229e9205c0c64b047222183 SHA512 b652f6a852a1382c1b8275e172b7ac7608749c34aef5c0c5387cf262bf0da8db67a77ce397d49e53f3e2a8f210a3dbea1a9b3f3feb15c7d5bad8952b6fb7b53c WHIRLPOOL c45dc5fc91bc774f9f28bb06dff959391829fafac398bef198755395afe5a65bb2d32ba3ce157607a6040481955926866ed8f0760850bfca821be8599f4d7b64
|
||||
DIST wine-staging-2.18.tar.gz 10243957 SHA256 69c75d3ca17b1c3617cd0934a9e9ad6fca37c6679900d2cb63f6981aa1026cc8 SHA512 fe18b53d4160596d134ceed392f6459e9c183381f4712add43d8422e77d7d5d89ff34a3bb3afbd7740f250d85dfda0f3501e9600a41270790ae02138ed6d7dc7 WHIRLPOOL 2dc1429a7a4f13ee01b1317f1937ef7ec6b42c3cfdd78ff78bb8273e1056751edb2ac119904ba48ab645b430f269a9361a6d42bcbb5dfb46bd15a129569d3194
|
||||
DIST wine-staging-2.19.tar.gz 10241240 SHA256 2fdb083a484708362433000f92b54a5d648df190b2ab084647c45f5624063bd2 SHA512 90916cb096bbfec35514eff4c1b6e2090b6e68e3e7af1164715f5abb1d255c5cfd6411f53c27cb277adcf0982fa6d6e508a7cdbc1404dcca6c2700b05c2c5483 WHIRLPOOL 3ed1a5d39d0ec186538e04ca09e4fa2729f356385523177b753e7c7183416f666f336bec7d4b606f29266cd227cf5e72f707c79adf510bc3899adb76ce3df84f
|
||||
DIST wine-staging-2.2.tar.gz 10078327 SHA256 9d3cbf7e5f12c623d275457b910a158e0b176fcf50c09a5f8425864de604bc1d SHA512 8ad3f8ba4c6439a9ec4884a55018a67c9e2c2384830074646aac7b70cb9f4f5a20f760247ab42dc3d2f697cdac7ea5322be8ed12c435cb0bc185ac08fdd4dd91 WHIRLPOOL a34c19aaace64307de56d935cb0cef17d7c066c39b83c51e70ea76a20083f928bea55fe38d62b7a8250b0a9e8f00e0d2b744f43fcab433069ffb96625d955303
|
||||
DIST wine-staging-2.3.tar.gz 10071742 SHA256 9a81be606836fab6203857f7937ff97575947f75d52c80fb5489418efb8b87e1 SHA512 8e8af1e36cc69c63ec3542f0ec4db18b6d8c16b5c9077eb211297f3a886519da71bcf72934bf8d6d72e44c7c9f765e1d00203d0d75cab8544f69f9b0c10a7133 WHIRLPOOL 50738a6e20890748d7eb01152244d34b259759f61b3587ba39815dc066fc8e2b66ce182e1ddbc912f50076a3599aa060ec6a94eeaab4513ce3a776711929b9b1
|
||||
DIST wine-staging-2.4.tar.gz 10067020 SHA256 709cab12c0ebf7cf9504fd4a67eb851272309e00066ad81f184b0f55c63e9deb SHA512 55d11851697836b582ba54696cadc812ef6b14872440f5c3ed6fbe30a05abcb8abe2ab31a11ea4daeb354854c7c0e6549401d4b26b26621808bdeb89aeb206f9 WHIRLPOOL 8d344b7e6e89322c8dbbe6fd211851c90a45a33b514c182609cc60dc21939f791abc71d8665cd66e5c5161f159fe24c4772b99405833e3d11985a644e1335eaf
|
||||
DIST wine-staging-2.5.tar.gz 10062025 SHA256 b5cf6fa38151ff47ab6d725077693b02b37bb07b2ab7fda55290bb1f63ac54ad SHA512 6ab981886776f624c6478230aad18870f55b7252f1c6df90bfe1a248f7ea76cbb181f8e0780fdd4bb5e3c589a785baa7cf126a2c838adf65db2a67f873ed1698 WHIRLPOOL 7045b1642a3b14e5a507854cb8bf910c7cfb3c64ada4ee3534175c75b03cd604206617a55fb870e47fb248a4db8a9ca2abc0b4688005c1c0de0d542fec8cbc57
|
||||
DIST wine-staging-2.6.tar.gz 10034709 SHA256 ff86ddcceb7f6857bd415db3842ddf216a5cb301452e2a08053a9378cbf5580a SHA512 dc199b5345985d261b708ac811b02253ab9fbc4966889f2382ce518d991fe43b7c771c1d56d055c6234c9329d5c571cd9cf0b16587b77124b9c46917ddd066d2 WHIRLPOOL 375f484c6c50645c605994eb08c38c649ca6c8b47430e2f2f285a63fc24eca81588d0496a8c32074f90e4ea8f4330f76854bf8874f042e27581a7eee19aedf98
|
||||
DIST wine-staging-2.7.tar.gz 10018082 SHA256 3095f9c634f00b143c2407dce8c3f29c629ec95074cf14c8e8dc2e0cdba45b6d SHA512 0abc89af701ae1b95c0eb08e72894c7bc40bdfe792e05b8af9282eab8407bb90b7dfcd4eb3a193a88759ce5d6ea6c2aa9696cac2d744f543c92529bb0d2636ee WHIRLPOOL 6cc666f702ef1bd574ede54a7f6755e07d768c9fa549b9bdb9b5416288619347e0c1b9c70893b6300800d8e6c94e8d2396937f639d1e821945ba9fe144b32c95
|
||||
DIST wine-staging-2.8.tar.gz 10043842 SHA256 8680614be6c3b01c7c577eb6924fc05cc3de92394384939dd5b2e12e08235fff SHA512 af1707fe3119664a0d97d94fc4c955612d80cb76eae8c4248a268c0f6be9e659fccf7c26899c9e9ae5822f74474c0db5283b598dd4d9d69a3b108f947653217a WHIRLPOOL 7e9aa61a7666404475abb442304e63c76c2e6df26479711b7c08ebe7c15b9b53017e7a1d2dca4f9f8aeba78290df03f06076c99ac06c30d5ed893cfc3842107a
|
||||
DIST wine-staging-2.9.tar.gz 10062408 SHA256 cde0895142c0ca0be5b532560ec0546d6e4f655615572d80cfcce663f92c57f6 SHA512 7862a403817791c54c5c1b8f233b06a850500305c46283bccb9026fb6db041a8fba619d145ab21fe2fdc5f25ed3bbb75fde05245fbbbd67139a5f64b547b1196 WHIRLPOOL 52c0b9065cfa54f6b86b74f9a98c9d232e3a88aa9d61d06c6e01044122fab8b01a567e99f93014042031e9eb991fd9234c4a02ebe3d2aa8c042e5e769269095c
|
||||
DIST gentoo-wine-patches-20170830.tar.xz 58456 BLAKE2B 86445a6d91d9981d069ff2fb3b64a47e166c76b4721ef877c74cd60e359ee5bdbe36ebf37cf796a18e9cf42dbc69ce1496777144fc28b072f47c965173bf48b4 SHA512 5e5159e3252b246bba0ef7fdba345db3ab1071c5b8b8b625f98eda18779d4024c5b76bdbf49ce7bd5c6b01b422807adf76820beddb2b4a6ee9e67d13052cc575
|
||||
DIST wine-2.0.tar.bz2 23662707 BLAKE2B 1d485c1359ce8a0395a9f6378c1f8be33ea2836b80390d1eb1095057a0acedd21708daab16e1851a315391b9f9b0a360879b9d98c73bcc8371c5023e9a8037f5 SHA512 b0a57ba8202d9fc396e5bfb7a7718d6bababbed8f3351e7fdc36afa37f35a871e04903757618f73427aeb71a52b2d323977d79e48f8b38d636f23fd404441186
|
||||
DIST wine-2.17.tar.xz 19505528 BLAKE2B 5b4b0c708fb4c5bb7367ad87fd4438b75fbe84fa4fb0f4514aa816de771f91f38dc76da80410fa25711b060c26d95127c49d2ce0db613e3560a04d7bf2bff4f7 SHA512 cb10c876e689aa601c68673aab32c0514dd174692a01bdb3afc78d5e6079b0e77f48783af2f54245f397c762da3b4e5f2c1d39d2ce7fdb3b117d338b95c24810
|
||||
DIST wine-2.18.tar.xz 19546360 BLAKE2B 711b1396160b325a3021f066cc80eda0e2eb69c46ab671c6a4d1f417d0c2439e53854d37fee8507296386d1a828484af93e833f6c08413fd2571c03477e97386 SHA512 61cc39fa3d2b0a0ab3c5d17579865e6aea76dd9513a4b3c45975a2d5c05f2b4ba952b97eef547131a014763c7f692a08df29bc2ebf7e4ac7e2616e6a7822ddb9
|
||||
DIST wine-2.19.tar.xz 19549464 BLAKE2B 86d130cc43d7d674d2f478365952962b2792fd585b8d074564108bc7e9f4f7690337e4758b9a24e54fe8fd60187d3a96496a5ffc454ba674b02ecdde68efd3bb SHA512 83558231bdc592b1f69cfedf6c689063df7bd9fecdfafba6fb7f6a2c7fa7783973efb85a6a49305afc18b1aa268209ee5b9c0655756e05d7550468698dfa51ae
|
||||
DIST wine-staging-2.0.tar.gz 10182575 BLAKE2B 1de645f66fa3e5e0d8ceddf5439fd246510470f63d6331c7029abed7192180b7b8430e43a2e732a30a5fbe0c73ba39b7fafcfc08830c68e679dff90576c3a960 SHA512 51412299259d6e92c8993543d5fdb3239ebe31e0d1d715e0a9e8ce94b3139c0567b08ff1600d41be94f12427cbfccc2f6b6b2ed030535445c95618aaf6578580
|
||||
DIST wine-staging-2.17.tar.gz 10211107 BLAKE2B 7f791811f2c1f6e70aaa80841b49d8e6af90eae8ecd3b48fced5b7a14d069e90d8a6c23ac1c588254171695c04033e7d18a6dd373b94614fe044cd696664c532 SHA512 b652f6a852a1382c1b8275e172b7ac7608749c34aef5c0c5387cf262bf0da8db67a77ce397d49e53f3e2a8f210a3dbea1a9b3f3feb15c7d5bad8952b6fb7b53c
|
||||
DIST wine-staging-2.18.tar.gz 10243957 BLAKE2B 9592fd26564df981353c686bcaf1bd32028d04e4ae97cc412739abf05c845d43135ad6c3ee27ba14d8eda6e657c5c5fee96d4e76a546d4b6e6e905e5505b4898 SHA512 fe18b53d4160596d134ceed392f6459e9c183381f4712add43d8422e77d7d5d89ff34a3bb3afbd7740f250d85dfda0f3501e9600a41270790ae02138ed6d7dc7
|
||||
DIST wine-staging-2.19.tar.gz 10241240 BLAKE2B e661e3272328988e9a1aacc22fc02f0773804b58777f208c79c6af866032f31b6140a52e2aa5af954e52437db234712863d1369e960e98e2c212d1efc7f6344f SHA512 90916cb096bbfec35514eff4c1b6e2090b6e68e3e7af1164715f5abb1d255c5cfd6411f53c27cb277adcf0982fa6d6e508a7cdbc1404dcca6c2700b05c2c5483
|
||||
EBUILD wine-staging-2.0-r1.ebuild 20089 BLAKE2B 3db273dcba22608292a56bfcf4ecdd15baa6f778ad26d05acb38420a768195692c439106ff7c58231cb429e3bb89b0aa058b86cdeea943c8c3a58c98a76d20d3 SHA512 b38e650ca2e937c0eeb17ea6f895a7abb1fdaa41c055f5a76cfc804dfcdfd8d7594c06a3491df1d491f4b9f5765fcae45e1184c2ac135d89435a9e32caa3c52d
|
||||
EBUILD wine-staging-2.1-r1.ebuild 20088 BLAKE2B 679b6b9cb39b370a709e53ffe9adea7e90bdf27dc5e316fb45d800e6351850b2bf6ef74b7f0a64e9fa507bf3b05dcade1b1decd2521db65b93ab08b650e006a3 SHA512 b7bf86d5a1b9a3b311d1336da744a6106569d0a56d6d0b5d1b167f3878e5c713956b1ffa3737462239bb563b511875f3577181e0b82f60b904daa3152b2f8823
|
||||
EBUILD wine-staging-2.10-r1.ebuild 20152 BLAKE2B 0508823dcc14243f22fe7203d07a42346dfd313ce0275c44850bdeb13b7b5e0034d5e1c3db4849351fdd0704335337c0ba5c79f96b77e091d21e68fc267e63cc SHA512 8c7ee8121a9738c6b1ccf2a17c765cb117ef767659182e0d746f87eef59d1a40618d24f6bd94619079267635303bd124ccab68857410260eebdd9eeca605a06b
|
||||
EBUILD wine-staging-2.11-r1.ebuild 20152 BLAKE2B 0508823dcc14243f22fe7203d07a42346dfd313ce0275c44850bdeb13b7b5e0034d5e1c3db4849351fdd0704335337c0ba5c79f96b77e091d21e68fc267e63cc SHA512 8c7ee8121a9738c6b1ccf2a17c765cb117ef767659182e0d746f87eef59d1a40618d24f6bd94619079267635303bd124ccab68857410260eebdd9eeca605a06b
|
||||
EBUILD wine-staging-2.12-r1.ebuild 20152 BLAKE2B 0508823dcc14243f22fe7203d07a42346dfd313ce0275c44850bdeb13b7b5e0034d5e1c3db4849351fdd0704335337c0ba5c79f96b77e091d21e68fc267e63cc SHA512 8c7ee8121a9738c6b1ccf2a17c765cb117ef767659182e0d746f87eef59d1a40618d24f6bd94619079267635303bd124ccab68857410260eebdd9eeca605a06b
|
||||
EBUILD wine-staging-2.13-r1.ebuild 20152 BLAKE2B 0508823dcc14243f22fe7203d07a42346dfd313ce0275c44850bdeb13b7b5e0034d5e1c3db4849351fdd0704335337c0ba5c79f96b77e091d21e68fc267e63cc SHA512 8c7ee8121a9738c6b1ccf2a17c765cb117ef767659182e0d746f87eef59d1a40618d24f6bd94619079267635303bd124ccab68857410260eebdd9eeca605a06b
|
||||
EBUILD wine-staging-2.14-r1.ebuild 20152 BLAKE2B b6b23ec4fc2d794ac485f88bba9dc622b562fac7a70973bcd08a15a43e53ef2eefdc79fba8fa582799a07582288138cf2e9c6d1e1afd7ce11155b0deb96d2c18 SHA512 39d12656be030af0218a3944bbf6754149cbd9dcb95545b7738ed7c467ae129eba0e0735e2516f3fa668efee423b160a961e028ee087ecd9ec8bf6292a80a6b4
|
||||
EBUILD wine-staging-2.15-r1.ebuild 20152 BLAKE2B b6b23ec4fc2d794ac485f88bba9dc622b562fac7a70973bcd08a15a43e53ef2eefdc79fba8fa582799a07582288138cf2e9c6d1e1afd7ce11155b0deb96d2c18 SHA512 39d12656be030af0218a3944bbf6754149cbd9dcb95545b7738ed7c467ae129eba0e0735e2516f3fa668efee423b160a961e028ee087ecd9ec8bf6292a80a6b4
|
||||
EBUILD wine-staging-2.16-r1.ebuild 20152 BLAKE2B b6b23ec4fc2d794ac485f88bba9dc622b562fac7a70973bcd08a15a43e53ef2eefdc79fba8fa582799a07582288138cf2e9c6d1e1afd7ce11155b0deb96d2c18 SHA512 39d12656be030af0218a3944bbf6754149cbd9dcb95545b7738ed7c467ae129eba0e0735e2516f3fa668efee423b160a961e028ee087ecd9ec8bf6292a80a6b4
|
||||
EBUILD wine-staging-2.17-r1.ebuild 20152 BLAKE2B b6b23ec4fc2d794ac485f88bba9dc622b562fac7a70973bcd08a15a43e53ef2eefdc79fba8fa582799a07582288138cf2e9c6d1e1afd7ce11155b0deb96d2c18 SHA512 39d12656be030af0218a3944bbf6754149cbd9dcb95545b7738ed7c467ae129eba0e0735e2516f3fa668efee423b160a961e028ee087ecd9ec8bf6292a80a6b4
|
||||
EBUILD wine-staging-2.18.ebuild 19962 BLAKE2B 6c3bc13cb27ea492ed3379fea1de5fbe632167f848e8a54c5b2750aa033517552bdb62be226d124f58bd84d3c59fad7383cc156038d0425a18e27cf0ce803016 SHA512 7cbaa98a77a0cb848585e57389de6a15f3fc7629b0b8b8e4591ed6f7b9279202e2bbe00fcd9f1c257b5d722cbfd169abb0ca52d5066c49fff4e99aaee180ab84
|
||||
EBUILD wine-staging-2.19.ebuild 19962 BLAKE2B 6c3bc13cb27ea492ed3379fea1de5fbe632167f848e8a54c5b2750aa033517552bdb62be226d124f58bd84d3c59fad7383cc156038d0425a18e27cf0ce803016 SHA512 7cbaa98a77a0cb848585e57389de6a15f3fc7629b0b8b8e4591ed6f7b9279202e2bbe00fcd9f1c257b5d722cbfd169abb0ca52d5066c49fff4e99aaee180ab84
|
||||
EBUILD wine-staging-2.2-r1.ebuild 20088 BLAKE2B 679b6b9cb39b370a709e53ffe9adea7e90bdf27dc5e316fb45d800e6351850b2bf6ef74b7f0a64e9fa507bf3b05dcade1b1decd2521db65b93ab08b650e006a3 SHA512 b7bf86d5a1b9a3b311d1336da744a6106569d0a56d6d0b5d1b167f3878e5c713956b1ffa3737462239bb563b511875f3577181e0b82f60b904daa3152b2f8823
|
||||
EBUILD wine-staging-2.3-r1.ebuild 20088 BLAKE2B 679b6b9cb39b370a709e53ffe9adea7e90bdf27dc5e316fb45d800e6351850b2bf6ef74b7f0a64e9fa507bf3b05dcade1b1decd2521db65b93ab08b650e006a3 SHA512 b7bf86d5a1b9a3b311d1336da744a6106569d0a56d6d0b5d1b167f3878e5c713956b1ffa3737462239bb563b511875f3577181e0b82f60b904daa3152b2f8823
|
||||
EBUILD wine-staging-2.4-r1.ebuild 20088 BLAKE2B db80ed576fe42d7a3505cdc5f96d41b9e408550fcf8809e34040368329a7e34e3ed8bd7c663fb7da708c0abbd272b9d862a6ff55471b5bc5b1c654c2278f4d57 SHA512 dadb02b3a648a09a04a2bc46c226ed2e57a61727fd9df891f7137308625330670dbf7c20cbb85f099eede40c8579e653af13de06f453b129c94a638e8651877a
|
||||
EBUILD wine-staging-2.5-r1.ebuild 20088 BLAKE2B db80ed576fe42d7a3505cdc5f96d41b9e408550fcf8809e34040368329a7e34e3ed8bd7c663fb7da708c0abbd272b9d862a6ff55471b5bc5b1c654c2278f4d57 SHA512 dadb02b3a648a09a04a2bc46c226ed2e57a61727fd9df891f7137308625330670dbf7c20cbb85f099eede40c8579e653af13de06f453b129c94a638e8651877a
|
||||
EBUILD wine-staging-2.6-r1.ebuild 20088 BLAKE2B db80ed576fe42d7a3505cdc5f96d41b9e408550fcf8809e34040368329a7e34e3ed8bd7c663fb7da708c0abbd272b9d862a6ff55471b5bc5b1c654c2278f4d57 SHA512 dadb02b3a648a09a04a2bc46c226ed2e57a61727fd9df891f7137308625330670dbf7c20cbb85f099eede40c8579e653af13de06f453b129c94a638e8651877a
|
||||
EBUILD wine-staging-2.7-r1.ebuild 20088 BLAKE2B db80ed576fe42d7a3505cdc5f96d41b9e408550fcf8809e34040368329a7e34e3ed8bd7c663fb7da708c0abbd272b9d862a6ff55471b5bc5b1c654c2278f4d57 SHA512 dadb02b3a648a09a04a2bc46c226ed2e57a61727fd9df891f7137308625330670dbf7c20cbb85f099eede40c8579e653af13de06f453b129c94a638e8651877a
|
||||
EBUILD wine-staging-2.8-r1.ebuild 20088 BLAKE2B db80ed576fe42d7a3505cdc5f96d41b9e408550fcf8809e34040368329a7e34e3ed8bd7c663fb7da708c0abbd272b9d862a6ff55471b5bc5b1c654c2278f4d57 SHA512 dadb02b3a648a09a04a2bc46c226ed2e57a61727fd9df891f7137308625330670dbf7c20cbb85f099eede40c8579e653af13de06f453b129c94a638e8651877a
|
||||
EBUILD wine-staging-2.9-r1.ebuild 20152 BLAKE2B 0508823dcc14243f22fe7203d07a42346dfd313ce0275c44850bdeb13b7b5e0034d5e1c3db4849351fdd0704335337c0ba5c79f96b77e091d21e68fc267e63cc SHA512 8c7ee8121a9738c6b1ccf2a17c765cb117ef767659182e0d746f87eef59d1a40618d24f6bd94619079267635303bd124ccab68857410260eebdd9eeca605a06b
|
||||
EBUILD wine-staging-9999.ebuild 19962 BLAKE2B 6c3bc13cb27ea492ed3379fea1de5fbe632167f848e8a54c5b2750aa033517552bdb62be226d124f58bd84d3c59fad7383cc156038d0425a18e27cf0ce803016 SHA512 7cbaa98a77a0cb848585e57389de6a15f3fc7629b0b8b8e4591ed6f7b9279202e2bbe00fcd9f1c257b5d722cbfd169abb0ca52d5066c49fff4e99aaee180ab84
|
||||
MISC metadata.xml 3027 BLAKE2B 2565248dcb436a4b8edad34c23e9778962be2410b1560817f9b250c34d009d23c22d926443d40b52f8c3f6d7884a0c4fb0eff4f1c46396c1db0d9c79c3a103e2 SHA512 d1c58d449c2b9ab201da4338718b724cfb7d282b22b506375a7d9531d64d601414f2ac734e5cc2cb812cc4904351cacac731456596818201cd9361bbb1393d20
|
||||
|
|
|
@ -1,607 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
STAGING_P="wine-staging-${PV}"
|
||||
STAGING_DIR="${WORKDIR}/${STAGING_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
STAGING_EGIT_REPO_URI="https://github.com/wine-compholio/wine-staging.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes s3tc samba scanner selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
pipelight? ( staging )
|
||||
s3tc? ( staging )
|
||||
test? ( abi_x86_32 )
|
||||
themes? ( staging )
|
||||
vaapi? ( staging )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
|
||||
themes? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
x11-libs/cairo[${MULTILIB_USEDEP}]
|
||||
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
|
||||
)
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.6.4 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
s3tc? ( >=media-libs/libtxc_dxtn-1.0.1-r1[${MULTILIB_USEDEP}] )
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
staging? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use staging; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, and STAGING_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use staging; then
|
||||
local CURRENT_WINE_COMMIT=${EGIT_VERSION}
|
||||
|
||||
git-r3_fetch "${STAGING_EGIT_REPO_URI}" "${STAGING_COMMIT}"
|
||||
git-r3_checkout "${STAGING_EGIT_REPO_URI}" "${STAGING_DIR}"
|
||||
|
||||
local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
|
||||
|
||||
if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
|
||||
einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
|
||||
einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
|
||||
einfo "Example: WINE_COMMIT=${COMPAT_WINE_COMMIT} emerge -1 wine"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use staging; then
|
||||
ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
|
||||
ewarn "Wine bugzilla should explicitly state that staging was used."
|
||||
|
||||
local STAGING_EXCLUDE=""
|
||||
STAGING_EXCLUDE="${STAGING_EXCLUDE} -W winhlp32-Flex_Workaround" # Avoid double patching https://bugs.winehq.org/show_bug.cgi?id=42132
|
||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
||||
|
||||
# Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
|
||||
ebegin "Running Wine-Staging patch installer"
|
||||
(
|
||||
set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
|
||||
cd "${STAGING_DIR}/patches"
|
||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
||||
)
|
||||
eend $? || die "Failed to apply Wine-Staging patches"
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use staging && myconf+=(
|
||||
--with-xattr
|
||||
$(use_with themes gtk3)
|
||||
$(use_with vaapi va)
|
||||
)
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine register --staging ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine deregister --staging ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,609 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
STAGING_P="wine-staging-${PV}"
|
||||
STAGING_DIR="${WORKDIR}/${STAGING_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
STAGING_EGIT_REPO_URI="https://github.com/wine-compholio/wine-staging.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes s3tc samba scanner selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
pipelight? ( staging )
|
||||
s3tc? ( staging )
|
||||
test? ( abi_x86_32 )
|
||||
themes? ( staging )
|
||||
vaapi? ( staging )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
|
||||
themes? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
x11-libs/cairo[${MULTILIB_USEDEP}]
|
||||
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
|
||||
)
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.0 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
s3tc? ( >=media-libs/libtxc_dxtn-1.0.1-r1[${MULTILIB_USEDEP}] )
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
staging? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use staging; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, and STAGING_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use staging; then
|
||||
local CURRENT_WINE_COMMIT=${EGIT_VERSION}
|
||||
|
||||
git-r3_fetch "${STAGING_EGIT_REPO_URI}" "${STAGING_COMMIT}"
|
||||
git-r3_checkout "${STAGING_EGIT_REPO_URI}" "${STAGING_DIR}"
|
||||
|
||||
local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
|
||||
|
||||
if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
|
||||
einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
|
||||
einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
|
||||
einfo "Example: WINE_COMMIT=${COMPAT_WINE_COMMIT} emerge -1 wine"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use staging; then
|
||||
ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
|
||||
ewarn "Wine bugzilla should explicitly state that staging was used."
|
||||
|
||||
local STAGING_EXCLUDE=""
|
||||
STAGING_EXCLUDE="${STAGING_EXCLUDE} -W winhlp32-Flex_Workaround" # Avoid double patching https://bugs.winehq.org/show_bug.cgi?id=42132
|
||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
||||
|
||||
# Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
|
||||
ebegin "Running Wine-Staging patch installer"
|
||||
(
|
||||
set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
|
||||
cd "${STAGING_DIR}/patches"
|
||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
||||
)
|
||||
eend $? || die "Failed to apply Wine-Staging patches"
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with X xfixes)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use staging && myconf+=(
|
||||
--with-xattr
|
||||
$(use_with themes gtk3)
|
||||
$(use_with vaapi va)
|
||||
)
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine register --staging ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine deregister --staging ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,609 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
STAGING_P="wine-staging-${PV}"
|
||||
STAGING_DIR="${WORKDIR}/${STAGING_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
STAGING_EGIT_REPO_URI="https://github.com/wine-compholio/wine-staging.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes s3tc samba scanner selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
pipelight? ( staging )
|
||||
s3tc? ( staging )
|
||||
test? ( abi_x86_32 )
|
||||
themes? ( staging )
|
||||
vaapi? ( staging )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
|
||||
themes? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
x11-libs/cairo[${MULTILIB_USEDEP}]
|
||||
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
|
||||
)
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.0 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
s3tc? ( >=media-libs/libtxc_dxtn-1.0.1-r1[${MULTILIB_USEDEP}] )
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
staging? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use staging; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, and STAGING_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use staging; then
|
||||
local CURRENT_WINE_COMMIT=${EGIT_VERSION}
|
||||
|
||||
git-r3_fetch "${STAGING_EGIT_REPO_URI}" "${STAGING_COMMIT}"
|
||||
git-r3_checkout "${STAGING_EGIT_REPO_URI}" "${STAGING_DIR}"
|
||||
|
||||
local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
|
||||
|
||||
if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
|
||||
einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
|
||||
einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
|
||||
einfo "Example: WINE_COMMIT=${COMPAT_WINE_COMMIT} emerge -1 wine"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use staging; then
|
||||
ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
|
||||
ewarn "Wine bugzilla should explicitly state that staging was used."
|
||||
|
||||
local STAGING_EXCLUDE=""
|
||||
STAGING_EXCLUDE="${STAGING_EXCLUDE} -W winhlp32-Flex_Workaround" # Avoid double patching https://bugs.winehq.org/show_bug.cgi?id=42132
|
||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
||||
|
||||
# Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
|
||||
ebegin "Running Wine-Staging patch installer"
|
||||
(
|
||||
set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
|
||||
cd "${STAGING_DIR}/patches"
|
||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
||||
)
|
||||
eend $? || die "Failed to apply Wine-Staging patches"
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with X xfixes)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use staging && myconf+=(
|
||||
--with-xattr
|
||||
$(use_with themes gtk3)
|
||||
$(use_with vaapi va)
|
||||
)
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine register --staging ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine deregister --staging ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,609 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
STAGING_P="wine-staging-${PV}"
|
||||
STAGING_DIR="${WORKDIR}/${STAGING_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
STAGING_EGIT_REPO_URI="https://github.com/wine-compholio/wine-staging.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes s3tc samba scanner selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
pipelight? ( staging )
|
||||
s3tc? ( staging )
|
||||
test? ( abi_x86_32 )
|
||||
themes? ( staging )
|
||||
vaapi? ( staging )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
|
||||
themes? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
x11-libs/cairo[${MULTILIB_USEDEP}]
|
||||
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
|
||||
)
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.0 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
s3tc? ( >=media-libs/libtxc_dxtn-1.0.1-r1[${MULTILIB_USEDEP}] )
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
staging? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use staging; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, and STAGING_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use staging; then
|
||||
local CURRENT_WINE_COMMIT=${EGIT_VERSION}
|
||||
|
||||
git-r3_fetch "${STAGING_EGIT_REPO_URI}" "${STAGING_COMMIT}"
|
||||
git-r3_checkout "${STAGING_EGIT_REPO_URI}" "${STAGING_DIR}"
|
||||
|
||||
local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
|
||||
|
||||
if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
|
||||
einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
|
||||
einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
|
||||
einfo "Example: WINE_COMMIT=${COMPAT_WINE_COMMIT} emerge -1 wine"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use staging; then
|
||||
ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
|
||||
ewarn "Wine bugzilla should explicitly state that staging was used."
|
||||
|
||||
local STAGING_EXCLUDE=""
|
||||
STAGING_EXCLUDE="${STAGING_EXCLUDE} -W winhlp32-Flex_Workaround" # Avoid double patching https://bugs.winehq.org/show_bug.cgi?id=42132
|
||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
||||
|
||||
# Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
|
||||
ebegin "Running Wine-Staging patch installer"
|
||||
(
|
||||
set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
|
||||
cd "${STAGING_DIR}/patches"
|
||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
||||
)
|
||||
eend $? || die "Failed to apply Wine-Staging patches"
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with X xfixes)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use staging && myconf+=(
|
||||
--with-xattr
|
||||
$(use_with themes gtk3)
|
||||
$(use_with vaapi va)
|
||||
)
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine register --staging ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine deregister --staging ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,609 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
STAGING_P="wine-staging-${PV}"
|
||||
STAGING_DIR="${WORKDIR}/${STAGING_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
STAGING_EGIT_REPO_URI="https://github.com/wine-compholio/wine-staging.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes s3tc samba scanner selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
pipelight? ( staging )
|
||||
s3tc? ( staging )
|
||||
test? ( abi_x86_32 )
|
||||
themes? ( staging )
|
||||
vaapi? ( staging )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
|
||||
themes? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
x11-libs/cairo[${MULTILIB_USEDEP}]
|
||||
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
|
||||
)
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.0 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
s3tc? ( >=media-libs/libtxc_dxtn-1.0.1-r1[${MULTILIB_USEDEP}] )
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
staging? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use staging; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, and STAGING_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use staging; then
|
||||
local CURRENT_WINE_COMMIT=${EGIT_VERSION}
|
||||
|
||||
git-r3_fetch "${STAGING_EGIT_REPO_URI}" "${STAGING_COMMIT}"
|
||||
git-r3_checkout "${STAGING_EGIT_REPO_URI}" "${STAGING_DIR}"
|
||||
|
||||
local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
|
||||
|
||||
if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
|
||||
einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
|
||||
einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
|
||||
einfo "Example: WINE_COMMIT=${COMPAT_WINE_COMMIT} emerge -1 wine"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use staging; then
|
||||
ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
|
||||
ewarn "Wine bugzilla should explicitly state that staging was used."
|
||||
|
||||
local STAGING_EXCLUDE=""
|
||||
STAGING_EXCLUDE="${STAGING_EXCLUDE} -W winhlp32-Flex_Workaround" # Avoid double patching https://bugs.winehq.org/show_bug.cgi?id=42132
|
||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
||||
|
||||
# Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
|
||||
ebegin "Running Wine-Staging patch installer"
|
||||
(
|
||||
set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
|
||||
cd "${STAGING_DIR}/patches"
|
||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
||||
)
|
||||
eend $? || die "Failed to apply Wine-Staging patches"
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with X xfixes)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use staging && myconf+=(
|
||||
--with-xattr
|
||||
$(use_with themes gtk3)
|
||||
$(use_with vaapi va)
|
||||
)
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine register --staging ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine deregister --staging ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,609 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
STAGING_P="wine-staging-${PV}"
|
||||
STAGING_DIR="${WORKDIR}/${STAGING_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
STAGING_EGIT_REPO_URI="https://github.com/wine-compholio/wine-staging.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes s3tc samba scanner selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
pipelight? ( staging )
|
||||
s3tc? ( staging )
|
||||
test? ( abi_x86_32 )
|
||||
themes? ( staging )
|
||||
vaapi? ( staging )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
|
||||
themes? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
x11-libs/cairo[${MULTILIB_USEDEP}]
|
||||
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
|
||||
)
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.1 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
s3tc? ( >=media-libs/libtxc_dxtn-1.0.1-r1[${MULTILIB_USEDEP}] )
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
staging? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use staging; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, and STAGING_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use staging; then
|
||||
local CURRENT_WINE_COMMIT=${EGIT_VERSION}
|
||||
|
||||
git-r3_fetch "${STAGING_EGIT_REPO_URI}" "${STAGING_COMMIT}"
|
||||
git-r3_checkout "${STAGING_EGIT_REPO_URI}" "${STAGING_DIR}"
|
||||
|
||||
local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
|
||||
|
||||
if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
|
||||
einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
|
||||
einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
|
||||
einfo "Example: WINE_COMMIT=${COMPAT_WINE_COMMIT} emerge -1 wine"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use staging; then
|
||||
ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
|
||||
ewarn "Wine bugzilla should explicitly state that staging was used."
|
||||
|
||||
local STAGING_EXCLUDE=""
|
||||
STAGING_EXCLUDE="${STAGING_EXCLUDE} -W winhlp32-Flex_Workaround" # Avoid double patching https://bugs.winehq.org/show_bug.cgi?id=42132
|
||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
||||
|
||||
# Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
|
||||
ebegin "Running Wine-Staging patch installer"
|
||||
(
|
||||
set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
|
||||
cd "${STAGING_DIR}/patches"
|
||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
||||
)
|
||||
eend $? || die "Failed to apply Wine-Staging patches"
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with X xfixes)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use staging && myconf+=(
|
||||
--with-xattr
|
||||
$(use_with themes gtk3)
|
||||
$(use_with vaapi va)
|
||||
)
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine register --staging ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine deregister --staging ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
|
@ -1,609 +0,0 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
|
||||
|
||||
MY_PN="${PN%%-*}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
|
||||
EGIT_BRANCH="master"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MAJOR_V=$(get_version_component_range 1)
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
STAGING_P="wine-staging-${PV}"
|
||||
STAGING_DIR="${WORKDIR}/${STAGING_P}"
|
||||
GWP_V="20170830"
|
||||
PATCHDIR="${WORKDIR}/gentoo-wine-patches"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
|
||||
HOMEPAGE="https://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
|
||||
"
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
STAGING_EGIT_REPO_URI="https://github.com/wine-compholio/wine-staging.git"
|
||||
else
|
||||
SRC_URI="${SRC_URI}
|
||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="${PV}"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes s3tc samba scanner selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
X? ( truetype )
|
||||
elibc_glibc? ( threads )
|
||||
osmesa? ( opengl )
|
||||
pipelight? ( staging )
|
||||
s3tc? ( staging )
|
||||
test? ( abi_x86_32 )
|
||||
themes? ( staging )
|
||||
vaapi? ( staging )" # osmesa-opengl #286560 # X-truetype #551124
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
|
||||
cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
|
||||
fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
|
||||
ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
|
||||
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
|
||||
openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? (
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
)
|
||||
osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
|
||||
themes? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
x11-libs/cairo[${MULTILIB_USEDEP}]
|
||||
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
|
||||
)
|
||||
truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
xml? (
|
||||
dev-libs/libxml2[${MULTILIB_USEDEP}]
|
||||
dev-libs/libxslt[${MULTILIB_USEDEP}]
|
||||
)
|
||||
abi_x86_32? (
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-baselibs-20140508-r14
|
||||
!app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-db-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-medialibs-20140508-r6
|
||||
!app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-opengl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-sdl-20140508-r1
|
||||
!app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-soundlibs-20140508
|
||||
!app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
|
||||
!<app-emulation/emul-linux-x86-xlibs-20140508
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
>app-eselect/eselect-wine-0.3
|
||||
!app-emulation/wine:0
|
||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
||||
gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
|
||||
mono? ( app-emulation/wine-mono:4.7.1 )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
pulseaudio? (
|
||||
realtime? ( sys-auth/rtkit )
|
||||
)
|
||||
s3tc? ( >=media-libs/libtxc_dxtn-1.0.1-r1[${MULTILIB_USEDEP}] )
|
||||
samba? ( >=net-fs/samba-3.0.25[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
|
||||
# tools/make_requests requires perl
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
prelink? ( sys-devel/prelink )
|
||||
staging? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-Simple
|
||||
)
|
||||
xinerama? ( x11-proto/xineramaproto )"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
PATCHES=(
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
|
||||
"${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
|
||||
"${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch"
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
|
||||
)
|
||||
PATCHES_BIN=(
|
||||
"${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=635222
|
||||
if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
|
||||
DEPEND+=" dev-util/patchbin"
|
||||
fi
|
||||
|
||||
wine_compiler_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
# GCC-specific bugs
|
||||
if tc-is-gcc; then
|
||||
# bug #549768
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
|
||||
ebegin "Checking for gcc-5 ms_abi compiler bug"
|
||||
$(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
|
||||
# Run in subshell to prevent "Aborted" message
|
||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/549768"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# bug #574044
|
||||
if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
|
||||
ebegin "Checking for gcc-5-3 stack realignment compiler bug"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
|
||||
if ! eend $?; then
|
||||
eerror "Wine cannot be built with this version of gcc-5.3"
|
||||
eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
|
||||
eerror "or use gcc-config to select a different compiler version."
|
||||
eerror "See https://bugs.gentoo.org/574044"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure compiler support
|
||||
if use abi_x86_64; then
|
||||
ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
|
||||
# Compile in subshell to prevent "Aborted" message
|
||||
( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
||||
if ! eend $?; then
|
||||
eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
|
||||
eerror
|
||||
eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64; then
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
|
||||
eerror "You need gcc-4.4+ to compile 64-bit wine"
|
||||
die
|
||||
elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
|
||||
eerror "You need clang-3.8+ to compile 64-bit wine"
|
||||
die
|
||||
fi
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
|
||||
ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
|
||||
ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
|
||||
ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
|
||||
fi
|
||||
if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
|
||||
if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
|
||||
ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
|
||||
ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
|
||||
ewarn "See package.env in man 5 portage for more information on how to do this."
|
||||
ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
wine_env_vcs_vars() {
|
||||
local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
|
||||
local pn_live_val="${pn_live_var}"
|
||||
eval pn_live_val='$'${pn_live_val}
|
||||
if [[ ! -z ${pn_live_val} ]]; then
|
||||
if use staging; then
|
||||
eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
|
||||
eerror "cannot be used to set the commit. Instead, you may use the"
|
||||
eerror "environmental variables WINE_COMMIT, and STAGING_COMMIT."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [[ ! -z ${EGIT_COMMIT} ]]; then
|
||||
eerror "Commits must now be specified using the environmental variables"
|
||||
eerror "WINE_COMMIT, STAGING_COMMIT, and D3D9_COMMIT"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
|
||||
# Verify OSS support
|
||||
if use oss && ! use kernel_FreeBSD; then
|
||||
if ! has_version ">=media-sound/oss-4"; then
|
||||
eerror "You cannot build wine with USE=oss without having support from a"
|
||||
eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
|
||||
eerror
|
||||
die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
wine_env_vcs_vars || die
|
||||
|
||||
WINE_VARIANT="${PN#wine}-${PV}"
|
||||
WINE_VARIANT="${WINE_VARIANT#-}"
|
||||
|
||||
MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
|
||||
MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
|
||||
MY_DATADIR="${MY_DATAROOTDIR}"
|
||||
MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
||||
MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
|
||||
MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
|
||||
MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
|
||||
MY_MANDIR="${MY_DATADIR}/man"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_CHECKOUT_DIR="${S}" EGIT_COMMIT="${WINE_COMMIT}" git-r3_src_unpack
|
||||
if use staging; then
|
||||
local CURRENT_WINE_COMMIT=${EGIT_VERSION}
|
||||
|
||||
git-r3_fetch "${STAGING_EGIT_REPO_URI}" "${STAGING_COMMIT}"
|
||||
git-r3_checkout "${STAGING_EGIT_REPO_URI}" "${STAGING_DIR}"
|
||||
|
||||
local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
|
||||
|
||||
if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
|
||||
einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
|
||||
einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
|
||||
einfo "Example: WINE_COMMIT=${COMPAT_WINE_COMMIT} emerge -1 wine"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
eapply_bin(){
|
||||
local patch
|
||||
for patch in ${PATCHES_BIN[@]}; do
|
||||
patchbin --nogit < "${patch}" || die
|
||||
done
|
||||
}
|
||||
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
|
||||
if use staging; then
|
||||
ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
|
||||
ewarn "Wine bugzilla should explicitly state that staging was used."
|
||||
|
||||
local STAGING_EXCLUDE=""
|
||||
STAGING_EXCLUDE="${STAGING_EXCLUDE} -W winhlp32-Flex_Workaround" # Avoid double patching https://bugs.winehq.org/show_bug.cgi?id=42132
|
||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
||||
|
||||
# Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
|
||||
ebegin "Running Wine-Staging patch installer"
|
||||
(
|
||||
set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
|
||||
cd "${STAGING_DIR}/patches"
|
||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
||||
)
|
||||
eend $? || die "Failed to apply Wine-Staging patches"
|
||||
fi
|
||||
|
||||
default
|
||||
eapply_bin
|
||||
eautoreconf
|
||||
|
||||
# Modification of the server protocol requires regenerating the server requests
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' loader/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# Edit wine.desktop to work for specific variant
|
||||
sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
|
||||
|
||||
# hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
wine_compiler_check || die
|
||||
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${MY_PREFIX}"
|
||||
--datarootdir="${MY_DATAROOTDIR}"
|
||||
--datadir="${MY_DATADIR}"
|
||||
--docdir="${MY_DOCDIR}"
|
||||
--includedir="${MY_INCLUDEDIR}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
|
||||
--libexecdir="${MY_LIBEXECDIR}"
|
||||
--localstatedir="${MY_LOCALSTATEDIR}"
|
||||
--mandir="${MY_MANDIR}"
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_enable mono mscoree)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with pcap)
|
||||
$(use_with png)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with X xfixes)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use staging && myconf+=(
|
||||
--with-xattr
|
||||
$(use_with themes gtk3)
|
||||
$(use_with vaapi va)
|
||||
)
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
||||
rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
|
||||
"${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
# Remove wineconsole if neither backend is installed #551124
|
||||
if ! use X && ! use ncurses; then
|
||||
rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
|
||||
rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
|
||||
rm_wineconsole() {
|
||||
rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
||||
}
|
||||
multilib_foreach_abi rm_wineconsole
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
|
||||
dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
|
||||
fi
|
||||
|
||||
# Failglob for bin and man loops
|
||||
local glob_state=$(shopt -p failglob)
|
||||
shopt -s failglob
|
||||
|
||||
# Make wrappers for binaries for handling multiple variants
|
||||
# Note: wrappers instead of symlinks because some are shell which use basename
|
||||
local b
|
||||
for b in "${D%/}${MY_PREFIX}"/bin/*; do
|
||||
make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
|
||||
done
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
local l
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D%/}${MY_MANDIR}"/${l}*
|
||||
done
|
||||
|
||||
eval "${glob_state}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine register ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine register --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine register --staging ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
|
||||
xdg_desktop_database_update
|
||||
|
||||
if ! use gecko; then
|
||||
ewarn "Without Wine Gecko, wine prefixes will not have a default"
|
||||
ewarn "implementation of iexplore. Many older windows applications"
|
||||
ewarn "rely upon the existence of an iexplore implementation, so"
|
||||
ewarn "you will likely need to install an external one, like via winetricks"
|
||||
fi
|
||||
if ! use mono; then
|
||||
ewarn "Without Wine Mono, wine prefixes will not have a default"
|
||||
ewarn "implementation of .NET. Many windows applications rely upon"
|
||||
ewarn "the existence of a .NET implementation, so you will likely need"
|
||||
ewarn "to install an external one, like via winetricks"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
eselect wine deregister ${P}
|
||||
if [[ ${PN} == "wine-vanilla" ]]; then
|
||||
eselect wine deregister --vanilla ${P} || die
|
||||
else
|
||||
if use staging; then
|
||||
eselect wine deregister --staging ${P} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect wine update --all --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue