parent
443c349e45
commit
b70d10ca4c
@ -0,0 +1 @@
|
|||||||
|
DIST borgweb-0.2.0.tar.gz 503852 SHA256 56a4cb485a1950098925230644ffc958c94f2a311125bee557dbbcdb5c257cef SHA512 7898caf803b82e910eaa1672b892657038da6606777ecefd97c27698c14524094f0c1741621ad4ff9a230d66454de419558644ba185488b0fdb5e1aa604010a0 WHIRLPOOL 6fc809ea502b860d5f92f85463e4f4114bfe40d9f756f49cbe911ade566a10610b73ce7a9c139797b1f1e1642a82b5e77f0b3f7776d278a1da57e95b454535be
|
@ -0,0 +1,20 @@
|
|||||||
|
# Copyright 1999-2017 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=6
|
||||||
|
|
||||||
|
PYTHON_COMPAT=( python3_{4,5} )
|
||||||
|
|
||||||
|
inherit distutils-r1
|
||||||
|
|
||||||
|
DESCRIPTION="Browser-based user interface for BorgBackup"
|
||||||
|
HOMEPAGE="https://pypi.python.org/pypi/borgweb"
|
||||||
|
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
|
||||||
|
|
||||||
|
LICENSE="MIT"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64 ~x86"
|
||||||
|
IUSE=""
|
||||||
|
|
||||||
|
DEPENDS="dev-python/setuptools"
|
||||||
|
RDEPENDS="app-backup/borgbackup"
|
@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
<maintainer type="person">
|
||||||
|
<email>blueness@gentoo.org</email>
|
||||||
|
<name>Anthony G. Basile</name>
|
||||||
|
</maintainer>
|
||||||
|
<upstream>
|
||||||
|
<remote-id type="pypi">borgweb</remote-id>
|
||||||
|
</upstream>
|
||||||
|
</pkgmetadata>
|
@ -1,91 +1,14 @@
|
|||||||
DIST wine-1.8-gstreamer-1.0.patch.bz2 30908 SHA256 00cc1e943e2dffb7d588bb5befd444655a661bc0a0e51e49651af47e9421c501 SHA512 46901b549b1c84f7d8f8ff4485d1faf60a108cdf84feddc754739aff918e1e979b0b8a1a2604e5df6693bdfb02a3324516a187187f019bea13bc5485fc51aec9 WHIRLPOOL afe4caaf7b3d7ab07a9d8f6ea32125c1838745d399eb9ef2211c669bcd445ae5020991bd729b0460a6804fe5d44a2f42c32d94b2de32cc4b338f9391dcc6f78c
|
|
||||||
DIST wine-1.8.1.tar.bz2 22839063 SHA256 149ad3daaf8593b36c5c061285df0ec2a25e20ea48c61323be91088c4d22ca97 SHA512 e4cc3d00f28a616326f3069c7eeb94dc07759018b719bc37fe733b0f5e5d17f54ed2e877a964e9ea235362c49bf45bb3ec7072fba3d66648e6c7d55568e863cb WHIRLPOOL 8970d900c769add34a079f84c0562fca2d7e303ee9aa15de0fe2fde059de01256951c5ffeddb7b0a126599636e83d0d4ebdb8c0df5cde218fe8858e8b2451a0a
|
|
||||||
DIST wine-1.8.2.tar.bz2 22857786 SHA256 51624fadf0145e87f0c01e7ce8524ea1e8d9d360c3e8a86e78cd26a52ce55a6f SHA512 ed4883443b29c00409143932de40c543a65acfc01ce61f223e6ed852e6869d1936e5d6c1c3942335d2fb6c9ee923f6187ba9f3207af9900911c4258c0266a321 WHIRLPOOL 6e658ad3def7b3784753df00534ba67f6b634691a058e20bfefcf4dc44c126e5afc1789135b9e6925e1d79afa82d1c2c39ff696b6a0318d080774d829c5e978d
|
|
||||||
DIST wine-1.8.3.tar.bz2 22901016 SHA256 d7cecdf7aab93bfe950e6f83ec526681b8770788c7b2a802bfe50ff97fc17a6c SHA512 16e0e0161ded64d6abd4503e4a458e62cc630fd1ce7f8eee885404c42be784159213144aa049ff6628924828e13438453071d29b6975747ea4101c9da7e89f28 WHIRLPOOL 2f31ee6e261bd38ecbdcadedaf94d8fcb24324edfc1f85703b6ab91922a95c36a7b958375e499a26529cdfa190e6d6e065f396f9efec02027e04c001db694ed7
|
|
||||||
DIST wine-1.8.4.tar.bz2 22907393 SHA256 515d10439777a4816fe5b0a0fc9a4ce498a2ecfd23eba0c25dc00f3d6c805079 SHA512 fa4d24e064683a0b9995dc506e54cbd1ea306a531d2ed11c951b50c19e43735da4616b325891647bf731ade218cc25ae684fb21af3db2758333e2ada6ffba0ea WHIRLPOOL b62126d02a7e538eb3dffdc22e8c386218148cbc8bf0108e4a64ff05f2506405303e96678df3f57027aa6084e03c9f2862504482c3147c16ac5b115039ddf791
|
|
||||||
DIST wine-1.8.5.tar.bz2 22915082 SHA256 dee2a4959e5f90a89aaf04566c23f2926e9590f8968ea662afd81947fdb6f6d6 SHA512 0434424869722cb4a4b9a0cbf22688e0139805fc9486f2fbfe5f1b3698e6fa5b5292d2031a20f09ae2069a5b19604eed8fdaa5ae66a8cebdeecd65afac83b332 WHIRLPOOL 605b637435add13d1d7ecab92b0a1a03608001a46926ebc4bf4f6998058b035d2a7695b422cec4d446df54a7aba8baf9f7ac2bda68af815704ab6273e1148b27
|
|
||||||
DIST wine-1.8.6.tar.bz2 22915962 SHA256 b1797896eb3b63aab8a4753cc756d6211a0e85460146a1b52063ec79c13906d3 SHA512 4482f63d1f058921e7829f1feb5e671568524ef898e0dc72bbe1c8b22440fac01acecf1aa682b71107e03e9010c970ea4e115f8cd8e59581a07a722652e5629f WHIRLPOOL ca07207e7eb807b9023967e7387a294b56dc8e1541d5383f2214b3477155f6314ce35fbc62499b024dd777f5459eba513f6d47e25397a980fa776c0a5af85881
|
|
||||||
DIST wine-1.8.tar.bz2 22843418 SHA256 f33b45c18112b2071fbf9edee0e8c575407f9e2a9855ca4ee918ed33efa7c6f4 SHA512 34308e82e04dee714fdbd10f29cd6cf6326e5e6e9134f7076e58b09988211065b8c6584881b7e5dcbc9b3906a819ab8a72b612b060cb9aa50b5b67f03bdab089 WHIRLPOOL 335a48f1b34cd1038d62290e52c3189b842d4077b7cf0bcb9d003595992360dc36eac1c592d31db44598de68010f3934daa1f4bcd0a2ca74aa130a39a74f7ce3
|
|
||||||
DIST wine-1.9.10.tar.bz2 23139814 SHA256 8d4900dff6542c973c3e6112fe23da6d85c28be9a4f842a9d0041e8530861bbf SHA512 0a81171d42b38ec3eb549ac1a4b31dd6230c5b4bd1accbb0ec05e29dc901336a995cea648a4463eb5cba2a34fd34389980e848f748d48cd43e4dbbdd3bf48c30 WHIRLPOOL 052d25f4b7183588107f14f41545ccf2430e65369629992999a8d985470ecc924be4dba5d94f4399fa9146a55832ba96b8cde71f7af3abfe30b410dac4e32ad6
|
|
||||||
DIST wine-1.9.11.tar.bz2 23165061 SHA256 728f794280fcb5b5d8814e38542d769e2d54ee0d6bf27c7ed74de34fbacdab96 SHA512 3c2037558b0e3dc833b68e18bee91642f22d19b201c604cd95c09a33ebe72ee1252139e2eb138efea666cf24bb727232b12d4c456459068ab228bfe951c793b2 WHIRLPOOL 7a911377b0c8a78fd18ca158c1b492fb58399a1404cc033ddd33e7abead617551d55d33e2ef9184c7df1b669a8074d41aa9b896a81120be930bb5730428026ee
|
|
||||||
DIST wine-1.9.12.tar.bz2 23240036 SHA256 7eff10e855127b1fcbcdb1e1d89795f4a025f8b5ecefd037728942a63a3b08d1 SHA512 056156260cd71c23f03deff35f97ce9ed0d1b3b153887e9af13ca97c27caebc87d5272fcc27566595feecd65ada3fdba96ea0f58afea566dbd34f7d240519d10 WHIRLPOOL f5e15bb0492a862782ca1cc5a4504620eb10bc6ecb9d2bc2f89a1c0dd5daf012705a0c0141e0da2452ec1429bddf96ef79f6504aae60d052af4c3849e3f135d6
|
|
||||||
DIST wine-1.9.13.tar.bz2 23299453 SHA256 9b678019d71f28f1e570f7f40e43fcdd52a0d4276123679f2dfea8665f37c0d9 SHA512 f8966384fcfb33d7d63091ae067d828da28dee41b17389d3fa1942aa6bad5e506332400f75486438299accb36f2d94ce0f4b6f7030733ffd72fa3b8cf1f1ab87 WHIRLPOOL 1d7abe1bcbdbda2a727d315bd2ecd181b344ef8b00cd753e57464386a8ad03d959317c065f80aa9920be369c1c3e3abf3186face69ff0bf85f96bf40beee7f54
|
|
||||||
DIST wine-1.9.14.tar.bz2 23307687 SHA256 7fbe961caf171d95e1ae109e361f3a9e7cb9f6c9321775e961be2bc12892c52c SHA512 d4226fc8a421f32b00597ef62c1dc6acd39f1854584f8f41f69d48568565862419485ac97277b9caaaf6835095db77f7d93b04578f9a8eb07ca39fcd85d3f3f0 WHIRLPOOL 1ecc667b6429fc984880ef9a36b5cb14cdd3cc9cd04579afc6876628194153f714be260f3a711441b2c988a6d4751c03244062f49ca37d547d2d2d4eb12b32b5
|
|
||||||
DIST wine-1.9.15.tar.bz2 23357574 SHA256 cf992ac991b0e49fd0b186305021acf6e612d5df18d30e3d5808fa6f6731adda SHA512 39eda9c0123453321d414690db5ca5849326bf44d116a353296e88026fa618535a306b9e0c6666ea6716dc8d44f81a2caeae11be80f15448b67bde2be9e1210a WHIRLPOOL cdaa74399ef4849a297a9d8040333500e1007ca8374b76e0677ba8b21e087feac262cf449f90826f4cd417989742670f86eed4c2fb5ef4345e8b955e8213fbef
|
|
||||||
DIST wine-1.9.16.tar.bz2 23419636 SHA256 e120d6673aada93935c6661b75c2edc835a45a8e658b80934c36434b56940f04 SHA512 6848d53064d2eaea207ed4e5440104408cb6a6b9c62241788abce31b8d115529428427a1e3bf0e94eac43b71bd8641597060b6ea7391d1a87b36ff557a964018 WHIRLPOOL 055abf278ada0dae4eaa73b70c9426664533e941b024be688ce0a1e24a88527104cf986e8cabed9bcc17758219d93d7b218c80ba68ea3449785c22ba6d222409
|
|
||||||
DIST wine-1.9.17.tar.bz2 23440011 SHA256 6e1ee9dc2f3a11d529dc0133c4c0afb9e6e5440e1f34463faefeb9e55cc60ecf SHA512 f9c1413ddcee0501a535eae78af6a22d358f6c5016a7247aed935c458e2cfa3fe869b1a1b9d7766877aec35371596c12b96aa0a93aa3f225dcce64784ae04131 WHIRLPOOL c57b682f9521e8fe52c35d357e593d7771fd74ad6d4eefb56e209cb4b7837cdf61a0e9d89479c2ec2ad41fbb9b7c3df47ee2eccb0c656739f70cc9b2c03aa6db
|
|
||||||
DIST wine-1.9.18.tar.bz2 23473716 SHA256 26614baa0daac5a0953c04590f187559e5edc314cb34491322f280b34f3268d8 SHA512 fc8ccf844c5913bb9e351f244cf6ec610caabc9513761b140b129e70a56265133a0cbc7b585bf83b028421f29c5ddc0885abfc98cd9a2dc2b0863d6dbb9b59ee WHIRLPOOL 9894a3ee903e39a665b2d4a06ad46708006c4ef9d28074b0d0dbe342186d0ad307b3d41810cc1e6d370fe003ada6ef52d70e568efd85b4b36d4d686f55df3540
|
|
||||||
DIST wine-1.9.19.tar.bz2 23526483 SHA256 b5fe29a84e712f94f4d33b5f2952b45233c13b49ba3459dcee8a50b06147a888 SHA512 f5f60579efd13b6bc44aebc0e7c06fea8e1c0e2bb86582ca3fd189d122224d9d587c7a49833e6227a00444b4616ed02c747020557b3f847737e3e187bc8cc2c9 WHIRLPOOL f1134f186fa17ee7fb28fba28fb35a8d26337b53e532b30e997db336739220ac186de4a8c6dfaa4653f3dbde1cf53f24a4ac8bd3fc58c01ec5529699c3116934
|
|
||||||
DIST wine-1.9.20.tar.bz2 23555024 SHA256 2769f30642329916f12696f7be225644d28fc54d1b9181c979381d70b9a279df SHA512 31841298104592eb615e0a3d70b06b69b5226f8c2b8865e639407399d8a19e20527779d76fe08fb913f6114c4908401f7efa9cfa56fc3360b832c30cc523e764 WHIRLPOOL 3a9fcdf8436f41c863e282b464132bda4ac73e2b0da4e995e93946400e819aa1b432dc7e845b820d1ffd995f6fe054878012323585e8d56186ac8b9e36f6047a
|
|
||||||
DIST wine-1.9.21.tar.bz2 23561191 SHA256 8b6dd027021be9dd646d65bd19c0334c36dcf9403d8ed4a6e9460b6703efade1 SHA512 0449dd56907900a963a0c70dfb86e189a3edd5ae6b04a64a3d56af2155777c78c56b51ae67d7b97f796f65d731b0ac168555efda3609a6357eefbe537eb20bfa WHIRLPOOL ce593cc6a55482e25c29d43cb1c9dc6e18ed5335e88d2509edcc2c7b4ad7947b29c330e1154a58c88f7207f8d4fa4bb4cc49e8b4c1bb42a805e73238a9156627
|
|
||||||
DIST wine-1.9.22.tar.bz2 23616095 SHA256 a3bf8e1ac7c7a742601e4215687c8374dda4050ea64c0fc90fb196645a41ec41 SHA512 ab26985c493ada8ebf6fe6cfbed392319a98ee9c337236f7fe979bb0a9f3149aefb6e448434143c825f7d5c0e7b394619c6a503834081e6126ae9c6715cb14fd WHIRLPOOL 771bbc53a668cd15ebd49011ce582cc16025988d0fb75d788913d1d80bc30a131713d4f6a425abb520332a622e9e620b5c6bdb55c88d34e02751eff34a5265f9
|
|
||||||
DIST wine-1.9.23.tar.bz2 23573977 SHA256 e3efa726f6b3df75cc1151341300c0dc9cd171d84313a428ca44684df9c4368c SHA512 046daff1a896dbcdeb019ec76eeeca1a13b79c2d82e525984ebb247358f479fb3e37fe33cee6046b6bb97eab740ab9001c6023d9dccf0d00430eebd82bbc52c2 WHIRLPOOL f1b4ad8f3315f1e28e630d5429b2da2f83157ca77d0f6860f2f5393bdc8c27f7a4cb4c087b7e53d5e00c1aa470e6400e5f9b7facbf235069530190bc0506cad3
|
|
||||||
DIST wine-1.9.4.tar.bz2 22974777 SHA256 75c1eab6b980870b367a73db6e57eb0dc9242c2be8546f94084577a0ed0bbbb8 SHA512 e7b35290ec8f451163a08e841c559698a6b7264b320058e38ac788bdde66042efbb88511b30fa38383844425eaf0b6f4ed4b8412feb843ed405cb510a4a9000c WHIRLPOOL 875e11e9163df8c3473aa7b79deb5c6783a2068e678c4008cacf730d81c2f141490264a10f4345ceadd7aba100d3fc71bdfda7858f89d966d339cc2772cd8190
|
|
||||||
DIST wine-1.9.5.tar.bz2 23034629 SHA256 fb526308e7ac5e202c0f0b663d4c7a943419d9eec766af6831caf23914300f09 SHA512 cae779353bff61c215d0969288afe6e6e5192cdf0f86f8b15073861f0a22cb6b508ceb084e9b2cb5c5c658abfec5751edf9cb48930bc97c43ecbd6953427fc07 WHIRLPOOL 7f0c29b13b67660d364b2bbc86982a92f73409cfca3e8a31817c39df36d9ad476a9762f135d85fbb947746367277576a97fb6a012f346c11454c43ef75ac9fa7
|
|
||||||
DIST wine-1.9.6.tar.bz2 23071838 SHA256 3d2b862feefd89eca954c1cbc16a28e0ce851aeea1555bc1842ffc9aab2c1557 SHA512 d56d5b18a26b4902ac0138a4358f91a027f929a3ae70346e48b529eb7f09f7f1971bdae52d6a37dabbb598771ee5754b320e39c6ef26700202bf6be90b8b101b WHIRLPOOL 544ad527ceeb9339fd7fb35d847451dbdac79da6226cf15fb2c4be01eed3babe4c5e343236c5005553084ff83ce4e274305b5f91b2bf03a6a27d695c4ece280c
|
|
||||||
DIST wine-1.9.7.tar.bz2 23101883 SHA256 49705fe02505e26ef8022c662dda702cfcd5c4fd73886e00b43d32dc2f8887ec SHA512 9946d3c69941f26e56ab78cde3c91d91debb7fc5d63f8758aa5a4e0bcdfb78c86d43f3b736b81b761bb5924479491ed00727a739e0117d3e9d5e3b8c3a90004a WHIRLPOOL 4f4f509b894c6907a8b10b08b6851406c2172d969b1133aab64afdf53de2ca21b19cdbdea555b514fb9a8df4da44356419fc2a6bef12584b271c359978070b1e
|
|
||||||
DIST wine-1.9.8.tar.bz2 23183703 SHA256 8bf34e8dd68e7187ed11fb06a55a76789073dda6ab2db6b84e194acf4f561a1d SHA512 3f90238b78836836b4cd74975da07b0ce39f3da0e68fc8529554e1770ecd52c315519985bd15dc82756491ca3d145b27249a0e937221badb01ed3a1f8a69fbd4 WHIRLPOOL 22f633ac0f9d1f7bf874dc756432534c0deca765e49013576ea69ade86c98e8759fb14813d8d68451250911902541a3027a729328bff1aedd74ecafc9c85acf0
|
|
||||||
DIST wine-1.9.9.tar.bz2 23155986 SHA256 a1e76fd9842d0fe385e930cd62e7193035a04ed11fe771d9cd6ee9b2ceda7b41 SHA512 370caf527eac948b8bf2583e8f8a647e9b353b8ea70a341a0eb1fd768eea6c982a5c8b7eb23ecfded6eebea370d06bd23ee1ba7b2ded63547f571cc293ee1695 WHIRLPOOL bf97f4fcacda1913d2e7be21f6c771392b06653a7877ea07cf65731bf37eae3f3eb5d5fe5971dae18be709afcbbc65b3337e8d1d0c01e938671eed095aacd0af
|
|
||||||
DIST wine-2.0.tar.bz2 23662707 SHA256 9756f5a2129b6a83ba701e546173cbff86caa671b0af73eb8f72c03b20c066c6 SHA512 b0a57ba8202d9fc396e5bfb7a7718d6bababbed8f3351e7fdc36afa37f35a871e04903757618f73427aeb71a52b2d323977d79e48f8b38d636f23fd404441186 WHIRLPOOL fa9f774d87dae73c7d1f3b86dc3b03ea27065eb6140f1cac13c82fe16f7ebff8f8365ed447220cf5c2788b9f4aae7c482e4f9e2e69f47e5435209e148f5dbdfe
|
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.1.tar.xz 18887032 SHA256 bfb9abf63691c93df28d9599aaa866dc2b4e27209b3b7b546df8a37d7d9d1e6e SHA512 03d678ee6e89c2804813f2827255fcf59e96ca9a45b7d8ac441cfc84f835e5e5689c70a79a41a04c631e1add7807fa4a5758acef3bd7aadfb2e92e68958c6ef6 WHIRLPOOL 063d935f1ff0922100641f2f53cdac23d2993a83182d45e028e485fd7d0a13bc5cfb77bca76550b1537b3f42fecacef7fd64785adbf6425af823f56f96973b54
|
||||||
DIST wine-2.2.tar.xz 18916364 SHA256 64cb57e1d8aa07f5c89ef26743b494f2d3ef9c0f4e50d3ee896a93535f7751f4 SHA512 0700868244d397c1442948716321e5ff030c667edce464570f76aa4340199489a422872aa3975bc0a57b8285c9d59fc04e223a4bde094169fc6db460acb626c4 WHIRLPOOL ffc3d357a76592651b589c6ac6608720d0258474890faf8fe3e20ac29cdd1496d569721256f9389d347bf2734a556099154fd18ef1b56f45bb46c4c15771d6ca
|
DIST wine-2.2.tar.xz 18916364 SHA256 64cb57e1d8aa07f5c89ef26743b494f2d3ef9c0f4e50d3ee896a93535f7751f4 SHA512 0700868244d397c1442948716321e5ff030c667edce464570f76aa4340199489a422872aa3975bc0a57b8285c9d59fc04e223a4bde094169fc6db460acb626c4 WHIRLPOOL ffc3d357a76592651b589c6ac6608720d0258474890faf8fe3e20ac29cdd1496d569721256f9389d347bf2734a556099154fd18ef1b56f45bb46c4c15771d6ca
|
||||||
DIST wine-d3d9-1.9.10.tar.gz 46409 SHA256 edfb553605e9024e180766002181954d6a09339a8114d7319166b232cd86221e SHA512 d8c95832089c829108dae291470f73525684b1c4ca10b86086cea5b2872b6b058945bfffa3464ef25fd68acd90699bc435e49f75e09e1029df0521415c9c4c1e WHIRLPOOL 4cce21462ac12417df3b9641587fb9fae13171fe58297f0c818f8789011b2f886c5a6ed6ae2bb3ea44077f06d45775ea41399fb551dab35edb9b0f73b8e671db
|
DIST wine-2.3.tar.xz 18931732 SHA256 afc95c7a87cc8f0730b462c50a5dfc9c462eb02c6bf5874b4fa99946f49e067e SHA512 bea78e8468555ff9e08dedf3918da5ea82721549c43984869989bbdafeea00e454820ff9558aa29925c97a165a9b01e5cd1fd397f133833c58824984a6686171 WHIRLPOOL 1f5ec8e5c32d124277e4c71d95726d3a5337575757c3029567c77165d65fcfec2ddf33d3863b4bf55c9eff7c3582c1ec7dbd76d84ed8bbbe89dd16db6b0128c1
|
||||||
DIST wine-d3d9-1.9.11.tar.gz 46383 SHA256 5be6b00afca2d7cf988bb094d7caf07d6dc7bc9c9d00aa104fc6a62d22330757 SHA512 79cd2626fd110ba2341ba83d8c7f0e0fd50fb9876a011b3249444840ee2075e99d7e4fa26cd5b10f812034ba96ec955ffc9d8803174dbed3374015980a203618 WHIRLPOOL a3a63baab038b45eb6a30cb60cf33cae793d8545eb138f99bd9226068655156cf8c18287deacb9c6b5a839fb1e427e9fcee1c2519d7d24bf4609851eed5dec36
|
|
||||||
DIST wine-d3d9-1.9.12.tar.gz 46410 SHA256 e7285e15f9ce44aa210d5910facc818fbcc7341eb471a2b62e63d09083fd003e SHA512 bd6b8e247762f3d9ce673127d81a1bc6901e3b0e471f587372ac0724c536fecdbaf5781bd188ebd8ba64f4538d774c0f52e0c7d55e2735947b307d58867ddfb7 WHIRLPOOL 097141afe4aa5c1267638ed2c0ec6418d5c37d854efd0a210034d956b0ff6d89b6bdca104b9be8cd84c707c4b9be36e60cff2a0238ea97bb8e88c43104a1aea7
|
|
||||||
DIST wine-d3d9-1.9.13.tar.gz 53490 SHA256 2e1c9962bd08a939f4c14f867b7566bc0ccd480628ff1418ecaa61cec6a555db SHA512 bd2e6cc975411cae56606141468bc1785f4e480d2578666d2d1aef8e7ffac51b4361067f3412e9dd147fd4c82dcccd60ff5847ced5b6d141b8c370ced1e78d40 WHIRLPOOL c5d15fd09937315e870e3548e4852becccf48ef24988a8f7e48c3afe24c5bb9f029d1da3509f237500a9569de475fef5bfa78be7207ee37cf82ad45b427a45b3
|
|
||||||
DIST wine-d3d9-1.9.14.tar.gz 77130 SHA256 94cc4ddc639e6c541e77f807aa6ea678b5105e06e089250c6d4b37f455da7f34 SHA512 3195a6a8c2dacb4d34548f9408f12d9af8048cd41d8cba797178fc9728cc99c61e47e8ceba6801a6d9829363483064f62a07390648150f80e9e68122c9d1d5fc WHIRLPOOL 36270bf08bdd054d756594fc3d404cbb4bfe175c45d83bae75257d103d298d9e62a22c5cc69bb0dc528d4b8133fc8ad02fcb0f97157b549e4fbbd99cfab5c960
|
|
||||||
DIST wine-d3d9-1.9.15.tar.gz 46418 SHA256 e6d8029e37c4afa8018f595ae8ee23a547782a614d5605352301685889996388 SHA512 6ad990ebd023d0125146c3b785cf38862368c3034daac6dad1a2e3a04737c5a31fbc81b562e4571ea386f515a04b50d42699b783ab15d9e3b19b12b1a7148c08 WHIRLPOOL 01a37e81fbbf99bbeab7b3c06eaadd52e8d4cf6459958465aa53d76b1717fb8bda356bae3f36c790bca29f38f80546c8d32a376f5fcb4d35f1593b647c9f5109
|
|
||||||
DIST wine-d3d9-1.9.16.tar.gz 46413 SHA256 bf45d4ccd900147bacb7f66c7fcc28dac9d3d7a0b3c0708a0ad05f519c5a5cec SHA512 fbd5b4c9ff342740404ad4ec0f059ffed470b60f87a8b56617cf7af83a357f93dcb19f6e0ab7203bd5e0e3821cb6c6ea3b4455fbda22f09cbbd679152f259aa6 WHIRLPOOL ad70b1a683672fc83913b83b8686b2abeceaca0fc8922cb88c5a3101712cc40fbd1d9fc78af0acc48cd50c239a7e0e84f2f7776218b868b53c90a60e1f3254b1
|
|
||||||
DIST wine-d3d9-1.9.17.tar.gz 46417 SHA256 6663f76c27d5507269d094f6d86d995efdfa8a75951521a51722a7fd69879331 SHA512 d7580c999479ef697baa961b23a6c559599924f2c139bf1fe433be0abcb00172e36e979f3c4fd736f1463212d6592bca4a8f5a17216e3c9e551ce483c29b9d54 WHIRLPOOL 91a998dfe43053cc16a44fffcbca18ce2bc3af1b4d8406ecfa658e50daa7fc10f5aecf696dd67912be42e5e5940d48816171bf583aed120f7c95aa2c52b8624a
|
|
||||||
DIST wine-d3d9-1.9.18.tar.gz 50653 SHA256 7cf523ca7f36ecd4be2dd1f0d491d7bd4911a7a36781af78a5b4f735ab58cb23 SHA512 5fcb07349f16f975d50ee6fd0da6cb1943a348707a3bf29ba4dc914d63fab78f506ea7a86696bbb42b57cca6fcfedaf062925ef3b0447745764465b1491bb7e6 WHIRLPOOL b415ad483cbef12abe565ae8de62ce90f44fedfeabd6df88451788781ca6e8577b696c56de915addbc970b3061b3b4fe661660f69dac1ed2059bfe57e42c58f7
|
|
||||||
DIST wine-d3d9-1.9.19.tar.gz 51406 SHA256 59c872728c5dc77d5b5a4ec2fb2965174f1317cf7650ae64ce8b5fa90d73b56e SHA512 e9d7207ccbce6849fc1e6dae1d10b94a74b391348b4792ad5440687e6670d11d17b883ba024fe2d93cbde362b44e4bf01196b36c68763c72750e51a6ec5e9d99 WHIRLPOOL 45bf7947f7d78b0666be79f535087fd2b431ac646b45c66cebc2b6eff42d8b0f7c69249d1b105334959712ad881b841ff4ddf56cf17b5e6b2aa1b8c645e9b9a5
|
|
||||||
DIST wine-d3d9-1.9.20.tar.gz 51410 SHA256 a16f57dd755c8a5ddfaa2f573b2b72a397afa459ff2df4a884ea9b6fe3d5756e SHA512 8214ec5b621f18aba7fc97d6323bf1fdcece106ae05c9343092c22777f2735aae89df72e35d4ab032fc30d4c4d88daa9dc27bb2b50d8fb9fa094c509f8329a2a WHIRLPOOL 83c3ca85bf865d8ff55d84890a9a5c3be1ed5bfd3050c0dea9dc77425162bd70298097ff58bf0cbb9791cbfef37e9b0a5276c95bed29fa668d53a3338b9d4b50
|
|
||||||
DIST wine-d3d9-1.9.21.tar.gz 51414 SHA256 47d0b9cb01056aff44789a3b3e396eec9da4d211d0a9563a248f52a0cad33310 SHA512 b59c0ddd1c4e1ca8526e81dd81301d363a8106c2a3cfdea2b6b5a9d5f91f8462669ca104c300cb36f83f8b227fc6107ef15ae28d522eeaabdfc6e9813e301b41 WHIRLPOOL 3b83d943f6178a032a43abceb067ac34d574f0b2d1178be9d2115766959305e5dbff68382ac958ca7c5bd28f5d0940632543d955111c1e88f85b2e6f9ced7514
|
|
||||||
DIST wine-d3d9-1.9.22.tar.gz 47356 SHA256 ea7c97aa0ea1413e99da960f85af403e9904ba427a6787fbd6000da27d100786 SHA512 180a6d73ec478667514f995da0521c339d97d345c7cf565d4c8bece0583bd094f10bbcca08f09150a54473ccca03dc27f571bb11b0a2acc65049bc34a04b55fa WHIRLPOOL 023446b2e0349561c491a6f3379a1e3d062aa8d808b002f332bcffce2665da161f972803c854757456ac0d2736362f30624062296cf5ce9e37457978753ae884
|
|
||||||
DIST wine-d3d9-1.9.23.tar.gz 47690 SHA256 3d2f5b6ef1b7b7f09934ac3c0beafe23b9062177e77623f233d53dda29215b19 SHA512 52fee3f3ba48a5347f5153fa667c9257e725983fe70d1ef3d212acaa4d301441c60e35473aeb343bb16e3e4e8b15c4303e5fbbf74df9989c658b01511de2af6e WHIRLPOOL 34abb6ab65c0d0e16cee8fbb228c11853492889a9c78be5f58e62348b282d967293241323da93aff265027cf4957dc7be36820028adf46a62c978f844ef5446e
|
|
||||||
DIST wine-d3d9-1.9.9.tar.gz 45615 SHA256 cc6575ef97c6ff74d11d370f6af012c82b33697cb5d120d93d3d501623ef4856 SHA512 142e4c11c392a7999093c6703e3e506c365633e7ae4c2426d164e411e5d28fd0c7b00acffc0ca35c755d8ff6d8585072f6a3d3bcb8b5e32417db5597f236c4d0 WHIRLPOOL d56f84a455dc643f756fedfffdc73640cb34aa8164df747fe44f204dd7165d7b000c22de8c33c9978ad97b32b8b6d285551de8607acf75b5f079cb7eeeadb05e
|
|
||||||
DIST wine-d3d9-2.1.tar.gz 48385 SHA256 9fd80e3e2ea905272c42dbc14679e94c8e2f955101ae098c84060d4c62ffc9c6 SHA512 9234d8227412d940a6befcf79433f1d5ab0634d5e829f3771ffeea235af05be29ffc40438818b1976c77d1e2e79da8a67c4dab2b7d2e822b502fb6e4a1a7f8b7 WHIRLPOOL 790e482850a13c5bf0967e900620c36d71c4d6673106f8f5c2848550ed574d326d3945d9906de88d847bb5644a520aab7fe6d460b3c3afd49a396798dd253392
|
DIST wine-d3d9-2.1.tar.gz 48385 SHA256 9fd80e3e2ea905272c42dbc14679e94c8e2f955101ae098c84060d4c62ffc9c6 SHA512 9234d8227412d940a6befcf79433f1d5ab0634d5e829f3771ffeea235af05be29ffc40438818b1976c77d1e2e79da8a67c4dab2b7d2e822b502fb6e4a1a7f8b7 WHIRLPOOL 790e482850a13c5bf0967e900620c36d71c4d6673106f8f5c2848550ed574d326d3945d9906de88d847bb5644a520aab7fe6d460b3c3afd49a396798dd253392
|
||||||
DIST wine-d3d9-2.2.tar.gz 48387 SHA256 203ed60980ec584c09b413266728e3a93e2d980dbff9b4f65375a4e9744b5042 SHA512 6e9e031b51afc8ec200bbd252ff0d768c29af23907f782409834de593f896afb128f86fe012c95dc18e5f3c7267f170eb343d2a2c53d639933a337f0c1e04fab WHIRLPOOL 6b32c0dfd3068e87d94bbcd83718dd75a14b36d69b151e9257e04793d2d3ae78ce7da10b80cbc824ccefb6c11666241593f91963ddee6a58301f95bbde35285d
|
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-gentoo-2015.03.07.tar.bz2 85419 SHA256 f13f93dc49bbc33a294c4d511b6e01aec2d38bff77a1e44d07668291add1ab04 SHA512 bae1d2d5575d340d01f44008104f0e5ec0c4a4982995dec37d501594cd21d07a2b4ad4465c4273646d5bf6521996b4b82471097864be75342abe3e7d478a56bd WHIRLPOOL 0f254dd692e87a1f71dd19f6c1c8c59b8a91b994e75912a2e6e3ba5e875b85119fe497a331a95c2ce33bbf5f064143d23ee00275da92c494227de0807c9abb06
|
DIST wine-gentoo-2015.03.07.tar.bz2 85419 SHA256 f13f93dc49bbc33a294c4d511b6e01aec2d38bff77a1e44d07668291add1ab04 SHA512 bae1d2d5575d340d01f44008104f0e5ec0c4a4982995dec37d501594cd21d07a2b4ad4465c4273646d5bf6521996b4b82471097864be75342abe3e7d478a56bd WHIRLPOOL 0f254dd692e87a1f71dd19f6c1c8c59b8a91b994e75912a2e6e3ba5e875b85119fe497a331a95c2ce33bbf5f064143d23ee00275da92c494227de0807c9abb06
|
||||||
DIST wine-mono-4.5.6.msi 53705216 SHA256 ac681f737f83742d786706529eb85f4bc8d6bdddd8dcdfa9e2e336b71973bc25 SHA512 4d8df04c1d0da09d1abe423dd271e5dd14a193d607fb54e214d2e340827f7c33829342d1580b6907d7cf466e70993d743c6e1ca9a026d4b6225dd7c1fc8b1386 WHIRLPOOL 9a68e502da0be6768e92d88f2ccace607300f3a331e0f9e1b6d60e9c6c2d4eb635b902f03e13aad73461dd5f0c2691c7b41958356ebb7f445e8def4282c675d3
|
|
||||||
DIST wine-mono-4.6.0.msi 45690368 SHA256 635c6bc88bad8d6bf8c6016a589627142ae56ac2e7368192102a16fdbaa29cc3 SHA512 d2ab7a7b98d18132cc28ffd52352fcc6cdb16b1750a658e9ec961044e808e4e8e1605732f1e87bbb6a275f57fdb94aebaab3760f679472358c7df608b0fa3262 WHIRLPOOL f8f6e83be5bd4eb7bde6e6c0d1f17bd4d4c887c52fa2018f20e51a30ca7ec0a9550884423298bc571587fe3c203f921057d91c3c78c12ebf9e911996bdd7e77d
|
|
||||||
DIST wine-mono-4.6.2.msi 45676544 SHA256 a46c5b32b6ed66e2e8d7ac9b15ff9ffe143a3aa6f12f2ea07a6ca9a4d2023e41 SHA512 7ff31b64539976cc4d5ded1b38549c9bec620ee7679b5a53093195b7df1a93a57db04ef81d94342ec6e4389fef356660e3eb4c35e7b50b6df98288ca19eb633f WHIRLPOOL eef536a301127f78b06d56054a95e86e73ce7ecd0522a41f6d581d6cfb8660ded5b8148e00e9f8ee77361bfa4a66996559480cd7881c4d132169b5de698f4ef2
|
|
||||||
DIST wine-mono-4.6.3.msi 45591040 SHA256 f883e88ae78c7ea3d887c24023aa1ed03bb71a83f717c6595abf18b31fef28b9 SHA512 b940d7c07d0892ac76ad9e4c3d4d159afeee43765b6bfe07f14beee1fc8674b58a9af20a5ee0a4d9667a15b83a0e6538c0143b9072c677dd753e32bbdd17065b WHIRLPOOL f04002904d99dc2615a179c13ae810c8208808c60c5e5eda7f9c3f07163d645cccf6f74d4354331fa25dfb41ef2c24e432f83670a3e7c3a90fa6d144b3d193b9
|
|
||||||
DIST wine-mono-4.6.4.msi 45592064 SHA256 91b7d58177b9a9355edf007dab94535471aebdddae12734ceb4a219d2ecc4152 SHA512 1d50df5d4d000998c74fbee79b8ffc691d88ee3b34db9fd7124e0df68d6f84768ece489ac8c3f5f3141c2073c8666b93ae23ca6cd652a6542a821df3d1b66b6d WHIRLPOOL 54b77eabdb357822a89f3ff0d318755d0bae60a4a1df44ad33e663138d3f874f2bd271368df86e350ecc96908e77e82cc9ff7eef6cd80e20998b5cfc068703df
|
DIST wine-mono-4.6.4.msi 45592064 SHA256 91b7d58177b9a9355edf007dab94535471aebdddae12734ceb4a219d2ecc4152 SHA512 1d50df5d4d000998c74fbee79b8ffc691d88ee3b34db9fd7124e0df68d6f84768ece489ac8c3f5f3141c2073c8666b93ae23ca6cd652a6542a821df3d1b66b6d WHIRLPOOL 54b77eabdb357822a89f3ff0d318755d0bae60a4a1df44ad33e663138d3f874f2bd271368df86e350ecc96908e77e82cc9ff7eef6cd80e20998b5cfc068703df
|
||||||
DIST wine-staging-1.8.1.tar.gz 9598557 SHA256 12a4e54376515e2ab8ad79855ba724ba065c8de619c5da192ec528cc365f9c97 SHA512 d24bb78aed1e50ad73e742608048a68097d40e3c6563c1bd5adc2fab6abe0838dbce2d9f700ef71d876c6dfee232e97bef91bbc8f6b6c9092ff8db5a2d0f05ac WHIRLPOOL cb1400586860d4e6dad3f3bad78bdde27f8ea9fb703180533f5852368041879efe93e716df8f54bbeabba38b7d921ec0e2737bc6121c8cb5fd5af8d117d7e538
|
|
||||||
DIST wine-staging-1.8.2.tar.gz 9593817 SHA256 388cdcdfcb80df56df10c0487c03b1f2a5d5ad5762eaf4036ea59dacd43eb64c SHA512 8dc795b99cecdc852d9725c90250de1441f2a9ba8abb96f9c7340115541cd670efd1e8640d34502c15a6e3eb77a1d9fc581f5464109976e148665ab25465b7b9 WHIRLPOOL 0a54f239fb21201bc72e72aa3fd5f94b5411a8fdbda85515b53cf04d77439d7d98db3c385a175036b1d3478af071e478f1fb16050823c6455078f719ab85b2b6
|
|
||||||
DIST wine-staging-1.8.3.tar.gz 9581722 SHA256 f217439b29c296f9f61f5bfc84b17d97ae86e2fe87e3a2a0b259889c4dcdb65e SHA512 762f1d6569d5b585540e9adf2cfe9a4a76b958e5f4e4442265b19abc1e621b2020ca77896c6aa7c34d19b792084693468ca0f07ec6e90361f5e8a95c5bbec8da WHIRLPOOL a23cfaa28d7abd78cba8306b57a5900ce2d6a720aa6f580ec7dacd159c4648442ad994d68d428ce9690e35713d4c75d4b42a18d307897a51230bc0183999e752
|
|
||||||
DIST wine-staging-1.8.4.tar.gz 9577341 SHA256 db489655677d95e4028f4cbbada3ce61e8c1d5d4a309264a6cdf5d401ddf0d92 SHA512 59c09d1d9e564cbbae29534cdc899eb396975c3b2f8244ceef48abc005ade73dee514ebcbd39fae99a4b83d598e420562723868c65219a8ed72061c9cdabaa66 WHIRLPOOL b4551a4cdd6d4de139d5098fe902f671e52d0a225b91af47713eca268a70acce719f4ffa79775079441da678b1b2b3c12581da81a693bb664b31c89d102404cc
|
|
||||||
DIST wine-staging-1.8.5.tar.gz 9576407 SHA256 78c322a3cddaed0b2361bba4405d7432cc3e976d50433a94407923a982417be8 SHA512 0469c20d2fb71a97183286d0e36af60b6c9e0038c94e58c8e22cea023f2160256da470f66601bad0b393a18559bb3d12bc87f86c1c673958356fbe3a6d08d766 WHIRLPOOL 5fefd608c95896866a32631b649b51bf9b0b085209e5effaa05fcab368be9c96544f9949b3c891f1e4f7e0fc4e852b0cc09c19071e9938e5ab12153da43cd107
|
|
||||||
DIST wine-staging-1.8.6.tar.gz 9571130 SHA256 dceb97e9a92aa6ca38d982b2b7eb3deb459fe2c90153742df5659b734e5572ea SHA512 a8760f9dd872ad014b956290cc9962c0e738feeba067851f1c04ca400ca3f4b03b1c404b5a851c0bcbafd41b8dd3d9b0a1d59fc4f339235622c815d683d5bd06 WHIRLPOOL c66e089a101b8b0e47310cc1608d43eb4a311e53ed8101e02ccc68c81da12115d81aa69439bdc2a8a6a32a6ef812aefbbbc44d014b28671cd7c990f75a48b73b
|
|
||||||
DIST wine-staging-1.8.tar.gz 9632566 SHA256 c66f3dd6a760d516affe7467c4fb2d15ea8e2f0c72bcda1982219948dcdff11b SHA512 7b030b217ed0b37b8037d782406f75fcdb681c81371eafcab87175c0e6ac8b50fc58fe364e933e79eff168c1755412276fae3f914b7c36a6937aea1f6e35b022 WHIRLPOOL 8cff5d1d4c23405b820dbf9e7f73f7bba785e04ec2d9087b0977bb7aa1e6b84c2e6c3ac2f9cc72ba3c16f2b9c8c3607ea02ef1cd52d428a2b441333a424d9a21
|
|
||||||
DIST wine-staging-1.9.10.tar.gz 9951778 SHA256 9f5218622565b00e5caa1026a28bdb2b2756886b1a55fed2f1e64a76b9716046 SHA512 f694a113240adfa0181ee6681b6558ff86fd9e8e4d0b24399c310121fdc8d9d3bd85086ce75cb21bc838132a1ff4c834029da9a1a7d5e0841a22b63d265a52d3 WHIRLPOOL 6597a0db47defeeff87c208ce5dc55f8b8ef799efdc8cc6c72f85b9836e71cdf8fb6d763f499afd6e1ec83498f08d7f90d2575d994a270fd7035539d017b7d53
|
|
||||||
DIST wine-staging-1.9.11.tar.gz 9960530 SHA256 2497b88d2c6ce4e8ea2f149e9f764cf4610b52e521a9c0bf0f56b61668e49c66 SHA512 9a3f558def08d8997811e5d1dbed43901829dc65733887864fbc78f814f63adae43008a753493485e9db045fba028d9ec082fd6ba7e72d5be994027e10a5c0eb WHIRLPOOL 8aaa3bbaf3ba35bf134543e1acbb1d0db2b6f2146d69d98cb58498cb6a52d918b9a52e2ae2af26db861607eacdd58e906d995bcc482746828cdd54470f41845f
|
|
||||||
DIST wine-staging-1.9.12.tar.gz 9966292 SHA256 2e48bf66c599128c5fb1049444b699da8128ddb42522ae4297b570397096a7ea SHA512 06acb6f84688ef4408dac7a4d98d92e7a689f5f96597f046fd801ebe2eafdc8548d19fb0624770badf539df08d44fecf7fd870fe32b3dcf8fe4696f243159391 WHIRLPOOL 698984e8ebcdca9f8969a620c0526d2dabd3793cb5b7aef5f81aab610d177da6d9e6ac21a71c2baa9a2b35a20f725bd86a51efd705574246f9df9917e83f4e5f
|
|
||||||
DIST wine-staging-1.9.13.tar.gz 9928798 SHA256 582a896602254e4bb21cbf85f14ca3977a368a6b30fab94dbcbd17877c914252 SHA512 f6e4c3ff51df749695295eeb4945e86d0ce0eea544fb9ba0fdf9f94a8b60e347e706e3cd68f80450f74b740367e405eeb76732b12b7b2ebd519806f4c23b38f3 WHIRLPOOL 20ee971a4cd3aede47bbbec2c4dabf7081fb7a34eec87ab882cce22aa797471cd4a7da6906326b27c9059b37ab6e4291b2ce39f21023aa5986372af6725d84fc
|
|
||||||
DIST wine-staging-1.9.14.tar.gz 9920839 SHA256 fd9e1d52d96bd405e2aa7d2d6537e31f86fee20102cb5a0ef8b452afd70667ed SHA512 8ee27a8d953ca925083bdd4a108fa940516f66f2b7d8699e63262d3a0ef5a0666a7f75e8833ad13c33ac1c397a5a9ee541df65658da64ccca93fc504f977db33 WHIRLPOOL a83add20ed265903975170a36dff3dbcaaec15e034643eeeac11365761412f67047667344be2ea532b260111893f650c75a7339fb8966cca15648ffd3f796b23
|
|
||||||
DIST wine-staging-1.9.15.tar.gz 9926094 SHA256 10b836e4f78b7da1693cf1199f1b16c160a844a6372733817be31de67ea85150 SHA512 7eb1774381925944abe6bcbe1a8e1810b4d7f51d1f3c15bcdc15084420bfdb6f90b8edbbc0876ad87e896471ab9c9f21d14420c3ecb485aa8ead4256ff8ca60b WHIRLPOOL bcb9e7f15437a03baed57aeb082267b47a06504246f029bf31ead117a258b1b26dd70924427c0cda1526f7fab5ac1eb17a756fb5c1b2f87d8f8727923a185d4e
|
|
||||||
DIST wine-staging-1.9.16.tar.gz 9919553 SHA256 24b0386b3bd04a2e48b5233487b2b3479d6e4042b44378ad3b9f1e04c5082a1d SHA512 bc5b1d3526fd56755a7874417eba86757295745252a0a157c14f0d02f211e1bc11530c47387f68d69b5fdb4028365e55dbd01028c36475d71d9b6d7a585ff391 WHIRLPOOL 233c8f49d379a1c59d62676fcfb332b2dc006d4424eb9440cfb9e8ec1b99c92d2f7bf8da5fe46f10f60d3d90db448ee84c3cda3c54727a6a0c14c0daa3845790
|
|
||||||
DIST wine-staging-1.9.17.tar.gz 9920187 SHA256 74c1263f978e08bb8d53806a384ae4cacb43e11c8d123761568263a1d61224a9 SHA512 6495758c411ff638111da20bb34b95c0b532f4928f5d1fe5d14a80b31e93581b93d54cf1600a76128d60baace90e2fe62e281912d68b61bc3f7a4467a78e03c7 WHIRLPOOL 32327534d6b31475cc90266ba4afa59874a62205ee3b6f198d44a8e2519da13529cd795d4e771162ca373e815a7efdcfe9d278ff073395bbe3760ed6c0b72dac
|
|
||||||
DIST wine-staging-1.9.18.tar.gz 9952730 SHA256 eac41973864486662bc42c8a5692f20a83f9bf6dc65b94d290847bd31e24ac48 SHA512 572ea2c4944f00374ab731ec16596e50149abd4adfb3596d5127d1459d09f6cc1814f98fd09306c3cf4ff0cd24be068f83cc32ed8a2bb1af439e8408e72dd7eb WHIRLPOOL e9e0f7120508f64d41e23a5015ca12a102a1250f87c81cb6d5bbe893301db1a0918eee187f8dad43d8950cc5113552ee2fbeb9ca0ca46411bab926a64295b989
|
|
||||||
DIST wine-staging-1.9.19.tar.gz 9969031 SHA256 2060ba8f26512fc2104d1d15b7d36136d55e600c9576bc6d747e610e1f3d28d9 SHA512 a0c47b46102d66ae040199aae9fe6dc8cb3986f79dcc32faeb1638e747ad92bfbee337290801c6372177b1a36c4f511ae3af7668730e0f526dfa5d4d64bcfe55 WHIRLPOOL 37fd27c8eea783c24d2f9736f9f90fa29e7796e7f86ffd7dfedb18375c3421f055f4f5685cbe24f83b907bfdc6de562860a15c01f0c9fc1f289640749cb25d11
|
|
||||||
DIST wine-staging-1.9.20.tar.gz 9979675 SHA256 201506a3e58fd46b590cfc2f9f70d2e3ba6d3bcff5640da135cee9118e71babc SHA512 025760f9a4e0b94264da54b255be4932076535b6a1510121d8019c8fb8edf33768b23575e321ab9715a8186a7f4b7e4cd7aa573ed1af4c3ea7c919b7287ce42b WHIRLPOOL 93b9274c10f74f1e4b9c290a4055fc55ee2391f0eb9a0c1b18e4e54266f8d6e04e0a3d8cc9376d2d871e3d1d15942521ea9a6ad1c91d9801c117a0397edcafbf
|
|
||||||
DIST wine-staging-1.9.21.tar.gz 10007408 SHA256 88fd8263ba3c13c18423298c49a83d8922e5b45b4797edcd8723aa5d855ce84f SHA512 4144c7f485ac57573b9ab17d3eff307c8343b9226ddc156538a3d6ae141f7c9d9515276ee3f4dfaba388b8dee6579c382861a87883ab92638907b663fcd1e3e7 WHIRLPOOL 5b2a1893e03537c66de6c9296aa54cd0afc515f2a8cb9180c805dc2318a20c51a7efa659880af70150acd053815d27c5293a70cffbb8b5e10a7f3cb723c183f1
|
|
||||||
DIST wine-staging-1.9.22.tar.gz 10034259 SHA256 1bd7a9a01aec4f2887bbb6df53883a44b9ff39afcaa36b4206c17bf985c245e0 SHA512 e2521b7a891ddb0c00e8edf511cfc0457abcd68123e0a12cc86a92c530ceabd97bd703801980371bb2c80df8b9a82f08028c11c9238767b32d0bfdf98214f4a6 WHIRLPOOL 0f5378a26383a8a94dbe573381e717a4f036e612afe35be1f101c15cadb7ed4c2a7982cc0f25b4f36bd26f05914a6432c682d0a6a049d5a46120e313b4c038c3
|
|
||||||
DIST wine-staging-1.9.23.tar.gz 10050058 SHA256 155c4a3c46e0924890a84e8182638658c571ddf26c905bc465dd364145df1c84 SHA512 415356682c10a79111b832b379f4d5ab8dd7cb7ae47044247d1c567f8dc652ace52714d9aa322b12e843150e45f5b6850e16c2c2c2a68c9552a8d8759d4d2d42 WHIRLPOOL 291ed389b3b65e38c40db3cf0fb2727775cb4b85336bdebb78d1e33bd7a9afb366a9d6e752e1896a5384d6fc0a0ca11de3e663c9f48fd4273c7a318f6b358435
|
|
||||||
DIST wine-staging-1.9.4.tar.gz 9719676 SHA256 1b3c6bb3e21e549fb8657cd9a2117946b7e78140b400c614dd41b041b6dc2674 SHA512 2c81b9f0315ed4f68d1874482805c9b6d3f2f9611f6dd1477ad0632d17f66e7f5e75720e5c7cef3a873876541c9d7d212fa8803a57cbec415aca32793a734634 WHIRLPOOL 0a66f53327976dd63532b9350d64461df3dcb0ea2fdc63d3498eac94d92387cf4bd53054c693c4a902f7fbba8ad0f2fdf59682e8622f3920a9a426344c656f54
|
|
||||||
DIST wine-staging-1.9.5.tar.gz 9889302 SHA256 e12c5fb741e6c5b55b99c37d6bba1746b0f40317f27198406e63f260ede3600c SHA512 aaaf08449e956f5f2b42440f8becf7233a22f2f807041b5524fae3c25c80078b86a84e6000803e014a5d2fc089e3df78cb66f0d1fe35675ae0f4ffdfa7ba3f10 WHIRLPOOL 692da1ec383b7efbcb12c8fa4078ed9b4143eb101baa06523f5bd85c749f0b87fe9a550e4d60e3c33e3d896782c9bc957f61171d01dcadbc8847ecbbc57c40ff
|
|
||||||
DIST wine-staging-1.9.6.tar.gz 9959130 SHA256 e9eb9990aa7f3f07931bfe158c883ebad595e58239855c7f6c01758b4d195db9 SHA512 508b5cd553a8b4a293e9250af670de693992c6f6e71e9e3759408b1e8745985030fbcb78c83ae6669e73e48caf95c3a6f0c92da0a96791912d7e6c4d29a26bd2 WHIRLPOOL 2ebc3ca7ea38d2fda310567083f28b76c4f0120dce659152ccacf95eb07de3dfe8950eb9b306b1a91b30ded8e3914f5852f7928e735659c2b02eb50d82fe0fca
|
|
||||||
DIST wine-staging-1.9.7.tar.gz 10006278 SHA256 f1f0f76815c4d6f0011a6036400f2130809eb5b9b953cc505e187029a71ff69c SHA512 e90db22c03b1d8e334204b473e8bde37dddd7ba7fdb84d884a9ae12b2d70e70e150d735579dcb3df4b6b0a94269e54297b0881489ad6eebe421006dd29f0ec5f WHIRLPOOL 13b3bed7e2f8fe8f0c44d4f3d7fdaa8517ad88e03f1fd077b9fe7bb8b6ec68e247af99dbcda08f65233cb90d1c90497ef87ecb4a46cc7841e45088abb97df0fd
|
|
||||||
DIST wine-staging-1.9.8.tar.gz 10010607 SHA256 49201e31105208ae106f9426c2ca150e5d289b94c9b938a8669fbd32f58cec3d SHA512 53c9b6ef68986ea620843bcf97c583b3b29d98e40529f45f943868fa41b3c8356c50cf401c42aa11f0738a44f107ee55741603007681b43c1596b11988ff05e7 WHIRLPOOL f5424479174f87fb0bf3e0e947a53af20c2eaca95d4814603a27a596a361e3e98fa7250e4ee8bb4eebe8a410329732311b7125320d7758719f42c693e9d7cc13
|
|
||||||
DIST wine-staging-1.9.9.tar.gz 9997618 SHA256 23e165b0259561a3449a7c0195352cca96fdc247ad524c6567421d9971ebf517 SHA512 4e06315eda4ba8e7a44c06a422ebb8a315c808f1f651430e7fc56950916a61c38aa6d3a2467a6c70be2c344744d00b25d83df27c8629c783c8b67584c01f8c0c WHIRLPOOL 01fe2ddb3de5485f221787a3899bca171ecf4d14c3c0c8a9b973757f1507a4ce3dcbf9c4cea2b20b31fb1ddc0ae0eaf8600c811f4fbcd1ffa39eb5fa81dcf313
|
|
||||||
DIST wine-staging-2.1.tar.gz 10101781 SHA256 1d193be2734ea495df2cae1dc54ce89204ca68699979174b0bd726d2e5e0576b SHA512 c64c48b265f0779c621a643ddbd2d12aaa548e4bff3b2b728280cdb9613214989911ee8ba5e46c7770f5f6430014a5da1c98e95d5008c1174bd14bf9ce5250db WHIRLPOOL ecf970ef436089bbcd0088e1608b22e808d54560e905c7d8046b3e21508166a595c3ef7b69819c45e4b13183bd9134a2bd7016d29c4da52985701d392eb35a0a
|
DIST wine-staging-2.1.tar.gz 10101781 SHA256 1d193be2734ea495df2cae1dc54ce89204ca68699979174b0bd726d2e5e0576b SHA512 c64c48b265f0779c621a643ddbd2d12aaa548e4bff3b2b728280cdb9613214989911ee8ba5e46c7770f5f6430014a5da1c98e95d5008c1174bd14bf9ce5250db WHIRLPOOL ecf970ef436089bbcd0088e1608b22e808d54560e905c7d8046b3e21508166a595c3ef7b69819c45e4b13183bd9134a2bd7016d29c4da52985701d392eb35a0a
|
||||||
DIST wine-staging-2.2.tar.gz 10078327 SHA256 9d3cbf7e5f12c623d275457b910a158e0b176fcf50c09a5f8425864de604bc1d SHA512 8ad3f8ba4c6439a9ec4884a55018a67c9e2c2384830074646aac7b70cb9f4f5a20f760247ab42dc3d2f697cdac7ea5322be8ed12c435cb0bc185ac08fdd4dd91 WHIRLPOOL a34c19aaace64307de56d935cb0cef17d7c066c39b83c51e70ea76a20083f928bea55fe38d62b7a8250b0a9e8f00e0d2b744f43fcab433069ffb96625d955303
|
DIST wine-staging-2.2.tar.gz 10078327 SHA256 9d3cbf7e5f12c623d275457b910a158e0b176fcf50c09a5f8425864de604bc1d SHA512 8ad3f8ba4c6439a9ec4884a55018a67c9e2c2384830074646aac7b70cb9f4f5a20f760247ab42dc3d2f697cdac7ea5322be8ed12c435cb0bc185ac08fdd4dd91 WHIRLPOOL a34c19aaace64307de56d935cb0cef17d7c066c39b83c51e70ea76a20083f928bea55fe38d62b7a8250b0a9e8f00e0d2b744f43fcab433069ffb96625d955303
|
||||||
DIST wine_gecko-2.40-x86.msi 31741440 SHA256 1a29d17435a52b7663cea6f30a0771f74097962b07031947719bb7b46057d302 SHA512 2f203852afede3f6b0899a54ad6eaa27c972a84df51de1632cb21af0c322e369a13150a5f19f68d7c4fcb0610b65e9244658e622c7e6b14c93ae6b7372bb184f WHIRLPOOL 461358782c8aa21be5bf934bdb7b7397717add883036a773dad20d2ba5169a5229c211781c60fb4df46057b476765c6541340f5764a5a7362daf357ab60877b6
|
DIST wine-staging-2.3.tar.gz 10071742 SHA256 9a81be606836fab6203857f7937ff97575947f75d52c80fb5489418efb8b87e1 SHA512 8e8af1e36cc69c63ec3542f0ec4db18b6d8c16b5c9077eb211297f3a886519da71bcf72934bf8d6d72e44c7c9f765e1d00203d0d75cab8544f69f9b0c10a7133 WHIRLPOOL 50738a6e20890748d7eb01152244d34b259759f61b3587ba39815dc066fc8e2b66ce182e1ddbc912f50076a3599aa060ec6a94eeaab4513ce3a776711929b9b1
|
||||||
DIST wine_gecko-2.40-x86_64.msi 33056768 SHA256 c3e28988e7d92221596fc4c569d10eb4dd2ca64b9f4970bf77e791f5dd8c9230 SHA512 af171193f221f2cd51f6dc3382a9b1c658ef2553213be32f201c05f7122eb6883838be97c3ec66177b1e3922df64c409745c3223acb01910680a5476c3f01478 WHIRLPOOL d11234b593f4190ae8fa99bec8363c0047f6de08b186752b9f49764519ee9f4aafd017a16c0496581a0f4791e1109273846cec0314d9e320423d51723cd2083a
|
|
||||||
DIST wine_gecko-2.44-x86.msi 34832896 SHA256 77a64ad17571b3a00386a88b9b1b1ea4b7e759061675568bee0ec238fb456d39 SHA512 6c3b6ccbab0081d8ab188a9a031050ca8fd7ef8f1de0efa3a57569d6166397f91bf13037402e3437cc8cfc4fc25e7c2f8be32f66500306d567055e89aae0797d WHIRLPOOL 59c269a6d6e3ba829bd24cf81eba991f91bb0c1995a1841b7e548593f544088959093ba29eb83b53f38f77e71780d8288f0b12a212862af1374f954d61f24999
|
|
||||||
DIST wine_gecko-2.44-x86_64.msi 36273152 SHA256 628e5a0d3b7406cbd2f031139be06e2ef695081fc77ee18dc06748e649ff6661 SHA512 71dcbd28ff048fc587ed796f2f09815f624774742abc192d9aa1104485f5d8cd93b2308fb72506f82d0ea5032dd6c7ed2af4ac95121e7b2367e7a6dd77cb042f WHIRLPOOL a327f2b5a8f47498967b80e06336918006b71b4e1b90a96943faa6f05e481273203259ab6f8a3b45ba85249344c76c100880ad88dd346a94ee45327fffb2f3a1
|
|
||||||
DIST wine_gecko-2.47-beta1-x86.msi 49209856 SHA256 2b570f0d011a7b3711a00f6de1e60d2c04bacf2a4587ba158296ff18f6861891 SHA512 7e2a0502ad2e04bcbf604dc266a4b55f8ce592e2a555ee4d5fe6797fd965f18c08371b2ae65c0fc2bdd452cc14ced1b89f839589cc99832c43bff9f71de680b0 WHIRLPOOL 2bae533925cb9d225af7d1f663d6be7b771f09be5e34fd836c933366e80d529f9b7805b4f062f61994df725a59d5cc6c7f5bcf01245f9981310f11256dac4032
|
|
||||||
DIST wine_gecko-2.47-beta1-x86_64.msi 50761216 SHA256 af843bb7e49d00906fc9a612ca4829cf18609f94e32b7729696d776fc0447d10 SHA512 9f8b8e8615e2142c682877134583a3fd18f3c33a9bfb41254b0a141f7139bfab21a4f6ac0e207c88db3a322907cf404dafdb08803e37a938a4e0e6ea6d3ebe3c WHIRLPOOL fe5e7c8eaf841fb099ec2912329cd6a2c5217aff5a7e6b268e39d64c9e837bddf61e9f4d2b4276a260f51e409cd6c47882182c9349a7f6081cf7b5566daeb227
|
|
||||||
DIST wine_gecko-2.47-x86.msi 49266176 SHA256 3b8a361f5d63952d21caafd74e849a774994822fb96c5922b01d554f1677643a SHA512 e0d06102dcb8ec2d24e8c8c3f5c2ee5cb47c18e203dfb43d85de008d682ff874fb664fef1df909a5a7857de39c7e8ce5175e734a11964ec4cd35f8fbacaea3a4 WHIRLPOOL 2b4e3e88d530106d942200e5cdc67e51fc529c51864dee687ff1d6ae4cc94557481f74797a5ca7c1de8ca5ad00f7d9cb71e484ab24d73867d1032ccd88c0c376
|
DIST wine_gecko-2.47-x86.msi 49266176 SHA256 3b8a361f5d63952d21caafd74e849a774994822fb96c5922b01d554f1677643a SHA512 e0d06102dcb8ec2d24e8c8c3f5c2ee5cb47c18e203dfb43d85de008d682ff874fb664fef1df909a5a7857de39c7e8ce5175e734a11964ec4cd35f8fbacaea3a4 WHIRLPOOL 2b4e3e88d530106d942200e5cdc67e51fc529c51864dee687ff1d6ae4cc94557481f74797a5ca7c1de8ca5ad00f7d9cb71e484ab24d73867d1032ccd88c0c376
|
||||||
DIST wine_gecko-2.47-x86_64.msi 50806272 SHA256 c565ea25e50ea953937d4ab01299e4306da4a556946327d253ea9b28357e4a7d SHA512 7c2496b15a06bc6906bc60afb3ac082e3f9931207fa624e60297020211d66aa9b420a61e95730a0dbdcefbe4b26c811d0c896ecd9c363b5107d08c3fa22fef41 WHIRLPOOL c7619954da22a47dae86ef4c6c0cfbece41943edcceb2c21babe610e0a0b2197b244ebbddd2f3986ee4d5251b062e5f3b8e079426ec77c311b928d18c8451677
|
DIST wine_gecko-2.47-x86_64.msi 50806272 SHA256 c565ea25e50ea953937d4ab01299e4306da4a556946327d253ea9b28357e4a7d SHA512 7c2496b15a06bc6906bc60afb3ac082e3f9931207fa624e60297020211d66aa9b420a61e95730a0dbdcefbe4b26c811d0c896ecd9c363b5107d08c3fa22fef41 WHIRLPOOL c7619954da22a47dae86ef4c6c0cfbece41943edcceb2c21babe610e0a0b2197b244ebbddd2f3986ee4d5251b062e5f3b8e079426ec77c311b928d18c8451677
|
||||||
|
@ -1,40 +0,0 @@
|
|||||||
https://bugs.gentoo.org/show_bug.cgi?id=395615
|
|
||||||
|
|
||||||
Explicitly add the required -m32/m64 to *FLAGS; this overrides any
|
|
||||||
arch-specific -m* flags that may have been appended by multilib-portage.
|
|
||||||
|
|
||||||
Even though -m32/m64 is now added to *FLAGS, -m32/m64 still has to be
|
|
||||||
explicitly added to CC and CXX due to wine's build system. For example,
|
|
||||||
winegcc saves the build-time value of CC and uses it at runtime.
|
|
||||||
|
|
||||||
--- a/configure.ac
|
|
||||||
+++ b/configure.ac
|
|
||||||
@@ -133,12 +133,18 @@
|
|
||||||
then
|
|
||||||
CC="$CC -m64"
|
|
||||||
CXX="$CXX -m64"
|
|
||||||
+ CFLAGS="$CFLAGS -m64"
|
|
||||||
+ LDFLAGS="$LDFLAGS -m64"
|
|
||||||
+ CXXFLAGS="$CXXFLAGS -m64"
|
|
||||||
host_cpu="x86_64"
|
|
||||||
notice_platform="64-bit "
|
|
||||||
AC_SUBST(TARGETFLAGS,"-m64")
|
|
||||||
else
|
|
||||||
CC="$CC -m32"
|
|
||||||
CXX="$CXX -m32"
|
|
||||||
+ CFLAGS="$CFLAGS -m32"
|
|
||||||
+ LDFLAGS="$LDFLAGS -m32"
|
|
||||||
+ CXXFLAGS="$CXXFLAGS -m32"
|
|
||||||
host_cpu="i386"
|
|
||||||
notice_platform="32-bit "
|
|
||||||
AC_SUBST(TARGETFLAGS,"-m32")
|
|
||||||
@@ -150,6 +156,9 @@
|
|
||||||
then
|
|
||||||
CC="$CC -m32"
|
|
||||||
CXX="$CXX -m32"
|
|
||||||
+ CFLAGS="$CFLAGS -m32"
|
|
||||||
+ LDFLAGS="$LDFLAGS -m32"
|
|
||||||
+ CXXFLAGS="$CXXFLAGS -m32"
|
|
||||||
AC_MSG_CHECKING([whether $CC works])
|
|
||||||
AC_LINK_IFELSE([AC_LANG_PROGRAM()],AC_MSG_RESULT([yes]),
|
|
||||||
[AC_MSG_RESULT([no])
|
|
@ -1,39 +0,0 @@
|
|||||||
From bf5ac531a030bce9e798ab66bc53e84a65ca8fdb Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michael Cronenworth <mike@cchtml.com>
|
|
||||||
Date: Thu, 16 Jun 2016 00:21:13 -0500
|
|
||||||
Subject: [PATCH] secur32: Provide a static declaration for
|
|
||||||
gnutls_cipher_get_block_size.
|
|
||||||
|
|
||||||
Instead of providing an extern provide a static declaration. The
|
|
||||||
function return type changed from signed to unsigned in GnuTLS 3.5.
|
|
||||||
|
|
||||||
Signed-off-by: Michael Cronenworth <mike@cchtml.com>
|
|
||||||
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
|
||||||
---
|
|
||||||
dlls/secur32/schannel_gnutls.c | 3 +--
|
|
||||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dlls/secur32/schannel_gnutls.c b/dlls/secur32/schannel_gnutls.c
|
|
||||||
index b10b629..bcadd47 100644
|
|
||||||
--- a/dlls/secur32/schannel_gnutls.c
|
|
||||||
+++ b/dlls/secur32/schannel_gnutls.c
|
|
||||||
@@ -42,7 +42,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(secur32);
|
|
||||||
WINE_DECLARE_DEBUG_CHANNEL(winediag);
|
|
||||||
|
|
||||||
/* Not present in gnutls version < 2.9.10. */
|
|
||||||
-extern int gnutls_cipher_get_block_size(gnutls_cipher_algorithm_t algorithm);
|
|
||||||
+static int (*pgnutls_cipher_get_block_size)(gnutls_cipher_algorithm_t algorithm);
|
|
||||||
|
|
||||||
static void *libgnutls_handle;
|
|
||||||
#define MAKE_FUNCPTR(f) static typeof(f) * p##f
|
|
||||||
@@ -52,7 +52,6 @@ MAKE_FUNCPTR(gnutls_certificate_allocate_credentials);
|
|
||||||
MAKE_FUNCPTR(gnutls_certificate_free_credentials);
|
|
||||||
MAKE_FUNCPTR(gnutls_certificate_get_peers);
|
|
||||||
MAKE_FUNCPTR(gnutls_cipher_get);
|
|
||||||
-MAKE_FUNCPTR(gnutls_cipher_get_block_size);
|
|
||||||
MAKE_FUNCPTR(gnutls_cipher_get_key_size);
|
|
||||||
MAKE_FUNCPTR(gnutls_credentials_set);
|
|
||||||
MAKE_FUNCPTR(gnutls_deinit);
|
|
||||||
--
|
|
||||||
2.1.4
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
|||||||
From 7573939745b6cf62caa04cbcfcfa6982ba036542 Mon Sep 17 00:00:00 2001
|
|
||||||
From: nvinson234 <nvinson234@gmail.com>
|
|
||||||
Date: Sun, 1 Jan 2017 20:24:49 +0100
|
|
||||||
Subject: [PATCH] undefined reference yywrap in winhlp32/macro.lex.yy.c
|
|
||||||
(flex-2.6.3)
|
|
||||||
|
|
||||||
flex-2.6.3 uses C preprocessor macros to change the prefix of its functions
|
|
||||||
from the standard yy to a user-defined one. This is a change in Flex behavior
|
|
||||||
and causes wine to fail with any version of Flex newer than 2.6.1.
|
|
||||||
|
|
||||||
The failure is caused because programs/winhlp32/macros.lex.l only defines the
|
|
||||||
yywrap macro if it is not already defined. The end result is C code that is
|
|
||||||
looking for an undefined yywrap() function.
|
|
||||||
|
|
||||||
I have attached a patch that fixes this issue by removing the yywrap macro check and definition from macros.lex.l and adding the noyywrap flex option.
|
|
||||||
---
|
|
||||||
programs/winhlp32/macro.lex.l | 6 +-----
|
|
||||||
1 file changed, 1 insertion(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/programs/winhlp32/macro.lex.l b/programs/winhlp32/macro.lex.l
|
|
||||||
index 8f6945ca98..ff8a4832d3 100644
|
|
||||||
--- a/programs/winhlp32/macro.lex.l
|
|
||||||
+++ b/programs/winhlp32/macro.lex.l
|
|
||||||
@@ -20,7 +20,7 @@
|
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
||||||
*/
|
|
||||||
%}
|
|
||||||
-%option noinput nounput never-interactive 8bit
|
|
||||||
+%option noinput nounput noyywrap never-interactive 8bit
|
|
||||||
%x quote
|
|
||||||
%{
|
|
||||||
#include "config.h"
|
|
||||||
@@ -367,7 +367,3 @@ WINHELP_WINDOW* MACRO_CurrentWindow(void)
|
|
||||||
{
|
|
||||||
return lex_data ? lex_data->window : Globals.active_win;
|
|
||||||
}
|
|
||||||
-
|
|
||||||
-#ifndef yywrap
|
|
||||||
-int yywrap(void) { return 1; }
|
|
||||||
-#endif
|
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
@ -1,35 +0,0 @@
|
|||||||
From deb274226783ab886bdb44876944e156757efe2b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Daniel Beitler <dan@dablabs.com>
|
|
||||||
Date: Sun, 18 May 2014 13:27:42 -0400
|
|
||||||
Subject: [PATCH] msi: Prevent call to memset with a null pointer in
|
|
||||||
get_tablecolumns function.
|
|
||||||
|
|
||||||
---
|
|
||||||
dlls/msi/table.c | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dlls/msi/table.c b/dlls/msi/table.c
|
|
||||||
index 8012369..9ed9421 100644
|
|
||||||
--- a/dlls/msi/table.c
|
|
||||||
+++ b/dlls/msi/table.c
|
|
||||||
@@ -671,7 +671,7 @@ static UINT get_tablecolumns( MSIDATABASE *db, LPCWSTR szTableName, MSICOLUMNINF
|
|
||||||
/* Note: _Columns table doesn't have non-persistent data */
|
|
||||||
|
|
||||||
/* if maxcount is non-zero, assume it's exactly right for this table */
|
|
||||||
- memset( colinfo, 0, maxcount * sizeof(*colinfo) );
|
|
||||||
+ if (colinfo) memset( colinfo, 0, maxcount * sizeof(*colinfo) );
|
|
||||||
count = table->row_count;
|
|
||||||
for (i = 0; i < count; i++)
|
|
||||||
{
|
|
||||||
@@ -684,7 +684,7 @@ static UINT get_tablecolumns( MSIDATABASE *db, LPCWSTR szTableName, MSICOLUMNINF
|
|
||||||
/* check the column number is in range */
|
|
||||||
if (col < 1 || col > maxcount)
|
|
||||||
{
|
|
||||||
- ERR("column %d out of range\n", col);
|
|
||||||
+ ERR("column %d out of range (maxcount: %d)\n", col, maxcount);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
/* check if this column was already set */
|
|
||||||
--
|
|
||||||
1.9.1
|
|
||||||
|
|
@ -1,177 +0,0 @@
|
|||||||
From ca8a08606d3f0900b3f4aa8f2e6547882a22dba8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Seong-ho Cho <darkcircle.0426@gmail.com>
|
|
||||||
Date: Mon, 18 Apr 2016 04:25:38 +0900
|
|
||||||
Subject: [PATCH] configure: Add AC_HEADER_MAJOR to find where major() is
|
|
||||||
defined.
|
|
||||||
|
|
||||||
Signed-off-by: Seong-ho Cho <darkcircle.0426@gmail.com>
|
|
||||||
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
|
||||||
---
|
|
||||||
configure | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
||||||
configure.ac | 1 +
|
|
||||||
dlls/ntdll/cdrom.c | 5 +++++
|
|
||||||
dlls/ntdll/directory.c | 5 +++++
|
|
||||||
dlls/ntdll/file.c | 5 +++++
|
|
||||||
include/config.h.in | 8 ++++++++
|
|
||||||
server/fd.c | 5 +++++
|
|
||||||
7 files changed, 79 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/configure b/configure
|
|
||||||
index 1cb0e59..ffb1825 100755
|
|
||||||
--- a/configure
|
|
||||||
+++ b/configure
|
|
||||||
@@ -6836,6 +6836,56 @@ fi
|
|
||||||
|
|
||||||
done
|
|
||||||
|
|
||||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sys/types.h defines makedev" >&5
|
|
||||||
+$as_echo_n "checking whether sys/types.h defines makedev... " >&6; }
|
|
||||||
+if ${ac_cv_header_sys_types_h_makedev+:} false; then :
|
|
||||||
+ $as_echo_n "(cached) " >&6
|
|
||||||
+else
|
|
||||||
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
||||||
+/* end confdefs.h. */
|
|
||||||
+#include <sys/types.h>
|
|
||||||
+int
|
|
||||||
+main ()
|
|
||||||
+{
|
|
||||||
+return makedev(0, 0);
|
|
||||||
+ ;
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+_ACEOF
|
|
||||||
+if ac_fn_c_try_link "$LINENO"; then :
|
|
||||||
+ ac_cv_header_sys_types_h_makedev=yes
|
|
||||||
+else
|
|
||||||
+ ac_cv_header_sys_types_h_makedev=no
|
|
||||||
+fi
|
|
||||||
+rm -f core conftest.err conftest.$ac_objext \
|
|
||||||
+ conftest$ac_exeext conftest.$ac_ext
|
|
||||||
+
|
|
||||||
+fi
|
|
||||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_types_h_makedev" >&5
|
|
||||||
+$as_echo "$ac_cv_header_sys_types_h_makedev" >&6; }
|
|
||||||
+
|
|
||||||
+if test $ac_cv_header_sys_types_h_makedev = no; then
|
|
||||||
+ac_fn_c_check_header_mongrel "$LINENO" "sys/mkdev.h" "ac_cv_header_sys_mkdev_h" "$ac_includes_default"
|
|
||||||
+if test "x$ac_cv_header_sys_mkdev_h" = xyes; then :
|
|
||||||
+
|
|
||||||
+$as_echo "#define MAJOR_IN_MKDEV 1" >>confdefs.h
|
|
||||||
+
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ if test $ac_cv_header_sys_mkdev_h = no; then
|
|
||||||
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/sysmacros.h" "ac_cv_header_sys_sysmacros_h" "$ac_includes_default"
|
|
||||||
+if test "x$ac_cv_header_sys_sysmacros_h" = xyes; then :
|
|
||||||
+
|
|
||||||
+$as_echo "#define MAJOR_IN_SYSMACROS 1" >>confdefs.h
|
|
||||||
+
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ fi
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5
|
|
||||||
$as_echo_n "checking whether stat file-mode macros are broken... " >&6; }
|
|
||||||
if ${ac_cv_header_stat_broken+:} false; then :
|
|
||||||
diff --git a/configure.ac b/configure.ac
|
|
||||||
index 6189aa9..201bc77 100644
|
|
||||||
--- a/configure.ac
|
|
||||||
+++ b/configure.ac
|
|
||||||
@@ -512,6 +512,7 @@ AC_CHECK_HEADERS(\
|
|
||||||
valgrind/valgrind.h \
|
|
||||||
zlib.h
|
|
||||||
)
|
|
||||||
+AC_HEADER_MAJOR()
|
|
||||||
AC_HEADER_STAT()
|
|
||||||
|
|
||||||
dnl **** Checks for headers that depend on other ones ****
|
|
||||||
diff --git a/dlls/ntdll/cdrom.c b/dlls/ntdll/cdrom.c
|
|
||||||
index ee36045..2c64106 100644
|
|
||||||
--- a/dlls/ntdll/cdrom.c
|
|
||||||
+++ b/dlls/ntdll/cdrom.c
|
|
||||||
@@ -38,6 +38,11 @@
|
|
||||||
#ifdef HAVE_SYS_STAT_H
|
|
||||||
# include <sys/stat.h>
|
|
||||||
#endif
|
|
||||||
+#ifdef MAJOR_IN_MKDEV
|
|
||||||
+# include <sys/mkdev.h>
|
|
||||||
+#elif defined(MAJOR_IN_SYSMACROS)
|
|
||||||
+# include <sys/sysmacros.h>
|
|
||||||
+#endif
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
#ifdef HAVE_SYS_IOCTL_H
|
|
||||||
diff --git a/dlls/ntdll/directory.c b/dlls/ntdll/directory.c
|
|
||||||
index 93fe594..4d431c0 100644
|
|
||||||
--- a/dlls/ntdll/directory.c
|
|
||||||
+++ b/dlls/ntdll/directory.c
|
|
||||||
@@ -47,6 +47,11 @@
|
|
||||||
#ifdef HAVE_SYS_ATTR_H
|
|
||||||
#include <sys/attr.h>
|
|
||||||
#endif
|
|
||||||
+#ifdef MAJOR_IN_MKDEV
|
|
||||||
+# include <sys/mkdev.h>
|
|
||||||
+#elif defined(MAJOR_IN_SYSMACROS)
|
|
||||||
+# include <sys/sysmacros.h>
|
|
||||||
+#endif
|
|
||||||
#ifdef HAVE_SYS_VNODE_H
|
|
||||||
/* Work around a conflict with Solaris' system list defined in sys/list.h. */
|
|
||||||
#define list SYSLIST
|
|
||||||
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
|
|
||||||
index 7e5da59..b3bd9d6 100644
|
|
||||||
--- a/dlls/ntdll/file.c
|
|
||||||
+++ b/dlls/ntdll/file.c
|
|
||||||
@@ -57,6 +57,11 @@
|
|
||||||
#ifdef HAVE_SYS_SOCKET_H
|
|
||||||
#include <sys/socket.h>
|
|
||||||
#endif
|
|
||||||
+#ifdef MAJOR_IN_MKDEV
|
|
||||||
+# include <sys/mkdev.h>
|
|
||||||
+#elif defined(MAJOR_IN_SYSMACROS)
|
|
||||||
+# include <sys/sysmacros.h>
|
|
||||||
+#endif
|
|
||||||
#ifdef HAVE_UTIME_H
|
|
||||||
# include <utime.h>
|
|
||||||
#endif
|
|
||||||
diff --git a/include/config.h.in b/include/config.h.in
|
|
||||||
index 0650f31..06b192f 100644
|
|
||||||
--- a/include/config.h.in
|
|
||||||
+++ b/include/config.h.in
|
|
||||||
@@ -1335,6 +1335,14 @@
|
|
||||||
/* Define to 1 if you have the `__res_get_state' function. */
|
|
||||||
#undef HAVE___RES_GET_STATE
|
|
||||||
|
|
||||||
+/* Define to 1 if `major', `minor', and `makedev' are declared in <mkdev.h>.
|
|
||||||
+ */
|
|
||||||
+#undef MAJOR_IN_MKDEV
|
|
||||||
+
|
|
||||||
+/* Define to 1 if `major', `minor', and `makedev' are declared in
|
|
||||||
+ <sysmacros.h>. */
|
|
||||||
+#undef MAJOR_IN_SYSMACROS
|
|
||||||
+
|
|
||||||
/* Define to the address where bug reports for this package should be sent. */
|
|
||||||
#undef PACKAGE_BUGREPORT
|
|
||||||
|
|
||||||
diff --git a/server/fd.c b/server/fd.c
|
|
||||||
index 1fd1ce7..17b1b66 100644
|
|
||||||
--- a/server/fd.c
|
|
||||||
+++ b/server/fd.c
|
|
||||||
@@ -83,6 +83,11 @@
|
|
||||||
#endif
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <sys/time.h>
|
|
||||||
+#ifdef MAJOR_IN_MKDEV
|
|
||||||
+#include <sys/mkdev.h>
|
|
||||||
+#elif defined(MAJOR_IN_SYSMACROS)
|
|
||||||
+#include <sys/sysmacros.h>
|
|
||||||
+#endif
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#ifdef HAVE_SYS_SYSCALL_H
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
@ -1,557 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.40"
|
|
||||||
VANILLA_MV="4.5.6"
|
|
||||||
STAGING_GV="2.40"
|
|
||||||
STAGING_MV="4.5.6"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
GST_P="wine-1.8-gstreamer-1.0"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~np-hardass/distfiles/${PN}/${GST_P}.patch.bz2
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://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="0"
|
|
||||||
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 +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
|
||||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
|
||||||
X? ( truetype )
|
|
||||||
elibc_glibc? ( threads )
|
|
||||||
mono? ( abi_x86_32 )
|
|
||||||
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[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}] )
|
|
||||||
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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/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 "${FILESDIR}"/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 "${FILESDIR}"/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 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 ${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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
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() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.4_rc2-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
"${FILESDIR}"/${PN}-sysmacros.patch #580046
|
|
||||||
"${FILESDIR}"/${PN}-1.8-gnutls-3.5-compat.patch #587028
|
|
||||||
"${WORKDIR}/${GST_P}.patch"
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
|
||||||
|
|
||||||
# Launch wine-staging patcher in a subshell, using epatch as a backend, and gitapply.sh as a backend for binary patches
|
|
||||||
ebegin "Running Wine-Staging patch installer"
|
|
||||||
(
|
|
||||||
set -- DESTDIR="${S}" --backend=epatch --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
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/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=(
|
|
||||||
--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 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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/bin/wineconsole* || die
|
|
||||||
rm "${D}"/usr/share/man/man1/wineconsole* || die
|
|
||||||
rm_wineconsole() {
|
|
||||||
rm "${D}usr/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
}
|
|
||||||
multilib_foreach_abi rm_wineconsole
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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
|
|
||||||
|
|
||||||
if use gstreamer; then
|
|
||||||
ewarn "This package uses a Gentoo specific patchset to provide"
|
|
||||||
ewarn "GStreamer 1.0 support. Any bugs related to GStreamer should"
|
|
||||||
ewarn "be filed at Gentoo's bugzilla, not upstream's."
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -1,563 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.40"
|
|
||||||
VANILLA_MV="4.5.6"
|
|
||||||
STAGING_GV="2.40"
|
|
||||||
STAGING_MV="4.5.6"
|
|
||||||
[[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
GST_P="wine-1.8-gstreamer-1.0"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~np-hardass/distfiles/${PN}/${GST_P}.patch.bz2
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
|
|
||||||
else
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.tar.gz -> ${STAGING_P}.tar.gz )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LICENSE="LGPL-2.1"
|
|
||||||
SLOT="0"
|
|
||||||
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 +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
|
||||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
|
||||||
X? ( truetype )
|
|
||||||
elibc_glibc? ( threads )
|
|
||||||
mono? ( abi_x86_32 )
|
|
||||||
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[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}] )
|
|
||||||
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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/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 "${FILESDIR}"/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 "${FILESDIR}"/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 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 ${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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
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() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.4_rc2-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
"${FILESDIR}"/${PN}-sysmacros.patch #580046
|
|
||||||
"${FILESDIR}"/${PN}-1.8-gnutls-3.5-compat.patch #587028
|
|
||||||
"${WORKDIR}/${GST_P}.patch"
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
|
||||||
|
|
||||||
# Launch wine-staging patcher in a subshell, using epatch as a backend, and gitapply.sh as a backend for binary patches
|
|
||||||
ebegin "Running Wine-Staging patch installer"
|
|
||||||
(
|
|
||||||
set -- DESTDIR="${S}" --backend=epatch --no-autoconf --all ${STAGING_EXCLUDE}
|
|
||||||
cd "${STAGING_DIR}/patches"
|
|
||||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
|
||||||
)
|
|
||||||
eend $? || die "Failed to apply Wine-Staging patches"
|
|
||||||
|
|
||||||
# To differentiate unofficial staging releases
|
|
||||||
if [[ ! -z ${SUFFIX} ]]; then
|
|
||||||
sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
default
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/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=(
|
|
||||||
--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 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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/bin/wineconsole* || die
|
|
||||||
rm "${D}"/usr/share/man/man1/wineconsole* || die
|
|
||||||
rm_wineconsole() {
|
|
||||||
rm "${D}usr/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
}
|
|
||||||
multilib_foreach_abi rm_wineconsole
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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
|
|
||||||
|
|
||||||
if use gstreamer; then
|
|
||||||
ewarn "This package uses a Gentoo specific patchset to provide"
|
|
||||||
ewarn "GStreamer 1.0 support. Any bugs related to GStreamer should"
|
|
||||||
ewarn "be filed at Gentoo's bugzilla, not upstream's."
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -1,563 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.40"
|
|
||||||
VANILLA_MV="4.5.6"
|
|
||||||
STAGING_GV="2.40"
|
|
||||||
STAGING_MV="4.5.6"
|
|
||||||
[[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
GST_P="wine-1.8-gstreamer-1.0"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~np-hardass/distfiles/${PN}/${GST_P}.patch.bz2
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
|
|
||||||
else
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.tar.gz -> ${STAGING_P}.tar.gz )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LICENSE="LGPL-2.1"
|
|
||||||
SLOT="0"
|
|
||||||
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 +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
|
||||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
|
||||||
X? ( truetype )
|
|
||||||
elibc_glibc? ( threads )
|
|
||||||
mono? ( abi_x86_32 )
|
|
||||||
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[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}] )
|
|
||||||
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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/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 "${FILESDIR}"/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 "${FILESDIR}"/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 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 ${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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
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() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.9.5-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
"${FILESDIR}"/${PN}-sysmacros.patch #580046
|
|
||||||
"${FILESDIR}"/${PN}-1.8-gnutls-3.5-compat.patch #587028
|
|
||||||
"${WORKDIR}/${GST_P}.patch"
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
|
||||||
|
|
||||||
# Launch wine-staging patcher in a subshell, using epatch as a backend, and gitapply.sh as a backend for binary patches
|
|
||||||
ebegin "Running Wine-Staging patch installer"
|
|
||||||
(
|
|
||||||
set -- DESTDIR="${S}" --backend=epatch --no-autoconf --all ${STAGING_EXCLUDE}
|
|
||||||
cd "${STAGING_DIR}/patches"
|
|
||||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
|
||||||
)
|
|
||||||
eend $? || die "Failed to apply Wine-Staging patches"
|
|
||||||
|
|
||||||
# To differentiate unofficial staging releases
|
|
||||||
if [[ ! -z ${SUFFIX} ]]; then
|
|
||||||
sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
default
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/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=(
|
|
||||||
--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 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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/bin/wineconsole* || die
|
|
||||||
rm "${D}"/usr/share/man/man1/wineconsole* || die
|
|
||||||
rm_wineconsole() {
|
|
||||||
rm "${D}usr/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
}
|
|
||||||
multilib_foreach_abi rm_wineconsole
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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
|
|
||||||
|
|
||||||
if use gstreamer; then
|
|
||||||
ewarn "This package uses a Gentoo specific patchset to provide"
|
|
||||||
ewarn "GStreamer 1.0 support. Any bugs related to GStreamer should"
|
|
||||||
ewarn "be filed at Gentoo's bugzilla, not upstream's."
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -1,562 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.40"
|
|
||||||
VANILLA_MV="4.5.6"
|
|
||||||
STAGING_GV="2.40"
|
|
||||||
STAGING_MV="4.5.6"
|
|
||||||
[[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
GST_P="wine-1.8-gstreamer-1.0"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~np-hardass/distfiles/${PN}/${GST_P}.patch.bz2
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
|
|
||||||
else
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.tar.gz -> ${STAGING_P}.tar.gz )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LICENSE="LGPL-2.1"
|
|
||||||
SLOT="0"
|
|
||||||
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 +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
|
||||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
|
||||||
X? ( truetype )
|
|
||||||
elibc_glibc? ( threads )
|
|
||||||
mono? ( abi_x86_32 )
|
|
||||||
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[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}] )
|
|
||||||
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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/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 "${FILESDIR}"/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 "${FILESDIR}"/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 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 ${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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
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() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.9.5-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
"${FILESDIR}"/${PN}-1.8-gnutls-3.5-compat.patch #587028
|
|
||||||
"${WORKDIR}/${GST_P}.patch"
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
|
||||||
|
|
||||||
# Launch wine-staging patcher in a subshell, using epatch as a backend, and gitapply.sh as a backend for binary patches
|
|
||||||
ebegin "Running Wine-Staging patch installer"
|
|
||||||
(
|
|
||||||
set -- DESTDIR="${S}" --backend=epatch --no-autoconf --all ${STAGING_EXCLUDE}
|
|
||||||
cd "${STAGING_DIR}/patches"
|
|
||||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
|
||||||
)
|
|
||||||
eend $? || die "Failed to apply Wine-Staging patches"
|
|
||||||
|
|
||||||
# To differentiate unofficial staging releases
|
|
||||||
if [[ ! -z ${SUFFIX} ]]; then
|
|
||||||
sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
default
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/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=(
|
|
||||||
--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 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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/bin/wineconsole* || die
|
|
||||||
rm "${D}"/usr/share/man/man1/wineconsole* || die
|
|
||||||
rm_wineconsole() {
|
|
||||||
rm "${D}usr/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
}
|
|
||||||
multilib_foreach_abi rm_wineconsole
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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
|
|
||||||
|
|
||||||
if use gstreamer; then
|
|
||||||
ewarn "This package uses a Gentoo specific patchset to provide"
|
|
||||||
ewarn "GStreamer 1.0 support. Any bugs related to GStreamer should"
|
|
||||||
ewarn "be filed at Gentoo's bugzilla, not upstream's."
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -1,524 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* amd64 x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.40"
|
|
||||||
VANILLA_MV="4.5.6"
|
|
||||||
STAGING_GV="2.40"
|
|
||||||
STAGING_MV="4.5.6"
|
|
||||||
[[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
GST_P="wine-1.8-gstreamer-1.0"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~np-hardass/distfiles/${PN}/${GST_P}.patch.bz2
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
|
|
||||||
else
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.tar.gz -> ${STAGING_P}.tar.gz )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LICENSE="LGPL-2.1"
|
|
||||||
SLOT="0"
|
|
||||||
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 +threads +truetype +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
|
||||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
|
||||||
X? ( truetype )
|
|
||||||
elibc_glibc? ( threads )
|
|
||||||
mono? ( abi_x86_32 )
|
|
||||||
osmesa? ( opengl )
|
|
||||||
pipelight? ( staging )
|
|
||||||
s3tc? ( staging )
|
|
||||||
test? ( abi_x86_32 )
|
|
||||||
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[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}] )
|
|
||||||
truetype? ( >=media-libs/freetype-2.0.0[${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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/pr66838.c -o "${T}"/pr66838 || die
|
|
||||||
# Run in subshell to prevent "Aborted" message
|
|
||||||
( "${T}"/pr66838 || false ) >/dev/null 2>&1
|
|
||||||
eend $?
|
|
||||||
if [[ $? -ne 0 ]] ; 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 "${FILESDIR}"/pr69140.c -o "${T}"/pr69140 || false ) >/dev/null 2>&1
|
|
||||||
eend $?
|
|
||||||
if [[ $? -ne 0 ]] ; 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 "${FILESDIR}"/builtin_ms_va_list.c -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
|
|
||||||
eend $?
|
|
||||||
if [[ $? -ne 0 ]]; 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_32 && use opencl && [[ x$(eselect opencl show 2> /dev/null) = "xintel" ]]; 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
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_pretend() {
|
|
||||||
wine_compiler_check || die
|
|
||||||
wine_build_environment_check || die
|
|
||||||
|
|
||||||
# Verify OSS support
|
|
||||||
if use oss && ! use kernel_FreeBSD; then
|
|
||||||
local oss_vers=$(best_version media-sound/oss)
|
|
||||||
if [[ -z ${oss_vers} ]] || ! version_is_at_least "4" ${oss_vers}; 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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
git-r3_src_unpack
|
|
||||||
if use staging; then
|
|
||||||
local WINE_COMMIT=${EGIT_VERSION}
|
|
||||||
|
|
||||||
EGIT_REPO_URI=${STAGING_EGIT_REPO_URI}
|
|
||||||
unset ${PN}_LIVE_{REPO,BRANCH,COMMIT} EGIT_COMMIT;
|
|
||||||
|
|
||||||
EGIT_CHECKOUT_DIR=${STAGING_DIR} git-r3_src_unpack
|
|
||||||
|
|
||||||
local STAGING_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
|
|
||||||
|
|
||||||
if [[ "${WINE_COMMIT}" != "${STAGING_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 EGIT_COMMIT."
|
|
||||||
einfo "Example: EGIT_COMMIT=${STAGING_COMMIT} emerge -1 wine"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
unpack ${P}.tar.bz2
|
|
||||||
use staging && unpack "${STAGING_P}.tar.gz"
|
|
||||||
fi
|
|
||||||
|
|
||||||
unpack "${WINE_GENTOO}.tar.bz2"
|
|
||||||
unpack "${GST_P}.patch.bz2"
|
|
||||||
|
|
||||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.9.5-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
"${FILESDIR}"/${PN}-1.8-gnutls-3.5-compat.patch #587028
|
|
||||||
"${WORKDIR}/${GST_P}.patch"
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
|
||||||
|
|
||||||
# Launch wine-staging patcher in a subshell, using epatch as a backend, and gitapply.sh as a backend for binary patches
|
|
||||||
ebegin "Running Wine-Staging patch installer"
|
|
||||||
(
|
|
||||||
set -- DESTDIR="${S}" --backend=epatch --no-autoconf --all ${STAGING_EXCLUDE}
|
|
||||||
cd "${STAGING_DIR}/patches"
|
|
||||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
|
||||||
)
|
|
||||||
eend $?
|
|
||||||
|
|
||||||
# To differentiate unofficial staging releases
|
|
||||||
if [[ ! -z ${SUFFIX} ]]; then
|
|
||||||
sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
default
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/oic_winlogo.ico dlls/user32/resources/ || die
|
|
||||||
|
|
||||||
l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
export LDCONFIG=/bin/true
|
|
||||||
use custom-cflags || strip-flags
|
|
||||||
|
|
||||||
multilib-minimal_src_configure
|
|
||||||
}
|
|
||||||
|
|
||||||
multilib_src_configure() {
|
|
||||||
local myconf=(
|
|
||||||
--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 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 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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/{bin/,man/man1/}wineconsole* || die
|
|
||||||
use abi_x86_32 && rm "${D}"/usr/lib32/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
use abi_x86_64 && rm "${D}"/usr/lib64/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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
|
|
||||||
|
|
||||||
if use gstreamer; then
|
|
||||||
ewarn "This package uses a Gentoo specific patchset to provide"
|
|
||||||
ewarn "GStreamer 1.0 support. Any bugs related to GStreamer should"
|
|
||||||
ewarn "be filed at Gentoo's bugzilla, not upstream's."
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -1,561 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.40"
|
|
||||||
VANILLA_MV="4.5.6"
|
|
||||||
STAGING_GV="2.40"
|
|
||||||
STAGING_MV="4.5.6"
|
|
||||||
[[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
GST_P="wine-1.8-gstreamer-1.0"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~np-hardass/distfiles/${PN}/${GST_P}.patch.bz2
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
|
|
||||||
else
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.tar.gz -> ${STAGING_P}.tar.gz )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LICENSE="LGPL-2.1"
|
|
||||||
SLOT="0"
|
|
||||||
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 +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
|
||||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
|
||||||
X? ( truetype )
|
|
||||||
elibc_glibc? ( threads )
|
|
||||||
mono? ( abi_x86_32 )
|
|
||||||
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[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}] )
|
|
||||||
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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/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 "${FILESDIR}"/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 "${FILESDIR}"/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 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 ${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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
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() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.9.5-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
"${WORKDIR}/${GST_P}.patch"
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
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"
|
|
||||||
|
|
||||||
# To differentiate unofficial staging releases
|
|
||||||
if [[ ! -z ${SUFFIX} ]]; then
|
|
||||||
sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
default
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/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=(
|
|
||||||
--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 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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/bin/wineconsole* || die
|
|
||||||
rm "${D}"/usr/share/man/man1/wineconsole* || die
|
|
||||||
rm_wineconsole() {
|
|
||||||
rm "${D}usr/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
}
|
|
||||||
multilib_foreach_abi rm_wineconsole
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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
|
|
||||||
|
|
||||||
if use gstreamer; then
|
|
||||||
ewarn "This package uses a Gentoo specific patchset to provide"
|
|
||||||
ewarn "GStreamer 1.0 support. Any bugs related to GStreamer should"
|
|
||||||
ewarn "be filed at Gentoo's bugzilla, not upstream's."
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -1,561 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.40"
|
|
||||||
VANILLA_MV="4.5.6"
|
|
||||||
STAGING_GV="2.40"
|
|
||||||
STAGING_MV="4.5.6"
|
|
||||||
[[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
GST_P="wine-1.8-gstreamer-1.0"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~np-hardass/distfiles/${PN}/${GST_P}.patch.bz2
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
|
|
||||||
else
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.tar.gz -> ${STAGING_P}.tar.gz )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LICENSE="LGPL-2.1"
|
|
||||||
SLOT="0"
|
|
||||||
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 +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
|
||||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
|
||||||
X? ( truetype )
|
|
||||||
elibc_glibc? ( threads )
|
|
||||||
mono? ( abi_x86_32 )
|
|
||||||
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[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}] )
|
|
||||||
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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/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 "${FILESDIR}"/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 "${FILESDIR}"/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 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 ${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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
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() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.9.5-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
"${WORKDIR}/${GST_P}.patch"
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
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"
|
|
||||||
|
|
||||||
# To differentiate unofficial staging releases
|
|
||||||
if [[ ! -z ${SUFFIX} ]]; then
|
|
||||||
sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
default
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/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=(
|
|
||||||
--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 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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/bin/wineconsole* || die
|
|
||||||
rm "${D}"/usr/share/man/man1/wineconsole* || die
|
|
||||||
rm_wineconsole() {
|
|
||||||
rm "${D}usr/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
}
|
|
||||||
multilib_foreach_abi rm_wineconsole
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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
|
|
||||||
|
|
||||||
if use gstreamer; then
|
|
||||||
ewarn "This package uses a Gentoo specific patchset to provide"
|
|
||||||
ewarn "GStreamer 1.0 support. Any bugs related to GStreamer should"
|
|
||||||
ewarn "be filed at Gentoo's bugzilla, not upstream's."
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -1,561 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.40"
|
|
||||||
VANILLA_MV="4.5.6"
|
|
||||||
STAGING_GV="2.40"
|
|
||||||
STAGING_MV="4.5.6"
|
|
||||||
[[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
GST_P="wine-1.8-gstreamer-1.0"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~np-hardass/distfiles/${PN}/${GST_P}.patch.bz2
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
|
|
||||||
else
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.tar.gz -> ${STAGING_P}.tar.gz )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LICENSE="LGPL-2.1"
|
|
||||||
SLOT="0"
|
|
||||||
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 +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
|
||||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
|
||||||
X? ( truetype )
|
|
||||||
elibc_glibc? ( threads )
|
|
||||||
mono? ( abi_x86_32 )
|
|
||||||
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[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}] )
|
|
||||||
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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/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 "${FILESDIR}"/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 "${FILESDIR}"/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 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 ${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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
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() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.9.5-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
"${WORKDIR}/${GST_P}.patch"
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
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"
|
|
||||||
|
|
||||||
# To differentiate unofficial staging releases
|
|
||||||
if [[ ! -z ${SUFFIX} ]]; then
|
|
||||||
sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
default
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/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=(
|
|
||||||
--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 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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/bin/wineconsole* || die
|
|
||||||
rm "${D}"/usr/share/man/man1/wineconsole* || die
|
|
||||||
rm_wineconsole() {
|
|
||||||
rm "${D}usr/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
}
|
|
||||||
multilib_foreach_abi rm_wineconsole
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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
|
|
||||||
|
|
||||||
if use gstreamer; then
|
|
||||||
ewarn "This package uses a Gentoo specific patchset to provide"
|
|
||||||
ewarn "GStreamer 1.0 support. Any bugs related to GStreamer should"
|
|
||||||
ewarn "be filed at Gentoo's bugzilla, not upstream's."
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -1,575 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.44"
|
|
||||||
VANILLA_MV="4.6.2"
|
|
||||||
STAGING_GV="2.47-beta1"
|
|
||||||
STAGING_MV="4.6.2"
|
|
||||||
[[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
|
|
||||||
D3D9_P="wine-d3d9-${PV}"
|
|
||||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
|
|
||||||
D3D9_EGIT_REPO_URI="git://github.com/sarnex/wine-d3d9-patches.git"
|
|
||||||
else
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.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="0"
|
|
||||||
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 +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[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}] )
|
|
||||||
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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/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 "${FILESDIR}"/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 "${FILESDIR}"/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 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 ${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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
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() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.9.5-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
"${FILESDIR}"/${PN}-1.8-gnutls-3.5-compat.patch #587028
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
|
||||||
|
|
||||||
# Launch wine-staging patcher in a subshell, using epatch as a backend, and gitapply.sh as a backend for binary patches
|
|
||||||
ebegin "Running Wine-Staging patch installer"
|
|
||||||
(
|
|
||||||
set -- DESTDIR="${S}" --backend=epatch --no-autoconf --all ${STAGING_EXCLUDE}
|
|
||||||
cd "${STAGING_DIR}/patches"
|
|
||||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
|
||||||
)
|
|
||||||
eend $? || die "Failed to apply Wine-Staging patches"
|
|
||||||
|
|
||||||
# To differentiate unofficial staging releases
|
|
||||||
if [[ ! -z ${SUFFIX} ]]; then
|
|
||||||
sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
|
|
||||||
fi
|
|
||||||
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
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/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=(
|
|
||||||
--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 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 d3dadapter) )
|
|
||||||
|
|
||||||
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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/bin/wineconsole* || die
|
|
||||||
rm "${D}"/usr/share/man/man1/wineconsole* || die
|
|
||||||
rm_wineconsole() {
|
|
||||||
rm "${D}usr/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
}
|
|
||||||
multilib_foreach_abi rm_wineconsole
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -1,575 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.44"
|
|
||||||
VANILLA_MV="4.6.2"
|
|
||||||
STAGING_GV="2.47-beta1"
|
|
||||||
STAGING_MV="4.6.2"
|
|
||||||
[[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
|
|
||||||
D3D9_P="wine-d3d9-${PV}"
|
|
||||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
|
|
||||||
D3D9_EGIT_REPO_URI="git://github.com/sarnex/wine-d3d9-patches.git"
|
|
||||||
else
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.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="0"
|
|
||||||
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 +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[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}] )
|
|
||||||
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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/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 "${FILESDIR}"/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 "${FILESDIR}"/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 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 ${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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
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() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.9.5-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
"${FILESDIR}"/${PN}-1.8-gnutls-3.5-compat.patch #587028
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
|
||||||
|
|
||||||
# Launch wine-staging patcher in a subshell, using epatch as a backend, and gitapply.sh as a backend for binary patches
|
|
||||||
ebegin "Running Wine-Staging patch installer"
|
|
||||||
(
|
|
||||||
set -- DESTDIR="${S}" --backend=epatch --no-autoconf --all ${STAGING_EXCLUDE}
|
|
||||||
cd "${STAGING_DIR}/patches"
|
|
||||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
|
||||||
)
|
|
||||||
eend $? || die "Failed to apply Wine-Staging patches"
|
|
||||||
|
|
||||||
# To differentiate unofficial staging releases
|
|
||||||
if [[ ! -z ${SUFFIX} ]]; then
|
|
||||||
sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
|
|
||||||
fi
|
|
||||||
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
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/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=(
|
|
||||||
--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 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 d3dadapter) )
|
|
||||||
|
|
||||||
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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/bin/wineconsole* || die
|
|
||||||
rm "${D}"/usr/share/man/man1/wineconsole* || die
|
|
||||||
rm_wineconsole() {
|
|
||||||
rm "${D}usr/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
}
|
|
||||||
multilib_foreach_abi rm_wineconsole
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -1,575 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.44"
|
|
||||||
VANILLA_MV="4.6.3"
|
|
||||||
STAGING_GV="2.47-beta1"
|
|
||||||
STAGING_MV="4.6.3"
|
|
||||||
[[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
|
|
||||||
D3D9_P="wine-d3d9-${PV}"
|
|
||||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
|
|
||||||
D3D9_EGIT_REPO_URI="git://github.com/sarnex/wine-d3d9-patches.git"
|
|
||||||
else
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.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="0"
|
|
||||||
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 +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[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}] )
|
|
||||||
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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/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 "${FILESDIR}"/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 "${FILESDIR}"/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 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 ${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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
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() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.9.5-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
"${FILESDIR}"/${PN}-1.8-gnutls-3.5-compat.patch #587028
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
|
||||||
|
|
||||||
# Launch wine-staging patcher in a subshell, using epatch as a backend, and gitapply.sh as a backend for binary patches
|
|
||||||
ebegin "Running Wine-Staging patch installer"
|
|
||||||
(
|
|
||||||
set -- DESTDIR="${S}" --backend=epatch --no-autoconf --all ${STAGING_EXCLUDE}
|
|
||||||
cd "${STAGING_DIR}/patches"
|
|
||||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
|
||||||
)
|
|
||||||
eend $? || die "Failed to apply Wine-Staging patches"
|
|
||||||
|
|
||||||
# To differentiate unofficial staging releases
|
|
||||||
if [[ ! -z ${SUFFIX} ]]; then
|
|
||||||
sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
|
|
||||||
fi
|
|
||||||
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
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/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=(
|
|
||||||
--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 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 d3dadapter) )
|
|
||||||
|
|
||||||
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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/bin/wineconsole* || die
|
|
||||||
rm "${D}"/usr/share/man/man1/wineconsole* || die
|
|
||||||
rm_wineconsole() {
|
|
||||||
rm "${D}usr/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
}
|
|
||||||
multilib_foreach_abi rm_wineconsole
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -1,574 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.47"
|
|
||||||
VANILLA_MV="4.6.3"
|
|
||||||
STAGING_GV="2.47"
|
|
||||||
STAGING_MV="4.6.3"
|
|
||||||
[[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
|
|
||||||
D3D9_P="wine-d3d9-${PV}"
|
|
||||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
|
|
||||||
D3D9_EGIT_REPO_URI="git://github.com/sarnex/wine-d3d9-patches.git"
|
|
||||||
else
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.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="0"
|
|
||||||
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 +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[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}] )
|
|
||||||
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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/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 "${FILESDIR}"/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 "${FILESDIR}"/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 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 ${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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
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() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.9.5-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
|
||||||
|
|
||||||
# Launch wine-staging patcher in a subshell, using epatch as a backend, and gitapply.sh as a backend for binary patches
|
|
||||||
ebegin "Running Wine-Staging patch installer"
|
|
||||||
(
|
|
||||||
set -- DESTDIR="${S}" --backend=epatch --no-autoconf --all ${STAGING_EXCLUDE}
|
|
||||||
cd "${STAGING_DIR}/patches"
|
|
||||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
|
||||||
)
|
|
||||||
eend $? || die "Failed to apply Wine-Staging patches"
|
|
||||||
|
|
||||||
# To differentiate unofficial staging releases
|
|
||||||
if [[ ! -z ${SUFFIX} ]]; then
|
|
||||||
sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
|
|
||||||
fi
|
|
||||||
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
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/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=(
|
|
||||||
--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 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 d3dadapter) )
|
|
||||||
|
|
||||||
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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/bin/wineconsole* || die
|
|
||||||
rm "${D}"/usr/share/man/man1/wineconsole* || die
|
|
||||||
rm_wineconsole() {
|
|
||||||
rm "${D}usr/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
}
|
|
||||||
multilib_foreach_abi rm_wineconsole
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -1,574 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.47"
|
|
||||||
VANILLA_MV="4.6.3"
|
|
||||||
STAGING_GV="2.47"
|
|
||||||
STAGING_MV="4.6.3"
|
|
||||||
[[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
|
|
||||||
D3D9_P="wine-d3d9-${PV}"
|
|
||||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
|
|
||||||
D3D9_EGIT_REPO_URI="git://github.com/sarnex/wine-d3d9-patches.git"
|
|
||||||
else
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.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="0"
|
|
||||||
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 +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[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}] )
|
|
||||||
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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/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 "${FILESDIR}"/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 "${FILESDIR}"/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 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 ${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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
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() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.9.5-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
|
||||||
|
|
||||||
# Launch wine-staging patcher in a subshell, using epatch as a backend, and gitapply.sh as a backend for binary patches
|
|
||||||
ebegin "Running Wine-Staging patch installer"
|
|
||||||
(
|
|
||||||
set -- DESTDIR="${S}" --backend=epatch --no-autoconf --all ${STAGING_EXCLUDE}
|
|
||||||
cd "${STAGING_DIR}/patches"
|
|
||||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
|
||||||
)
|
|
||||||
eend $? || die "Failed to apply Wine-Staging patches"
|
|
||||||
|
|
||||||
# To differentiate unofficial staging releases
|
|
||||||
if [[ ! -z ${SUFFIX} ]]; then
|
|
||||||
sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
|
|
||||||
fi
|
|
||||||
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
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/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=(
|
|
||||||
--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 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 d3dadapter) )
|
|
||||||
|
|
||||||
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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/bin/wineconsole* || die
|
|
||||||
rm "${D}"/usr/share/man/man1/wineconsole* || die
|
|
||||||
rm_wineconsole() {
|
|
||||||
rm "${D}usr/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
}
|
|
||||||
multilib_foreach_abi rm_wineconsole
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -1,574 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.47"
|
|
||||||
VANILLA_MV="4.6.3"
|
|
||||||
STAGING_GV="2.47"
|
|
||||||
STAGING_MV="4.6.3"
|
|
||||||
[[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
|
|
||||||
D3D9_P="wine-d3d9-${PV}"
|
|
||||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
|
|
||||||
D3D9_EGIT_REPO_URI="git://github.com/sarnex/wine-d3d9-patches.git"
|
|
||||||
else
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.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="0"
|
|
||||||
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 +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[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}] )
|
|
||||||
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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/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 "${FILESDIR}"/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 "${FILESDIR}"/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 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 ${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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
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() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.9.5-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
|
||||||
|
|
||||||
# Launch wine-staging patcher in a subshell, using epatch as a backend, and gitapply.sh as a backend for binary patches
|
|
||||||
ebegin "Running Wine-Staging patch installer"
|
|
||||||
(
|
|
||||||
set -- DESTDIR="${S}" --backend=epatch --no-autoconf --all ${STAGING_EXCLUDE}
|
|
||||||
cd "${STAGING_DIR}/patches"
|
|
||||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
|
||||||
)
|
|
||||||
eend $? || die "Failed to apply Wine-Staging patches"
|
|
||||||
|
|
||||||
# To differentiate unofficial staging releases
|
|
||||||
if [[ ! -z ${SUFFIX} ]]; then
|
|
||||||
sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
|
|
||||||
fi
|
|
||||||
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
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/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=(
|
|
||||||
--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 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 d3dadapter) )
|
|
||||||
|
|
||||||
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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/bin/wineconsole* || die
|
|
||||||
rm "${D}"/usr/share/man/man1/wineconsole* || die
|
|
||||||
rm_wineconsole() {
|
|
||||||
rm "${D}usr/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
}
|
|
||||||
multilib_foreach_abi rm_wineconsole
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -1,574 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.47"
|
|
||||||
VANILLA_MV="4.6.3"
|
|
||||||
STAGING_GV="2.47"
|
|
||||||
STAGING_MV="4.6.3"
|
|
||||||
[[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
|
|
||||||
D3D9_P="wine-d3d9-${PV}"
|
|
||||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
|
|
||||||
D3D9_EGIT_REPO_URI="git://github.com/sarnex/wine-d3d9-patches.git"
|
|
||||||
else
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.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="0"
|
|
||||||
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 +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[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}] )
|
|
||||||
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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/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 "${FILESDIR}"/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 "${FILESDIR}"/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 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 ${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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
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() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.9.5-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
|
||||||
|
|
||||||
# Launch wine-staging patcher in a subshell, using epatch as a backend, and gitapply.sh as a backend for binary patches
|
|
||||||
ebegin "Running Wine-Staging patch installer"
|
|
||||||
(
|
|
||||||
set -- DESTDIR="${S}" --backend=epatch --no-autoconf --all ${STAGING_EXCLUDE}
|
|
||||||
cd "${STAGING_DIR}/patches"
|
|
||||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
|
||||||
)
|
|
||||||
eend $? || die "Failed to apply Wine-Staging patches"
|
|
||||||
|
|
||||||
# To differentiate unofficial staging releases
|
|
||||||
if [[ ! -z ${SUFFIX} ]]; then
|
|
||||||
sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
|
|
||||||
fi
|
|
||||||
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
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/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=(
|
|
||||||
--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 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 d3dadapter) )
|
|
||||||
|
|
||||||
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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/bin/wineconsole* || die
|
|
||||||
rm "${D}"/usr/share/man/man1/wineconsole* || die
|
|
||||||
rm_wineconsole() {
|
|
||||||
rm "${D}usr/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
}
|
|
||||||
multilib_foreach_abi rm_wineconsole
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -1,574 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.47"
|
|
||||||
VANILLA_MV="4.6.3"
|
|
||||||
STAGING_GV="2.47"
|
|
||||||
STAGING_MV="4.6.3"
|
|
||||||
[[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
|
|
||||||
D3D9_P="wine-d3d9-${PV}"
|
|
||||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
|
|
||||||
D3D9_EGIT_REPO_URI="git://github.com/sarnex/wine-d3d9-patches.git"
|
|
||||||
else
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.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="0"
|
|
||||||
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 +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[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}] )
|
|
||||||
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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/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 "${FILESDIR}"/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 "${FILESDIR}"/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 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 ${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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
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() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.9.5-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
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"
|
|
||||||
|
|
||||||
# To differentiate unofficial staging releases
|
|
||||||
if [[ ! -z ${SUFFIX} ]]; then
|
|
||||||
sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
|
|
||||||
fi
|
|
||||||
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
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/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=(
|
|
||||||
--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 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 d3dadapter) )
|
|
||||||
|
|
||||||
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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/bin/wineconsole* || die
|
|
||||||
rm "${D}"/usr/share/man/man1/wineconsole* || die
|
|
||||||
rm_wineconsole() {
|
|
||||||
rm "${D}usr/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
}
|
|
||||||
multilib_foreach_abi rm_wineconsole
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -1,574 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.47"
|
|
||||||
VANILLA_MV="4.6.3"
|
|
||||||
STAGING_GV="2.47"
|
|
||||||
STAGING_MV="4.6.3"
|
|
||||||
[[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
|
|
||||||
D3D9_P="wine-d3d9-${PV}"
|
|
||||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
|
|
||||||
D3D9_EGIT_REPO_URI="git://github.com/sarnex/wine-d3d9-patches.git"
|
|
||||||
else
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.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="0"
|
|
||||||
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 +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[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}] )
|
|
||||||
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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/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 "${FILESDIR}"/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 "${FILESDIR}"/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 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 ${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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
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() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.9.5-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
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"
|
|
||||||
|
|
||||||
# To differentiate unofficial staging releases
|
|
||||||
if [[ ! -z ${SUFFIX} ]]; then
|
|
||||||
sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
|
|
||||||
fi
|
|
||||||
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
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/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=(
|
|
||||||
--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 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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/bin/wineconsole* || die
|
|
||||||
rm "${D}"/usr/share/man/man1/wineconsole* || die
|
|
||||||
rm_wineconsole() {
|
|
||||||
rm "${D}usr/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
}
|
|
||||||
multilib_foreach_abi rm_wineconsole
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -1,576 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.47"
|
|
||||||
VANILLA_MV="4.6.3"
|
|
||||||
STAGING_GV="2.47"
|
|
||||||
STAGING_MV="4.6.3"
|
|
||||||
[[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
|
|
||||||
D3D9_P="wine-d3d9-${PV}"
|
|
||||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
|
|
||||||
D3D9_EGIT_REPO_URI="git://github.com/sarnex/wine-d3d9-patches.git"
|
|
||||||
else
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.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="0"
|
|
||||||
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[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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/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 "${FILESDIR}"/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 "${FILESDIR}"/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 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 ${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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
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() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.9.5-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
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"
|
|
||||||
|
|
||||||
# To differentiate unofficial staging releases
|
|
||||||
if [[ ! -z ${SUFFIX} ]]; then
|
|
||||||
sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
|
|
||||||
fi
|
|
||||||
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
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/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=(
|
|
||||||
--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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/bin/wineconsole* || die
|
|
||||||
rm "${D}"/usr/share/man/man1/wineconsole* || die
|
|
||||||
rm_wineconsole() {
|
|
||||||
rm "${D}usr/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
}
|
|
||||||
multilib_foreach_abi rm_wineconsole
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -1,576 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.47"
|
|
||||||
VANILLA_MV="4.6.3"
|
|
||||||
STAGING_GV="2.47"
|
|
||||||
STAGING_MV="4.6.3"
|
|
||||||
[[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
|
|
||||||
D3D9_P="wine-d3d9-${PV}"
|
|
||||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
|
|
||||||
D3D9_EGIT_REPO_URI="git://github.com/sarnex/wine-d3d9-patches.git"
|
|
||||||
else
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.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="0"
|
|
||||||
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[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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/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 "${FILESDIR}"/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 "${FILESDIR}"/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 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 ${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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
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() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.9.5-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
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"
|
|
||||||
|
|
||||||
# To differentiate unofficial staging releases
|
|
||||||
if [[ ! -z ${SUFFIX} ]]; then
|
|
||||||
sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
|
|
||||||
fi
|
|
||||||
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
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/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=(
|
|
||||||
--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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/bin/wineconsole* || die
|
|
||||||
rm "${D}"/usr/share/man/man1/wineconsole* || die
|
|
||||||
rm_wineconsole() {
|
|
||||||
rm "${D}usr/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
}
|
|
||||||
multilib_foreach_abi rm_wineconsole
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -1,576 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.47"
|
|
||||||
VANILLA_MV="4.6.3"
|
|
||||||
STAGING_GV="2.47"
|
|
||||||
STAGING_MV="4.6.3"
|
|
||||||
[[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
|
|
||||||
D3D9_P="wine-d3d9-${PV}"
|
|
||||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
|
|
||||||
D3D9_EGIT_REPO_URI="git://github.com/sarnex/wine-d3d9-patches.git"
|
|
||||||
else
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.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="0"
|
|
||||||
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[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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/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 "${FILESDIR}"/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 "${FILESDIR}"/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 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 ${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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
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() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.9.5-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
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"
|
|
||||||
|
|
||||||
# To differentiate unofficial staging releases
|
|
||||||
if [[ ! -z ${SUFFIX} ]]; then
|
|
||||||
sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
|
|
||||||
fi
|
|
||||||
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
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/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=(
|
|
||||||
--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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/bin/wineconsole* || die
|
|
||||||
rm "${D}"/usr/share/man/man1/wineconsole* || die
|
|
||||||
rm_wineconsole() {
|
|
||||||
rm "${D}usr/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
}
|
|
||||||
multilib_foreach_abi rm_wineconsole
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -1,576 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.47"
|
|
||||||
VANILLA_MV="4.6.3"
|
|
||||||
STAGING_GV="2.47"
|
|
||||||
STAGING_MV="4.6.3"
|
|
||||||
[[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
|
|
||||||
D3D9_P="wine-d3d9-${PV}"
|
|
||||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
|
|
||||||
D3D9_EGIT_REPO_URI="git://github.com/sarnex/wine-d3d9-patches.git"
|
|
||||||
else
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.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="0"
|
|
||||||
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[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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/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 "${FILESDIR}"/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 "${FILESDIR}"/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 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 ${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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
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() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.9.5-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
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"
|
|
||||||
|
|
||||||
# To differentiate unofficial staging releases
|
|
||||||
if [[ ! -z ${SUFFIX} ]]; then
|
|
||||||
sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
|
|
||||||
fi
|
|
||||||
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
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/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=(
|
|
||||||
--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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/bin/wineconsole* || die
|
|
||||||
rm "${D}"/usr/share/man/man1/wineconsole* || die
|
|
||||||
rm_wineconsole() {
|
|
||||||
rm "${D}usr/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
}
|
|
||||||
multilib_foreach_abi rm_wineconsole
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -1,554 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.44"
|
|
||||||
VANILLA_MV="4.5.6"
|
|
||||||
STAGING_GV="2.44"
|
|
||||||
STAGING_MV="4.5.6"
|
|
||||||
[[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
|
|
||||||
else
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.tar.gz -> ${STAGING_P}.tar.gz )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LICENSE="LGPL-2.1"
|
|
||||||
SLOT="0"
|
|
||||||
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 +udisks v4l vaapi +X +xcomposite xinerama +xml"
|
|
||||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
|
||||||
X? ( truetype )
|
|
||||||
elibc_glibc? ( threads )
|
|
||||||
mono? ( abi_x86_32 )
|
|
||||||
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[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}] )
|
|
||||||
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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/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 "${FILESDIR}"/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 "${FILESDIR}"/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 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 ${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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
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() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.4_rc2-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
"${FILESDIR}"/${PN}-sysmacros.patch #580046
|
|
||||||
"${FILESDIR}"/${PN}-1.8-gnutls-3.5-compat.patch #587028
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
|
||||||
|
|
||||||
# Launch wine-staging patcher in a subshell, using epatch as a backend, and gitapply.sh as a backend for binary patches
|
|
||||||
ebegin "Running Wine-Staging patch installer"
|
|
||||||
(
|
|
||||||
set -- DESTDIR="${S}" --backend=epatch --no-autoconf --all ${STAGING_EXCLUDE}
|
|
||||||
cd "${STAGING_DIR}/patches"
|
|
||||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
|
||||||
)
|
|
||||||
eend $? || die "Failed to apply Wine-Staging patches"
|
|
||||||
|
|
||||||
# To differentiate unofficial staging releases
|
|
||||||
if [[ ! -z ${SUFFIX} ]]; then
|
|
||||||
sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
default
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/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=(
|
|
||||||
--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 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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/bin/wineconsole* || die
|
|
||||||
rm "${D}"/usr/share/man/man1/wineconsole* || die
|
|
||||||
rm_wineconsole() {
|
|
||||||
rm "${D}usr/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
}
|
|
||||||
multilib_foreach_abi rm_wineconsole
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -1,556 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.44"
|
|
||||||
VANILLA_MV="4.6.0"
|
|
||||||
STAGING_GV="2.44"
|
|
||||||
STAGING_MV="4.6.0"
|
|
||||||
[[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
|
|
||||||
else
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.tar.gz -> ${STAGING_P}.tar.gz )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LICENSE="LGPL-2.1"
|
|
||||||
SLOT="0"
|
|
||||||
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 +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[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}] )
|
|
||||||
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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/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 "${FILESDIR}"/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 "${FILESDIR}"/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 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 ${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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
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() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.9.5-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
"${FILESDIR}"/${PN}-sysmacros.patch #580046
|
|
||||||
"${FILESDIR}"/${PN}-1.8-gnutls-3.5-compat.patch #587028
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
|
||||||
|
|
||||||
#577198 1.9.5 only
|
|
||||||
STAGING_EXCLUDE="${STAGING_EXCLUDE} -W makefiles-Disabled_Rules"
|
|
||||||
|
|
||||||
# Launch wine-staging patcher in a subshell, using epatch as a backend, and gitapply.sh as a backend for binary patches
|
|
||||||
ebegin "Running Wine-Staging patch installer"
|
|
||||||
(
|
|
||||||
set -- DESTDIR="${S}" --backend=epatch --no-autoconf --all ${STAGING_EXCLUDE}
|
|
||||||
cd "${STAGING_DIR}/patches"
|
|
||||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
|
||||||
)
|
|
||||||
eend $? || die "Failed to apply Wine-Staging patches"
|
|
||||||
|
|
||||||
# To differentiate unofficial staging releases
|
|
||||||
if [[ ! -z ${SUFFIX} ]]; then
|
|
||||||
sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
default
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/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=(
|
|
||||||
--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 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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/bin/wineconsole* || die
|
|
||||||
rm "${D}"/usr/share/man/man1/wineconsole* || die
|
|
||||||
rm_wineconsole() {
|
|
||||||
rm "${D}usr/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
}
|
|
||||||
multilib_foreach_abi rm_wineconsole
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -1,553 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.44"
|
|
||||||
VANILLA_MV="4.6.0"
|
|
||||||
STAGING_GV="2.44"
|
|
||||||
STAGING_MV="4.6.0"
|
|
||||||
[[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
|
|
||||||
else
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.tar.gz -> ${STAGING_P}.tar.gz )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LICENSE="LGPL-2.1"
|
|
||||||
SLOT="0"
|
|
||||||
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 +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[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}] )
|
|
||||||
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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/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 "${FILESDIR}"/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 "${FILESDIR}"/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 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 ${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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
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() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.9.5-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
"${FILESDIR}"/${PN}-sysmacros.patch #580046
|
|
||||||
"${FILESDIR}"/${PN}-1.8-gnutls-3.5-compat.patch #587028
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
|
||||||
|
|
||||||
# Launch wine-staging patcher in a subshell, using epatch as a backend, and gitapply.sh as a backend for binary patches
|
|
||||||
ebegin "Running Wine-Staging patch installer"
|
|
||||||
(
|
|
||||||
set -- DESTDIR="${S}" --backend=epatch --no-autoconf --all ${STAGING_EXCLUDE}
|
|
||||||
cd "${STAGING_DIR}/patches"
|
|
||||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
|
||||||
)
|
|
||||||
eend $? || die "Failed to apply Wine-Staging patches"
|
|
||||||
|
|
||||||
# To differentiate unofficial staging releases
|
|
||||||
if [[ ! -z ${SUFFIX} ]]; then
|
|
||||||
sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
default
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/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=(
|
|
||||||
--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 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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/bin/wineconsole* || die
|
|
||||||
rm "${D}"/usr/share/man/man1/wineconsole* || die
|
|
||||||
rm_wineconsole() {
|
|
||||||
rm "${D}usr/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
}
|
|
||||||
multilib_foreach_abi rm_wineconsole
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -1,553 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.44"
|
|
||||||
VANILLA_MV="4.6.0"
|
|
||||||
STAGING_GV="2.44"
|
|
||||||
STAGING_MV="4.6.0"
|
|
||||||
[[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
|
|
||||||
else
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.tar.gz -> ${STAGING_P}.tar.gz )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LICENSE="LGPL-2.1"
|
|
||||||
SLOT="0"
|
|
||||||
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 +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[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}] )
|
|
||||||
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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/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 "${FILESDIR}"/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 "${FILESDIR}"/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 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 ${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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
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() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.9.5-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
"${FILESDIR}"/${PN}-sysmacros.patch #580046
|
|
||||||
"${FILESDIR}"/${PN}-1.8-gnutls-3.5-compat.patch #587028
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
|
||||||
|
|
||||||
# Launch wine-staging patcher in a subshell, using epatch as a backend, and gitapply.sh as a backend for binary patches
|
|
||||||
ebegin "Running Wine-Staging patch installer"
|
|
||||||
(
|
|
||||||
set -- DESTDIR="${S}" --backend=epatch --no-autoconf --all ${STAGING_EXCLUDE}
|
|
||||||
cd "${STAGING_DIR}/patches"
|
|
||||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
|
||||||
)
|
|
||||||
eend $? || die "Failed to apply Wine-Staging patches"
|
|
||||||
|
|
||||||
# To differentiate unofficial staging releases
|
|
||||||
if [[ ! -z ${SUFFIX} ]]; then
|
|
||||||
sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
default
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/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=(
|
|
||||||
--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 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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/bin/wineconsole* || die
|
|
||||||
rm "${D}"/usr/share/man/man1/wineconsole* || die
|
|
||||||
rm_wineconsole() {
|
|
||||||
rm "${D}usr/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
}
|
|
||||||
multilib_foreach_abi rm_wineconsole
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -1,553 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.44"
|
|
||||||
VANILLA_MV="4.6.2"
|
|
||||||
STAGING_GV="2.44"
|
|
||||||
STAGING_MV="4.6.2"
|
|
||||||
[[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
|
|
||||||
else
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.tar.gz -> ${STAGING_P}.tar.gz )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LICENSE="LGPL-2.1"
|
|
||||||
SLOT="0"
|
|
||||||
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 +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[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}] )
|
|
||||||
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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/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 "${FILESDIR}"/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 "${FILESDIR}"/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 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 ${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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
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() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.9.5-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
"${FILESDIR}"/${PN}-sysmacros.patch #580046
|
|
||||||
"${FILESDIR}"/${PN}-1.8-gnutls-3.5-compat.patch #587028
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
|
||||||
|
|
||||||
# Launch wine-staging patcher in a subshell, using epatch as a backend, and gitapply.sh as a backend for binary patches
|
|
||||||
ebegin "Running Wine-Staging patch installer"
|
|
||||||
(
|
|
||||||
set -- DESTDIR="${S}" --backend=epatch --no-autoconf --all ${STAGING_EXCLUDE}
|
|
||||||
cd "${STAGING_DIR}/patches"
|
|
||||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
|
||||||
)
|
|
||||||
eend $? || die "Failed to apply Wine-Staging patches"
|
|
||||||
|
|
||||||
# To differentiate unofficial staging releases
|
|
||||||
if [[ ! -z ${SUFFIX} ]]; then
|
|
||||||
sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
default
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/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=(
|
|
||||||
--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 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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/bin/wineconsole* || die
|
|
||||||
rm "${D}"/usr/share/man/man1/wineconsole* || die
|
|
||||||
rm_wineconsole() {
|
|
||||||
rm "${D}usr/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
}
|
|
||||||
multilib_foreach_abi rm_wineconsole
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -1,575 +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 fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx versionator
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
#KEYWORDS=""
|
|
||||||
else
|
|
||||||
MAJOR_V=$(get_version_component_range 1-2)
|
|
||||||
SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${P}.tar.bz2"
|
|
||||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
VANILLA_GV="2.44"
|
|
||||||
VANILLA_MV="4.6.2"
|
|
||||||
STAGING_GV="2.44"
|
|
||||||
STAGING_MV="4.6.2"
|
|
||||||
[[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
|
|
||||||
STAGING_P="wine-staging-${PV}"
|
|
||||||
STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
|
|
||||||
D3D9_P="wine-d3d9-${PV}"
|
|
||||||
D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
|
|
||||||
WINE_GENTOO="wine-gentoo-2015.03.07"
|
|
||||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
|
||||||
HOMEPAGE="http://www.winehq.org/"
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
!staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${VANILLA_GV}/wine_gecko-${VANILLA_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${VANILLA_MV}/wine-mono-${VANILLA_MV}.msi )
|
|
||||||
)
|
|
||||||
staging? (
|
|
||||||
gecko? (
|
|
||||||
abi_x86_32? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86.msi )
|
|
||||||
abi_x86_64? ( https://dl.winehq.org/wine/wine-gecko/${STAGING_GV}/wine_gecko-${STAGING_GV}-x86_64.msi )
|
|
||||||
)
|
|
||||||
mono? ( https://dl.winehq.org/wine/wine-mono/${STAGING_MV}/wine-mono-${STAGING_MV}.msi )
|
|
||||||
)
|
|
||||||
https://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
|
||||||
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
|
|
||||||
D3D9_EGIT_REPO_URI="git://github.com/sarnex/wine-d3d9-patches.git"
|
|
||||||
else
|
|
||||||
SRC_URI="${SRC_URI}
|
|
||||||
staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.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="0"
|
|
||||||
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 +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[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}] )
|
|
||||||
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}
|
|
||||||
dos? ( >=games-emulation/dosbox-0.74_p20160629 )
|
|
||||||
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"
|
|
||||||
|
|
||||||
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 "${FILESDIR}"/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 "${FILESDIR}"/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 "${FILESDIR}"/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 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 ${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
|
|
||||||
if ! use staging; then
|
|
||||||
GV=${VANILLA_GV}
|
|
||||||
MV=${VANILLA_MV}
|
|
||||||
else
|
|
||||||
GV=${STAGING_GV}
|
|
||||||
MV=${STAGING_MV}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == "9999" ]] ; then
|
|
||||||
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() {
|
|
||||||
local md5="$(md5sum server/protocol.def)"
|
|
||||||
local PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
|
||||||
"${FILESDIR}"/${PN}-1.9.5-multilib-portage.patch #395615
|
|
||||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
|
||||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
|
||||||
"${FILESDIR}"/${PN}-1.8-gnutls-3.5-compat.patch #587028
|
|
||||||
|
|
||||||
# https://bugs.winehq.org/show_bug.cgi?id=42132
|
|
||||||
"${FILESDIR}"/${PN}-2.0_rc3-flex263.patch
|
|
||||||
)
|
|
||||||
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=""
|
|
||||||
use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
|
|
||||||
|
|
||||||
# Launch wine-staging patcher in a subshell, using epatch as a backend, and gitapply.sh as a backend for binary patches
|
|
||||||
ebegin "Running Wine-Staging patch installer"
|
|
||||||
(
|
|
||||||
set -- DESTDIR="${S}" --backend=epatch --no-autoconf --all ${STAGING_EXCLUDE}
|
|
||||||
cd "${STAGING_DIR}/patches"
|
|
||||||
source "${STAGING_DIR}/patches/patchinstall.sh"
|
|
||||||
)
|
|
||||||
eend $? || die "Failed to apply Wine-Staging patches"
|
|
||||||
|
|
||||||
# To differentiate unofficial staging releases
|
|
||||||
if [[ ! -z ${SUFFIX} ]]; then
|
|
||||||
sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
|
|
||||||
fi
|
|
||||||
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
|
|
||||||
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
|
|
||||||
|
|
||||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
|
||||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/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=(
|
|
||||||
--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 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 d3dadapter) )
|
|
||||||
|
|
||||||
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 ${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 )
|
|
||||||
local l
|
|
||||||
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
|
|
||||||
|
|
||||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
|
||||||
if use gecko ; then
|
|
||||||
insinto /usr/share/wine/gecko
|
|
||||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
|
||||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
|
||||||
fi
|
|
||||||
if use mono ; then
|
|
||||||
insinto /usr/share/wine/mono
|
|
||||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
|
||||||
fi
|
|
||||||
if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
|
|
||||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove wineconsole if neither backend is installed #551124
|
|
||||||
if ! use X && ! use ncurses; then
|
|
||||||
rm "${D}"/usr/bin/wineconsole* || die
|
|
||||||
rm "${D}"/usr/share/man/man1/wineconsole* || die
|
|
||||||
rm_wineconsole() {
|
|
||||||
rm "${D}usr/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
|
|
||||||
}
|
|
||||||
multilib_foreach_abi rm_wineconsole
|
|
||||||
fi
|
|
||||||
|
|
||||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
|
||||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
|
||||||
|
|
||||||
if use abi_x86_64 && ! use abi_x86_32; then
|
|
||||||
dosym /usr/bin/wine{64,} # 404331
|
|
||||||
dosym /usr/bin/wine{64,}-preloader
|
|
||||||
fi
|
|
||||||
|
|
||||||
# respect LINGUAS when installing man pages, #469418
|
|
||||||
for l in de fr pl; do
|
|
||||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_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_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
fdo-mime_desktop_database_update
|
|
||||||
}
|
|
@ -0,0 +1,184 @@
|
|||||||
|
# Copyright 1999-2017 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
# The Debian ca-certificates package merely takes the CA database as it exists
|
||||||
|
# in the nss package and repackages it for use by openssl.
|
||||||
|
#
|
||||||
|
# The issue with using the compiled debs directly is two fold:
|
||||||
|
# - they do not update frequently enough for us to rely on them
|
||||||
|
# - they pull the CA database from nss tip of tree rather than the release
|
||||||
|
#
|
||||||
|
# So we take the Debian source tools and combine them with the latest nss
|
||||||
|
# release to produce (largely) the same end result. The difference is that
|
||||||
|
# now we know our cert database is kept in sync with nss and, if need be,
|
||||||
|
# can be sync with nss tip of tree more frequently to respond to bugs.
|
||||||
|
|
||||||
|
# When triaging bugs from users, here's some handy tips:
|
||||||
|
# - To see what cert is hitting errors, use openssl:
|
||||||
|
# openssl s_client -port 443 -CApath /etc/ssl/certs/ -host $HOSTNAME
|
||||||
|
# Focus on the errors written to stderr.
|
||||||
|
#
|
||||||
|
# - Look at the upstream log as to why certs were added/removed:
|
||||||
|
# https://hg.mozilla.org/projects/nss/log/tip/lib/ckfw/builtins/certdata.txt
|
||||||
|
#
|
||||||
|
# - If people want to add/remove certs, tell them to file w/mozilla:
|
||||||
|
# https://bugzilla.mozilla.org/enter_bug.cgi?product=NSS&component=CA%20Certificates&version=trunk
|
||||||
|
|
||||||
|
EAPI="5"
|
||||||
|
PYTHON_COMPAT=( python{2_7,3_4,3_5} )
|
||||||
|
|
||||||
|
inherit eutils python-any-r1
|
||||||
|
|
||||||
|
if [[ ${PV} == *.* ]] ; then
|
||||||
|
# Compile from source ourselves.
|
||||||
|
PRECOMPILED=false
|
||||||
|
inherit versionator
|
||||||
|
|
||||||
|
DEB_VER=$(get_version_component_range 1)
|
||||||
|
NSS_VER=$(get_version_component_range 2-)
|
||||||
|
RTM_NAME="NSS_${NSS_VER//./_}_RTM"
|
||||||
|
else
|
||||||
|
# Debian precompiled version.
|
||||||
|
PRECOMPILED=true
|
||||||
|
inherit unpacker
|
||||||
|
fi
|
||||||
|
|
||||||
|
DESCRIPTION="Common CA Certificates PEM files"
|
||||||
|
HOMEPAGE="http://packages.debian.org/sid/ca-certificates"
|
||||||
|
NMU_PR=""
|
||||||
|
if ${PRECOMPILED} ; then
|
||||||
|
SRC_URI="mirror://debian/pool/main/c/${PN}/${PN}_${PV}${NMU_PR:++nmu}${NMU_PR}_all.deb"
|
||||||
|
else
|
||||||
|
SRC_URI="mirror://debian/pool/main/c/${PN}/${PN}_${DEB_VER}${NMU_PR:++nmu}${NMU_PR}.tar.xz
|
||||||
|
https://archive.mozilla.org/pub/security/nss/releases/${RTM_NAME}/src/nss-${NSS_VER}.tar.gz
|
||||||
|
cacert? (
|
||||||
|
https://dev.gentoo.org/~axs/distfiles/nss-cacert-class1-class3.patch
|
||||||
|
)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
LICENSE="MPL-1.1"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~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 ~x86-winnt"
|
||||||
|
IUSE="insecure_certs"
|
||||||
|
${PRECOMPILED} || IUSE+=" cacert"
|
||||||
|
|
||||||
|
DEPEND=""
|
||||||
|
if ${PRECOMPILED} ; then
|
||||||
|
DEPEND+=" !<sys-apps/portage-2.1.10.41"
|
||||||
|
fi
|
||||||
|
# c_rehash: we run `c_rehash`
|
||||||
|
# debianutils: we run `run-parts`
|
||||||
|
RDEPEND="${DEPEND}
|
||||||
|
app-misc/c_rehash
|
||||||
|
sys-apps/debianutils"
|
||||||
|
|
||||||
|
if ! ${PRECOMPILED}; then
|
||||||
|
DEPEND+=" ${PYTHON_DEPS}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
S=${WORKDIR}
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
# For the conversion to having it in CONFIG_PROTECT_MASK,
|
||||||
|
# we need to tell users about it once manually first.
|
||||||
|
[[ -f "${EPREFIX}"/etc/env.d/98ca-certificates ]] \
|
||||||
|
|| ewarn "You should run update-ca-certificates manually after etc-update"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
${PRECOMPILED} || default
|
||||||
|
|
||||||
|
# Do all the work in the image subdir to avoid conflicting with source
|
||||||
|
# dirs in $WORKDIR. Need to perform everything in the offset #381937
|
||||||
|
mkdir -p "image/${EPREFIX}"
|
||||||
|
cd "image/${EPREFIX}" || die
|
||||||
|
|
||||||
|
${PRECOMPILED} && unpacker_src_unpack
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
cd "image/${EPREFIX}" || die
|
||||||
|
if ! ${PRECOMPILED} ; then
|
||||||
|
mkdir -p usr/sbin
|
||||||
|
cp -p "${S}"/${PN}/sbin/update-ca-certificates usr/sbin/ || die
|
||||||
|
|
||||||
|
if use cacert ; then
|
||||||
|
pushd "${S}"/nss-${NSS_VER} >/dev/null
|
||||||
|
epatch "${DISTDIR}"/nss-cacert-class1-class3.patch
|
||||||
|
popd >/dev/null
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
epatch "${FILESDIR}"/${PN}-20150426-root.patch
|
||||||
|
local relp=$(echo "${EPREFIX}" | sed -e 's:[^/]\+:..:g')
|
||||||
|
sed -i \
|
||||||
|
-e '/="$ROOT/s:ROOT:ROOT'"${EPREFIX}"':' \
|
||||||
|
-e '/RELPATH="\.\./s:"$:'"${relp}"'":' \
|
||||||
|
usr/sbin/update-ca-certificates || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
cd "image/${EPREFIX}" || die
|
||||||
|
if ! ${PRECOMPILED} ; then
|
||||||
|
python_setup
|
||||||
|
local d="${S}/${PN}/mozilla" c="usr/share/${PN}"
|
||||||
|
# Grab the database from the nss sources.
|
||||||
|
cp "${S}"/nss-${NSS_VER}/nss/lib/ckfw/builtins/{certdata.txt,nssckbi.h} "${d}" || die
|
||||||
|
emake -C "${d}"
|
||||||
|
|
||||||
|
# Now move the files to the same places that the precompiled would.
|
||||||
|
mkdir -p etc/ssl/certs etc/ca-certificates/update.d "${c}"/mozilla
|
||||||
|
if use cacert ; then
|
||||||
|
mkdir -p "${c}"/cacert.org
|
||||||
|
mv "${d}"/CAcert_Inc..crt "${c}"/cacert.org/cacert.org_root.crt || die
|
||||||
|
fi
|
||||||
|
mv "${d}"/*.crt "${c}"/mozilla/ || die
|
||||||
|
else
|
||||||
|
mv usr/share/doc/{ca-certificates,${PF}} || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! use insecure_certs ; then
|
||||||
|
# Remove untrusted certs from StartCom and WoSign (bug #598072)
|
||||||
|
rm "${c}"/mozilla/StartCom* || die
|
||||||
|
rm "${c}"/mozilla/WoSign* || die
|
||||||
|
# and from Symantec (bug #613714)
|
||||||
|
rm "${c}"/mozilla/Symantec* || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
(
|
||||||
|
echo "# Automatically generated by ${CATEGORY}/${PF}"
|
||||||
|
echo "# $(date -u)"
|
||||||
|
echo "# Do not edit."
|
||||||
|
cd "${c}"
|
||||||
|
find * -name '*.crt' | LC_ALL=C sort
|
||||||
|
) > etc/ca-certificates.conf
|
||||||
|
|
||||||
|
sh usr/sbin/update-ca-certificates --root "${S}/image" || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
cp -pPR image/* "${D}"/ || die
|
||||||
|
if ! ${PRECOMPILED} ; then
|
||||||
|
cd ca-certificates
|
||||||
|
doman sbin/*.8
|
||||||
|
dodoc debian/README.* examples/ca-certificates-local/README
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 'CONFIG_PROTECT_MASK="/etc/ca-certificates.conf"' > 98ca-certificates
|
||||||
|
doenvd 98ca-certificates
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
if [ -d "${EROOT}/usr/local/share/ca-certificates" ] ; then
|
||||||
|
# if the user has local certs, we need to rebuild again
|
||||||
|
# to include their stuff in the db.
|
||||||
|
# However it's too overzealous when the user has custom certs in place.
|
||||||
|
# --fresh is to clean up dangling symlinks
|
||||||
|
"${EROOT}"/usr/sbin/update-ca-certificates --root "${ROOT}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$(find -L "${EROOT}"etc/ssl/certs/ -type l)" ] ; then
|
||||||
|
ewarn "Removing the following broken symlinks:"
|
||||||
|
ewarn "$(find -L "${EROOT}"/etc/ssl/certs/ -type l -printf '%p -> %l\n' -delete)"
|
||||||
|
fi
|
||||||
|
}
|
@ -0,0 +1,182 @@
|
|||||||
|
# Copyright 1999-2017 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
# The Debian ca-certificates package merely takes the CA database as it exists
|
||||||
|
# in the nss package and repackages it for use by openssl.
|
||||||
|
#
|
||||||
|
# The issue with using the compiled debs directly is two fold:
|
||||||
|
# - they do not update frequently enough for us to rely on them
|
||||||
|
# - they pull the CA database from nss tip of tree rather than the release
|
||||||
|
#
|
||||||
|
# So we take the Debian source tools and combine them with the latest nss
|
||||||
|
# release to produce (largely) the same end result. The difference is that
|
||||||
|
# now we know our cert database is kept in sync with nss and, if need be,
|
||||||
|
# can be sync with nss tip of tree more frequently to respond to bugs.
|
||||||
|
|
||||||
|
# When triaging bugs from users, here's some handy tips:
|
||||||
|
# - To see what cert is hitting errors, use openssl:
|
||||||
|
# openssl s_client -port 443 -CApath /etc/ssl/certs/ -host $HOSTNAME
|
||||||
|
# Focus on the errors written to stderr.
|
||||||
|
#
|
||||||
|
# - Look at the upstream log as to why certs were added/removed:
|
||||||
|
# https://hg.mozilla.org/projects/nss/log/tip/lib/ckfw/builtins/certdata.txt
|
||||||
|
#
|
||||||
|
# - If people want to add/remove certs, tell them to file w/mozilla:
|
||||||
|
# https://bugzilla.mozilla.org/enter_bug.cgi?product=NSS&component=CA%20Certificates&version=trunk
|
||||||
|
|
||||||
|
EAPI="5"
|
||||||
|
PYTHON_COMPAT=( python{2_7,3_4,3_5} )
|
||||||
|
|
||||||
|
inherit eutils python-any-r1
|
||||||
|
|
||||||
|
if [[ ${PV} == *.* ]] ; then
|
||||||
|
# Compile from source ourselves.
|
||||||
|
PRECOMPILED=false
|
||||||
|
inherit versionator
|
||||||
|
|
||||||
|
DEB_VER=$(get_version_component_range 1)
|
||||||
|
NSS_VER=$(get_version_component_range 2-)
|
||||||
|
RTM_NAME="NSS_${NSS_VER//./_}_RTM"
|
||||||
|
else
|
||||||
|
# Debian precompiled version.
|
||||||
|
PRECOMPILED=true
|
||||||
|
inherit unpacker
|
||||||
|
fi
|
||||||
|
|
||||||
|
DESCRIPTION="Common CA Certificates PEM files"
|
||||||
|
HOMEPAGE="http://packages.debian.org/sid/ca-certificates"
|
||||||
|
NMU_PR=""
|
||||||
|
if ${PRECOMPILED} ; then
|
||||||
|
SRC_URI="mirror://debian/pool/main/c/${PN}/${PN}_${PV}${NMU_PR:++nmu}${NMU_PR}_all.deb"
|
||||||
|
else
|
||||||
|
SRC_URI="mirror://debian/pool/main/c/${PN}/${PN}_${DEB_VER}${NMU_PR:++nmu}${NMU_PR}.tar.xz
|
||||||
|
https://archive.mozilla.org/pub/security/nss/releases/${RTM_NAME}/src/nss-${NSS_VER}.tar.gz
|
||||||
|
cacert? (
|
||||||
|
https://dev.gentoo.org/~axs/distfiles/nss-cacert-class1-class3.patch
|
||||||
|
)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
LICENSE="MPL-1.1"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~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 ~x86-winnt"
|
||||||
|
IUSE="insecure_certs"
|
||||||
|
${PRECOMPILED} || IUSE+=" cacert"
|
||||||
|
|
||||||
|
DEPEND=""
|
||||||
|
if ${PRECOMPILED} ; then
|
||||||
|
DEPEND+=" !<sys-apps/portage-2.1.10.41"
|
||||||
|
fi
|
||||||
|
# c_rehash: we run `c_rehash`
|
||||||
|
# debianutils: we run `run-parts`
|
||||||
|
RDEPEND="${DEPEND}
|
||||||
|
app-misc/c_rehash
|
||||||
|
sys-apps/debianutils"
|
||||||
|
|
||||||
|
if ! ${PRECOMPILED}; then
|
||||||
|
DEPEND+=" ${PYTHON_DEPS}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
S=${WORKDIR}
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
# For the conversion to having it in CONFIG_PROTECT_MASK,
|
||||||
|
# we need to tell users about it once manually first.
|
||||||
|
[[ -f "${EPREFIX}"/etc/env.d/98ca-certificates ]] \
|
||||||
|
|| ewarn "You should run update-ca-certificates manually after etc-update"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
${PRECOMPILED} || default
|
||||||
|
|
||||||
|
# Do all the work in the image subdir to avoid conflicting with source
|
||||||
|
# dirs in $WORKDIR. Need to perform everything in the offset #381937
|
||||||
|
mkdir -p "image/${EPREFIX}"
|
||||||
|
cd "image/${EPREFIX}" || die
|
||||||
|
|
||||||
|
${PRECOMPILED} && unpacker_src_unpack
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
cd "image/${EPREFIX}" || die
|
||||||
|
if ! ${PRECOMPILED} ; then
|
||||||
|
mkdir -p usr/sbin
|
||||||
|
cp -p "${S}"/${PN}/sbin/update-ca-certificates usr/sbin/ || die
|
||||||
|
|
||||||
|
if use cacert ; then
|
||||||
|
pushd "${S}"/nss-${NSS_VER} >/dev/null
|
||||||
|
epatch "${DISTDIR}"/nss-cacert-class1-class3.patch
|
||||||
|
popd >/dev/null
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
epatch "${FILESDIR}"/${PN}-20150426-root.patch
|
||||||
|
local relp=$(echo "${EPREFIX}" | sed -e 's:[^/]\+:..:g')
|
||||||
|
sed -i \
|
||||||
|
-e '/="$ROOT/s:ROOT:ROOT'"${EPREFIX}"':' \
|
||||||
|
-e '/RELPATH="\.\./s:"$:'"${relp}"'":' \
|
||||||
|
usr/sbin/update-ca-certificates || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
cd "image/${EPREFIX}" || die
|
||||||
|
if ! ${PRECOMPILED} ; then
|
||||||
|
python_setup
|
||||||
|
local d="${S}/${PN}/mozilla" c="usr/share/${PN}"
|
||||||
|
# Grab the database from the nss sources.
|
||||||
|
cp "${S}"/nss-${NSS_VER}/nss/lib/ckfw/builtins/{certdata.txt,nssckbi.h} "${d}" || die
|
||||||
|
emake -C "${d}"
|
||||||
|
|
||||||
|
# Now move the files to the same places that the precompiled would.
|
||||||
|
mkdir -p etc/ssl/certs etc/ca-certificates/update.d "${c}"/mozilla
|
||||||
|
if use cacert ; then
|
||||||
|
mkdir -p "${c}"/cacert.org
|
||||||
|
mv "${d}"/CAcert_Inc..crt "${c}"/cacert.org/cacert.org_root.crt || die
|
||||||
|
fi
|
||||||
|
mv "${d}"/*.crt "${c}"/mozilla/ || die
|
||||||
|
else
|
||||||
|
mv usr/share/doc/{ca-certificates,${PF}} || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! use insecure_certs ; then
|
||||||
|
# Remove untrusted certs from StartCom and WoSign (bug #598072)
|
||||||
|
rm "${c}"/mozilla/StartCom* || die
|
||||||
|
rm "${c}"/mozilla/WoSign* || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
(
|
||||||
|
echo "# Automatically generated by ${CATEGORY}/${PF}"
|
||||||
|
echo "# $(date -u)"
|
||||||
|
echo "# Do not edit."
|
||||||
|
cd "${c}"
|
||||||
|
find * -name '*.crt' | LC_ALL=C sort
|
||||||
|
) > etc/ca-certificates.conf
|
||||||
|
|
||||||
|
sh usr/sbin/update-ca-certificates --root "${S}/image" || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
cp -pPR image/* "${D}"/ || die
|
||||||
|
if ! ${PRECOMPILED} ; then
|
||||||
|
cd ca-certificates
|
||||||
|
doman sbin/*.8
|
||||||
|
dodoc debian/README.* examples/ca-certificates-local/README
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 'CONFIG_PROTECT_MASK="/etc/ca-certificates.conf"' > 98ca-certificates
|
||||||
|
doenvd 98ca-certificates
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
if [ -d "${EROOT}/usr/local/share/ca-certificates" ] ; then
|
||||||
|
# if the user has local certs, we need to rebuild again
|
||||||
|
# to include their stuff in the db.
|
||||||
|
# However it's too overzealous when the user has custom certs in place.
|
||||||
|
# --fresh is to clean up dangling symlinks
|
||||||
|
"${EROOT}"/usr/sbin/update-ca-certificates --root "${ROOT}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$(find -L "${EROOT}"etc/ssl/certs/ -type l)" ] ; then
|
||||||
|
ewarn "Removing the following broken symlinks:"
|
||||||
|
ewarn "$(find -L "${EROOT}"/etc/ssl/certs/ -type l -printf '%p -> %l\n' -delete)"
|
||||||
|
fi
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
# Copyright 1999-2017 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=6
|
||||||
|
|
||||||
|
MY_PN="${PN/f/F}"
|
||||||
|
|
||||||
|
DESCRIPTION="Bash Screenshot Information Tool"
|
||||||
|
HOMEPAGE="https://github.com/KittyKatt/screenFetch"
|
||||||
|
|
||||||
|
LICENSE="GPL-3"
|
||||||
|
SLOT="0"
|
||||||
|
IUSE="curl X"
|
||||||
|
|
||||||
|
DEPEND=""
|
||||||
|
RDEPEND="
|
||||||
|
curl? ( net-misc/curl )
|
||||||
|
X? (
|
||||||
|
media-gfx/scrot
|
||||||
|
x11-apps/xdpyinfo
|
||||||
|
)"
|
||||||
|
|
||||||
|
if [[ ${PV} == *9999 ]] ; then
|
||||||
|
EGIT_REPO_URI="git://github.com/KittyKatt/screenFetch.git"
|
||||||
|
inherit git-r3
|
||||||
|
else
|
||||||
|
KEYWORDS="~amd64 ~x86"
|
||||||
|
SRC_URI="https://github.com/KittyKatt/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||||
|
S="${WORKDIR}/${MY_PN}-${PV}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
newbin ${PN}-dev ${PN}
|
||||||
|
einstalldocs
|
||||||
|
}
|
@ -1,28 +1,35 @@
|
|||||||
# Copyright 1999-2016 Gentoo Foundation
|
# Copyright 1999-2017 Gentoo Foundation
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
EAPI=6
|
EAPI=6
|
||||||
|
|
||||||
inherit eutils git-r3
|
|
||||||
|
|
||||||
MY_PN="${PN/f/F}"
|
MY_PN="${PN/f/F}"
|
||||||
|
|
||||||
DESCRIPTION="Bash Screenshot Information Tool"
|
DESCRIPTION="Bash Screenshot Information Tool"
|
||||||
HOMEPAGE="https://github.com/KittyKatt/screenFetch"
|
HOMEPAGE="https://github.com/KittyKatt/screenFetch"
|
||||||
EGIT_REPO_URI="https://github.com/KittyKatt/screenFetch"
|
|
||||||
|
|
||||||
LICENSE="GPL-3"
|
LICENSE="GPL-3"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS=""
|
IUSE="curl X"
|
||||||
IUSE="X"
|
|
||||||
|
DEPEND=""
|
||||||
|
RDEPEND="
|
||||||
|
curl? ( net-misc/curl )
|
||||||
|
X? (
|
||||||
|
media-gfx/scrot
|
||||||
|
x11-apps/xdpyinfo
|
||||||
|
)"
|
||||||
|
|
||||||
|
if [[ ${PV} == *9999 ]] ; then
|
||||||
|
EGIT_REPO_URI="git://github.com/KittyKatt/screenFetch.git"
|
||||||
|
inherit git-r3
|
||||||
|
else
|
||||||
|
KEYWORDS="~amd64 ~x86"
|
||||||
|
SRC_URI="https://github.com/KittyKatt/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||||
|
S="${WORKDIR}/${MY_PN}-${PV}"
|
||||||
|
fi
|
||||||
|
|
||||||
src_install() {
|
src_install() {
|
||||||
newbin ${PN}-dev ${PN}
|
newbin ${PN}-dev ${PN}
|
||||||
dodoc CHANGELOG README.mkdn TODO
|
einstalldocs
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
optfeature "resoluton detection" x11-apps/xdpyinfo
|
|
||||||
optfeature "screenshot taking" media-gfx/scrot
|
|
||||||
optfeature "screenshot uploading" net-misc/curl
|
|
||||||
}
|
}
|
||||||
|
@ -1,2 +1,3 @@
|
|||||||
|
DIST cpuid2cpuflags-3.tar.bz2 70130 SHA256 779314786ceb347e69f150becd54b97b9f18a1d7e06ca88b7b112a44e00d116c SHA512 65fb0a845a480977a64566d5e3a3700af60f96252eef6d26273afc43484a2289cdb311fcfc1cee60e684be15e167c796e901b68a2a981f6b9c02c8055daddc71 WHIRLPOOL 9036563c9ce80896640f4fee6a35dfbc936521abbe2b9d79b951af5e9218f161d35b9ab3dc68e1f685f8d000c13c0c649c66c84c132d65c88127e701db084910
|
||||||
DIST cpuinfo2cpuflags-1.tar.gz 1429 SHA256 aaa4b80568936acc4b2798f62254a5170328c862cadc70b22cd10e4e6716bbcc SHA512 68a21cfdb0fc8c6eb5aad5c6702d50dd56c927b2010efea1651dbc6a9657654b770bc5a4055fb11e790066c2c63c9ea29c3e03d91057abe187e7029e6797aede WHIRLPOOL 57c66d7eddbf6245735f037980a3d7a685dbccc11bba7e7dd0e1290a77960f17cdb81f161c012abc0eec213b951709df8d7677f0034d5b083bc6f45be1386ad8
|
DIST cpuinfo2cpuflags-1.tar.gz 1429 SHA256 aaa4b80568936acc4b2798f62254a5170328c862cadc70b22cd10e4e6716bbcc SHA512 68a21cfdb0fc8c6eb5aad5c6702d50dd56c927b2010efea1651dbc6a9657654b770bc5a4055fb11e790066c2c63c9ea29c3e03d91057abe187e7029e6797aede WHIRLPOOL 57c66d7eddbf6245735f037980a3d7a685dbccc11bba7e7dd0e1290a77960f17cdb81f161c012abc0eec213b951709df8d7677f0034d5b083bc6f45be1386ad8
|
||||||
DIST cpuinfo2cpuflags-2.tar.bz2 68939 SHA256 a8779df6fbd5f7d3b92580b0b73242a209bedd4e8204ea04d1d811e1ca6d5cba SHA512 672042112e6430edb0dbfd82d3de2088324544e7bcd81b1c3376d5a85b5f7da91b0e1c92d00d575adb861091b33de599a05edc9a75d0ef76a253ca077276127c WHIRLPOOL f64c040a4a6b8c193447d6c01aa2ba18af5c1232c6a7b0f9f794f5792c39d7c4288c190d135f2c80475dbf5fc3f187496edab4861209209311cdcd0e4218c7d8
|
DIST cpuinfo2cpuflags-2.tar.bz2 68939 SHA256 a8779df6fbd5f7d3b92580b0b73242a209bedd4e8204ea04d1d811e1ca6d5cba SHA512 672042112e6430edb0dbfd82d3de2088324544e7bcd81b1c3376d5a85b5f7da91b0e1c92d00d575adb861091b33de599a05edc9a75d0ef76a253ca077276127c WHIRLPOOL f64c040a4a6b8c193447d6c01aa2ba18af5c1232c6a7b0f9f794f5792c39d7c4288c190d135f2c80475dbf5fc3f187496edab4861209209311cdcd0e4218c7d8
|
||||||
|
@ -0,0 +1,13 @@
|
|||||||
|
# Copyright 1999-2017 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=6
|
||||||
|
|
||||||
|
DESCRIPTION="Tool to guess CPU_FLAGS_X86 flags for the host"
|
||||||
|
HOMEPAGE="https://github.com/mgorny/cpuid2cpuflags"
|
||||||
|
SRC_URI="https://github.com/mgorny/cpuid2cpuflags/releases/download/v${PV}/${P}.tar.bz2"
|
||||||
|
|
||||||
|
LICENSE="BSD-2"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-fbsd ~x86-fbsd ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
|
||||||
|
IUSE=""
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue