From 5f902f1645c1c9632943f48c4cf68d15079927fa Mon Sep 17 00:00:00 2001 From: Mario Fetka Date: Tue, 10 Dec 2024 13:55:28 +0100 Subject: [PATCH] Fix gcc 14 build ncpfs --- app-backup/insync/Manifest | 4 +- ...60000.ebuild => insync-3.9.4.60020.ebuild} | 3 + app-emulation/opencbm/Manifest | 6 +- .../opencbm/opencbm-0.4.99.104.ebuild | 4 +- app-emulation/virtualbox/Manifest | 12 + app-emulation/virtualbox/files/test_python.py | 16 + ...ox-7.1.0-disable-rebuild-iPxeBiosBin.patch | 18 + .../virtualbox/virtualbox-7.0.20.ebuild | 741 +++++++++++++++++ .../virtualbox/virtualbox-7.1.0.ebuild | 744 +++++++++++++++++ .../virtualbox/virtualbox-7.1.2.ebuild | 744 +++++++++++++++++ .../virtualbox/virtualbox-7.1.4.ebuild | 776 ++++++++++++++++++ dev-libs/stfl/Manifest | 2 + .../files/stfl-0.24-ncurses-widechar.patch | 26 + dev-libs/stfl/stfl-0.24-r5.ebuild | 129 +++ net-fs/ncpfs-modules/Manifest | 2 +- .../ncpfs-modules/ncpfs-modules-9999.ebuild | 3 + net-fs/ncpfs/Manifest | 3 +- .../ncpfs-2.2.6-fix-build-with-gcc14.patch | 23 + net-fs/ncpfs/ncpfs-2.2.6-r5.ebuild | 4 +- net-im/teams-for-linux/Manifest | 4 +- ...0.ebuild => teams-for-linux-1.11.3.ebuild} | 0 net-misc/rasclient/Manifest | 21 +- .../rasclient/rasclient-19.0.0.23304.ebuild | 88 -- .../rasclient/rasclient-19.1.0.23468.ebuild | 88 -- .../rasclient/rasclient-19.1.1.23476.ebuild | 88 -- .../rasclient/rasclient-19.3.1.24619.ebuild | 88 -- .../rasclient/rasclient-19.4.0.24965.ebuild | 88 -- ...6.ebuild => rasclient-19.4.2.25171.ebuild} | 12 +- net-misc/remotedesktopmanager/Manifest | 4 +- ...=> remotedesktopmanager-2024.3.1.2.ebuild} | 0 30 files changed, 3263 insertions(+), 478 deletions(-) rename app-backup/insync/{insync-3.9.0.60000.ebuild => insync-3.9.4.60020.ebuild} (97%) create mode 100644 app-emulation/virtualbox/files/test_python.py create mode 100644 app-emulation/virtualbox/files/virtualbox-7.1.0-disable-rebuild-iPxeBiosBin.patch create mode 100644 app-emulation/virtualbox/virtualbox-7.0.20.ebuild create mode 100644 app-emulation/virtualbox/virtualbox-7.1.0.ebuild create mode 100644 app-emulation/virtualbox/virtualbox-7.1.2.ebuild create mode 100644 app-emulation/virtualbox/virtualbox-7.1.4.ebuild create mode 100644 dev-libs/stfl/files/stfl-0.24-ncurses-widechar.patch create mode 100644 dev-libs/stfl/stfl-0.24-r5.ebuild create mode 100644 net-fs/ncpfs/files/ncpfs-2.2.6-fix-build-with-gcc14.patch rename net-im/teams-for-linux/{teams-for-linux-1.9.0.ebuild => teams-for-linux-1.11.3.ebuild} (100%) delete mode 100644 net-misc/rasclient/rasclient-19.0.0.23304.ebuild delete mode 100644 net-misc/rasclient/rasclient-19.1.0.23468.ebuild delete mode 100644 net-misc/rasclient/rasclient-19.1.1.23476.ebuild delete mode 100644 net-misc/rasclient/rasclient-19.3.1.24619.ebuild delete mode 100644 net-misc/rasclient/rasclient-19.4.0.24965.ebuild rename net-misc/rasclient/{rasclient-19.2.0.23906.ebuild => rasclient-19.4.2.25171.ebuild} (90%) rename net-misc/remotedesktopmanager/{remotedesktopmanager-2024.2.1.1.ebuild => remotedesktopmanager-2024.3.1.2.ebuild} (100%) diff --git a/app-backup/insync/Manifest b/app-backup/insync/Manifest index 1797e1f1..4a1f5bec 100644 --- a/app-backup/insync/Manifest +++ b/app-backup/insync/Manifest @@ -1,11 +1,11 @@ DIST insync-1.4.9.37127-fc25.i686.rpm 85130566 BLAKE2B 6edbb629ab57a3aac1ab715a0035e7b7094f55821c83129163ac6a8fb12e3a73b540983e8c63803f21b3337a5c09197465b63162ae70662799e6fcd8e6184a0a SHA512 297c232809ab1f4a117f4d8548e00769e872e1132f6161b0b6b6f456b001c47bcb28093efd4af8131eb0b4dfbd218888039bf51b04b9775e5a1718ad768984e6 -DIST insync-3.9.0.60000-fc38.x86_64.rpm 165426904 BLAKE2B 8a9fe0e117d9d281a1527fe87dde6e9515b8c41b0afb85b9381faf47587adc78c669c17d6a15f89ba8630322304a9b280d32a28049421e8469b3fcf490ae960f SHA512 8801aae70c23d02953c8445ebdd78334a1001d8fc65b5fc51ce370fd6209551d12e0debbc2cfab512a3f2489c597faec4a6cbe13ffc97a0d07aa404cdc7c63fd +DIST insync-3.9.4.60020-fc38.x86_64.rpm 165438033 BLAKE2B 8f6016f6241660745f5ebd3dee4fdf9b1b8f94ceaca331a52b78d31afcdc995338babfe02f9ea772880942f244684b72cd04b64c11890f9218c700f92f10b651 SHA512 31d2c79d166ed32653cf2ff4bbe0d469066026aeb52ef4bfca6da6c1cac07e1d16688dcb9ae635f65ad9757d320148de1a16b898181365c4b1867ba3b3dda7c3 DIST insync-caja-3.7.9.50368-1.noarch.rpm 12882 BLAKE2B 675abeb9119f7843f541be556c60d9b4fd4c478aa8d4c343ab4bb0cb00b286ed6c3742c19f0916e44ede8798f36fd8ced887ddf1bfa46ceeba6314b4053e9c57 SHA512 901ac54e0e8de39978e0558836fe846ee215b38d6e1f99f88b6a3f92b129aafbfe149cb75b9301556bd46f8f7c52b74067e0640abf1bfd2d1ab257b3c1c30246 DIST insync-dolphin-3.7.9.50368-1.noarch.rpm 44319 BLAKE2B 83acaa2083ccd5808b08e0577d68a37559eba31dcc0246d1a45fc5c4bf05665c2a7911389cd85e2876adb33b0b2efced85780c7e19320a12e144c9e4bc52a4e1 SHA512 cbca893944b529b680230e33f72ce02577c27438b54cc35fc285b3d78a1694c7ced623e14ef6b40bf5ec3a592077406dc3fb5c1df2cfd277d7294de9978c3b12 DIST insync-emblem-icons-3.4.2.40983-1.noarch.rpm 47745 BLAKE2B 5531f388f53576b8ed2a4ec1f3669274512680a21d320b220459f2e2c6fb0356d445e8e0f7afc5a794d85ba312a2a7ea2b53bb7481dde229f1fdd07cb067a0b3 SHA512 9d0c77411d133281fcefd05426da2a94c1c88172377a7e9bae31a2a697cb0f3d4a0d02282edaff1390bab8a2a60b709c331ac9007d5f620e8d83c24103b43a8e DIST insync-nautilus-3.8.7.50516-1.noarch.rpm 14128 BLAKE2B ce65f8cbaff5678dad94a870e4b2a54757169adb10a5cea9c2409447825152c7ebbe7e5988fe6407bf84866cb79ee6abbd8bb274f166149f3931340bbd952de3 SHA512 d5ab5f45f978b19d8ae22b34e740045c9b0bb816795deb0012a644df75d35cb1308132c68562fc57a8a5f682dbb6531f05d3f3d2b95474061591ba197ac55d5a DIST insync-nemo-3.7.9.50368-1.noarch.rpm 12829 BLAKE2B 33c798b1b927950561329876da7275886425d7fa46b095f2d44939109d7ab0068034c4a38c10ee7bbaca14ccf09efdff5ce34080005b35269715013cb7bfb81d SHA512 9809a46c13902a5d190c438386ad3e682332d03f6dc11ad30e74a55e49cfcf359e52a4c8f79ca21826037744c1e0e3119770629429eb2c7cea3a79a143fc898f DIST insync-thunar-3.7.9.50368-1.x86_64.rpm 12697 BLAKE2B fad3653c834eed9457bc8f7239a7987b86b6f5742795f61843fd8b5ef04527efb05f05f893cb02c1b9f4b0acff72e53a86521a0d23eec07ac793be4be4b1d23d SHA512 bb6364558f5f70db429da1ca499e9ad659a04eca1eeaa829a92679616bf05269f6eead4d93057bedd8103749ada47aefaa77f4d765eed9305225111e6ca620e1 -EBUILD insync-3.9.0.60000.ebuild 2747 BLAKE2B d7832b80788cf767a89ebc92fd160836fd04d421066e1d84d87cff71128212ca76012e87cf64be3fd43a541a28b9c51e4cbefaf8c8f934d294c5fda2dc8280a3 SHA512 5f09d2400c4fe636780e09fae3627c74ceb793cf8c447b7c3769681b1fc9f4fd642bf910e48a58daf26bb96bb94a70b529bca65fc163b6a9a3d45fa5d27ae529 +EBUILD insync-3.9.4.60020.ebuild 2807 BLAKE2B f8ebbbf1f1322003fd24d38aa28ef4d67f23c9cd633793be286660a02941c709c3a7f00ba6241ab16b96acb88aafa560071fe4f62bd8b0cf30f8145596cb7b24 SHA512 ddcafb84aaad8c7dd25c113a682c12e11e474c4839816b695614d620d57b4b349caaad0bf9c588ae51bee0a9d205c8f79deab5eab7fb041033618c26a7844fb8 MISC ChangeLog 733 BLAKE2B e94a5cdc3ddef340cf4edd8c9d07c16bfc6f549516b82be6a5fcf4b1b770c57d65287c5ec9d3f2ac365d225a8398bb1b6f1542b9ead2e10308688ef2dd6b8567 SHA512 c9c277db795e6ce397608facfd5810aaf99dfef21277ca913494118856d9234949612cc707229798e8fc8e038e9201e84477f6c632bae02bcd704d4f6eb5b8e3 MISC metadata.xml 408 BLAKE2B 66a3e2838d5c5f95c7463733cd13b1230ef3ca005ec0c5dac797561be30f950da98dfa41eeb4d43cf97500c9a2e0d04c57b0b084d60107072a988dd7c4d16ded SHA512 9cac3e4a07c425e87274de776e03d243e462341168235cd3991ef4706aa1a902cf6591ae8e965b9c4ed370fc2ebef3ca805a9c761d05c4b994ae8667198b267c diff --git a/app-backup/insync/insync-3.9.0.60000.ebuild b/app-backup/insync/insync-3.9.4.60020.ebuild similarity index 97% rename from app-backup/insync/insync-3.9.0.60000.ebuild rename to app-backup/insync/insync-3.9.4.60020.ebuild index fb342e97..e0377abb 100644 --- a/app-backup/insync/insync-3.9.0.60000.ebuild +++ b/app-backup/insync/insync-3.9.4.60020.ebuild @@ -41,6 +41,9 @@ RDEPEND="dev-qt/qtcore:5 dev-qt/qtwebchannel:5 dev-qt/qtwebengine:5 dev-qt/qtvirtualkeyboard:5 + dev-qt/qtcharts:5 + dev-qt/qtlocation:5 + dev-qt/qtsensors:5 sys-libs/zlib || ( sys-devel/base-gcc sys-devel/gcc ) media-libs/libglvnd diff --git a/app-emulation/opencbm/Manifest b/app-emulation/opencbm/Manifest index 7f9b9d48..6fc0950d 100644 --- a/app-emulation/opencbm/Manifest +++ b/app-emulation/opencbm/Manifest @@ -1,8 +1,8 @@ AUX 001_opencbm-0.4.99.98-ncurses6-1.patch 698 BLAKE2B 3d126aca22c4c1aa7cf6df35c41f1d32c8117aebcbc0fd10c7bd007dbb5752155b703b6a4585ba0a1ac5c3744e95b4b5e412c0d7834c5fcf4aa74d758b3f198d SHA512 a4b017a8bcbd698c01c9e695758826a4768bd316634a585f746460ec35bcffe67a76cd3e8f2ebcabf2eddbbb5e5dc5db2533f8d4881b1030b314253fc22264dd AUX Makefile 1003 BLAKE2B 9e6363f8fb20826f380bae087f461b0f87a2f118be223ca809c84dba7154c6493b8937d7a46437a1773afaf5ba58179d33f9599b0fc063ae53bd5f9984128fa5 SHA512 a15c0d5a962d183f6753844aad38ef111ba4c34a4a3c8f947142b7cb5f71868ed77e965317c5aed10b9e3b5a8cb978fdffd505dbc11a6868615e5f11b19b7bd1 -DIST nibtools-0.4.99.104-source.tar.gz 118200 BLAKE2B c0232c3e591fcc34979cf11663ec4e466d765cd423ef8e56a981c1fc6454c5c2315541961258840341d45a7639e0baad1877bd76e0b2bd9f8885bba72ee8cc87 SHA512 3936c5e68251f7f11a8d912374265ff150887efdf97eb86520413616b14ad689ef0eaa6f8f0b4b66b20e9e5b2733651784a263aafe2522093a39035ac35ec4da +DIST nibtools-20241120-source.tar.gz 119413 BLAKE2B c59a515147113865d3f75e1af2c54d9e08d93c95c389bbe9be71b0afb1079e3901cade612a6471af745826b5cd406694accc6d460e2e509b40d32f327f5f7b35 SHA512 5a8e34a379bf8ceeae80ba40a948b8c0577432122229ec3205e1829e8dfc041dfabead9e69919b15272a029ec82a91ef30025889ca0a6509ba28b1ec380a14c6 DIST opencbm-0.4.99.104-source.tar.gz 13417312 BLAKE2B 1ba6e88c8765a161d6cb7a1c313c2db6cc885c616ac110c0833f59c93e2b2081e67ce730a7ead123a59b83133ddc2edf448de694c72ca582c3a155a463175027 SHA512 1c5c09ed2fd37a6db152eb9739739edee8b2200a4e02b219e982337eeb935cdac1125f59f235b5c3d1203bcd0701c2e9e35da9de921797f1617014f723de0faa -EBUILD opencbm-0.4.99.104.ebuild 3352 BLAKE2B 94e30e68279a1c06f9c702549cb4ccc5c3e353a0d82be956ffdb2cf2cdbc5adc01db90eecf4487be30d6a761236585a61a5cac4f9f77000d8a8068c2c6388048 SHA512 8a3cb46dc0b8ac1730dfe395d47c312ce821ff63228af685c1ab98a73cfb3f95962fdaefa8315128289069a823020456ec49c972f6dfa2fb0ced5713c3e806e7 -EBUILD opencbm-9999.ebuild 3352 BLAKE2B 94e30e68279a1c06f9c702549cb4ccc5c3e353a0d82be956ffdb2cf2cdbc5adc01db90eecf4487be30d6a761236585a61a5cac4f9f77000d8a8068c2c6388048 SHA512 8a3cb46dc0b8ac1730dfe395d47c312ce821ff63228af685c1ab98a73cfb3f95962fdaefa8315128289069a823020456ec49c972f6dfa2fb0ced5713c3e806e7 +EBUILD opencbm-0.4.99.104.ebuild 3360 BLAKE2B 48cfe65252d46ea862f88c9bf660d1da1ea4a97a729e164faed861a7e609f7f6f7cc33c57b2a3ad048047f142beac9dbf1545a469731cc474836815de615467a SHA512 b3b1e288737b9ab4e64d786b87cdba5d1db82a717a05794dbef398a80980a422d946ffcf57c0e3c4c4d6b0748e21f83db68ed9ac15f8e179a65aecf2652d4daa +EBUILD opencbm-9999.ebuild 3360 BLAKE2B 48cfe65252d46ea862f88c9bf660d1da1ea4a97a729e164faed861a7e609f7f6f7cc33c57b2a3ad048047f142beac9dbf1545a469731cc474836815de615467a SHA512 b3b1e288737b9ab4e64d786b87cdba5d1db82a717a05794dbef398a80980a422d946ffcf57c0e3c4c4d6b0748e21f83db68ed9ac15f8e179a65aecf2652d4daa MISC ChangeLog 1266 BLAKE2B c0347d5e0361182d79816ff25a52e2d52c52cf932adab716503f8a738da6c0643d08f4d14b9315ea6a9f2bf8e056c1da91a2a2515684f85a8f204e16731a7a7e SHA512 d3cea999760ee90a45148f31963a532ce3ff6db7122b11b8b06ca094f3d936309a2c8cc90e15fc7af86bda40952b28667db403b30c26c0189a083f9bc447b466 MISC metadata.xml 493 BLAKE2B 7d4be69e09b1fa78bdd2fba1313bfe2527facc3ce1d37d6f5ca6a81e96f560c49b86d66ff5ad965375b61ab0f212e732f70a1965d57dbf5e10946b973915c7ec SHA512 ad6dc1300e43923807aef874ee3b862fdbdccc611cbd89732e5dc46d0a116da6c81e478afb673d1ff14ed6d0887353941a08835da600a7b18162469eb1e42daa diff --git a/app-emulation/opencbm/opencbm-0.4.99.104.ebuild b/app-emulation/opencbm/opencbm-0.4.99.104.ebuild index 0018dc62..a5c68ffe 100644 --- a/app-emulation/opencbm/opencbm-0.4.99.104.ebuild +++ b/app-emulation/opencbm/opencbm-0.4.99.104.ebuild @@ -10,7 +10,7 @@ if [[ ${PV} = 9999* ]]; then EGIT_REPO_URI="https://github.com/OpenCBM/OpenCBM.git" else SRC_URI="https://github.com/OpenCBM/OpenCBM/archive/v${PV//./_}.tar.gz -> opencbm-${PV}-source.tar.gz - https://github.com/OpenCBM/nibtools/archive/master.tar.gz -> nibtools-${PV}-source.tar.gz" + https://github.com/rittwage/nibtools/archive/refs/tags/20241120.tar.gz -> nibtools-20241120-source.tar.gz" KEYWORDS="~amd64 ~ppc ~sparc ~x86" fi @@ -49,7 +49,7 @@ src_prepare() { # copy module makefile that don't intefer with gentoo kernel build system cp "${FILESDIR}"/Makefile "${S}"/opencbm/sys/linux/Makefile # copy nibtools from upstream repo - cp -r "${WORKDIR}"/OpenCBM-nibtools-*/* "${S}"/opencbm/nibtools/ + cp -r "${WORKDIR}"/nibtools-*/* "${S}"/opencbm/nibtools/ eapply_user } diff --git a/app-emulation/virtualbox/Manifest b/app-emulation/virtualbox/Manifest index e1b55624..8d227dff 100644 --- a/app-emulation/virtualbox/Manifest +++ b/app-emulation/virtualbox/Manifest @@ -1,5 +1,6 @@ AUX 050_virtualbox-5.2.8-nopie.patch 13011 BLAKE2B 17e94f0abbf52f5ee33538e63078f4cfc641fd72fc558a0f51dc3de033f2e2a2b4c38bb680847e80b1fed558e6ae287a5e1d8059ae54f59a1409215fb2424900 SHA512 a5af5766b8be4adda6fb1e1901ef18c88c24f59ac311afc58cc6d02555562f934c46159aa956b109342fb9890b1bd4af747d600c34ba8a211feebb8c9fd15715 AUX 10-virtualbox.rules 576 BLAKE2B 11654424fdfe0276df88907476eda6ecdc84c2b2650c1d71a030009849c896ce34168daff8a29366109703f3d6756b40afa64f8a54f4ff6effedea80b4e9fc23 SHA512 12128375244e0fb090674e5a11cc70178f3c6208040830c009284addb91db7dc0a2d3cbd5d1056944782e936a63b0bcef03be0135683646c41d540413805f0ba +AUX test_python.py 455 BLAKE2B 5b3295d568fcfb415673998682b8132a6eb396bd05b9a9498e795d446f0e1df7918a2324c4ca348e7ce3084853c2df03d82e6f0304da88fd93513a2f44e6df39 SHA512 8fb796424b37bf93880260655bd8d7e5ec0f8008d00593227a276fed7fff550f02cfbe0961f88f8eb55b17197241640e8c8c346b1cc3c07f1ca6257c7c591bf4 AUX vboxwebsrv-confd 559 BLAKE2B 979dc91678fac7277c69e482b07f8d46df6b4df92ffb37d5358be33aa08b01808776f95e915377f3b65dc8b89b54141e70f655847aeba4d0bd12cfceb72d8889 SHA512 47af05e5c8f496f9d55cb1240ab55b3c12f655fda14a3e9d904ada18ed6b748f599b2429133772ff4bcd1f363e5afa19ff5873f9e538aebce58eb88253ef4cab AUX vboxwebsrv-initd 646 BLAKE2B d71673a3afea56aea69ab1d795d8b265bb5fc62296e35d6d28caaf600ca65da43006b6d69b58f6a05f7ca0301bafce2d983536db1c98ceb03ca880f5e7632023 SHA512 365bd3a9f5d8edeb921330eebf67b43f60b048d9869f8378fa68543ed6005320b06360590187631176c256d8ce49305b856a2e0c1dc20b42890e020a8c729719 AUX virtualbox-4-config 38 BLAKE2B 8eab341f3264a056a89633fe43dd58f274d0d877602156d97a4dcc6260dd8e446509173742988fa40346e62b1fe9368ff3fc9a97e3316cb919962d9a03340d52 SHA512 5455b70b8ac6f25365bae776b78c3ef5710ae2d5a9e939c7013d72c35f65f178268966ebd291a42666913e45f43c7196f8953331be0b0cc88eba66df39205b08 @@ -10,13 +11,24 @@ AUX virtualbox-6.1.36-fcf-protection.patch 374 BLAKE2B 6c7410ce1fa78aa7476c9b9a6 AUX virtualbox-6.1.44-fix-libxml2.patch 1115 BLAKE2B bdcbd6ef7e4812065ad1aa47c3acbff5c402a21af7ece4c3e3ca1867248eff3f16e0d98d8c70c3306d900f285de077ee7f48d744b40df7e2f3566517ebdd6150 SHA512 fe3ee1671dbcacd71c0cdc9f2179dcb0a05121ded8e7f6a1acfea07b5e951d4d2701377c57ae638148e09cc224893f0efdb2f760cd9ccbdf7f3415d9ff563711 AUX virtualbox-7.0.14-libxml2-2.12.patch 1764 BLAKE2B e61bc333f69095eb3341af2f7c94b20dee7c7802077bb7dab8ed29f67ada3738e82bae40645f892eb68291886722c0f4260ac025fbee5380b4215d47f1c4b0af SHA512 d461ee61eb3c4fcff079033e5bb5a7181a627cb295927f2b302120043c16b21c962edb360e79787eaa543833c07b2d5dc1119bcc210a346dafe4cc3104f9d77c AUX virtualbox-7.0.8-disable-rebuild-iPxeBiosBin.patch 843 BLAKE2B bd7fef7afc725a247e9c84999786c27398ee9bdc4dd6f62f153202ab2f281ca8fb8445aa369aa1270a00acc6ba7f709f4d7923eea1acf02779827ba9ae2c2fa9 SHA512 d79b5be03417fbbf90634da5c63ac8975a950f559e42ed97a556edce28ada4d592b1807e89145e58caea1648486916bf0b7bf96e0843bad1cc3cace9048a3a4b +AUX virtualbox-7.1.0-disable-rebuild-iPxeBiosBin.patch 1007 BLAKE2B 8c3d806ed57170a9e6121df67e87c924ce77b71cdc1e2f3c812992456d3f2934875d82568e6dab8db4ab9bd531c28bded512db67b0f51cfb895ea7d1e204fc95 SHA512 32f3cbac5f4a6fb2f549ede7dcadf0f73b60d4cef77b84ded2ded82885a6226dadb4be829d86e0fee7866fd24f2a2219d49d344fc078715a5964115117e5b88e AUX virtualbox-ose-6-wrapper 3578 BLAKE2B c150e578212435268de3c5fb0eea701bc843ec2241dc3839d3d1e33604fc01f6bdff6ed0425ba6917072f652b8c29d0df9a550a92900ca13306fcd36521afbee SHA512 315d981f3e92f2e0134946f6bbb8ad4ea4228afb8f73aaed7feead59b3f55cef01cec4285a7fdaf30ce0931d8b69bda4698baebd63d11f2cd9dfe9d0591a0f40 AUX virtualbox-vboxusb_tmpfilesd 35 BLAKE2B 56937e236a0e4d1a2aa085271e8ae0af9553fdf7c3b804af4d3fda3aa8dbc32d63762fee90bc949390cb9cd67f2f0111894c8af084731dab6920ae1675c69a64 SHA512 72e4602f5f214f8833486f5c787c263a10390e8bdf65b5615d67c35ec44048f02add12fe43b19f9c57a9d2f12d768c52e54fcfb9052c0611d06cc988a698c171 DIST VirtualBox-7.0.18.tar.bz2 173295159 BLAKE2B 1371d54d648aafbad3814d55d495836ce7a6f9ca955aeb71e24c57a27ed8acae8c020b8094ca7386d341d5e7460b9b0823cc01e7e69dd3cdadaadee1bc608bd1 SHA512 e78a18fa808152cbdc1d407751acf3f57a8202bf238ad3432c4f0b0f97ab203e915a6cd11619e64f4aca5b907eb72be67bab146869af0e73414144addf0d76b4 DIST VirtualBox-7.0.20.tar.bz2 173300021 BLAKE2B 23a1553578c8b89c3bea65fd9a451ef5abf419ce8a05524f2afc15b8d9a378a22ffb01c0c792d258320aeddb330b74f8f769180863041e333512d0eed2f4449c SHA512 7682e24d60c1896c661f2689af6820ae67b6bd8d9faaf18c58e8159bc7694ef80722f8e9611d6272da5b46eb2f3a44fc637b277e6801b7a8bf53aad045a81fe9 +DIST VirtualBox-7.1.0.tar.bz2 205966296 BLAKE2B 135805119d1710adbb17164d80a67f9b40fcc72d966af3b6d687b7f742a7bb487e76afc1ec45e31fe880a99a291ecdac3ee3dacdd342dbbe2dcec0eab32c8121 SHA512 d0fc27195b859fb537d57229d60a8895ced24b04c0f703c5862982de01d4787d20a3acb9cee4af29d18c56cd8c7ad846fd0eacc14af0c419e738953ca488463b +DIST VirtualBox-7.1.2.tar.bz2 206105145 BLAKE2B 4b30f1d14625ddaed88b1a9cdac41289fef332d52e210d982ce075d652849b1cb72fee6d6e691f74378d4b8e7dd914355bcf0cd074d36249f39b099d1bba7c79 SHA512 d890f9b2e8799bcb1ed9cdaa86ef42daa261f7e9022a2e7e9df8c21f395c56e91e2d03292f22c9633ff6a0f0c5933ba3ac30af30befe87b84ffd89c07d51568f +DIST VirtualBox-7.1.4.tar.bz2 206218796 BLAKE2B 62a4f44b4eac2e1cb2c0bace5dfabf86c41b738d81aede3de75d88159a8d76158748eaae38ee3eedbc0f79b639a875f1ef6805a8ca7c95021f475935f54d7ef9 SHA512 97654339d509447e2604db01e29f9e810f59498a378e645f412cffb67022c4e547f205e8ebdac6ae33aaa8f7bc0f289bdca2e5a04b1fa31b4a05c191d7600a9c DIST virtualbox-help-7.0.18.tar.xz 3948116 BLAKE2B 5715a7e609297387b5fccce0951c62e5969fd68adeecb869712e69f5e90daef97384bd3ff3c39de40903a1fabe7ac6d2f8ecdbb40de16abe955d40e49b962eec SHA512 ec0f915b7221bc40d02f5f1675eb0defb5506b2f2bd96c063a96a9346e1c82428ccdda8b3adac43238c451ae185ac31af4a186da17ffe091469e14e696388b3a DIST virtualbox-help-7.0.20.tar.xz 3949292 BLAKE2B c56f736606fdedfb59bd1f4446a457587dcbe018d1be3162d94eca780cacfa45b49ba5a9c6b25970d28e5a428904bdfd34d2f229c1e24b567fd1b1959cbdc9ea SHA512 e73e448b8aa875d0f6ae1fb398082fa7183e198191a9b509b63592b5df3a19069b805dcdc11d98da3971a14fd6670d8b0a777e5a6d6b63358f7a4f263ca8d31e +DIST virtualbox-help-7.1.0.tar.xz 1631644 BLAKE2B 408748619d1e981b9d5b5e615baca75ff297e9b7e745751767361b7b9c74345a3db1980734439f3868c412fe28a6b687b417adc3cc148d2e2b8a9fa60e48463b SHA512 513b8474d4fbf7cdb83624dc8d344122c524d92f9f84b32784161c8e1cac8ddc2c265447621d7cd3cf105d555a044e6abf42155f413ba89d507eba7ce3b2da89 +DIST virtualbox-help-7.1.2.tar.xz 1587216 BLAKE2B 561a7ec607b61a9adf2fc5c86ad49828da4e1d3bcf8cae2771f1e498426652fc990c603128471412fd0d9f21ead004dd65006d6a8f70e4fa972c9055ffc8084a SHA512 6cd1bf849658f1abb8eb5a3d2da53d862ee0143aaff44e755f79bfb2d31977447e6546faa277dd860a0b6e1c3b72ae47479fbbec42419629e1cb2006df14194f +DIST virtualbox-help-7.1.4.tar.xz 1586108 BLAKE2B e8219ed67b1db9a5e4d0271e25980fbcbfb8c72316dc4bd3337080c81082bb8ecad9c9317b5b9be77db1eeac42c567512a64fe86ae9bb6371dea8632e7afc9ab SHA512 185249fe2bdf2138a034c53e23eedb88cf487e1fb26a8bd623f0d75ea0d2ff4dff3484564a5b317703fb3f302ec7037cb0a49c7c3845e229fe2ac9e2c8c96af6 DIST virtualbox-patches-7.0.16.tar.bz2 6808 BLAKE2B d15fa2ca306375142c3e25d4759d2790b2bb9eb69e333a8773ad500b29dd127b401943abf59ca59d01858a3ed5551fb3a6c93c4c893c8de971a714ce5306d577 SHA512 a488cbc6660fe8637c44cd79d87156609af089988239a7e76fea8a3c7e6319512c574bef2e942b354b14ce671a8e75ab8b2160abf7c40963795ee8a545ecd992 +DIST virtualbox-patches-7.1.0.tar.bz2 5952 BLAKE2B cb024f36249d7d312c9d0f9231c22a9609d45de1d4c82ca36672fea703765d437d7a414d810adb5eb5f2db92018b669c3b5d0c32372c5ced90f5e13f82344ffa SHA512 c6ef54b7d60f01f5f2b89c6fd7f8b7b509bc62bca0502114cedcbaaf9643445ea413bba481dcf43fb96b5b4d94d64395965682c1ee160d889213615c9272184c EBUILD virtualbox-7.0.18-r1.ebuild 20842 BLAKE2B c80bd4f4694272cbb06eae6d317dbc64c765834856cd86f5fd323d279354346c7df9f81c86e7111951957299ff4bbcb1579477a973cab68fa88a60a25018c3d9 SHA512 68cfaac8a5ee39f435999e692bca486930dc0fe20232087a9937e4408dc067ea04b180f4b8e79e1fc10c6b80c613904d9d45921800fefa48bcfb30bc25100038 EBUILD virtualbox-7.0.20.ebuild 20843 BLAKE2B 829f98c05686b748d529ea87f32395d645c128a72072bb44f16df701b05b0dffff94920cc47f77d68b77afd7792f879f74c0e7ae30d56ad2bc672b5c2ce136b2 SHA512 bc65c17c2c04636e7cd5ea874c8cf1eac94ef627c9f735ab0641eb0be485ec6cd80fc0e9a2df9e2e5896c989c44c2047820bc7dd199a1e26fa7d400b1ce03c35 +EBUILD virtualbox-7.1.0.ebuild 21017 BLAKE2B dc8e71674fa1dae48599bcc1bac7b33746b9f8bd694bafbd5bd6d5e7fac4337af0cbc0b94899bf944d214f6067bb6852ba5c0823694be938ca5c0b42a22aefb5 SHA512 d663e9b1c62b5829259e373de71331475e10a4fe94a08c589cda2f2cb07bf5017c80f49244220f8a8fe70c3ec53467a134042f4c2514e986ecd61be9be98bdae +EBUILD virtualbox-7.1.2.ebuild 21017 BLAKE2B dc8e71674fa1dae48599bcc1bac7b33746b9f8bd694bafbd5bd6d5e7fac4337af0cbc0b94899bf944d214f6067bb6852ba5c0823694be938ca5c0b42a22aefb5 SHA512 d663e9b1c62b5829259e373de71331475e10a4fe94a08c589cda2f2cb07bf5017c80f49244220f8a8fe70c3ec53467a134042f4c2514e986ecd61be9be98bdae +EBUILD virtualbox-7.1.4.ebuild 21860 BLAKE2B d3630e0214a2a7b079fbd37d28dc783d3b92f587bebaa62490b6679da69a03540442c2aa30d7cb3b191e73eadfef436583f10fba6bcea1f06fb6203b858a32fd SHA512 9b1760d7d03fc8ad470b75a8b9c22613ca62288aa21f389bb4d362d0ea7353d20d0d7c0d7d9da710493945207742bc1deeb2892d6395a050f022071fb64bc437 MISC metadata.xml 948 BLAKE2B c074e494d9affda91addd2355f8e71616602102b4cc151d2b45efd04754f1f92621ecd313dbe3baa44c3301f57b61e9cff780d445c2ea3d19ce3d9c8ae05213a SHA512 5338812da9334aedf08dd7a31a4a07c7bfa8232e8f0de6af9de9ac0f5585397cea16e66cb73d56632efa4cf21386782108182d803de6ff45c08082a13dc5fed9 diff --git a/app-emulation/virtualbox/files/test_python.py b/app-emulation/virtualbox/files/test_python.py new file mode 100644 index 00000000..da03af79 --- /dev/null +++ b/app-emulation/virtualbox/files/test_python.py @@ -0,0 +1,16 @@ +#!/usr/bin/python3 + +# Smoke test for python: +# Test if the python bindings have been built and if python is crashing when creating a manager + +def test_module_was_built(): + import os + assert os.path.isfile(os.getenv('VBOX_PROGRAM_PATH') + '/VBoxPython3.so') + +def test_VirtualBoxManager(): + from vboxapi import VirtualBoxManager + try: + manager = VirtualBoxManager() + except: + # if it reaches here, it did not crash + pass diff --git a/app-emulation/virtualbox/files/virtualbox-7.1.0-disable-rebuild-iPxeBiosBin.patch b/app-emulation/virtualbox/files/virtualbox-7.1.0-disable-rebuild-iPxeBiosBin.patch new file mode 100644 index 00000000..85e3f8cb --- /dev/null +++ b/app-emulation/virtualbox/files/virtualbox-7.1.0-disable-rebuild-iPxeBiosBin.patch @@ -0,0 +1,18 @@ +When compiling with clang we get: + +src/VBox/Devices/PC/ipxe/src/core/settings.c:310:8: error: fields must have a constant size: 'variable length array in structure' extension will never be supported + +Apply this patch conditionally to disable rebuilding iPxeBiosBin.rom when using clang. + +--- a/src/VBox/Devices/PC/ipxe/Makefile.kmk ++++ b/src/VBox/Devices/PC/ipxe/Makefile.kmk +@@ -45,7 +45,8 @@ + iPxeBiosBin_CLEAN = \ + $(iPxeBiosBin_0_OUTDIR)/iPxeBiosBin.c \ + +-if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), darwin.amd64 darwin.arm64 linux.arm64 os2.x86 solaris.amd64 win.amd64 win.arm64) ++# Disable building on Linux if using clang ++if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), darwin.amd64 darwin.arm64 linux.arm64 linux.amd64 os2.x86 solaris.amd64 win.amd64 win.arm64) + $$(iPxeBiosBin_0_OUTDIR)/iPxeBiosBin.c: $(PATH_SUB_CURRENT)/iPxeBiosBin.rom $(VBOX_BIN2C) | $$(dir $$@) + $(call MSG_TOOL,bin2c,iPxeBiosBin,$<,$@) + $(QUIET)$(VBOX_BIN2C) -min 32 -max 56 -mask 0x1ff -export NetBiosBinary $< $@ diff --git a/app-emulation/virtualbox/virtualbox-7.0.20.ebuild b/app-emulation/virtualbox/virtualbox-7.0.20.ebuild new file mode 100644 index 00000000..05927b1a --- /dev/null +++ b/app-emulation/virtualbox/virtualbox-7.0.20.ebuild @@ -0,0 +1,741 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# To add a new Python here: +# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic) +# Do NOT skip this part. It'll end up silently not-building the Python extension +# or otherwise misbehaving if you do. +# +# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python. +# +# May need to look at other distros (e.g. Arch Linux) to find patches for newer +# Python versions as upstream tends to lag. Upstream may have patches on their +# trunk branch but not release branch. +# +# See bug #785835, bug #856121. +PYTHON_COMPAT=( python3_{10..12} ) + +inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \ + python-single-r1 tmpfiles toolchain-funcs udev xdg + +MY_PN="VirtualBox" +MY_P=${MY_PN}-${PV} + +DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI=" + https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2 + https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.16.tar.bz2 + gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${PV}.tar.xz ) ) +" +S="${WORKDIR}/${MY_PN}-${PV}" + +LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" +IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde +vmmraw vnc" + +unset WATCOM #856769 + +COMMON_DEPEND=" + acct-group/vboxusers + ~app-emulation/virtualbox-modules-${PV} + dev-libs/libtpms + dev-libs/libxml2 + dev-libs/openssl:0= + media-libs/libpng:0= + media-libs/libvpx:0= + net-misc/curl + sys-libs/zlib + dbus? ( sys-apps/dbus ) + gui? ( + dev-qt/qtcore:5 + dev-qt/qtdbus:5 + dev-qt/qtgui:5 + dev-qt/qthelp:5 + dev-qt/qtprintsupport:5 + dev-qt/qtwidgets:5 + dev-qt/qtx11extras:5 + dev-qt/qtxml:5 + x11-libs/libX11 + x11-libs/libXt + opengl? ( dev-qt/qtopengl:5 ) + ) + lvm? ( sys-fs/lvm2 ) + opengl? ( + media-libs/libglvnd[X] + media-libs/vulkan-loader + x11-libs/libX11 + x11-libs/libXt + ) + pam? ( sys-libs/pam ) + python? ( ${PYTHON_DEPS} ) + sdl? ( + media-libs/libsdl2[X,video] + x11-libs/libX11 + x11-libs/libXcursor + x11-libs/libXt + ) + vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] ) + vde? ( net-misc/vde ) + vnc? ( >=net-libs/libvncserver-0.9.9 ) +" +# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport +# with USE="vboxwebsrv java". Note that we have to put things in DEPEND, +# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables +# based on *DEPEND doesn't work for BDEPEND at least right now. +# +# There's a comment in Config.kmk about it +# ("With Java 11 wsimport was removed, usually part of a separate install now.") +# but it needs more investigation. +# +# See bug #878299 to track this issue. +DEPEND=" + ${COMMON_DEPEND} + >=dev-libs/libxslt-1.1.19 + virtual/libcrypt:= + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + gui? ( + x11-base/xorg-proto + x11-libs/libxcb:= + x11-libs/libXcursor + x11-libs/libXext + x11-libs/libXinerama + x11-libs/libXmu + x11-libs/libXrandr + ) + java? ( virtual/jdk:1.8 ) + opengl? ( + x11-base/xorg-proto + x11-libs/libXcursor + x11-libs/libXinerama + x11-libs/libXmu + x11-libs/libXrandr + virtual/glu + ) + sdl? ( x11-libs/libXinerama ) + pulseaudio? ( media-libs/libpulse ) + udev? ( >=virtual/udev-171 ) +" +RDEPEND=" + ${COMMON_DEPEND} + gui? ( x11-libs/libxcb:= ) + java? ( virtual/jre:1.8 ) +" +BDEPEND=" + >=app-arch/tar-1.34-r2 + >=dev-lang/yasm-0.6.2 + dev-libs/libIDL + dev-util/glslang + >=dev-build/kbuild-0.1.9998.3592 + sys-apps/which + sys-devel/bin86 + sys-libs/libcap + sys-power/iasl + virtual/pkgconfig + doc? ( + app-text/docbook-sgml-dtd:4.4 + app-text/docbook-xsl-ns-stylesheets + dev-texlive/texlive-basic + dev-texlive/texlive-latex + dev-texlive/texlive-latexrecommended + dev-texlive/texlive-latexextra + dev-texlive/texlive-fontsrecommended + dev-texlive/texlive-fontsextra + dev-qt/qthelp:5 + ) + gui? ( dev-qt/linguist-tools:5 ) + nls? ( dev-qt/linguist-tools:5 ) + java? ( virtual/jdk:1.8 ) + python? ( ${PYTHON_DEPS} ) +" + +QA_FLAGS_IGNORED=" + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_TEXTRELS=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +QA_EXECSTACK=" + usr/lib64/virtualbox/iPxeBaseBin + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_WX_LOAD=" + usr/lib64/virtualbox/iPxeBaseBin +" + +QA_PRESTRIPPED=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +REQUIRED_USE=" + java? ( sdk ) + python? ( sdk ${PYTHON_REQUIRED_USE} ) + vboxwebsrv? ( java ) +" + +PATCHES=( + # Downloaded patchset + "${WORKDIR}"/virtualbox-patches-7.0.16/patches +) + +pkg_pretend() { + if ! use gui; then + einfo "No USE=\"gui\" selected, this build will not include any Qt frontend." + fi + + if ! use opengl; then + einfo "No USE=\"opengl\" selected, this build will lack" + einfo "the OpenGL feature." + fi + if ! use nls && use gui; then + einfo "USE=\"gui\" also selects USE=\"nls\". This build" + einfo "will have NLS support." + fi + + # 749273 + local d=${ROOT} + for i in usr "$(get_libdir)"; do + d="${d}/$i" + if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then + die "${d} should be owned by root, VirtualBox will not start otherwise" + fi + done +} + +pkg_setup() { + java-pkg-opt-2_pkg_setup + use python && python-single-r1_pkg_setup +} + +src_prepare() { + default + + # Only add nopie patch when we're on hardened + if gcc-specs-pie; then + eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch + fi + + # Remove shipped binaries (kBuild, yasm) and tools, see bug #232775 + rm -r kBuild/bin || die + # Remove everything in tools except kBuildUnits + find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die + + # Disable things unused or split into separate ebuilds + sed -e "s@MY_LIBDIR@$(get_libdir)@" \ + "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die + + if ! use pch; then + # bug #753323 + printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \ + >> LocalConfig.kmk || die + fi + + # bug #916002, #488176 + tc-ld-force-bfd + + # Respect LDFLAGS + sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \ + -i Config.kmk src/libs/xpcom18a4/Config.kmk || die + + # Do not use hard-coded ld (related to bug #488176) + sed -e '/QUIET)ld /s@ld @$(LD) @' \ + -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die + + # Use PAM only when pam USE flag is enbaled (bug #376531) + if ! use pam; then + einfo "Disabling PAM removes the possibility to use the VRDP features." + sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die + sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \ + src/VBox/HostServices/Makefile.kmk || die + echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die + fi + + # add correct java path + if use java; then + sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \ + -i "${S}"/Config.kmk || die + java-pkg-opt-2_src_prepare + fi + + #856811 #864274 + # cannot filter out only one flag, some combinations of these flags produce buggy executables + for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do + append-cflags $(test-flags-CC -mno-$i) + append-cxxflags $(test-flags-CXX -mno-$i) + done + + # bug #908814 + filter-lto + + # bug #843437 + cat >> LocalConfig.kmk <<-EOF || die + CXXFLAGS=${CXXFLAGS} + CFLAGS=${CFLAGS} + EOF + + if use sdl; then + sed -i 's/sdl-config/sdl2-config/' configure || die + echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die + fi + + #443830 + echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die + + if tc-is-clang; then + # clang assembler chokes on comments starting with / + sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die + + # clang does not support this extension + eapply "${FILESDIR}"/${PN}-7.0.8-disable-rebuild-iPxeBiosBin.patch + fi + + # fix doc generation + echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die + # replace xhtml names with numeric equivalents + find doc/manual -name \*.xml -exec sed -i \ + -e 's/ /\ /g' \ + -e 's/–/\–/g' \ + -e 's/←/\←/g' \ + -e 's/→/\→/g' \ + -e 's/↔/\↔/g' {} \+ || die + + # fix help path #891879 + echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die + + # 489208 + # Cannot patch the whole text, many translations. Use sed instead to replace the command + find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \ + 's/'[^&]*\(vboxdrv setup\|vboxconfig\)'/\'emerge -1 virtualbox-modules\'/' {} \+ || die + sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \ + src/VBox/Frontends/VirtualBox/src/main.cpp \ + src/VBox/VMM/VMMR3/VM.cpp || die + + # 890561 + echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die + + if ! use nls && ! use gui; then + cat >> LocalConfig.kmk <<-EOF || die + VBOX_WITH_NLS := + VBOX_WITH_MAIN_NLS := + VBOX_WITH_PUEL_NLS := + VBOX_WITH_VBOXMANAGE_NLS := + EOF + fi +} + +src_configure() { + tc-export AR CC CXX LD RANLIB + export HOST_CC="$(tc-getBUILD_CC)" + + local myconf=( + --with-gcc="$(tc-getCC)" + --with-g++="$(tc-getCXX)" + + --disable-kmods + + $(usev !alsa --disable-alsa) + $(usev !dbus --disable-dbus) + $(usev debug --build-debug) + $(usev !doc --disable-docs) + $(usev !java --disable-java) + $(usev !lvm --disable-devmapper) + $(usev !pulseaudio --disable-pulse) + $(usev !python --disable-python) + $(usev vboxwebsrv --enable-webservice) + $(usev vde --enable-vde) + $(usev !vmmraw --disable-vmmraw) + $(usev vnc --enable-vnc) + ) + + if use gui || use sdl || use opengl; then + myconf+=( + $(usev !opengl --disable-opengl) + $(usev !gui --disable-qt) + $(usev !sdl --disable-sdl) + ) + else + myconf+=( + --build-headless + ) + fi + + if use amd64 && ! has_multilib_profile; then + myconf+=( --disable-vmmraw ) + fi + + # not an autoconf script + edo ./configure "${myconf[@]}" + + # Force usage of chosen Python implementation + # bug #856121, bug #785835 + sed -i \ + -e '/VBOX_WITH_PYTHON.*=/d' \ + -e '/VBOX_PATH_PYTHON_INC.*=/d' \ + -e '/VBOX_LIB_PYTHON.*=/d' \ + AutoConfig.kmk || die + + if use python; then + cat >> AutoConfig.kmk <<-EOF || die + VBOX_WITH_PYTHON=$(usev python 1) + VBOX_PATH_PYTHON_INC=$(python_get_includedir) + VBOX_LIB_PYTHON=$(python_get_library_path) + EOF + + local mangled_python="${EPYTHON#python}" + mangled_python="${mangled_python/.}" + + # Stub out the script which defines what the Makefile ends up + # building for. gen_python_deps.py gets called by the Makefile + # with some args and it spits out a bunch of paths for a hardcoded + # list of Pythons. We just override it with what we're actually using. + # This minimises the amount of patching we have to do for new Pythons. + cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die + print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)") + print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)") + print("VBOX_PYTHONDEF_INC=$(python_get_includedir)") + print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)") + EOF + + chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die + else + cat >> AutoConfig.kmk <<-EOF || die + VBOX_WITH_PYTHON:= + EOF + fi +} + +src_compile() { + source ./env.sh || die + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" + + local myemakeargs=( + VBOX_BUILD_PUBLISHER=_Gentoo + VBOX_WITH_VBOXIMGMOUNT=1 + + KBUILD_VERBOSE=2 + + AS="$(tc-getCC)" + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + + TOOL_GCC3_CC="$(tc-getCC)" + TOOL_GCC3_LD="$(tc-getCC)" + TOOL_GCC3_AS="$(tc-getCC)" + TOOL_GCC3_AR="$(tc-getAR)" + TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX3_CC="$(tc-getCC)" + TOOL_GXX3_CXX="$(tc-getCXX)" + TOOL_GXX3_LD="$(tc-getCXX)" + TOOL_GXX3_AS="$(tc-getCXX)" + TOOL_GXX3_AR="$(tc-getAR)" + TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GCC3_CFLAGS="${CFLAGS}" + TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" + VBOX_GCC_OPT="${CXXFLAGS}" + VBOX_NM="$(tc-getNM)" + + TOOL_YASM_AS=yasm + ) + + if use amd64 && has_multilib_profile; then + myemakeargs+=( + CC32="$(tc-getCC) -m32" + CXX32="$(tc-getCXX) -m32" + + TOOL_GCC32_CC="$(tc-getCC) -m32" + TOOL_GCC32_CXX="$(tc-getCXX) -m32" + TOOL_GCC32_LD="$(tc-getCC) -m32" + TOOL_GCC32_AS="$(tc-getCC) -m32" + TOOL_GCC32_AR="$(tc-getAR)" + TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX32_CC="$(tc-getCC) -m32" + TOOL_GXX32_CXX="$(tc-getCXX) -m32" + TOOL_GXX32_LD="$(tc-getCXX) -m32" + TOOL_GXX32_AS="$(tc-getCXX) -m32" + TOOL_GXX32_AR="$(tc-getAR)" + TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)" + ) + fi + + MAKE="kmk" emake "${myemakeargs[@]}" all +} + +src_install() { + cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die + + local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile + + vbox_inst() { + local binary="${1}" + local perms="${2:-0750}" + local path="${3:-${vbox_inst_path}}" + + [[ -n "${binary}" ]] || die "vbox_inst: No binary given!" + [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits." + + insinto ${path} + doins ${binary} + fowners root:vboxusers ${path}/${binary} + fperms ${perms} ${path}/${binary} + } + + # Create configuration files + insinto /etc/vbox + newins "${FILESDIR}/${PN}-4-config" vbox.cfg + + # Set the correct libdir + sed \ + -e "s@MY_LIBDIR@$(get_libdir)@" \ + -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed" + + # Install the wrapper script + exeinto ${vbox_inst_path} + newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox" + fowners root:vboxusers ${vbox_inst_path}/VBox + fperms 0750 ${vbox_inst_path}/VBox + + # Install binaries and libraries + insinto ${vbox_inst_path} + doins -r components + + for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload,XPCOMIPCD} \ + vboximg-mount vbox-img *so *r0; do + vbox_inst ${each} + done + + # These binaries need to be suid root. + for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do + vbox_inst ${each} 4750 + done + + # Install EFI Firmware files (bug #320757) + for each in VBoxEFI{32,64}.fd ; do + vbox_inst ${each} 0644 + done + + # VBoxSVC and VBoxManage need to be pax-marked (bug #403453) + # VBoxXPCOMIPCD (bug #524202) + for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + # Symlink binaries to the shipped wrapper + for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \ + VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount + dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img + + if use pam; then + # VRDPAuth only works with this (bug #351949) + dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so + fi + + # set an env-variable for 3rd party tools + echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox" + # environment variables used during SDK binding installation + echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox" + echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox" + doenvd "${T}/90virtualbox" + + if use sdl; then + vbox_inst VBoxSDL 4750 + pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL + + for each in vboxsdl VBoxSDL ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + fi + + if use gui; then + vbox_inst VirtualBox + vbox_inst VirtualBoxVM 4750 + for each in VirtualBox{,VM} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + if use opengl; then + vbox_inst VBoxTestOGL + pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL + fi + + for each in virtualbox{,vm} VirtualBox{,VM} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + + insinto /usr/share/${PN} + doins -r nls + doins -r UnattendedTemplates + + domenu ${PN}.desktop + + pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die + for size in 16 32 48 64 128 ; do + newicon -s ${size} ${PN}-${size}px.png ${PN}.png + done + newicon ${PN}-48px.png ${PN}.png + doicon -s scalable ${PN}.svg + popd &>/dev/null || die + pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die + for size in 16 24 32 48 64 72 96 128 256 512 ; do + for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do + icofile="${PN}-${ico}-${size}px.png" + if [[ -f "${icofile}" ]]; then + newicon -s ${size} ${icofile} ${PN}-${ico}.png + fi + done + done + popd &>/dev/null || die + fi + + if use lvm; then + vbox_inst VBoxVolInfo 4750 + dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo + fi + + if use sdk; then + insinto ${vbox_inst_path} + doins -r sdk + + if use java; then + java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar" + java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so" + fi + fi + + if use udev; then + local udevdir="$(get_udevdir)" + local udev_file="VBoxCreateUSBNode.sh" + local rules_file="10-virtualbox.rules" + + insinto ${udevdir} + doins ${udev_file} + fowners root:vboxusers ${udevdir}/${udev_file} + fperms 0750 ${udevdir}/${udev_file} + + insinto ${udevdir}/rules.d + sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \ + > "${T}"/${rules_file} || die + doins "${T}"/${rules_file} + fi + + if use vboxwebsrv; then + vbox_inst vboxwebsrv + dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv + newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv + newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv + fi + + # Remove dead symlinks (bug #715338) + find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die + + # Fix version string in extensions or else they don't get accepted + # by the virtualbox host process (see bug #438930) + find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die + + local extensions_dir="${vbox_inst_path}/ExtensionPacks" + + if use vnc; then + insinto ${extensions_dir} + doins -r ExtensionPacks/VNC + fi + + if use dtrace; then + insinto ${extensions_dir} + doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack + fi + + if use doc; then + dodoc UserManual.pdf UserManual.q{ch,hc} + docompress -x /usr/share/doc/${PF} + elif use gui; then + dodoc "${WORKDIR}"/${PN}-help-${PV}/UserManual.q{ch,hc} + docompress -x /usr/share/doc/${PF} + fi + + if use python; then + local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so" + if [[ ! -x "${python_path_ext}" ]]; then + eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python" + eerror "but none were installed. This may happen if support for a Python target" + eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles." + die "Incomplete installation of Python bindings! File a bug with Gentoo!" + fi + + # 378871 + local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer" + pushd "${installer_dir}" &> /dev/null || die + sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \ + -e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \ + -i vboxapi/__init__.py || die + # insert shebang, the files come without one + find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die + python_domodule vboxapi + popd &> /dev/null || die + sed -e "1 i\#! ${PYTHON}" -i vboxshell.py || die + python_doscript vboxshell.py + + # do not install the installer + rm -r "${installer_dir}" || die + fi + + newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf +} + +pkg_postinst() { + xdg_pkg_postinst + + if use udev; then + udev_reload + udevadm trigger --subsystem-match=usb + fi + + tmpfiles_process virtualbox-vboxusb.conf + + if use gui; then + elog "To launch VirtualBox just type: \"virtualbox\"." + fi + + elog "You must be in the vboxusers group to use VirtualBox." + elog "" + elog "The latest user manual is available for download at:" + elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf" + elog "" + + optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities + optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle + optfeature "Guest additions ISO" app-emulation/virtualbox-additions + + if ! use udev; then + ewarn "Without USE=udev, USB devices will likely not work in ${PN}." + fi +} + +pkg_postrm() { + xdg_pkg_postrm + + use udev && udev_reload +} diff --git a/app-emulation/virtualbox/virtualbox-7.1.0.ebuild b/app-emulation/virtualbox/virtualbox-7.1.0.ebuild new file mode 100644 index 00000000..ce11aed6 --- /dev/null +++ b/app-emulation/virtualbox/virtualbox-7.1.0.ebuild @@ -0,0 +1,744 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# To add a new Python here: +# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic) +# Do NOT skip this part. It'll end up silently not-building the Python extension +# or otherwise misbehaving if you do. +# +# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python. +# +# May need to look at other distros (e.g. Arch Linux) to find patches for newer +# Python versions as upstream tends to lag. Upstream may have patches on their +# trunk branch but not release branch. +# +# See bug #785835, bug #856121. +PYTHON_COMPAT=( python3_{10..12} ) + +inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \ + python-single-r1 tmpfiles toolchain-funcs udev xdg + +MY_PN="VirtualBox" +MY_P=${MY_PN}-${PV} +HELP_PV=${PV} + +DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI=" + https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2 + https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.1.0.tar.bz2 + gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${HELP_PV}.tar.xz ) ) +" +S="${WORKDIR}/${MY_PN}-${PV}" + +LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" +IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde +vmmraw vnc" + +unset WATCOM #856769 + +COMMON_DEPEND=" + acct-group/vboxusers + app-arch/xz-utils + ~app-emulation/virtualbox-modules-${PV} + dev-libs/libtpms + dev-libs/libxml2 + dev-libs/openssl:0= + media-libs/libpng:0= + media-libs/libvpx:0= + net-misc/curl + sys-libs/zlib + dbus? ( sys-apps/dbus ) + gui? ( + dev-qt/qtbase:6[widgets] + dev-qt/qtscxml:6 + dev-qt/qttools:6[assistant] + x11-libs/libX11 + x11-libs/libXt + ) + lvm? ( sys-fs/lvm2 ) + opengl? ( + media-libs/libglvnd[X] + media-libs/vulkan-loader + x11-libs/libX11 + x11-libs/libXt + ) + pam? ( sys-libs/pam ) + python? ( ${PYTHON_DEPS} ) + sdl? ( + media-libs/libsdl2[X,video] + x11-libs/libX11 + x11-libs/libXt + ) + vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] ) + vde? ( net-misc/vde ) + vnc? ( >=net-libs/libvncserver-0.9.9 ) +" +# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport +# with USE="vboxwebsrv java". Note that we have to put things in DEPEND, +# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables +# based on *DEPEND doesn't work for BDEPEND at least right now. +# +# There's a comment in Config.kmk about it +# ("With Java 11 wsimport was removed, usually part of a separate install now.") +# but it needs more investigation. +# +# See bug #878299 to track this issue. +DEPEND=" + ${COMMON_DEPEND} + >=dev-libs/libxslt-1.1.19 + virtual/libcrypt:= + x11-libs/libXt + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + gui? ( + x11-base/xorg-proto + x11-libs/libxcb:= + x11-libs/libXcursor + x11-libs/libXext + x11-libs/libXinerama + x11-libs/libXmu + x11-libs/libXrandr + ) + java? ( virtual/jdk:1.8 ) + opengl? ( + x11-base/xorg-proto + x11-libs/libXcursor + x11-libs/libXinerama + x11-libs/libXmu + x11-libs/libXrandr + virtual/glu + ) + sdl? ( + x11-libs/libXcursor + x11-libs/libXinerama + ) + pulseaudio? ( media-libs/libpulse ) + udev? ( >=virtual/udev-171 ) +" +RDEPEND=" + ${COMMON_DEPEND} + gui? ( x11-libs/libxcb:= ) + java? ( virtual/jre:1.8 ) +" +BDEPEND=" + >=app-arch/tar-1.34-r2 + >=dev-lang/yasm-0.6.2 + dev-libs/libIDL + dev-util/glslang + >=dev-build/kbuild-0.1.9998.3592 + sys-apps/which + sys-devel/bin86 + sys-libs/libcap + sys-power/iasl + virtual/pkgconfig + doc? ( + app-doc/dita-ot-bin + app-text/docbook-sgml-dtd:4.4 + app-text/docbook-xsl-ns-stylesheets + dev-texlive/texlive-basic + dev-texlive/texlive-latex + dev-texlive/texlive-latexrecommended + dev-texlive/texlive-latexextra + dev-texlive/texlive-fontsrecommended + dev-texlive/texlive-fontsextra + dev-qt/qttools:6[assistant] + sys-libs/nss_wrapper + ) + gui? ( dev-qt/qttools:6[linguist] ) + nls? ( dev-qt/qttools:6[linguist] ) + java? ( virtual/jdk:1.8 ) + python? ( ${PYTHON_DEPS} ) +" + +QA_FLAGS_IGNORED=" + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_TEXTRELS=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +QA_EXECSTACK=" + usr/lib64/virtualbox/iPxeBaseBin + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_WX_LOAD=" + usr/lib64/virtualbox/iPxeBaseBin +" + +QA_PRESTRIPPED=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +REQUIRED_USE=" + java? ( sdk ) + python? ( sdk ${PYTHON_REQUIRED_USE} ) + vboxwebsrv? ( java ) +" + +PATCHES=( + # Downloaded patchset + "${WORKDIR}"/virtualbox-patches-7.1.0/patches +) + +pkg_pretend() { + if ! use gui; then + einfo "No USE=\"gui\" selected, this build will not include any Qt frontend." + fi + + if ! use opengl; then + einfo "No USE=\"opengl\" selected, this build will lack" + einfo "the OpenGL feature." + fi + if ! use nls && use gui; then + einfo "USE=\"gui\" also selects USE=\"nls\". This build" + einfo "will have NLS support." + fi + + # 749273 + local d=${ROOT} + for i in usr "$(get_libdir)"; do + d="${d}/$i" + if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then + die "${d} should be owned by root, VirtualBox will not start otherwise" + fi + done +} + +pkg_setup() { + java-pkg-opt-2_pkg_setup + use python && python-single-r1_pkg_setup +} + +src_prepare() { + default + + # Only add nopie patch when we're on hardened + if gcc-specs-pie; then + eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch + fi + + # Remove shipped binaries (kBuild, yasm) and tools, see bug #232775 + rm -r kBuild/bin || die + # Remove everything in tools except kBuildUnits + find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die + + # Disable things unused or split into separate ebuilds + sed -e "s@MY_LIBDIR@$(get_libdir)@" \ + "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die + + if ! use pch; then + # bug #753323 + printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \ + >> LocalConfig.kmk || die + fi + + # bug #916002, #488176, #925347 + tc-ld-is-mold || tc-ld-force-bfd + + # Respect LDFLAGS + sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \ + -i Config.kmk src/libs/xpcom18a4/Config.kmk || die + + # Do not use hard-coded ld (related to bug #488176) + sed -e '/QUIET)ld /s@ld @$(LD) @' \ + -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die + + # Use PAM only when pam USE flag is enbaled (bug #376531) + if ! use pam; then + einfo "Disabling PAM removes the possibility to use the VRDP features." + sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die + sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \ + src/VBox/HostServices/Makefile.kmk || die + echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die + fi + + # add correct java path + if use java; then + sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \ + -i "${S}"/Config.kmk || die + java-pkg-opt-2_src_prepare + fi + + # bug #908814 + filter-lto + + # bug #843437 + cat >> LocalConfig.kmk <<-EOF || die + CXXFLAGS=${CXXFLAGS} + CFLAGS=${CFLAGS} + EOF + + if use sdl; then + sed -i 's/sdl-config/sdl2-config/' configure || die + echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die + fi + + #443830 + echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die + + if tc-is-clang; then + # clang does not support this extension + eapply "${FILESDIR}"/${PN}-7.1.0-disable-rebuild-iPxeBiosBin.patch + fi + + # fix doc generation + echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die + # replace xhtml names with numeric equivalents + find doc/manual -name \*.xml -exec sed -i \ + -e 's/ /\ /g' \ + -e 's/–/\–/g' \ + -e 's/←/\←/g' \ + -e 's/→/\→/g' \ + -e 's/↔/\↔/g' {} \+ || die + + # fix help path #891879 + echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die + + # 489208 + # Cannot patch the whole text, many translations. Use sed instead to replace the command + find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \ + 's/'[^&]*\(vboxdrv setup\|vboxconfig\)'/\'emerge -1 virtualbox-modules\'/' {} \+ || die + sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \ + src/VBox/Frontends/VirtualBox/src/main.cpp \ + src/VBox/VMM/VMMR3/VM.cpp || die + + # 890561 + echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die + + if ! use nls && ! use gui; then + cat >> LocalConfig.kmk <<-EOF || die + VBOX_WITH_NLS := + VBOX_WITH_MAIN_NLS := + VBOX_WITH_PUEL_NLS := + VBOX_WITH_VBOXMANAGE_NLS := + EOF + fi +} + +src_configure() { + tc-export AR CC CXX LD RANLIB + export HOST_CC="$(tc-getBUILD_CC)" + + local myconf=( + --with-gcc="$(tc-getCC)" + --with-g++="$(tc-getCXX)" + + --disable-kmods + + $(usev !alsa --disable-alsa) + $(usev !dbus --disable-dbus) + $(usev debug --build-debug) + $(usev !doc --disable-docs) + $(usev !java --disable-java) + $(usev !lvm --disable-devmapper) + $(usev !pulseaudio --disable-pulse) + $(usev !python --disable-python) + $(usev vboxwebsrv --enable-webservice) + $(usev vde --enable-vde) + $(usev !vmmraw --disable-vmmraw) + $(usev vnc --enable-vnc) + ) + + if use gui || use sdl || use opengl; then + myconf+=( + $(usev !opengl --disable-opengl) + $(usev !gui --disable-qt) + $(usev !sdl --disable-sdl) + ) + else + myconf+=( + --build-headless + ) + fi + + if use amd64 && ! has_multilib_profile; then + myconf+=( --disable-vmmraw ) + fi + + # not an autoconf script + edo ./configure "${myconf[@]}" + + # Force usage of chosen Python implementation + # bug #856121, bug #785835 + sed -i \ + -e '/VBOX_WITH_PYTHON.*=/d' \ + -e '/VBOX_PATH_PYTHON_INC.*=/d' \ + -e '/VBOX_LIB_PYTHON.*=/d' \ + AutoConfig.kmk || die + + if use python; then + cat >> AutoConfig.kmk <<-EOF || die + VBOX_WITH_PYTHON=$(usev python 1) + VBOX_PATH_PYTHON_INC=$(python_get_includedir) + VBOX_LIB_PYTHON=$(python_get_library_path) + EOF + + local mangled_python="${EPYTHON#python}" + mangled_python="${mangled_python/.}" + + # Stub out the script which defines what the Makefile ends up + # building for. gen_python_deps.py gets called by the Makefile + # with some args and it spits out a bunch of paths for a hardcoded + # list of Pythons. We just override it with what we're actually using. + # This minimises the amount of patching we have to do for new Pythons. + cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die + print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)") + print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)") + print("VBOX_PYTHONDEF_INC=$(python_get_includedir)") + print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)") + EOF + + chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die + else + cat >> AutoConfig.kmk <<-EOF || die + VBOX_WITH_PYTHON:= + EOF + fi +} + +src_compile() { + source ./env.sh || die + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" + + local myemakeargs=( + VBOX_BUILD_PUBLISHER=_Gentoo + VBOX_WITH_VBOXIMGMOUNT=1 + + KBUILD_VERBOSE=2 + + AS="$(tc-getCC)" + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + + TOOL_GCC3_CC="$(tc-getCC)" + TOOL_GCC3_LD="$(tc-getCC)" + TOOL_GCC3_AS="$(tc-getCC)" + TOOL_GCC3_AR="$(tc-getAR)" + TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX3_CC="$(tc-getCC)" + TOOL_GXX3_CXX="$(tc-getCXX)" + TOOL_GXX3_LD="$(tc-getCXX)" + TOOL_GXX3_AS="$(tc-getCXX)" + TOOL_GXX3_AR="$(tc-getAR)" + TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GCC3_CFLAGS="${CFLAGS}" + TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" + VBOX_GCC_OPT="${CXXFLAGS}" + VBOX_NM="$(tc-getNM)" + + TOOL_YASM_AS=yasm + ) + + if use amd64 && has_multilib_profile; then + myemakeargs+=( + CC32="$(tc-getCC) -m32" + CXX32="$(tc-getCXX) -m32" + + TOOL_GCC32_CC="$(tc-getCC) -m32" + TOOL_GCC32_CXX="$(tc-getCXX) -m32" + TOOL_GCC32_LD="$(tc-getCC) -m32" + TOOL_GCC32_AS="$(tc-getCC) -m32" + TOOL_GCC32_AR="$(tc-getAR)" + TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX32_CC="$(tc-getCC) -m32" + TOOL_GXX32_CXX="$(tc-getCXX) -m32" + TOOL_GXX32_LD="$(tc-getCXX) -m32" + TOOL_GXX32_AS="$(tc-getCXX) -m32" + TOOL_GXX32_AR="$(tc-getAR)" + TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)" + ) + fi + + if use doc; then + # dita needs to write to ~/.fop and ~/.java + # but it ignores ${HOME} and tries to write to the real home of user portage + # resulting in a sandbox violation + # -Duser.home= does not work + # force using the temporary homedir with nss_wrapper + echo "${LOGNAME}::$(id -u):$(id -g):${USER}:${HOME}:/bin/bash" >> ~/passwd + echo "${LOGNAME}::$(id -g):" >> ~/group + + local -x LD_PRELOAD=libnss_wrapper.so + local -x NSS_WRAPPER_PASSWD="${HOME}"/passwd + local -x NSS_WRAPPER_GROUP="${HOME}"/group + fi + + MAKE="kmk" emake "${myemakeargs[@]}" all +} + +src_install() { + cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die + + local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile + + vbox_inst() { + local binary="${1}" + local perms="${2:-0750}" + local path="${3:-${vbox_inst_path}}" + + [[ -n "${binary}" ]] || die "vbox_inst: No binary given!" + [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits." + + insinto ${path} + doins ${binary} + fowners root:vboxusers ${path}/${binary} + fperms ${perms} ${path}/${binary} + } + + # Create configuration files + insinto /etc/vbox + newins "${FILESDIR}/${PN}-4-config" vbox.cfg + + # Set the correct libdir + sed \ + -e "s@MY_LIBDIR@$(get_libdir)@" \ + -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed" + + # Install the wrapper script + exeinto ${vbox_inst_path} + newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox" + fowners root:vboxusers ${vbox_inst_path}/VBox + fperms 0750 ${vbox_inst_path}/VBox + + # Install binaries and libraries + insinto ${vbox_inst_path} + doins -r components + + for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload} \ + vboximg-mount vbox-img *so *r0; do + vbox_inst ${each} + done + + # These binaries need to be suid root. + for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do + vbox_inst ${each} 4750 + done + + # Install EFI Firmware files (bug #320757) + for each in VBoxEFI{32,64}.fd ; do + vbox_inst ${each} 0644 + done + + # VBoxSVC and VBoxManage need to be pax-marked (bug #403453) + # VBoxXPCOMIPCD (bug #524202) + for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + # Symlink binaries to the shipped wrapper + for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \ + VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount + dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img + + if use pam; then + # VRDPAuth only works with this (bug #351949) + dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so + fi + + # set an env-variable for 3rd party tools + echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox" + # environment variables used during SDK binding installation + echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox" + echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox" + doenvd "${T}/90virtualbox" + + if use sdl; then + vbox_inst VBoxSDL 4750 + pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL + + for each in vboxsdl VBoxSDL ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + fi + + if use gui; then + vbox_inst VirtualBox + vbox_inst VirtualBoxVM 4750 + for each in VirtualBox{,VM} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + for each in virtualbox{,vm} VirtualBox{,VM} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + + insinto /usr/share/${PN} + doins -r nls + doins -r UnattendedTemplates + + domenu ${PN}.desktop + + pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die + for size in 16 32 48 64 128 ; do + newicon -s ${size} ${PN}-${size}px.png ${PN}.png + done + newicon ${PN}-48px.png ${PN}.png + doicon -s scalable ${PN}.svg + popd &>/dev/null || die + pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die + for size in 16 24 32 48 64 72 96 128 256 512 ; do + for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do + icofile="${PN}-${ico}-${size}px.png" + if [[ -f "${icofile}" ]]; then + newicon -s ${size} ${icofile} ${PN}-${ico}.png + fi + done + done + popd &>/dev/null || die + fi + + if use lvm; then + vbox_inst VBoxVolInfo 4750 + dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo + fi + + if use sdk; then + insinto ${vbox_inst_path} + doins -r sdk + + if use java; then + java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar" + java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so" + fi + fi + + if use udev; then + local udevdir="$(get_udevdir)" + local udev_file="VBoxCreateUSBNode.sh" + local rules_file="10-virtualbox.rules" + + insinto ${udevdir} + doins ${udev_file} + fowners root:vboxusers ${udevdir}/${udev_file} + fperms 0750 ${udevdir}/${udev_file} + + insinto ${udevdir}/rules.d + sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \ + > "${T}"/${rules_file} || die + doins "${T}"/${rules_file} + fi + + if use vboxwebsrv; then + vbox_inst vboxwebsrv + dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv + newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv + newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv + fi + + # Remove dead symlinks (bug #715338) + find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die + + # Fix version string in extensions or else they don't get accepted + # by the virtualbox host process (see bug #438930) + find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die + + local extensions_dir="${vbox_inst_path}/ExtensionPacks" + + if use vnc; then + insinto ${extensions_dir} + doins -r ExtensionPacks/VNC + fi + + if use dtrace; then + insinto ${extensions_dir} + doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack + fi + + if use doc; then + dodoc UserManual.pdf UserManual.q{ch,hc} + docompress -x /usr/share/doc/${PF} + elif use gui; then + dodoc "${WORKDIR}"/${PN}-help-${HELP_PV}/UserManual.q{ch,hc} + docompress -x /usr/share/doc/${PF} + fi + + if use python; then + local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so" + if [[ ! -x "${python_path_ext}" ]]; then + eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python" + eerror "but none were installed. This may happen if support for a Python target" + eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles." + die "Incomplete installation of Python bindings! File a bug with Gentoo!" + fi + + # 378871 + local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer/python/vboxapi/src" + pushd "${installer_dir}" &> /dev/null || die + sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \ + -e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \ + -i vboxapi/__init__.py || die + # insert shebang, the files come without one + find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die + python_domodule vboxapi + popd &> /dev/null || die + + # upstream added a /bin/sh stub here + # use /usr/bin/python3, python_doscript will take care of it + sed -e '1 i #! /usr/bin/python3' -i vboxshell.py + python_doscript vboxshell.py + + # do not install the installer + rm -r "${installer_dir%vboxapi*}" || die + fi + + newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf +} + +pkg_postinst() { + xdg_pkg_postinst + + if use udev; then + udev_reload + udevadm trigger --subsystem-match=usb + fi + + tmpfiles_process virtualbox-vboxusb.conf + + if use gui; then + elog "To launch VirtualBox just type: \"virtualbox\"." + fi + + elog "You must be in the vboxusers group to use VirtualBox." + elog "" + elog "The latest user manual is available for download at:" + elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf" + elog "" + + optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities + optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle + optfeature "Guest additions ISO" app-emulation/virtualbox-additions + + if ! use udev; then + ewarn "Without USE=udev, USB devices will likely not work in ${PN}." + fi +} + +pkg_postrm() { + xdg_pkg_postrm + + use udev && udev_reload +} diff --git a/app-emulation/virtualbox/virtualbox-7.1.2.ebuild b/app-emulation/virtualbox/virtualbox-7.1.2.ebuild new file mode 100644 index 00000000..ce11aed6 --- /dev/null +++ b/app-emulation/virtualbox/virtualbox-7.1.2.ebuild @@ -0,0 +1,744 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# To add a new Python here: +# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic) +# Do NOT skip this part. It'll end up silently not-building the Python extension +# or otherwise misbehaving if you do. +# +# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python. +# +# May need to look at other distros (e.g. Arch Linux) to find patches for newer +# Python versions as upstream tends to lag. Upstream may have patches on their +# trunk branch but not release branch. +# +# See bug #785835, bug #856121. +PYTHON_COMPAT=( python3_{10..12} ) + +inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \ + python-single-r1 tmpfiles toolchain-funcs udev xdg + +MY_PN="VirtualBox" +MY_P=${MY_PN}-${PV} +HELP_PV=${PV} + +DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI=" + https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2 + https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.1.0.tar.bz2 + gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${HELP_PV}.tar.xz ) ) +" +S="${WORKDIR}/${MY_PN}-${PV}" + +LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" +IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde +vmmraw vnc" + +unset WATCOM #856769 + +COMMON_DEPEND=" + acct-group/vboxusers + app-arch/xz-utils + ~app-emulation/virtualbox-modules-${PV} + dev-libs/libtpms + dev-libs/libxml2 + dev-libs/openssl:0= + media-libs/libpng:0= + media-libs/libvpx:0= + net-misc/curl + sys-libs/zlib + dbus? ( sys-apps/dbus ) + gui? ( + dev-qt/qtbase:6[widgets] + dev-qt/qtscxml:6 + dev-qt/qttools:6[assistant] + x11-libs/libX11 + x11-libs/libXt + ) + lvm? ( sys-fs/lvm2 ) + opengl? ( + media-libs/libglvnd[X] + media-libs/vulkan-loader + x11-libs/libX11 + x11-libs/libXt + ) + pam? ( sys-libs/pam ) + python? ( ${PYTHON_DEPS} ) + sdl? ( + media-libs/libsdl2[X,video] + x11-libs/libX11 + x11-libs/libXt + ) + vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] ) + vde? ( net-misc/vde ) + vnc? ( >=net-libs/libvncserver-0.9.9 ) +" +# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport +# with USE="vboxwebsrv java". Note that we have to put things in DEPEND, +# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables +# based on *DEPEND doesn't work for BDEPEND at least right now. +# +# There's a comment in Config.kmk about it +# ("With Java 11 wsimport was removed, usually part of a separate install now.") +# but it needs more investigation. +# +# See bug #878299 to track this issue. +DEPEND=" + ${COMMON_DEPEND} + >=dev-libs/libxslt-1.1.19 + virtual/libcrypt:= + x11-libs/libXt + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + gui? ( + x11-base/xorg-proto + x11-libs/libxcb:= + x11-libs/libXcursor + x11-libs/libXext + x11-libs/libXinerama + x11-libs/libXmu + x11-libs/libXrandr + ) + java? ( virtual/jdk:1.8 ) + opengl? ( + x11-base/xorg-proto + x11-libs/libXcursor + x11-libs/libXinerama + x11-libs/libXmu + x11-libs/libXrandr + virtual/glu + ) + sdl? ( + x11-libs/libXcursor + x11-libs/libXinerama + ) + pulseaudio? ( media-libs/libpulse ) + udev? ( >=virtual/udev-171 ) +" +RDEPEND=" + ${COMMON_DEPEND} + gui? ( x11-libs/libxcb:= ) + java? ( virtual/jre:1.8 ) +" +BDEPEND=" + >=app-arch/tar-1.34-r2 + >=dev-lang/yasm-0.6.2 + dev-libs/libIDL + dev-util/glslang + >=dev-build/kbuild-0.1.9998.3592 + sys-apps/which + sys-devel/bin86 + sys-libs/libcap + sys-power/iasl + virtual/pkgconfig + doc? ( + app-doc/dita-ot-bin + app-text/docbook-sgml-dtd:4.4 + app-text/docbook-xsl-ns-stylesheets + dev-texlive/texlive-basic + dev-texlive/texlive-latex + dev-texlive/texlive-latexrecommended + dev-texlive/texlive-latexextra + dev-texlive/texlive-fontsrecommended + dev-texlive/texlive-fontsextra + dev-qt/qttools:6[assistant] + sys-libs/nss_wrapper + ) + gui? ( dev-qt/qttools:6[linguist] ) + nls? ( dev-qt/qttools:6[linguist] ) + java? ( virtual/jdk:1.8 ) + python? ( ${PYTHON_DEPS} ) +" + +QA_FLAGS_IGNORED=" + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_TEXTRELS=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +QA_EXECSTACK=" + usr/lib64/virtualbox/iPxeBaseBin + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_WX_LOAD=" + usr/lib64/virtualbox/iPxeBaseBin +" + +QA_PRESTRIPPED=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +REQUIRED_USE=" + java? ( sdk ) + python? ( sdk ${PYTHON_REQUIRED_USE} ) + vboxwebsrv? ( java ) +" + +PATCHES=( + # Downloaded patchset + "${WORKDIR}"/virtualbox-patches-7.1.0/patches +) + +pkg_pretend() { + if ! use gui; then + einfo "No USE=\"gui\" selected, this build will not include any Qt frontend." + fi + + if ! use opengl; then + einfo "No USE=\"opengl\" selected, this build will lack" + einfo "the OpenGL feature." + fi + if ! use nls && use gui; then + einfo "USE=\"gui\" also selects USE=\"nls\". This build" + einfo "will have NLS support." + fi + + # 749273 + local d=${ROOT} + for i in usr "$(get_libdir)"; do + d="${d}/$i" + if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then + die "${d} should be owned by root, VirtualBox will not start otherwise" + fi + done +} + +pkg_setup() { + java-pkg-opt-2_pkg_setup + use python && python-single-r1_pkg_setup +} + +src_prepare() { + default + + # Only add nopie patch when we're on hardened + if gcc-specs-pie; then + eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch + fi + + # Remove shipped binaries (kBuild, yasm) and tools, see bug #232775 + rm -r kBuild/bin || die + # Remove everything in tools except kBuildUnits + find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die + + # Disable things unused or split into separate ebuilds + sed -e "s@MY_LIBDIR@$(get_libdir)@" \ + "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die + + if ! use pch; then + # bug #753323 + printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \ + >> LocalConfig.kmk || die + fi + + # bug #916002, #488176, #925347 + tc-ld-is-mold || tc-ld-force-bfd + + # Respect LDFLAGS + sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \ + -i Config.kmk src/libs/xpcom18a4/Config.kmk || die + + # Do not use hard-coded ld (related to bug #488176) + sed -e '/QUIET)ld /s@ld @$(LD) @' \ + -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die + + # Use PAM only when pam USE flag is enbaled (bug #376531) + if ! use pam; then + einfo "Disabling PAM removes the possibility to use the VRDP features." + sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die + sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \ + src/VBox/HostServices/Makefile.kmk || die + echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die + fi + + # add correct java path + if use java; then + sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \ + -i "${S}"/Config.kmk || die + java-pkg-opt-2_src_prepare + fi + + # bug #908814 + filter-lto + + # bug #843437 + cat >> LocalConfig.kmk <<-EOF || die + CXXFLAGS=${CXXFLAGS} + CFLAGS=${CFLAGS} + EOF + + if use sdl; then + sed -i 's/sdl-config/sdl2-config/' configure || die + echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die + fi + + #443830 + echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die + + if tc-is-clang; then + # clang does not support this extension + eapply "${FILESDIR}"/${PN}-7.1.0-disable-rebuild-iPxeBiosBin.patch + fi + + # fix doc generation + echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die + # replace xhtml names with numeric equivalents + find doc/manual -name \*.xml -exec sed -i \ + -e 's/ /\ /g' \ + -e 's/–/\–/g' \ + -e 's/←/\←/g' \ + -e 's/→/\→/g' \ + -e 's/↔/\↔/g' {} \+ || die + + # fix help path #891879 + echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die + + # 489208 + # Cannot patch the whole text, many translations. Use sed instead to replace the command + find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \ + 's/'[^&]*\(vboxdrv setup\|vboxconfig\)'/\'emerge -1 virtualbox-modules\'/' {} \+ || die + sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \ + src/VBox/Frontends/VirtualBox/src/main.cpp \ + src/VBox/VMM/VMMR3/VM.cpp || die + + # 890561 + echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die + + if ! use nls && ! use gui; then + cat >> LocalConfig.kmk <<-EOF || die + VBOX_WITH_NLS := + VBOX_WITH_MAIN_NLS := + VBOX_WITH_PUEL_NLS := + VBOX_WITH_VBOXMANAGE_NLS := + EOF + fi +} + +src_configure() { + tc-export AR CC CXX LD RANLIB + export HOST_CC="$(tc-getBUILD_CC)" + + local myconf=( + --with-gcc="$(tc-getCC)" + --with-g++="$(tc-getCXX)" + + --disable-kmods + + $(usev !alsa --disable-alsa) + $(usev !dbus --disable-dbus) + $(usev debug --build-debug) + $(usev !doc --disable-docs) + $(usev !java --disable-java) + $(usev !lvm --disable-devmapper) + $(usev !pulseaudio --disable-pulse) + $(usev !python --disable-python) + $(usev vboxwebsrv --enable-webservice) + $(usev vde --enable-vde) + $(usev !vmmraw --disable-vmmraw) + $(usev vnc --enable-vnc) + ) + + if use gui || use sdl || use opengl; then + myconf+=( + $(usev !opengl --disable-opengl) + $(usev !gui --disable-qt) + $(usev !sdl --disable-sdl) + ) + else + myconf+=( + --build-headless + ) + fi + + if use amd64 && ! has_multilib_profile; then + myconf+=( --disable-vmmraw ) + fi + + # not an autoconf script + edo ./configure "${myconf[@]}" + + # Force usage of chosen Python implementation + # bug #856121, bug #785835 + sed -i \ + -e '/VBOX_WITH_PYTHON.*=/d' \ + -e '/VBOX_PATH_PYTHON_INC.*=/d' \ + -e '/VBOX_LIB_PYTHON.*=/d' \ + AutoConfig.kmk || die + + if use python; then + cat >> AutoConfig.kmk <<-EOF || die + VBOX_WITH_PYTHON=$(usev python 1) + VBOX_PATH_PYTHON_INC=$(python_get_includedir) + VBOX_LIB_PYTHON=$(python_get_library_path) + EOF + + local mangled_python="${EPYTHON#python}" + mangled_python="${mangled_python/.}" + + # Stub out the script which defines what the Makefile ends up + # building for. gen_python_deps.py gets called by the Makefile + # with some args and it spits out a bunch of paths for a hardcoded + # list of Pythons. We just override it with what we're actually using. + # This minimises the amount of patching we have to do for new Pythons. + cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die + print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)") + print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)") + print("VBOX_PYTHONDEF_INC=$(python_get_includedir)") + print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)") + EOF + + chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die + else + cat >> AutoConfig.kmk <<-EOF || die + VBOX_WITH_PYTHON:= + EOF + fi +} + +src_compile() { + source ./env.sh || die + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" + + local myemakeargs=( + VBOX_BUILD_PUBLISHER=_Gentoo + VBOX_WITH_VBOXIMGMOUNT=1 + + KBUILD_VERBOSE=2 + + AS="$(tc-getCC)" + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + + TOOL_GCC3_CC="$(tc-getCC)" + TOOL_GCC3_LD="$(tc-getCC)" + TOOL_GCC3_AS="$(tc-getCC)" + TOOL_GCC3_AR="$(tc-getAR)" + TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX3_CC="$(tc-getCC)" + TOOL_GXX3_CXX="$(tc-getCXX)" + TOOL_GXX3_LD="$(tc-getCXX)" + TOOL_GXX3_AS="$(tc-getCXX)" + TOOL_GXX3_AR="$(tc-getAR)" + TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GCC3_CFLAGS="${CFLAGS}" + TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" + VBOX_GCC_OPT="${CXXFLAGS}" + VBOX_NM="$(tc-getNM)" + + TOOL_YASM_AS=yasm + ) + + if use amd64 && has_multilib_profile; then + myemakeargs+=( + CC32="$(tc-getCC) -m32" + CXX32="$(tc-getCXX) -m32" + + TOOL_GCC32_CC="$(tc-getCC) -m32" + TOOL_GCC32_CXX="$(tc-getCXX) -m32" + TOOL_GCC32_LD="$(tc-getCC) -m32" + TOOL_GCC32_AS="$(tc-getCC) -m32" + TOOL_GCC32_AR="$(tc-getAR)" + TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX32_CC="$(tc-getCC) -m32" + TOOL_GXX32_CXX="$(tc-getCXX) -m32" + TOOL_GXX32_LD="$(tc-getCXX) -m32" + TOOL_GXX32_AS="$(tc-getCXX) -m32" + TOOL_GXX32_AR="$(tc-getAR)" + TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)" + ) + fi + + if use doc; then + # dita needs to write to ~/.fop and ~/.java + # but it ignores ${HOME} and tries to write to the real home of user portage + # resulting in a sandbox violation + # -Duser.home= does not work + # force using the temporary homedir with nss_wrapper + echo "${LOGNAME}::$(id -u):$(id -g):${USER}:${HOME}:/bin/bash" >> ~/passwd + echo "${LOGNAME}::$(id -g):" >> ~/group + + local -x LD_PRELOAD=libnss_wrapper.so + local -x NSS_WRAPPER_PASSWD="${HOME}"/passwd + local -x NSS_WRAPPER_GROUP="${HOME}"/group + fi + + MAKE="kmk" emake "${myemakeargs[@]}" all +} + +src_install() { + cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die + + local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile + + vbox_inst() { + local binary="${1}" + local perms="${2:-0750}" + local path="${3:-${vbox_inst_path}}" + + [[ -n "${binary}" ]] || die "vbox_inst: No binary given!" + [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits." + + insinto ${path} + doins ${binary} + fowners root:vboxusers ${path}/${binary} + fperms ${perms} ${path}/${binary} + } + + # Create configuration files + insinto /etc/vbox + newins "${FILESDIR}/${PN}-4-config" vbox.cfg + + # Set the correct libdir + sed \ + -e "s@MY_LIBDIR@$(get_libdir)@" \ + -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed" + + # Install the wrapper script + exeinto ${vbox_inst_path} + newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox" + fowners root:vboxusers ${vbox_inst_path}/VBox + fperms 0750 ${vbox_inst_path}/VBox + + # Install binaries and libraries + insinto ${vbox_inst_path} + doins -r components + + for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload} \ + vboximg-mount vbox-img *so *r0; do + vbox_inst ${each} + done + + # These binaries need to be suid root. + for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do + vbox_inst ${each} 4750 + done + + # Install EFI Firmware files (bug #320757) + for each in VBoxEFI{32,64}.fd ; do + vbox_inst ${each} 0644 + done + + # VBoxSVC and VBoxManage need to be pax-marked (bug #403453) + # VBoxXPCOMIPCD (bug #524202) + for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + # Symlink binaries to the shipped wrapper + for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \ + VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount + dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img + + if use pam; then + # VRDPAuth only works with this (bug #351949) + dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so + fi + + # set an env-variable for 3rd party tools + echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox" + # environment variables used during SDK binding installation + echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox" + echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox" + doenvd "${T}/90virtualbox" + + if use sdl; then + vbox_inst VBoxSDL 4750 + pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL + + for each in vboxsdl VBoxSDL ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + fi + + if use gui; then + vbox_inst VirtualBox + vbox_inst VirtualBoxVM 4750 + for each in VirtualBox{,VM} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + for each in virtualbox{,vm} VirtualBox{,VM} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + + insinto /usr/share/${PN} + doins -r nls + doins -r UnattendedTemplates + + domenu ${PN}.desktop + + pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die + for size in 16 32 48 64 128 ; do + newicon -s ${size} ${PN}-${size}px.png ${PN}.png + done + newicon ${PN}-48px.png ${PN}.png + doicon -s scalable ${PN}.svg + popd &>/dev/null || die + pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die + for size in 16 24 32 48 64 72 96 128 256 512 ; do + for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do + icofile="${PN}-${ico}-${size}px.png" + if [[ -f "${icofile}" ]]; then + newicon -s ${size} ${icofile} ${PN}-${ico}.png + fi + done + done + popd &>/dev/null || die + fi + + if use lvm; then + vbox_inst VBoxVolInfo 4750 + dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo + fi + + if use sdk; then + insinto ${vbox_inst_path} + doins -r sdk + + if use java; then + java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar" + java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so" + fi + fi + + if use udev; then + local udevdir="$(get_udevdir)" + local udev_file="VBoxCreateUSBNode.sh" + local rules_file="10-virtualbox.rules" + + insinto ${udevdir} + doins ${udev_file} + fowners root:vboxusers ${udevdir}/${udev_file} + fperms 0750 ${udevdir}/${udev_file} + + insinto ${udevdir}/rules.d + sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \ + > "${T}"/${rules_file} || die + doins "${T}"/${rules_file} + fi + + if use vboxwebsrv; then + vbox_inst vboxwebsrv + dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv + newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv + newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv + fi + + # Remove dead symlinks (bug #715338) + find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die + + # Fix version string in extensions or else they don't get accepted + # by the virtualbox host process (see bug #438930) + find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die + + local extensions_dir="${vbox_inst_path}/ExtensionPacks" + + if use vnc; then + insinto ${extensions_dir} + doins -r ExtensionPacks/VNC + fi + + if use dtrace; then + insinto ${extensions_dir} + doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack + fi + + if use doc; then + dodoc UserManual.pdf UserManual.q{ch,hc} + docompress -x /usr/share/doc/${PF} + elif use gui; then + dodoc "${WORKDIR}"/${PN}-help-${HELP_PV}/UserManual.q{ch,hc} + docompress -x /usr/share/doc/${PF} + fi + + if use python; then + local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so" + if [[ ! -x "${python_path_ext}" ]]; then + eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python" + eerror "but none were installed. This may happen if support for a Python target" + eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles." + die "Incomplete installation of Python bindings! File a bug with Gentoo!" + fi + + # 378871 + local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer/python/vboxapi/src" + pushd "${installer_dir}" &> /dev/null || die + sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \ + -e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \ + -i vboxapi/__init__.py || die + # insert shebang, the files come without one + find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die + python_domodule vboxapi + popd &> /dev/null || die + + # upstream added a /bin/sh stub here + # use /usr/bin/python3, python_doscript will take care of it + sed -e '1 i #! /usr/bin/python3' -i vboxshell.py + python_doscript vboxshell.py + + # do not install the installer + rm -r "${installer_dir%vboxapi*}" || die + fi + + newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf +} + +pkg_postinst() { + xdg_pkg_postinst + + if use udev; then + udev_reload + udevadm trigger --subsystem-match=usb + fi + + tmpfiles_process virtualbox-vboxusb.conf + + if use gui; then + elog "To launch VirtualBox just type: \"virtualbox\"." + fi + + elog "You must be in the vboxusers group to use VirtualBox." + elog "" + elog "The latest user manual is available for download at:" + elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf" + elog "" + + optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities + optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle + optfeature "Guest additions ISO" app-emulation/virtualbox-additions + + if ! use udev; then + ewarn "Without USE=udev, USB devices will likely not work in ${PN}." + fi +} + +pkg_postrm() { + xdg_pkg_postrm + + use udev && udev_reload +} diff --git a/app-emulation/virtualbox/virtualbox-7.1.4.ebuild b/app-emulation/virtualbox/virtualbox-7.1.4.ebuild new file mode 100644 index 00000000..ffc8bb4a --- /dev/null +++ b/app-emulation/virtualbox/virtualbox-7.1.4.ebuild @@ -0,0 +1,776 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# To add a new Python here: +# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic) +# Do NOT skip this part. It'll end up silently not-building the Python extension +# or otherwise misbehaving if you do. +# +# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python. +# +# May need to look at other distros (e.g. Arch Linux) to find patches for newer +# Python versions as upstream tends to lag. Upstream may have patches on their +# trunk branch but not release branch. +# +# See bug #785835, bug #856121. +PYTHON_COMPAT=( python3_{10..12} ) + +inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \ + python-single-r1 tmpfiles toolchain-funcs udev xdg + +MY_PN="VirtualBox" +MY_P=${MY_PN}-${PV} +HELP_PV=${PV} + +DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI=" + https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2 + https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.1.0.tar.bz2 + gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${HELP_PV}.tar.xz ) ) +" +S="${WORKDIR}/${MY_PN}-${PV}" + +LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" +IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl test +udev vboxwebsrv vde +vmmraw vnc" +RESTRICT="!test? ( test )" + +unset WATCOM #856769 + +COMMON_DEPEND=" + acct-group/vboxusers + app-arch/xz-utils + ~app-emulation/virtualbox-modules-${PV} + dev-libs/libtpms + dev-libs/libxml2 + dev-libs/openssl:0= + media-libs/libpng:0= + media-libs/libvpx:0= + net-misc/curl + sys-libs/zlib + dbus? ( sys-apps/dbus ) + gui? ( + dev-qt/qtbase:6[widgets] + dev-qt/qtscxml:6 + dev-qt/qttools:6[assistant] + x11-libs/libX11 + x11-libs/libXt + ) + lvm? ( sys-fs/lvm2 ) + opengl? ( + media-libs/libglvnd[X] + media-libs/vulkan-loader + x11-libs/libX11 + x11-libs/libXt + ) + pam? ( sys-libs/pam ) + python? ( ${PYTHON_DEPS} ) + sdl? ( + media-libs/libsdl2[X,video] + x11-libs/libX11 + x11-libs/libXt + ) + vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] ) + vde? ( net-misc/vde ) + vnc? ( >=net-libs/libvncserver-0.9.9 ) +" +# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport +# with USE="vboxwebsrv java". Note that we have to put things in DEPEND, +# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables +# based on *DEPEND doesn't work for BDEPEND at least right now. +# +# There's a comment in Config.kmk about it +# ("With Java 11 wsimport was removed, usually part of a separate install now.") +# but it needs more investigation. +# +# See bug #878299 to track this issue. +DEPEND=" + ${COMMON_DEPEND} + >=dev-libs/libxslt-1.1.19 + virtual/libcrypt:= + x11-libs/libXt + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + gui? ( + x11-base/xorg-proto + x11-libs/libxcb:= + x11-libs/libXcursor + x11-libs/libXext + x11-libs/libXinerama + x11-libs/libXmu + x11-libs/libXrandr + ) + java? ( virtual/jdk:1.8 ) + opengl? ( + x11-base/xorg-proto + x11-libs/libXcursor + x11-libs/libXinerama + x11-libs/libXmu + x11-libs/libXrandr + virtual/glu + ) + sdl? ( + x11-libs/libXcursor + x11-libs/libXinerama + ) + pulseaudio? ( media-libs/libpulse ) + udev? ( >=virtual/udev-171 ) +" +RDEPEND=" + ${COMMON_DEPEND} + gui? ( x11-libs/libxcb:= ) + java? ( virtual/jre:1.8 ) +" +BDEPEND=" + >=app-arch/tar-1.34-r2 + >=dev-lang/yasm-0.6.2 + dev-libs/libIDL + dev-util/glslang + >=dev-build/kbuild-0.1.9998.3592 + sys-apps/which + sys-devel/bin86 + sys-libs/libcap + sys-power/iasl + virtual/pkgconfig + doc? ( + app-doc/dita-ot-bin + app-text/docbook-sgml-dtd:4.4 + app-text/docbook-xsl-ns-stylesheets + dev-texlive/texlive-basic + dev-texlive/texlive-latex + dev-texlive/texlive-latexrecommended + dev-texlive/texlive-latexextra + dev-texlive/texlive-fontsrecommended + dev-texlive/texlive-fontsextra + dev-qt/qttools:6[assistant] + sys-libs/nss_wrapper + ) + gui? ( dev-qt/qttools:6[linguist] ) + nls? ( dev-qt/qttools:6[linguist] ) + java? ( virtual/jdk:1.8 ) + python? ( + ${PYTHON_DEPS} + test? ( + $(python_gen_cond_dep ' + dev-python/pytest[${PYTHON_USEDEP}] + ') + ) + ) +" + +QA_FLAGS_IGNORED=" + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_TEXTRELS=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +QA_EXECSTACK=" + usr/lib64/virtualbox/iPxeBaseBin + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_WX_LOAD=" + usr/lib64/virtualbox/iPxeBaseBin +" + +QA_PRESTRIPPED=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +REQUIRED_USE=" + java? ( sdk ) + python? ( sdk ${PYTHON_REQUIRED_USE} ) + vboxwebsrv? ( java ) +" + +PATCHES=( + # Downloaded patchset + "${WORKDIR}"/virtualbox-patches-7.1.0/patches +) + +pkg_pretend() { + if ! use gui; then + einfo "No USE=\"gui\" selected, this build will not include any Qt frontend." + fi + + if ! use opengl; then + einfo "No USE=\"opengl\" selected, this build will lack" + einfo "the OpenGL feature." + fi + if ! use nls && use gui; then + einfo "USE=\"gui\" also selects USE=\"nls\". This build" + einfo "will have NLS support." + fi + + # 749273 + local d=${ROOT} + for i in usr "$(get_libdir)"; do + d="${d}/$i" + if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then + die "${d} should be owned by root, VirtualBox will not start otherwise" + fi + done +} + +pkg_setup() { + java-pkg-opt-2_pkg_setup + use python && python-single-r1_pkg_setup +} + +src_prepare() { + default + + if use python; then + mkdir test + cp "${FILESDIR}"/test_python.py test/ + python_fix_shebang test/test_python.py + fi + + # Only add nopie patch when we're on hardened + if gcc-specs-pie; then + eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch + fi + + # Remove shipped binaries (kBuild, yasm) and tools, see bug #232775 + rm -r kBuild/bin || die + # Remove everything in tools except kBuildUnits + find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die + + # Disable things unused or split into separate ebuilds + sed -e "s@MY_LIBDIR@$(get_libdir)@" \ + "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die + + if ! use pch; then + # bug #753323 + printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \ + >> LocalConfig.kmk || die + fi + + # bug #916002, #488176, #925347 + tc-ld-is-mold || tc-ld-force-bfd + + # Respect LDFLAGS + sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \ + -i Config.kmk src/libs/xpcom18a4/Config.kmk || die + + # Do not use hard-coded ld (related to bug #488176) + sed -e '/QUIET)ld /s@ld @$(LD) @' \ + -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die + + # Use PAM only when pam USE flag is enbaled (bug #376531) + if ! use pam; then + einfo "Disabling PAM removes the possibility to use the VRDP features." + sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die + sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \ + src/VBox/HostServices/Makefile.kmk || die + echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die + fi + + # add correct java path + if use java; then + sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \ + -i "${S}"/Config.kmk || die + java-pkg-opt-2_src_prepare + fi + + # bug #940482 + filter-flags -fno-plt + + # bug #908814 + filter-lto + + # bug #843437 + cat >> LocalConfig.kmk <<-EOF || die + CXXFLAGS=${CXXFLAGS} + CFLAGS=${CFLAGS} + EOF + + if use sdl; then + sed -i 's/sdl-config/sdl2-config/' configure || die + echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die + fi + + #443830 + echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die + + if tc-is-clang; then + # clang does not support this extension + eapply "${FILESDIR}"/${PN}-7.1.0-disable-rebuild-iPxeBiosBin.patch + fi + + # fix doc generation + echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die + # replace xhtml names with numeric equivalents + find doc/manual -name \*.xml -exec sed -i \ + -e 's/ /\ /g' \ + -e 's/–/\–/g' \ + -e 's/←/\←/g' \ + -e 's/→/\→/g' \ + -e 's/↔/\↔/g' {} \+ || die + + # fix help path #891879 + echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die + + # 489208 + # Cannot patch the whole text, many translations. Use sed instead to replace the command + find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \ + 's/'[^&]*\(vboxdrv setup\|vboxconfig\)'/\'emerge -1 virtualbox-modules\'/' {} \+ || die + sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \ + src/VBox/Frontends/VirtualBox/src/main.cpp \ + src/VBox/VMM/VMMR3/VM.cpp || die + + # 890561 + echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die + + if ! use nls && ! use gui; then + cat >> LocalConfig.kmk <<-EOF || die + VBOX_WITH_NLS := + VBOX_WITH_MAIN_NLS := + VBOX_WITH_PUEL_NLS := + VBOX_WITH_VBOXMANAGE_NLS := + EOF + fi +} + +src_configure() { + tc-export AR CC CXX LD RANLIB + export HOST_CC="$(tc-getBUILD_CC)" + + local myconf=( + --with-gcc="$(tc-getCC)" + --with-g++="$(tc-getCXX)" + + --disable-kmods + + $(usev !alsa --disable-alsa) + $(usev !dbus --disable-dbus) + $(usev debug --build-debug) + $(usev !doc --disable-docs) + $(usev !java --disable-java) + $(usev !lvm --disable-devmapper) + $(usev !pulseaudio --disable-pulse) + $(usev !python --disable-python) + $(usev vboxwebsrv --enable-webservice) + $(usev vde --enable-vde) + $(usev !vmmraw --disable-vmmraw) + $(usev vnc --enable-vnc) + ) + + if use gui || use sdl || use opengl; then + myconf+=( + $(usev !opengl --disable-opengl) + $(usev !gui --disable-qt) + $(usev !sdl --disable-sdl) + ) + else + myconf+=( + --build-headless + ) + fi + + if use amd64 && ! has_multilib_profile; then + myconf+=( --disable-vmmraw ) + fi + + # not an autoconf script + edo ./configure "${myconf[@]}" + + # Force usage of chosen Python implementation + # bug #856121, bug #785835 + sed -i \ + -e '/VBOX_WITH_PYTHON.*=/d' \ + -e '/VBOX_PATH_PYTHON_INC.*=/d' \ + -e '/VBOX_LIB_PYTHON.*=/d' \ + AutoConfig.kmk || die + + if use python; then + cat >> AutoConfig.kmk <<-EOF || die + VBOX_WITH_PYTHON=$(usev python 1) + VBOX_PATH_PYTHON_INC=$(python_get_includedir) + VBOX_LIB_PYTHON=$(python_get_library_path) + EOF + + local mangled_python="${EPYTHON#python}" + mangled_python="${mangled_python/.}" + + # Stub out the script which defines what the Makefile ends up + # building for. gen_python_deps.py gets called by the Makefile + # with some args and it spits out a bunch of paths for a hardcoded + # list of Pythons. We just override it with what we're actually using. + # This minimises the amount of patching we have to do for new Pythons. + cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die + print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)") + print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)") + print("VBOX_PYTHONDEF_INC=$(python_get_includedir)") + print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)") + EOF + + chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die + else + cat >> AutoConfig.kmk <<-EOF || die + VBOX_WITH_PYTHON:= + EOF + fi +} + +src_compile() { + source ./env.sh || die + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" + + local myemakeargs=( + VBOX_BUILD_PUBLISHER=_Gentoo + VBOX_WITH_VBOXIMGMOUNT=1 + + KBUILD_VERBOSE=2 + + AS="$(tc-getCC)" + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + + TOOL_GCC3_CC="$(tc-getCC)" + TOOL_GCC3_LD="$(tc-getCC)" + TOOL_GCC3_AS="$(tc-getCC)" + TOOL_GCC3_AR="$(tc-getAR)" + TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX3_CC="$(tc-getCC)" + TOOL_GXX3_CXX="$(tc-getCXX)" + TOOL_GXX3_LD="$(tc-getCXX)" + TOOL_GXX3_AS="$(tc-getCXX)" + TOOL_GXX3_AR="$(tc-getAR)" + TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GCC3_CFLAGS="${CFLAGS}" + TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" + VBOX_GCC_OPT="${CXXFLAGS}" + VBOX_NM="$(tc-getNM)" + + TOOL_YASM_AS=yasm + ) + + if use amd64 && has_multilib_profile; then + myemakeargs+=( + CC32="$(tc-getCC) -m32" + CXX32="$(tc-getCXX) -m32" + + TOOL_GCC32_CC="$(tc-getCC) -m32" + TOOL_GCC32_CXX="$(tc-getCXX) -m32" + TOOL_GCC32_LD="$(tc-getCC) -m32" + TOOL_GCC32_AS="$(tc-getCC) -m32" + TOOL_GCC32_AR="$(tc-getAR)" + TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX32_CC="$(tc-getCC) -m32" + TOOL_GXX32_CXX="$(tc-getCXX) -m32" + TOOL_GXX32_LD="$(tc-getCXX) -m32" + TOOL_GXX32_AS="$(tc-getCXX) -m32" + TOOL_GXX32_AR="$(tc-getAR)" + TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)" + ) + fi + + if use doc; then + # dita needs to write to ~/.fop and ~/.java + # but it ignores ${HOME} and tries to write to the real home of user portage + # resulting in a sandbox violation + # -Duser.home= does not work + # force using the temporary homedir with nss_wrapper + echo "${LOGNAME}::$(id -u):$(id -g):${USER}:${HOME}:/bin/bash" >> ~/passwd + echo "${LOGNAME}::$(id -g):" >> ~/group + + local -x LD_PRELOAD=libnss_wrapper.so + local -x NSS_WRAPPER_PASSWD="${HOME}"/passwd + local -x NSS_WRAPPER_GROUP="${HOME}"/group + fi + + MAKE="kmk" emake "${myemakeargs[@]}" all +} + +src_test() { + if use python; then + local -x VBOX_APP_HOME="${S}"/out/linux.${ARCH}/$(usex debug debug release) + local -x VBOX_INSTALL_PATH="${VBOX_APP_HOME}" + local -x VBOX_PROGRAM_PATH="${VBOX_APP_HOME}"/bin + local -x VBOX_SDK_PATH="${VBOX_PROGRAM_PATH}"/sdk + local -x PYTHONPATH="${VBOX_SDK_PATH}"/installer/python/vboxapi/src + einfo "VBOX_APP_HOME ${VBOX_APP_HOME}" + einfo "VBOX_PROGRAM_PATH ${VBOX_PROGRAM_PATH}" + einfo "VBOX_SDK_PATH ${VBOX_SDK_PATH}" + einfo "PYTHONPATH ${PYTHONPATH}" + LD_LIBRARY_PATH="${VBOX_PROGRAM_PATH}" epytest test/ + fi +} + +src_install() { + cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die + + local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile + + vbox_inst() { + local binary="${1}" + local perms="${2:-0750}" + local path="${3:-${vbox_inst_path}}" + + [[ -n "${binary}" ]] || die "vbox_inst: No binary given!" + [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits." + + insinto ${path} + doins ${binary} + fowners root:vboxusers ${path}/${binary} + fperms ${perms} ${path}/${binary} + } + + # Create configuration files + insinto /etc/vbox + newins "${FILESDIR}/${PN}-4-config" vbox.cfg + + # Set the correct libdir + sed \ + -e "s@MY_LIBDIR@$(get_libdir)@" \ + -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed" + + # Install the wrapper script + exeinto ${vbox_inst_path} + newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox" + fowners root:vboxusers ${vbox_inst_path}/VBox + fperms 0750 ${vbox_inst_path}/VBox + + # Install binaries and libraries + insinto ${vbox_inst_path} + doins -r components + + for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload} \ + vboximg-mount vbox-img *so *r0; do + vbox_inst ${each} + done + + # These binaries need to be suid root. + for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do + vbox_inst ${each} 4750 + done + + # Install EFI Firmware files (bug #320757) + for each in VBoxEFI{32,64}.fd ; do + vbox_inst ${each} 0644 + done + + # VBoxSVC and VBoxManage need to be pax-marked (bug #403453) + # VBoxXPCOMIPCD (bug #524202) + for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + # Symlink binaries to the shipped wrapper + for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \ + VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount + dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img + + if use pam; then + # VRDPAuth only works with this (bug #351949) + dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so + fi + + # set an env-variable for 3rd party tools + echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox" + # environment variables used during SDK binding installation + echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox" + echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox" + doenvd "${T}/90virtualbox" + + if use sdl; then + vbox_inst VBoxSDL 4750 + pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL + + for each in vboxsdl VBoxSDL ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + fi + + if use gui; then + vbox_inst VirtualBox + vbox_inst VirtualBoxVM 4750 + for each in VirtualBox{,VM} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + for each in virtualbox{,vm} VirtualBox{,VM} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + + insinto /usr/share/${PN} + doins -r nls + doins -r UnattendedTemplates + + domenu ${PN}.desktop + + pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die + for size in 16 32 48 64 128 ; do + newicon -s ${size} ${PN}-${size}px.png ${PN}.png + done + newicon ${PN}-48px.png ${PN}.png + doicon -s scalable ${PN}.svg + popd &>/dev/null || die + pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die + for size in 16 24 32 48 64 72 96 128 256 512 ; do + for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do + icofile="${PN}-${ico}-${size}px.png" + if [[ -f "${icofile}" ]]; then + newicon -s ${size} ${icofile} ${PN}-${ico}.png + fi + done + done + popd &>/dev/null || die + fi + + if use lvm; then + vbox_inst VBoxVolInfo 4750 + dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo + fi + + if use sdk; then + insinto ${vbox_inst_path} + doins -r sdk + + if use java; then + java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar" + java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so" + fi + fi + + if use udev; then + local udevdir="$(get_udevdir)" + local udev_file="VBoxCreateUSBNode.sh" + local rules_file="10-virtualbox.rules" + + insinto ${udevdir} + doins ${udev_file} + fowners root:vboxusers ${udevdir}/${udev_file} + fperms 0750 ${udevdir}/${udev_file} + + insinto ${udevdir}/rules.d + sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \ + > "${T}"/${rules_file} || die + doins "${T}"/${rules_file} + fi + + if use vboxwebsrv; then + vbox_inst vboxwebsrv + dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv + newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv + newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv + fi + + # Remove dead symlinks (bug #715338) + find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die + + # Fix version string in extensions or else they don't get accepted + # by the virtualbox host process (see bug #438930) + find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die + + local extensions_dir="${vbox_inst_path}/ExtensionPacks" + + if use vnc; then + insinto ${extensions_dir} + doins -r ExtensionPacks/VNC + fi + + if use dtrace; then + insinto ${extensions_dir} + doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack + fi + + if use doc; then + dodoc UserManual.pdf UserManual.q{ch,hc} + docompress -x /usr/share/doc/${PF} + elif use gui; then + dodoc "${WORKDIR}"/${PN}-help-${HELP_PV}/UserManual.q{ch,hc} + docompress -x /usr/share/doc/${PF} + fi + + if use python; then + local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so" + if [[ ! -x "${python_path_ext}" ]]; then + eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python" + eerror "but none were installed. This may happen if support for a Python target" + eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles." + die "Incomplete installation of Python bindings! File a bug with Gentoo!" + fi + + # 378871 + local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer/python/vboxapi/src" + pushd "${installer_dir}" &> /dev/null || die + sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \ + -e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \ + -i vboxapi/__init__.py || die + # insert shebang, the files come without one + find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die + python_domodule vboxapi + popd &> /dev/null || die + + # upstream added a /bin/sh stub here + # use /usr/bin/python3, python_doscript will take care of it + sed -e '1 i #! /usr/bin/python3' -i vboxshell.py + python_doscript vboxshell.py + + # do not install the installer + rm -r "${installer_dir%vboxapi*}" || die + fi + + newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf +} + +pkg_postinst() { + xdg_pkg_postinst + + if use udev; then + udev_reload + udevadm trigger --subsystem-match=usb + fi + + tmpfiles_process virtualbox-vboxusb.conf + + if use gui; then + elog "To launch VirtualBox just type: \"virtualbox\"." + fi + + elog "You must be in the vboxusers group to use VirtualBox." + elog "" + elog "The latest user manual is available for download at:" + elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf" + elog "" + + optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities + optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle + optfeature "Guest additions ISO" app-emulation/virtualbox-additions + + if ! use udev; then + ewarn "Without USE=udev, USB devices will likely not work in ${PN}." + fi +} + +pkg_postrm() { + xdg_pkg_postrm + + use udev && udev_reload +} diff --git a/dev-libs/stfl/Manifest b/dev-libs/stfl/Manifest index ed01ce35..932d47a9 100644 --- a/dev-libs/stfl/Manifest +++ b/dev-libs/stfl/Manifest @@ -2,6 +2,8 @@ AUX stfl-0.21-python.patch 1936 BLAKE2B fc0a8f02eaa30b900652304e34f383a6587769f4 AUX stfl-0.22-pc-libdir.patch 866 BLAKE2B bdbc18572fd5104ee04af672b9d493bb3271a8af7b383f5fb9042e8c44dbeaa760ed9c2c8f71192b891eeabae487ee096451ccdb8ae82a936e85331145c9bef6 SHA512 9ec288c174bb30060085c94f6703edb698f2e3806d872153cc58873ea838a84f9edbc07c6e5f8de4a6fd18f77ff1c1e4b1599ad598f3d0a4bba5b2c5bac73ad3 AUX stfl-0.22-ruby-sharedlib.patch 735 BLAKE2B 6b2b9e835f57f62ff1e1ff871103bc0b1106329916fc1be75eb22e550c9ff8abd007bbc201c66e15ce16a4697c0bbe0850b56ff41f666dd7006028432b1f77e5 SHA512 73a1b7aa7147100ab2f06264303c0a30463deb8bd0ce9e4111737393d07c4fb06174c5022c1dae8c7fd2688d1b544a4ab8c8ee5495f46e2bbc33ce89a7e46de7 AUX stfl-0.22-soname-symlink.patch 444 BLAKE2B 9aa44343a18a8d7fb2f75a60ae94c30ef92b6f02190cefbefedacd9f8d5c877ac71b83c41b008bfd46a4d5ffe04f91f03f898e27ef098162d0b43f274ccff298 SHA512 e85c6f96edd8cd08d3408f976fff5f9fbcdc9892109233e78d932eb07502b00d3a0b52393542de8af5b2d26808b3574736f78b7ef9c7bdd0abffa3901fc55dab +AUX stfl-0.24-ncurses-widechar.patch 828 BLAKE2B 5916f745b819fad0c6dedb882acfca4395eab60de656ec138988c756cddbe1109088279aef1a5b55e33931735426958a0f654a9ef3f567845960a8e17198a635 SHA512 897e32ad0d67e424ee66c1d572611f3707c665a6830b7c4560378bcb4ec4a9d2fc65eab7b2a827785bd724bf45f1eea9f20824e02ddb36e611c42b036d19c2aa DIST stfl-0.24.tar.gz 45585 BLAKE2B a601f373f19baa3a11fb823852ada19ab824828935240280c74ff442a1e5c4abdf0abe56e445869e43785df3940a8c7269bc16457436abbe5e2853f907071059 SHA512 95df4574b1bc32d795751156dc5b93afbca3ba241607a3a55210c89dda61b9a26ad574bb5f729a0158c9052235dbf63d6c58b38e7f1061d14ab7062af6150fa0 EBUILD stfl-0.24-r4.ebuild 3145 BLAKE2B d20c8e4bd67ee8f9f20d9e470eb02b03e6c52e5a007c722402a5fe8604835bbebd92d66a95d33f874c2a2b5cab82027282391fa9494336b43ba2d11d9e2fbf3e SHA512 7a342581482d8b0c14f6266d7ea66e1f0c5c7f26547445966354809c4de569f1f7c9f263e61b4c243f1f697744be787c4b24f6e74f2bb06720891ccbb2ef51f9 +EBUILD stfl-0.24-r5.ebuild 3256 BLAKE2B c17fe27fc8baff9f83b8f841f41c86c00a91effd3edcc7b9560df2a0716bd5dc8f8f163e5eeaf8655b7596f6598a41976b5800ce757653d628f3261dda7ee804 SHA512 e9ef5ef9b2acc66eb5c077a6d928807d6504742d7166a2187e6b72931ed24b12dd306b2f6dc2cfe8ffa960028c3254f55ce91ffa074765e5e7373fcfb31dd574 MISC metadata.xml 884 BLAKE2B d1ee81a475935527af118da278c54f34a773dff1165c39ea2013135b767dbfe96972623d83833501d0531df78547c5d6040990039674832e9f5f701f915d3924 SHA512 55dc2b480ea7b0929be1e74d60d06ddc33ce977885969fdda332a6cb390c219cc13c017c0a56ed3594c475dcb9586b2d433c65fa200675de421e1aa4b22c7ce5 diff --git a/dev-libs/stfl/files/stfl-0.24-ncurses-widechar.patch b/dev-libs/stfl/files/stfl-0.24-ncurses-widechar.patch new file mode 100644 index 00000000..c1690ce6 --- /dev/null +++ b/dev-libs/stfl/files/stfl-0.24-ncurses-widechar.patch @@ -0,0 +1,26 @@ +ncurses widechar functions are only available if the correct macros are +defined. Use CFLAGS and LDFLAGS from pkgconfig to ensure that widechar +functions are available. + +From 9b71952bfb29e036b13c16d621febff76e84e3e4 Mon Sep 17 00:00:00 2001 +From: Violet Purcell +Date: Tue, 11 Jul 2023 15:45:05 -0400 +Subject: [PATCH] Use pkg-config for correct ncursesw CFLAGS and LDFLAGS + +--- a/Makefile ++++ b/Makefile +@@ -21,8 +21,9 @@ + include Makefile.cfg + + export CC = gcc -pthread +-export CFLAGS += -I. -Wall -Os -ggdb -D_GNU_SOURCE -fPIC +-export LDLIBS += -lncursesw ++export PKG_CONFIG ?= pkg-config ++export CFLAGS += -I. -Wall -Os -ggdb -D_GNU_SOURCE -fPIC $(shell ${PKG_CONFIG} --cflags ncursesw) ++export LDLIBS += $(shell ${PKG_CONFIG} --libs ncursesw) + + SONAME := libstfl.so.0 + VERSION := 0.24 +-- +2.41.0 + diff --git a/dev-libs/stfl/stfl-0.24-r5.ebuild b/dev-libs/stfl/stfl-0.24-r5.ebuild new file mode 100644 index 00000000..9e6fec0f --- /dev/null +++ b/dev-libs/stfl/stfl-0.24-r5.ebuild @@ -0,0 +1,129 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{10..12} ) +GENTOO_DEPEND_ON_PERL=no +inherit perl-module python-r1 toolchain-funcs + +DESCRIPTION="A library which implements a curses-based widget set for text terminals" +HOMEPAGE="http://www.clifford.at/stfl/" +SRC_URI="http://www.clifford.at/${PN}/${P}.tar.gz" + +LICENSE="LGPL-3" +SLOT="0" +KEYWORDS="amd64 ~arm ~arm64 ppc ~ppc64 x86" +IUSE="examples perl python ruby static-libs" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +RDEPEND=" + sys-libs/ncurses:=[unicode(+)] + perl? ( dev-lang/perl:= ) + ruby? ( dev-lang/ruby:* ) + python? ( ${PYTHON_DEPS} ) +" +DEPEND="${RDEPEND} + perl? ( dev-lang/swig ) + python? ( >=dev-lang/swig-1.3.40 ) + ruby? ( dev-lang/swig ) +" +BDEPEND="virtual/pkgconfig" +RESTRICT="test" # Upstream does not provide tests #730112 + +PATCHES=( + "${FILESDIR}/${PN}-0.21-python.patch" + "${FILESDIR}/${PN}-0.22-soname-symlink.patch" + "${FILESDIR}/${PN}-0.22-ruby-sharedlib.patch" + "${FILESDIR}/${PN}-0.22-pc-libdir.patch" + "${FILESDIR}/${PN}-0.24-ncurses-widechar.patch" +) + +src_prepare() { + default_src_prepare + + sed -i \ + -e 's/-Os -ggdb//' \ + -e 's/^\(all:.*\) example/\1/' \ + -e 's/$(CC) -shared/$(CC) $(LDFLAGS) -shared/' \ + -e 's/ -o $@ $(LDLIBS) $^/ $^ $(LDLIBS) -o $@/' \ + -e 's/-lncursesw/-lncursesw -pthread/' \ + -e 's/\/$(AR)/' \ + -e 's/\/$(RANLIB)/' \ + Makefile || die "sed failed" + + if ! use static-libs ; then + sed -i -e "/install .* libstfl.a/d" Makefile || die + fi + + if use perl ; then + echo "FOUND_PERL5=1" >> Makefile.cfg + else + echo "FOUND_PERL5=0" >> Makefile.cfg + fi + + if use ruby ; then + echo "FOUND_RUBY=1" >> Makefile.cfg + else + echo "FOUND_RUBY=0" >> Makefile.cfg + fi + + echo "FOUND_PYTHON=0" >> Makefile.cfg +} + +src_configure() { :; } + +src_compile() { + emake CC="$(tc-getCC)" AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" PKG_CONFIG="$(tc-getPKG_CONFIG)" + + if use python ; then + local BUILD_DIR="${S}/python" + python_copy_sources + + # Based on code from python/Makefile.snippet. + building() { + pushd "${BUILD_DIR}" &>/dev/null || die + echo swig -python -threads stfl.i + swig -python -threads stfl.i || die + echo "$(tc-getCC)" ${CFLAGS} ${LDFLAGS} -shared -pthread -fPIC stfl_wrap.c -I$(python_get_includedir) -I.. ../libstfl.so.${PV} -lncursesw -o _stfl.so + "$(tc-getCC)" ${CFLAGS} ${LDFLAGS} -shared -pthread -fPIC stfl_wrap.c -I$(python_get_includedir) -I.. ../libstfl.so.${PV} -lncursesw -o _stfl.so || die + popd &>/dev/null || die + } + python_foreach_impl building + fi +} + +src_install() { + emake prefix="/usr" DESTDIR="${D}" libdir="$(get_libdir)" install + + if use python ; then + local BUILD_DIR="${S}/python" + + installation() { + pushd "${BUILD_DIR}" &>/dev/null || die + python_domodule stfl.py _stfl.so + popd &>/dev/null || die + } + python_foreach_impl installation + fi + + dodoc README + + local exdir="/usr/share/doc/${PF}/examples" + if use examples ; then + insinto ${exdir} + doins example.{c,stfl} + insinto ${exdir}/python + doins python/example.py + if use perl ; then + insinto ${exdir}/perl + doins perl5/example.pl + fi + if use ruby ; then + insinto ${exdir}/ruby + doins ruby/example.rb + fi + fi + + perl_delete_localpod +} diff --git a/net-fs/ncpfs-modules/Manifest b/net-fs/ncpfs-modules/Manifest index 1ee866ef..bf4f1917 100644 --- a/net-fs/ncpfs-modules/Manifest +++ b/net-fs/ncpfs-modules/Manifest @@ -1 +1 @@ -EBUILD ncpfs-modules-9999.ebuild 1364 BLAKE2B 4ff364e67dc7dff8908821d69daeb9fdcc3bf48642c4139bfd93ab3ac293b4127183b66cad60c309a7dcf1b11dd793f26b0b12d1d393f1654db413c0f5c3a14e SHA512 d8daa2d27f827aa405b8c2606a3d390383e9193493f5815fd22507764aed197ab9a4b89b22ce114ac56bac008f44b7beaa0aee43a7e4cd900bc0f075c401c6b5 +EBUILD ncpfs-modules-9999.ebuild 1427 BLAKE2B 614ba81a917c469b94957f1a028cfe2a5c8b549d961ff1cf2ec9713002ad23b4f4b6f3e7366d8b08834a8285e7fc3b6d967a3cab2895752887f6daa1aebb9b4d SHA512 8cc6211423b9629cf364ace5e38325727fe60eb1a39d71d6dc08c5fbf0d45e370ce9eb6ddab1229bf2f070a353d363fd17840f96661bd8e01bc28878c675db5a diff --git a/net-fs/ncpfs-modules/ncpfs-modules-9999.ebuild b/net-fs/ncpfs-modules/ncpfs-modules-9999.ebuild index e167b236..2c9b42e9 100644 --- a/net-fs/ncpfs-modules/ncpfs-modules-9999.ebuild +++ b/net-fs/ncpfs-modules/ncpfs-modules-9999.ebuild @@ -50,6 +50,9 @@ src_unpack() { if kernel_is gt 6 6 0; then EGIT_BRANCH="kernel_6.6" fi + if kernel_is gt 6 8 0; then + EGIT_BRANCH="kernel_6.8" + fi if kernel_is gt 6 8 0; then EGIT_BRANCH="master" fi diff --git a/net-fs/ncpfs/Manifest b/net-fs/ncpfs/Manifest index 1433af82..3c305003 100644 --- a/net-fs/ncpfs/Manifest +++ b/net-fs/ncpfs/Manifest @@ -4,6 +4,7 @@ AUX ncpfs-2.2.5-php.patch 559 BLAKE2B eb696360cf1ed7610c8349f3ed7796a81f3ce5f464 AUX ncpfs-2.2.6-align-fix.patch 421 BLAKE2B 6c701b37f0ed63014cbd0553189610c8bac9863721a764e6459bc405fe1a175bf4e388e3198d3b5511a2e08eb11691e6a7794af5971ed209ef5c1a6ef4aff468 SHA512 cf76a9866926048a0792e315c1296cb144432f8d576d9e7d68004f5eb7e10a19ff097ea4d450d2f36da05d97650f1a3411cb6a45bd88b44f6050d5b6df254528 AUX ncpfs-2.2.6-drop-kernel-check.patch 728 BLAKE2B 562d33007d23f8b2792b7d3e4f77187fab364f1107c723cbf6ae8ab8698b83f4a06d18cdeb0642afff3caa5c6ff1d0c03d40c28898fa9ffcd1498736127d0219 SHA512 6433bd1df6e9d830b0e23882dd4d00afddbd9780d994de0ca480155d817e077b88ae7f46538855631e14a62cc52ec8c1fc5c230b1b64687ada5f2cccb61e392a AUX ncpfs-2.2.6-drop-mtab-support.patch 7196 BLAKE2B 2f932599c5dea7c071c6d29f00dd2a88bc0e961ad435b3dc3a59153e8e2643f94ccedeced389a3f73648dfe1b527c3299866a51e1ed9727941bb93a0f88a2add SHA512 a7498d8927c251f882f5d63c2250a8ef2ec72191531bd95bdd1c65aad1f8600602dd2ae54fc0ed6ca95c431fe330168abe972d3d3acad8e71733dde1452eed0b +AUX ncpfs-2.2.6-fix-build-with-gcc14.patch 752 BLAKE2B b6c6e762ca027caa26834eab9e43329a2c5d4c41bbfe610472575e4205a05f3a36808037123187ab7a7e7e09250a110b4761be5681f1c5b315414e1f75440170 SHA512 5ecf160d2e97691ce0a54a5dee2b639f36ae8a8c34d26b143c3c0d573449d032e481d733724f9aa98c2df93c034f0abd760442950163ab341c3fabee86b65c12 AUX ncpfs-2.2.6-gcc10.patch 449 BLAKE2B b03c6f18f7765a1b3273c33461c299e7edf368a0a5563875fa956eefa6d18906394d3541ddc66d9c4a5ad7c6bd7c14b38709553fd03fa43608becfdf3fea7fe2 SHA512 4844610c9f516bebe37964a85810514660c7d1fcae5e6acaba8c421d61cb0e21676ed33f3a9d93f47ef974d111d455efb1a1460d5f3fc8beaa028017cadbae12 AUX ncpfs-2.2.6-gcc4.patch 1271 BLAKE2B 57b4cf96eeadd513b10ec4b6555ae4c73298304187b4bdef8e2f7d9315d1a56b225096ae25ed1a5744e5d6cc34e5dc86b84ff3adff9a91fde38e044648c259cd SHA512 b67b3a8267a76ef1fe3a128443fa96831896c3cac8f41136d3932816dfe9ab5a4d55258b6f19288c543015e53e41b691577484abf57f9163c0e3bebb4742cdbe AUX ncpfs-2.2.6-getuid-fix.patch 5121 BLAKE2B 8996154f28afeaaf4b05e0587f38bd9bb2c10b9da6b39d5d32f777355eed186f6064ea9af0e03b590c4a2f89a4e77d9478a69404796a24ceacc1002b6068f462 SHA512 46f02242198829dc615dd9d07ec7502e88d5738b5055e480758ddabe76b65432d436b24607a0131fd33724fa1cec95b90460b8b27c887d29c5c71a410d89edd8 @@ -20,4 +21,4 @@ AUX ncpfs-2.2.6-servername-array-fix.patch 523 BLAKE2B 6cf9c27ae7bda17722a74f550 AUX ncpfs-2.2.6-usr-merge.patch 514 BLAKE2B 44873b8731d062b2fe802f9ecc145509d12625be4e62b1025738a6076cb003d5577c2d5c21e338ff5fade6e0bea844a254509287a82aabc0bb92db20b0c7ec5d SHA512 cf05a0b2e41c45a8215bf1b150b79a16cdaa040c4e41ab6f361fffaa2a937fb792b464b1a9b49ecde18ae5df8e58e1887b1e965ff39adf1f05a2418f89efca11 AUX ncpfs-2.2.6-zend_function_entry.patch 296 BLAKE2B 3bb6db87517e0fb086e95462e9b567628ede7fbeef77b5d6e101dec8a316f2a5185cad8846bbaf37dada789acfedf6f6bbc75dafa92f3eb140cfde4eb038e1eb SHA512 c96723a840cb1b0cdddb91ebe74620b87a32350be084f21b741bda4e399a7648fd00522e9f2ec8404d5a98835d3f5a343dd588f4279848cc031de5bed01680e0 DIST ncpfs-2.2.6.tar.gz 2100545 BLAKE2B b95c8c0b097227c7b9e526e978efdca2234cdd0833468be99abaa68b0feba09794be26ebcb3a1c3371bc99f6c9d007eee164fa5f918aaee3eca44aeb1420211f SHA512 51f85eaae85deb66cea2ff434974699f6aa45ed1ed75217ef6176ac0b7d0f9f1c4fb186afc64c1b495474d5bad9ac7614033128c0bec39c05de723a9b29c8602 -EBUILD ncpfs-2.2.6-r5.ebuild 2493 BLAKE2B 42886fd45a0b8e398fb4cd2fc0fcbdfba10be828421e7848712a4fc9fba2af8b63018863305328fb1f5ac85d500a771e081297621b10f72035f9fd02ead0fc78 SHA512 1b779fd7279fae0b5fc922565be50ed50978d8497d35e560514510238be6f9f088e78210c3f9c18f9bd275a925323928f995895c04bcd671ed2358d8fd5bed9c +EBUILD ncpfs-2.2.6-r5.ebuild 2570 BLAKE2B 4b0e38187dbc11d4e36b83e5c5af94adcc13eff3f5cf226d09d484c750b38a4776773cde8b34c60f73dd01498397a1cf735415859c87780e1065fdb4faed61d2 SHA512 33acfe1c75df6b5d293234623405bee48264c97d285e31eb5b7ca3fdecb71d62103b3dfcd2e25ec97389554d43910ed2e24b20e7cd3a9d37e89ec029ff701665 diff --git a/net-fs/ncpfs/files/ncpfs-2.2.6-fix-build-with-gcc14.patch b/net-fs/ncpfs/files/ncpfs-2.2.6-fix-build-with-gcc14.patch new file mode 100644 index 00000000..ccab11b4 --- /dev/null +++ b/net-fs/ncpfs/files/ncpfs-2.2.6-fix-build-with-gcc14.patch @@ -0,0 +1,23 @@ +--- ncpfs-2.2.6/lib/nwnet.c 2005-01-27 18:35:59.000000000 +0100 ++++ ncpfs-2.2.6/lib/nwnet.c.gcc14 2024-11-20 16:28:06.070435373 +0100 +@@ -1215,7 +1215,7 @@ NWDSCCODE NWDSCreateContextHandle(NWDSCo + #endif + }; + +- err = NWDSSetTransport(tmp, sizeof(t)/sizeof(t[0]), t); ++ err = NWDSSetTransport(tmp, sizeof(t)/sizeof(t[0]), (const NET_ADDRESS_TYPE *) t); + } + if (err) { + NWDSFreeContext(tmp); +--- ncpfs-2.2.6/sutil/ncpumount.c 2024-11-20 16:30:32.629748174 +0100 ++++ ncpfs-2.2.6/sutil/ncpumount.c.gcc14 2024-11-20 16:33:51.594153847 +0100 +@@ -62,6 +62,9 @@ + #include + #include + ++#include ++#include ++#include + #include + #include + #include diff --git a/net-fs/ncpfs/ncpfs-2.2.6-r5.ebuild b/net-fs/ncpfs/ncpfs-2.2.6-r5.ebuild index 796d0452..6830780d 100644 --- a/net-fs/ncpfs/ncpfs-2.2.6-r5.ebuild +++ b/net-fs/ncpfs/ncpfs-2.2.6-r5.ebuild @@ -61,6 +61,8 @@ PATCHES=( #"${FILESDIR}"/${P}-gcc10.patch "${FILESDIR}"/${P}-usr-merge.patch + + "${FILESDIR}"/${P}-fix-build-with-gcc14.patch ) DOCS=( FAQ README ) @@ -68,7 +70,7 @@ DOCS=( FAQ README ) src_prepare() { # Bug #273484. sed -i '/ldconfig/d' lib/Makefile.in || die - append-cflags -fcommon + append-cflags -fcommon -Wincompatible-pointer-types default } diff --git a/net-im/teams-for-linux/Manifest b/net-im/teams-for-linux/Manifest index 84e4f693..957fbb0e 100644 --- a/net-im/teams-for-linux/Manifest +++ b/net-im/teams-for-linux/Manifest @@ -1,2 +1,2 @@ -DIST teams-for-linux_1.9.0_amd64.deb 87135838 BLAKE2B d6be9c6283b4be01c735d694ceca6749fbf63539710f2cc852e1306261f89d2c88a7241e8b64dedfc5145a46471a5ccca25317d5004424877525393d7b405f34 SHA512 3d89d92ebbe5039263da824031e3c8ea6b4624c5fb0857a79368dec90f97fc026c8859470a5141ff7899ecc236af4e268c9098f17e921f81cc70c27e22ec5360 -EBUILD teams-for-linux-1.9.0.ebuild 3387 BLAKE2B 0e9031d17f3f3cab3fa8de3570c17fba700d66e35dd4d99df9054a3e7a2482d57e54c47a1d6ab08122d1fed7316a38802b28774d97d8ccebd11bbbb823d68b3f SHA512 f4a873cb21f097675309cf106edd2ff4b08dce10051cd71f5b5b4c0941bcf627b58de2983d5f59f7186cbd25d923a2ab4994f9526f2ccfd5240d9fe93f1ee462 +DIST teams-for-linux_1.11.3_amd64.deb 196339922 BLAKE2B 0a35b0a2c6624bf111da11e6ce76461cc453d585a8071e2138b30e6cfeb266bc6f501dd8945ccec33d6a2ecf2f0d5e3ee1af1afbd186c5fbe6611dc39cf196c6 SHA512 016114ee006dc2da1002da5cc23d148eca3d3e1e481bfffaf2572156d506b3710ca557492668713d2df586e0bfd86307300a627e47a7fd470cfe7d8269b809a7 +EBUILD teams-for-linux-1.11.3.ebuild 3387 BLAKE2B 0e9031d17f3f3cab3fa8de3570c17fba700d66e35dd4d99df9054a3e7a2482d57e54c47a1d6ab08122d1fed7316a38802b28774d97d8ccebd11bbbb823d68b3f SHA512 f4a873cb21f097675309cf106edd2ff4b08dce10051cd71f5b5b4c0941bcf627b58de2983d5f59f7186cbd25d923a2ab4994f9526f2ccfd5240d9fe93f1ee462 diff --git a/net-im/teams-for-linux/teams-for-linux-1.9.0.ebuild b/net-im/teams-for-linux/teams-for-linux-1.11.3.ebuild similarity index 100% rename from net-im/teams-for-linux/teams-for-linux-1.9.0.ebuild rename to net-im/teams-for-linux/teams-for-linux-1.11.3.ebuild diff --git a/net-misc/rasclient/Manifest b/net-misc/rasclient/Manifest index 194f1740..039fe629 100644 --- a/net-misc/rasclient/Manifest +++ b/net-misc/rasclient/Manifest @@ -1,20 +1,5 @@ -DIST RASClient-19.0.23304_x86_64.tar.bz2 28644903 BLAKE2B 41f77a59774548601deb181570ee679269d8d540cfaac9598cdd39126b256778e50d71393d4deac44720efb04898f6cd9d0e14c29c0f0e1e3c84e44f9a58dfff SHA512 164380b6ec4627d1be85e798b71c3e4b865163eef65384d6dad46c03ba849ea5faf80ab53f35fd40b8d598a04ea9c5d7ebbde48af7c9559ccb26889fb8d7abad -DIST RASClient-19.1.23468_x86_64.tar.bz2 28745160 BLAKE2B 4ecb72d35628c6bfb73253d2382b2979f1cb5f28ed9a1abca26f2a9d88f7d0e576f7becec90535827c042dccfc782b8d70042913cd029ac3fcfca521d79e2e2d SHA512 0d00bcf026e0e663b79043e08949ca64442e114d0f31a3c984dd4be91c1b908f906bab47edae124d83bf7a1c46961b840fcdba66490fa46259ee8c8f29504b10 -DIST RASClient-19.1.23476_x86_64.tar.bz2 28748749 BLAKE2B cb8c5f55e1677447fe61976748058fd37f8c60eaef83dbf6d68831d9f629a0fa5eb9f82de1348f306dfbfa9e2955be463c0b23b03b1ab24a865d47d34d40cf57 SHA512 e771963f4064b62417614462e1d30dd900cfa85b0da8a0020c8360c60f9d5ca1b506796444b894173b71e67b9889a93915b2d9c3e28ce8e57ed1c82db0e5eafe -DIST RASClient-19.2.23906_x86_64.tar.bz2 28839787 BLAKE2B c82a527ba9c07ad79c638523a6a67ff5e8acc2264ce25bfd1ef7f30ff6ab7be0c4f3f399f463835c61368a3fab007d1d210f000a490aac064ca089ae457d9208 SHA512 8113b864ad74e569feaed4b76039df9709b5641c253cdf4f3c47243d8f47a6aa762b44020396b5ace66e5aa1a96a482a78a2aab97ca4cfafea10e09a0c9e7911 -DIST RASClient-19.3.24619_x86_64.tar.bz2 31396623 BLAKE2B d4cc1dcb825f9871318a2215f38dcff217809d3b290425525a18ff17de27d8584604ce597c0c667ef1a0fa3bcbf5571e83a9cf3b05e7f3552cb30e0554a16dfb SHA512 6efd1d2aea1c24be5695c1da84964309a1a134380c30f56ddbcc26d175629beb50f57c5e88a0cea327dec2216aced4d4d483d3203aa1ec6b3c67b68743d42cc0 -DIST RASClient-19.4.24965_x86_64.tar.bz2 32200941 BLAKE2B a6c604b932b12ba1ca319733e6e953af4134c41a4a8c0badc35295016483ddc74b4e33363f4e65c236cd0d241f5a6cac3fb071f40617ee9b53673ec1395d0d04 SHA512 3daf5c0990f7331ede36061989a59fc2889468e6edc39f5f14e537e85e903c29f67b3c7dd7c0902f963996a69dbfbfcc23f45cb183256a71d4f9ff570a8ab316 -DIST RASClient-sso-19.0.23304_x86_64.tar.bz2 9312 BLAKE2B 77c696b40d76e85eeb3c6efa5c39348109ddee090aa63512fcd716c2c5d7933b40af4833c350cb239ef58380bc7bd54a78bfe54d2b3699c019940cc150b19a54 SHA512 24b016b16c768937505978058feea797ed99298c275c6339e978c868c4c329963eda786e132848350b5ff88fba0d6c640aa0a40daff151d6c430aec12cebe1cf -DIST RASClient-sso-19.1.23468_x86_64.tar.bz2 9305 BLAKE2B 354bec4e6b18bf78e4038756f7722dc0279760ad71d1530fc92dea47be17ae88698f1553c2cf4a53e39fa674f83af552b8b2d3d7a7c371f24a45908716d1b684 SHA512 4178de5bb068f9c0fa1c6fcc40711f28f7a285b834fa9102282e037979b563b79d255ad1b3a02053abd98aed53b137669ea96e356ea8871be94119ed2167ff68 -DIST RASClient-sso-19.1.23476_x86_64.tar.bz2 9311 BLAKE2B 710c6e7435d6aefd1c224e7a86ce1d92da3cf056378ea8a76f5c8a826763ee8e7cdcd397f9071eb8533cbe272b2e6cf63dffcf11dacda1b1d29ae723e4588fd2 SHA512 52c44d290de4c8650dc09b38c38e2f84a6d7d8e7d55c9415e5e1d8adbb6b9938e31c13b40952b70434539358a8ec73a9121881bd26860e6554719bfd5cc4f3e9 -DIST RASClient-sso-19.2.23906_x86_64.tar.bz2 9304 BLAKE2B c370711fde4a679bb87b8b244ea5f6052c8bc2b0c30ff50e1e1d42eec9d0bb0dea6eb8f2998cc27ace324b17ee1e66df4cb7eb5a280d7afc55dd8a31a31494e3 SHA512 96b2304ff5f3da9d0077d1c7b1e60f01d99d6d662128c8fb5dc46dd3b70fb156bbf30c932cdbf385ad8f25e1b09392b2a34736e023b3f3e7cc6ed23d2d700936 -DIST RASClient-sso-19.3.24619_x86_64.tar.bz2 9309 BLAKE2B 29668edcb8fef445877b04be61f6b3e5cc589e9743d6774bbff05cdff53b66b34ff0d87f65cc4c9c09afcb6cbef687a9f82ea22ee492264f376e0931ced844a8 SHA512 6c753b81219957f667e9e89d0ec725e535241b6f450f4926e12335ffab0c40bf537145116ea552d279ae777931bedb287e92fad3b9fd1da7b6a2f534ed2ff0ae -DIST RASClient-sso-19.4.24965_x86_64.tar.bz2 9293 BLAKE2B 81c0cd7698c8f21b823ebbc0c185fba15324a909ab24f7dca3ccb5f1d1af9240ac71ba60854691131bb546a79b19a00a1ddd3da246640680ba434e4187267375 SHA512 40410e2b0ee7b70169acf025d1ec7c3a71bdbd4b616b5fbeb3f37cb11cf919f3c98a63c40a789476ea98a5f361eb42312dd840d2d803208955de8bd946c005c9 -EBUILD rasclient-19.0.0.23304.ebuild 2093 BLAKE2B 57054fd2fd385169a707ba2df4ca20f8be1b71ca668ec1b4cb3a8cb478bba3157460218cfe354f473e9cbaf13290012e5b3c38ecdb44752557f2db5b88481c1e SHA512 d22aeb4ce7e88505faa5e314b2a7f317bcb8315b6aefcd48b43dd6df51093008b19960926d783ba131e60a6952be2705f75bca1a658c5fd69f0c8c7f0b318335 -EBUILD rasclient-19.1.0.23468.ebuild 2093 BLAKE2B 57054fd2fd385169a707ba2df4ca20f8be1b71ca668ec1b4cb3a8cb478bba3157460218cfe354f473e9cbaf13290012e5b3c38ecdb44752557f2db5b88481c1e SHA512 d22aeb4ce7e88505faa5e314b2a7f317bcb8315b6aefcd48b43dd6df51093008b19960926d783ba131e60a6952be2705f75bca1a658c5fd69f0c8c7f0b318335 -EBUILD rasclient-19.1.1.23476.ebuild 2093 BLAKE2B 57054fd2fd385169a707ba2df4ca20f8be1b71ca668ec1b4cb3a8cb478bba3157460218cfe354f473e9cbaf13290012e5b3c38ecdb44752557f2db5b88481c1e SHA512 d22aeb4ce7e88505faa5e314b2a7f317bcb8315b6aefcd48b43dd6df51093008b19960926d783ba131e60a6952be2705f75bca1a658c5fd69f0c8c7f0b318335 -EBUILD rasclient-19.2.0.23906.ebuild 2093 BLAKE2B 57054fd2fd385169a707ba2df4ca20f8be1b71ca668ec1b4cb3a8cb478bba3157460218cfe354f473e9cbaf13290012e5b3c38ecdb44752557f2db5b88481c1e SHA512 d22aeb4ce7e88505faa5e314b2a7f317bcb8315b6aefcd48b43dd6df51093008b19960926d783ba131e60a6952be2705f75bca1a658c5fd69f0c8c7f0b318335 -EBUILD rasclient-19.3.1.24619.ebuild 2093 BLAKE2B 57054fd2fd385169a707ba2df4ca20f8be1b71ca668ec1b4cb3a8cb478bba3157460218cfe354f473e9cbaf13290012e5b3c38ecdb44752557f2db5b88481c1e SHA512 d22aeb4ce7e88505faa5e314b2a7f317bcb8315b6aefcd48b43dd6df51093008b19960926d783ba131e60a6952be2705f75bca1a658c5fd69f0c8c7f0b318335 -EBUILD rasclient-19.4.0.24965.ebuild 2093 BLAKE2B 57054fd2fd385169a707ba2df4ca20f8be1b71ca668ec1b4cb3a8cb478bba3157460218cfe354f473e9cbaf13290012e5b3c38ecdb44752557f2db5b88481c1e SHA512 d22aeb4ce7e88505faa5e314b2a7f317bcb8315b6aefcd48b43dd6df51093008b19960926d783ba131e60a6952be2705f75bca1a658c5fd69f0c8c7f0b318335 +DIST RASClient-19.4.25171_x86_64.tar.bz2 32230894 BLAKE2B 24d674611b2d6c27fe4485ef8107f51f8f814f617d562617997f8708ef38961eb1d3c2cebcdb7781fe78bd5aacba899eddc5a7d29ed85e2c0f5c421d5a86f490 SHA512 7e37981f759b3e65a6943f9fa8c748fd5262c29d1a6ac23e9885ecff8b4c4a6e2dd037dc0980353df28e23f3fbca18d130f6b06c939fa8cac13b2b024964e5c3 +DIST RASClient-sso-19.4.25171_x86_64.tar.bz2 9324 BLAKE2B eece3e00417f3c39c7ac0f5dad9f5c0dc194cc8aa43caef303fd4c08b6d256e8f914443a1d675c8e44913318130f721332068249a2787f36fafdeb3f866519bf SHA512 e380881049586f95068caf1c69d3c3ce6b1b0d0bbd351f5f08850d3477bebc7d31a1c0513074d140e56cdc75f2cce28aca23a2a5312b8a3e5708138a281058f3 +EBUILD rasclient-19.4.2.25171.ebuild 2002 BLAKE2B 83a3c776dd6bc7e24a351a4a0805b16c1d140996b03ccdd895d732b65e34a2f56e92746f8334d1497e7cf582b043a21325fb3b1b5adb09c9fc78432f408ee102 SHA512 c795faab8d827f210fbd3aa314fd08f8689ffed7f1c7033a66294dd366bc497ac3cedfee56bede47cd261805bcae9ba6391ebadbe9259996a85f117862790fb8 MISC ChangeLog 385 BLAKE2B ebe7cc81e97a7c49bd6dc63e83c4701deb3fa3cc665ae2c0c231e7d4dc79ce3a490e325dd57f962fa74b097fa3fb076ebafd6b0a3fc57d985fe6e16fc4cfc7a5 SHA512 eefdb08d4f09532d35752696b1ac758520ae01f5dca8f44fc63dbd1c7cfb3d83f7f03a32db69c051517ac36b16b9298727fc95d85b188ea336760652fb92305f MISC metadata.xml 408 BLAKE2B 66a3e2838d5c5f95c7463733cd13b1230ef3ca005ec0c5dac797561be30f950da98dfa41eeb4d43cf97500c9a2e0d04c57b0b084d60107072a988dd7c4d16ded SHA512 9cac3e4a07c425e87274de776e03d243e462341168235cd3991ef4706aa1a902cf6591ae8e965b9c4ed370fc2ebef3ca805a9c761d05c4b994ae8667198b267c diff --git a/net-misc/rasclient/rasclient-19.0.0.23304.ebuild b/net-misc/rasclient/rasclient-19.0.0.23304.ebuild deleted file mode 100644 index 91eddd96..00000000 --- a/net-misc/rasclient/rasclient-19.0.0.23304.ebuild +++ /dev/null @@ -1,88 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit pax-utils xdg-utils versionator desktop - -PV_MAJ=$(get_major_version ) -PV_MIN=$(get_version_component_range 2) -PV_SUB=$(get_version_component_range 3) -PV_DIF=$(get_version_component_range 4) -MY_PV="${PV_MAJ}.${PV_MIN}.${PV_DIF}" - -DESCRIPTION="Parallels Remote Application Client" -HOMEPAGE="https://www.parallels.com/eu/products/ras/download/links/#lin" -SRC_URI="amd64? ( http://download.parallels.com/ras/v${PV_MAJ}/${PV}/RASClient-${MY_PV}_x86_64.tar.bz2 - http://download.parallels.com/ras/v${PV_MAJ}/${PV}/RASClient-sso-${MY_PV}_x86_64.tar.bz2 )" - -LICENSE="no-source-code" -SLOT="0" -KEYWORDS="~amd64" -IUSE="" - -S="${WORKDIR}" -RESTRICT="mirror bindist strip" #299368 - -DEPEND="dev-libs/libxml2 - dev-qt/qtcore:5 - dev-qt/qtdbus:5 - dev-qt/qtgui:5 - dev-qt/qtnetwork:5 - dev-qt/qtprintsupport:5 - dev-qt/qtwidgets:5 - dev-qt/qtx11extras:5 - dev-qt/qtxml:5 - media-libs/alsa-lib - net-print/cups - sys-libs/zlib - x11-libs/libX11 - x11-libs/libXext - x11-libs/libXinerama - x11-libs/libXrandr - x11-libs/libXtst - virtual/libusb:1 - sys-apps/pcsc-lite - sys-libs/glibc - x11-libs/libXpm - " - -RDEPEND="${DEPEND}" - -src_install() { - into /opt/2X/Client/ - dobin opt/2X/Client/bin/* - dolib.so opt/2X/Client/lib/* - ln -sf $(get_libdir) "${D}/opt/2X/Client/lib" - - dodoc opt/2X/Client/doc/* - - doicon opt/2X/Client/share/2X.png - - domenu opt/2X/Client/share/rasclient.desktop - domenu opt/2X/Client/share/tuxclient.desktop - domenu opt/2X/Client/share/rassession.desktop - - insinto /usr/share/mime-info - doins opt/2X/Client/share/mime/*.{keys,mime} - - insinto /usr/share/application-registry - doins opt/2X/Client/share/mime/2XSession.applications - - insinto /usr/share/mime/packages/ - doins opt/2X/Client/share/sharedmimeinfo/2XClient.xml - - insinto /opt/2X/Client/share - doins opt/2X/Client/share/*.{conf,qm,qss,pem} - doins opt/2X/Client/share/installed -} - -pkg_postinst() { - xdg_desktop_database_update - xdg_mimeinfo_database_update -} - -pkg_postrm() { - xdg_desktop_database_update - xdg_mimeinfo_database_update -} diff --git a/net-misc/rasclient/rasclient-19.1.0.23468.ebuild b/net-misc/rasclient/rasclient-19.1.0.23468.ebuild deleted file mode 100644 index 91eddd96..00000000 --- a/net-misc/rasclient/rasclient-19.1.0.23468.ebuild +++ /dev/null @@ -1,88 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit pax-utils xdg-utils versionator desktop - -PV_MAJ=$(get_major_version ) -PV_MIN=$(get_version_component_range 2) -PV_SUB=$(get_version_component_range 3) -PV_DIF=$(get_version_component_range 4) -MY_PV="${PV_MAJ}.${PV_MIN}.${PV_DIF}" - -DESCRIPTION="Parallels Remote Application Client" -HOMEPAGE="https://www.parallels.com/eu/products/ras/download/links/#lin" -SRC_URI="amd64? ( http://download.parallels.com/ras/v${PV_MAJ}/${PV}/RASClient-${MY_PV}_x86_64.tar.bz2 - http://download.parallels.com/ras/v${PV_MAJ}/${PV}/RASClient-sso-${MY_PV}_x86_64.tar.bz2 )" - -LICENSE="no-source-code" -SLOT="0" -KEYWORDS="~amd64" -IUSE="" - -S="${WORKDIR}" -RESTRICT="mirror bindist strip" #299368 - -DEPEND="dev-libs/libxml2 - dev-qt/qtcore:5 - dev-qt/qtdbus:5 - dev-qt/qtgui:5 - dev-qt/qtnetwork:5 - dev-qt/qtprintsupport:5 - dev-qt/qtwidgets:5 - dev-qt/qtx11extras:5 - dev-qt/qtxml:5 - media-libs/alsa-lib - net-print/cups - sys-libs/zlib - x11-libs/libX11 - x11-libs/libXext - x11-libs/libXinerama - x11-libs/libXrandr - x11-libs/libXtst - virtual/libusb:1 - sys-apps/pcsc-lite - sys-libs/glibc - x11-libs/libXpm - " - -RDEPEND="${DEPEND}" - -src_install() { - into /opt/2X/Client/ - dobin opt/2X/Client/bin/* - dolib.so opt/2X/Client/lib/* - ln -sf $(get_libdir) "${D}/opt/2X/Client/lib" - - dodoc opt/2X/Client/doc/* - - doicon opt/2X/Client/share/2X.png - - domenu opt/2X/Client/share/rasclient.desktop - domenu opt/2X/Client/share/tuxclient.desktop - domenu opt/2X/Client/share/rassession.desktop - - insinto /usr/share/mime-info - doins opt/2X/Client/share/mime/*.{keys,mime} - - insinto /usr/share/application-registry - doins opt/2X/Client/share/mime/2XSession.applications - - insinto /usr/share/mime/packages/ - doins opt/2X/Client/share/sharedmimeinfo/2XClient.xml - - insinto /opt/2X/Client/share - doins opt/2X/Client/share/*.{conf,qm,qss,pem} - doins opt/2X/Client/share/installed -} - -pkg_postinst() { - xdg_desktop_database_update - xdg_mimeinfo_database_update -} - -pkg_postrm() { - xdg_desktop_database_update - xdg_mimeinfo_database_update -} diff --git a/net-misc/rasclient/rasclient-19.1.1.23476.ebuild b/net-misc/rasclient/rasclient-19.1.1.23476.ebuild deleted file mode 100644 index 91eddd96..00000000 --- a/net-misc/rasclient/rasclient-19.1.1.23476.ebuild +++ /dev/null @@ -1,88 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit pax-utils xdg-utils versionator desktop - -PV_MAJ=$(get_major_version ) -PV_MIN=$(get_version_component_range 2) -PV_SUB=$(get_version_component_range 3) -PV_DIF=$(get_version_component_range 4) -MY_PV="${PV_MAJ}.${PV_MIN}.${PV_DIF}" - -DESCRIPTION="Parallels Remote Application Client" -HOMEPAGE="https://www.parallels.com/eu/products/ras/download/links/#lin" -SRC_URI="amd64? ( http://download.parallels.com/ras/v${PV_MAJ}/${PV}/RASClient-${MY_PV}_x86_64.tar.bz2 - http://download.parallels.com/ras/v${PV_MAJ}/${PV}/RASClient-sso-${MY_PV}_x86_64.tar.bz2 )" - -LICENSE="no-source-code" -SLOT="0" -KEYWORDS="~amd64" -IUSE="" - -S="${WORKDIR}" -RESTRICT="mirror bindist strip" #299368 - -DEPEND="dev-libs/libxml2 - dev-qt/qtcore:5 - dev-qt/qtdbus:5 - dev-qt/qtgui:5 - dev-qt/qtnetwork:5 - dev-qt/qtprintsupport:5 - dev-qt/qtwidgets:5 - dev-qt/qtx11extras:5 - dev-qt/qtxml:5 - media-libs/alsa-lib - net-print/cups - sys-libs/zlib - x11-libs/libX11 - x11-libs/libXext - x11-libs/libXinerama - x11-libs/libXrandr - x11-libs/libXtst - virtual/libusb:1 - sys-apps/pcsc-lite - sys-libs/glibc - x11-libs/libXpm - " - -RDEPEND="${DEPEND}" - -src_install() { - into /opt/2X/Client/ - dobin opt/2X/Client/bin/* - dolib.so opt/2X/Client/lib/* - ln -sf $(get_libdir) "${D}/opt/2X/Client/lib" - - dodoc opt/2X/Client/doc/* - - doicon opt/2X/Client/share/2X.png - - domenu opt/2X/Client/share/rasclient.desktop - domenu opt/2X/Client/share/tuxclient.desktop - domenu opt/2X/Client/share/rassession.desktop - - insinto /usr/share/mime-info - doins opt/2X/Client/share/mime/*.{keys,mime} - - insinto /usr/share/application-registry - doins opt/2X/Client/share/mime/2XSession.applications - - insinto /usr/share/mime/packages/ - doins opt/2X/Client/share/sharedmimeinfo/2XClient.xml - - insinto /opt/2X/Client/share - doins opt/2X/Client/share/*.{conf,qm,qss,pem} - doins opt/2X/Client/share/installed -} - -pkg_postinst() { - xdg_desktop_database_update - xdg_mimeinfo_database_update -} - -pkg_postrm() { - xdg_desktop_database_update - xdg_mimeinfo_database_update -} diff --git a/net-misc/rasclient/rasclient-19.3.1.24619.ebuild b/net-misc/rasclient/rasclient-19.3.1.24619.ebuild deleted file mode 100644 index 91eddd96..00000000 --- a/net-misc/rasclient/rasclient-19.3.1.24619.ebuild +++ /dev/null @@ -1,88 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit pax-utils xdg-utils versionator desktop - -PV_MAJ=$(get_major_version ) -PV_MIN=$(get_version_component_range 2) -PV_SUB=$(get_version_component_range 3) -PV_DIF=$(get_version_component_range 4) -MY_PV="${PV_MAJ}.${PV_MIN}.${PV_DIF}" - -DESCRIPTION="Parallels Remote Application Client" -HOMEPAGE="https://www.parallels.com/eu/products/ras/download/links/#lin" -SRC_URI="amd64? ( http://download.parallels.com/ras/v${PV_MAJ}/${PV}/RASClient-${MY_PV}_x86_64.tar.bz2 - http://download.parallels.com/ras/v${PV_MAJ}/${PV}/RASClient-sso-${MY_PV}_x86_64.tar.bz2 )" - -LICENSE="no-source-code" -SLOT="0" -KEYWORDS="~amd64" -IUSE="" - -S="${WORKDIR}" -RESTRICT="mirror bindist strip" #299368 - -DEPEND="dev-libs/libxml2 - dev-qt/qtcore:5 - dev-qt/qtdbus:5 - dev-qt/qtgui:5 - dev-qt/qtnetwork:5 - dev-qt/qtprintsupport:5 - dev-qt/qtwidgets:5 - dev-qt/qtx11extras:5 - dev-qt/qtxml:5 - media-libs/alsa-lib - net-print/cups - sys-libs/zlib - x11-libs/libX11 - x11-libs/libXext - x11-libs/libXinerama - x11-libs/libXrandr - x11-libs/libXtst - virtual/libusb:1 - sys-apps/pcsc-lite - sys-libs/glibc - x11-libs/libXpm - " - -RDEPEND="${DEPEND}" - -src_install() { - into /opt/2X/Client/ - dobin opt/2X/Client/bin/* - dolib.so opt/2X/Client/lib/* - ln -sf $(get_libdir) "${D}/opt/2X/Client/lib" - - dodoc opt/2X/Client/doc/* - - doicon opt/2X/Client/share/2X.png - - domenu opt/2X/Client/share/rasclient.desktop - domenu opt/2X/Client/share/tuxclient.desktop - domenu opt/2X/Client/share/rassession.desktop - - insinto /usr/share/mime-info - doins opt/2X/Client/share/mime/*.{keys,mime} - - insinto /usr/share/application-registry - doins opt/2X/Client/share/mime/2XSession.applications - - insinto /usr/share/mime/packages/ - doins opt/2X/Client/share/sharedmimeinfo/2XClient.xml - - insinto /opt/2X/Client/share - doins opt/2X/Client/share/*.{conf,qm,qss,pem} - doins opt/2X/Client/share/installed -} - -pkg_postinst() { - xdg_desktop_database_update - xdg_mimeinfo_database_update -} - -pkg_postrm() { - xdg_desktop_database_update - xdg_mimeinfo_database_update -} diff --git a/net-misc/rasclient/rasclient-19.4.0.24965.ebuild b/net-misc/rasclient/rasclient-19.4.0.24965.ebuild deleted file mode 100644 index 91eddd96..00000000 --- a/net-misc/rasclient/rasclient-19.4.0.24965.ebuild +++ /dev/null @@ -1,88 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit pax-utils xdg-utils versionator desktop - -PV_MAJ=$(get_major_version ) -PV_MIN=$(get_version_component_range 2) -PV_SUB=$(get_version_component_range 3) -PV_DIF=$(get_version_component_range 4) -MY_PV="${PV_MAJ}.${PV_MIN}.${PV_DIF}" - -DESCRIPTION="Parallels Remote Application Client" -HOMEPAGE="https://www.parallels.com/eu/products/ras/download/links/#lin" -SRC_URI="amd64? ( http://download.parallels.com/ras/v${PV_MAJ}/${PV}/RASClient-${MY_PV}_x86_64.tar.bz2 - http://download.parallels.com/ras/v${PV_MAJ}/${PV}/RASClient-sso-${MY_PV}_x86_64.tar.bz2 )" - -LICENSE="no-source-code" -SLOT="0" -KEYWORDS="~amd64" -IUSE="" - -S="${WORKDIR}" -RESTRICT="mirror bindist strip" #299368 - -DEPEND="dev-libs/libxml2 - dev-qt/qtcore:5 - dev-qt/qtdbus:5 - dev-qt/qtgui:5 - dev-qt/qtnetwork:5 - dev-qt/qtprintsupport:5 - dev-qt/qtwidgets:5 - dev-qt/qtx11extras:5 - dev-qt/qtxml:5 - media-libs/alsa-lib - net-print/cups - sys-libs/zlib - x11-libs/libX11 - x11-libs/libXext - x11-libs/libXinerama - x11-libs/libXrandr - x11-libs/libXtst - virtual/libusb:1 - sys-apps/pcsc-lite - sys-libs/glibc - x11-libs/libXpm - " - -RDEPEND="${DEPEND}" - -src_install() { - into /opt/2X/Client/ - dobin opt/2X/Client/bin/* - dolib.so opt/2X/Client/lib/* - ln -sf $(get_libdir) "${D}/opt/2X/Client/lib" - - dodoc opt/2X/Client/doc/* - - doicon opt/2X/Client/share/2X.png - - domenu opt/2X/Client/share/rasclient.desktop - domenu opt/2X/Client/share/tuxclient.desktop - domenu opt/2X/Client/share/rassession.desktop - - insinto /usr/share/mime-info - doins opt/2X/Client/share/mime/*.{keys,mime} - - insinto /usr/share/application-registry - doins opt/2X/Client/share/mime/2XSession.applications - - insinto /usr/share/mime/packages/ - doins opt/2X/Client/share/sharedmimeinfo/2XClient.xml - - insinto /opt/2X/Client/share - doins opt/2X/Client/share/*.{conf,qm,qss,pem} - doins opt/2X/Client/share/installed -} - -pkg_postinst() { - xdg_desktop_database_update - xdg_mimeinfo_database_update -} - -pkg_postrm() { - xdg_desktop_database_update - xdg_mimeinfo_database_update -} diff --git a/net-misc/rasclient/rasclient-19.2.0.23906.ebuild b/net-misc/rasclient/rasclient-19.4.2.25171.ebuild similarity index 90% rename from net-misc/rasclient/rasclient-19.2.0.23906.ebuild rename to net-misc/rasclient/rasclient-19.4.2.25171.ebuild index 91eddd96..1733fad0 100644 --- a/net-misc/rasclient/rasclient-19.2.0.23906.ebuild +++ b/net-misc/rasclient/rasclient-19.4.2.25171.ebuild @@ -1,14 +1,14 @@ # Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=7 -inherit pax-utils xdg-utils versionator desktop +inherit xdg-utils desktop -PV_MAJ=$(get_major_version ) -PV_MIN=$(get_version_component_range 2) -PV_SUB=$(get_version_component_range 3) -PV_DIF=$(get_version_component_range 4) +PV_MAJ=$(ver_cut 1) +PV_MIN=$(ver_cut 2) +PV_SUB=$(ver_cut 3) +PV_DIF=$(ver_cut 4) MY_PV="${PV_MAJ}.${PV_MIN}.${PV_DIF}" DESCRIPTION="Parallels Remote Application Client" diff --git a/net-misc/remotedesktopmanager/Manifest b/net-misc/remotedesktopmanager/Manifest index 48858d08..2693cc48 100644 --- a/net-misc/remotedesktopmanager/Manifest +++ b/net-misc/remotedesktopmanager/Manifest @@ -1,4 +1,4 @@ -DIST RemoteDesktopManager_2024.2.1.1_amd64.deb 212387392 BLAKE2B 3f5bacd01a793ec1ae9d2f90ae2f4398ea87d034304be4bd5c9c050424c4bd010ca53eb3863027aaec251dee46ca0abc964774e1543111c1b46bc40bf52c06c0 SHA512 6f0d2f48f6e874b18a01d49ef9becace2a8158d7e8039fb335195203ae5f0b33402f5dc4647c98d104c42647845c133ef3611b7a67ae6537b71d590c09f1f95f -EBUILD remotedesktopmanager-2024.2.1.1.ebuild 1416 BLAKE2B 590a23f7c6251986494d63e160802650ff5f4792eebe3415f139e1e8dbe3fdb6de1222f4ff813118db4a396bdc22e3c542156ec626e8bb06f55bc48ac4988eba SHA512 5946e962d05a917faa3edea728a962a1218f11d4f778e2d66d208991fdff672ef001445e248dafc52a476b695dd07c248438d127d09ad26202624ba5459573bd +DIST RemoteDesktopManager_2024.3.1.2_amd64.deb 231593064 BLAKE2B 29d813208edf25f8be972f1cf343a99c3fe8c89cef662518fcec7df1995ad38b9a51521bfcc2e2c5cd1c8868c719b21294e943a8c312d52b447457b7502c3c91 SHA512 ef846ea9806af958c771220fcfbd95dbd15593cebe52a8a9fe9916a6e65b0f7cfc4c5c49c41b5cc5e280b7f784f9a6713b549e471daf0f4ad6cf542eaa4dcfcc +EBUILD remotedesktopmanager-2024.3.1.2.ebuild 1416 BLAKE2B 590a23f7c6251986494d63e160802650ff5f4792eebe3415f139e1e8dbe3fdb6de1222f4ff813118db4a396bdc22e3c542156ec626e8bb06f55bc48ac4988eba SHA512 5946e962d05a917faa3edea728a962a1218f11d4f778e2d66d208991fdff672ef001445e248dafc52a476b695dd07c248438d127d09ad26202624ba5459573bd MISC ChangeLog 889 BLAKE2B 216bbbfe9b264ef06f5b56748af1ea7366fa49f2406604264b7d22ce8f464ffd7491a57912d7cf1be7d3dc030578960acca895236d6e06fd017f02a9138f0b7f SHA512 09aa97933a9709827b6e3c01ce8a3829cb3d494f7fdac570faa30da6fac440c752391d8dcaf7d03c5cd1163686e8921c1bf4ad75827e4b8df05bbcde03548488 MISC metadata.xml 408 BLAKE2B 66a3e2838d5c5f95c7463733cd13b1230ef3ca005ec0c5dac797561be30f950da98dfa41eeb4d43cf97500c9a2e0d04c57b0b084d60107072a988dd7c4d16ded SHA512 9cac3e4a07c425e87274de776e03d243e462341168235cd3991ef4706aa1a902cf6591ae8e965b9c4ed370fc2ebef3ca805a9c761d05c4b994ae8667198b267c diff --git a/net-misc/remotedesktopmanager/remotedesktopmanager-2024.2.1.1.ebuild b/net-misc/remotedesktopmanager/remotedesktopmanager-2024.3.1.2.ebuild similarity index 100% rename from net-misc/remotedesktopmanager/remotedesktopmanager-2024.2.1.1.ebuild rename to net-misc/remotedesktopmanager/remotedesktopmanager-2024.3.1.2.ebuild