Fix gcc 14 build ncpfs

This commit is contained in:
Mario Fetka 2024-12-10 13:55:28 +01:00
parent 96ea326bd7
commit 5f902f1645
30 changed files with 3263 additions and 478 deletions

View File

@ -1,11 +1,11 @@
DIST insync-1.4.9.37127-fc25.i686.rpm 85130566 BLAKE2B 6edbb629ab57a3aac1ab715a0035e7b7094f55821c83129163ac6a8fb12e3a73b540983e8c63803f21b3337a5c09197465b63162ae70662799e6fcd8e6184a0a SHA512 297c232809ab1f4a117f4d8548e00769e872e1132f6161b0b6b6f456b001c47bcb28093efd4af8131eb0b4dfbd218888039bf51b04b9775e5a1718ad768984e6 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-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-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-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-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-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 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 ChangeLog 733 BLAKE2B e94a5cdc3ddef340cf4edd8c9d07c16bfc6f549516b82be6a5fcf4b1b770c57d65287c5ec9d3f2ac365d225a8398bb1b6f1542b9ead2e10308688ef2dd6b8567 SHA512 c9c277db795e6ce397608facfd5810aaf99dfef21277ca913494118856d9234949612cc707229798e8fc8e038e9201e84477f6c632bae02bcd704d4f6eb5b8e3
MISC metadata.xml 408 BLAKE2B 66a3e2838d5c5f95c7463733cd13b1230ef3ca005ec0c5dac797561be30f950da98dfa41eeb4d43cf97500c9a2e0d04c57b0b084d60107072a988dd7c4d16ded SHA512 9cac3e4a07c425e87274de776e03d243e462341168235cd3991ef4706aa1a902cf6591ae8e965b9c4ed370fc2ebef3ca805a9c761d05c4b994ae8667198b267c MISC metadata.xml 408 BLAKE2B 66a3e2838d5c5f95c7463733cd13b1230ef3ca005ec0c5dac797561be30f950da98dfa41eeb4d43cf97500c9a2e0d04c57b0b084d60107072a988dd7c4d16ded SHA512 9cac3e4a07c425e87274de776e03d243e462341168235cd3991ef4706aa1a902cf6591ae8e965b9c4ed370fc2ebef3ca805a9c761d05c4b994ae8667198b267c

View File

@ -41,6 +41,9 @@ RDEPEND="dev-qt/qtcore:5
dev-qt/qtwebchannel:5 dev-qt/qtwebchannel:5
dev-qt/qtwebengine:5 dev-qt/qtwebengine:5
dev-qt/qtvirtualkeyboard:5 dev-qt/qtvirtualkeyboard:5
dev-qt/qtcharts:5
dev-qt/qtlocation:5
dev-qt/qtsensors:5
sys-libs/zlib sys-libs/zlib
|| ( sys-devel/base-gcc sys-devel/gcc ) || ( sys-devel/base-gcc sys-devel/gcc )
media-libs/libglvnd media-libs/libglvnd

View File

@ -1,8 +1,8 @@
AUX 001_opencbm-0.4.99.98-ncurses6-1.patch 698 BLAKE2B 3d126aca22c4c1aa7cf6df35c41f1d32c8117aebcbc0fd10c7bd007dbb5752155b703b6a4585ba0a1ac5c3744e95b4b5e412c0d7834c5fcf4aa74d758b3f198d SHA512 a4b017a8bcbd698c01c9e695758826a4768bd316634a585f746460ec35bcffe67a76cd3e8f2ebcabf2eddbbb5e5dc5db2533f8d4881b1030b314253fc22264dd AUX 001_opencbm-0.4.99.98-ncurses6-1.patch 698 BLAKE2B 3d126aca22c4c1aa7cf6df35c41f1d32c8117aebcbc0fd10c7bd007dbb5752155b703b6a4585ba0a1ac5c3744e95b4b5e412c0d7834c5fcf4aa74d758b3f198d SHA512 a4b017a8bcbd698c01c9e695758826a4768bd316634a585f746460ec35bcffe67a76cd3e8f2ebcabf2eddbbb5e5dc5db2533f8d4881b1030b314253fc22264dd
AUX Makefile 1003 BLAKE2B 9e6363f8fb20826f380bae087f461b0f87a2f118be223ca809c84dba7154c6493b8937d7a46437a1773afaf5ba58179d33f9599b0fc063ae53bd5f9984128fa5 SHA512 a15c0d5a962d183f6753844aad38ef111ba4c34a4a3c8f947142b7cb5f71868ed77e965317c5aed10b9e3b5a8cb978fdffd505dbc11a6868615e5f11b19b7bd1 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 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-0.4.99.104.ebuild 3360 BLAKE2B 48cfe65252d46ea862f88c9bf660d1da1ea4a97a729e164faed861a7e609f7f6f7cc33c57b2a3ad048047f142beac9dbf1545a469731cc474836815de615467a SHA512 b3b1e288737b9ab4e64d786b87cdba5d1db82a717a05794dbef398a80980a422d946ffcf57c0e3c4c4d6b0748e21f83db68ed9ac15f8e179a65aecf2652d4daa
EBUILD opencbm-9999.ebuild 3352 BLAKE2B 94e30e68279a1c06f9c702549cb4ccc5c3e353a0d82be956ffdb2cf2cdbc5adc01db90eecf4487be30d6a761236585a61a5cac4f9f77000d8a8068c2c6388048 SHA512 8a3cb46dc0b8ac1730dfe395d47c312ce821ff63228af685c1ab98a73cfb3f95962fdaefa8315128289069a823020456ec49c972f6dfa2fb0ced5713c3e806e7 EBUILD opencbm-9999.ebuild 3360 BLAKE2B 48cfe65252d46ea862f88c9bf660d1da1ea4a97a729e164faed861a7e609f7f6f7cc33c57b2a3ad048047f142beac9dbf1545a469731cc474836815de615467a SHA512 b3b1e288737b9ab4e64d786b87cdba5d1db82a717a05794dbef398a80980a422d946ffcf57c0e3c4c4d6b0748e21f83db68ed9ac15f8e179a65aecf2652d4daa
MISC ChangeLog 1266 BLAKE2B c0347d5e0361182d79816ff25a52e2d52c52cf932adab716503f8a738da6c0643d08f4d14b9315ea6a9f2bf8e056c1da91a2a2515684f85a8f204e16731a7a7e SHA512 d3cea999760ee90a45148f31963a532ce3ff6db7122b11b8b06ca094f3d936309a2c8cc90e15fc7af86bda40952b28667db403b30c26c0189a083f9bc447b466 MISC ChangeLog 1266 BLAKE2B c0347d5e0361182d79816ff25a52e2d52c52cf932adab716503f8a738da6c0643d08f4d14b9315ea6a9f2bf8e056c1da91a2a2515684f85a8f204e16731a7a7e SHA512 d3cea999760ee90a45148f31963a532ce3ff6db7122b11b8b06ca094f3d936309a2c8cc90e15fc7af86bda40952b28667db403b30c26c0189a083f9bc447b466
MISC metadata.xml 493 BLAKE2B 7d4be69e09b1fa78bdd2fba1313bfe2527facc3ce1d37d6f5ca6a81e96f560c49b86d66ff5ad965375b61ab0f212e732f70a1965d57dbf5e10946b973915c7ec SHA512 ad6dc1300e43923807aef874ee3b862fdbdccc611cbd89732e5dc46d0a116da6c81e478afb673d1ff14ed6d0887353941a08835da600a7b18162469eb1e42daa MISC metadata.xml 493 BLAKE2B 7d4be69e09b1fa78bdd2fba1313bfe2527facc3ce1d37d6f5ca6a81e96f560c49b86d66ff5ad965375b61ab0f212e732f70a1965d57dbf5e10946b973915c7ec SHA512 ad6dc1300e43923807aef874ee3b862fdbdccc611cbd89732e5dc46d0a116da6c81e478afb673d1ff14ed6d0887353941a08835da600a7b18162469eb1e42daa

View File

@ -10,7 +10,7 @@ if [[ ${PV} = 9999* ]]; then
EGIT_REPO_URI="https://github.com/OpenCBM/OpenCBM.git" EGIT_REPO_URI="https://github.com/OpenCBM/OpenCBM.git"
else else
SRC_URI="https://github.com/OpenCBM/OpenCBM/archive/v${PV//./_}.tar.gz -> opencbm-${PV}-source.tar.gz 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" KEYWORDS="~amd64 ~ppc ~sparc ~x86"
fi fi
@ -49,7 +49,7 @@ src_prepare() {
# copy module makefile that don't intefer with gentoo kernel build system # copy module makefile that don't intefer with gentoo kernel build system
cp "${FILESDIR}"/Makefile "${S}"/opencbm/sys/linux/Makefile cp "${FILESDIR}"/Makefile "${S}"/opencbm/sys/linux/Makefile
# copy nibtools from upstream repo # copy nibtools from upstream repo
cp -r "${WORKDIR}"/OpenCBM-nibtools-*/* "${S}"/opencbm/nibtools/ cp -r "${WORKDIR}"/nibtools-*/* "${S}"/opencbm/nibtools/
eapply_user eapply_user
} }

View File

@ -1,5 +1,6 @@
AUX 050_virtualbox-5.2.8-nopie.patch 13011 BLAKE2B 17e94f0abbf52f5ee33538e63078f4cfc641fd72fc558a0f51dc3de033f2e2a2b4c38bb680847e80b1fed558e6ae287a5e1d8059ae54f59a1409215fb2424900 SHA512 a5af5766b8be4adda6fb1e1901ef18c88c24f59ac311afc58cc6d02555562f934c46159aa956b109342fb9890b1bd4af747d600c34ba8a211feebb8c9fd15715 AUX 050_virtualbox-5.2.8-nopie.patch 13011 BLAKE2B 17e94f0abbf52f5ee33538e63078f4cfc641fd72fc558a0f51dc3de033f2e2a2b4c38bb680847e80b1fed558e6ae287a5e1d8059ae54f59a1409215fb2424900 SHA512 a5af5766b8be4adda6fb1e1901ef18c88c24f59ac311afc58cc6d02555562f934c46159aa956b109342fb9890b1bd4af747d600c34ba8a211feebb8c9fd15715
AUX 10-virtualbox.rules 576 BLAKE2B 11654424fdfe0276df88907476eda6ecdc84c2b2650c1d71a030009849c896ce34168daff8a29366109703f3d6756b40afa64f8a54f4ff6effedea80b4e9fc23 SHA512 12128375244e0fb090674e5a11cc70178f3c6208040830c009284addb91db7dc0a2d3cbd5d1056944782e936a63b0bcef03be0135683646c41d540413805f0ba 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-confd 559 BLAKE2B 979dc91678fac7277c69e482b07f8d46df6b4df92ffb37d5358be33aa08b01808776f95e915377f3b65dc8b89b54141e70f655847aeba4d0bd12cfceb72d8889 SHA512 47af05e5c8f496f9d55cb1240ab55b3c12f655fda14a3e9d904ada18ed6b748f599b2429133772ff4bcd1f363e5afa19ff5873f9e538aebce58eb88253ef4cab
AUX vboxwebsrv-initd 646 BLAKE2B d71673a3afea56aea69ab1d795d8b265bb5fc62296e35d6d28caaf600ca65da43006b6d69b58f6a05f7ca0301bafce2d983536db1c98ceb03ca880f5e7632023 SHA512 365bd3a9f5d8edeb921330eebf67b43f60b048d9869f8378fa68543ed6005320b06360590187631176c256d8ce49305b856a2e0c1dc20b42890e020a8c729719 AUX vboxwebsrv-initd 646 BLAKE2B d71673a3afea56aea69ab1d795d8b265bb5fc62296e35d6d28caaf600ca65da43006b6d69b58f6a05f7ca0301bafce2d983536db1c98ceb03ca880f5e7632023 SHA512 365bd3a9f5d8edeb921330eebf67b43f60b048d9869f8378fa68543ed6005320b06360590187631176c256d8ce49305b856a2e0c1dc20b42890e020a8c729719
AUX virtualbox-4-config 38 BLAKE2B 8eab341f3264a056a89633fe43dd58f274d0d877602156d97a4dcc6260dd8e446509173742988fa40346e62b1fe9368ff3fc9a97e3316cb919962d9a03340d52 SHA512 5455b70b8ac6f25365bae776b78c3ef5710ae2d5a9e939c7013d72c35f65f178268966ebd291a42666913e45f43c7196f8953331be0b0cc88eba66df39205b08 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-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.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.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-ose-6-wrapper 3578 BLAKE2B c150e578212435268de3c5fb0eea701bc843ec2241dc3839d3d1e33604fc01f6bdff6ed0425ba6917072f652b8c29d0df9a550a92900ca13306fcd36521afbee SHA512 315d981f3e92f2e0134946f6bbb8ad4ea4228afb8f73aaed7feead59b3f55cef01cec4285a7fdaf30ce0931d8b69bda4698baebd63d11f2cd9dfe9d0591a0f40
AUX virtualbox-vboxusb_tmpfilesd 35 BLAKE2B 56937e236a0e4d1a2aa085271e8ae0af9553fdf7c3b804af4d3fda3aa8dbc32d63762fee90bc949390cb9cd67f2f0111894c8af084731dab6920ae1675c69a64 SHA512 72e4602f5f214f8833486f5c787c263a10390e8bdf65b5615d67c35ec44048f02add12fe43b19f9c57a9d2f12d768c52e54fcfb9052c0611d06cc988a698c171 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.18.tar.bz2 173295159 BLAKE2B 1371d54d648aafbad3814d55d495836ce7a6f9ca955aeb71e24c57a27ed8acae8c020b8094ca7386d341d5e7460b9b0823cc01e7e69dd3cdadaadee1bc608bd1 SHA512 e78a18fa808152cbdc1d407751acf3f57a8202bf238ad3432c4f0b0f97ab203e915a6cd11619e64f4aca5b907eb72be67bab146869af0e73414144addf0d76b4
DIST VirtualBox-7.0.20.tar.bz2 173300021 BLAKE2B 23a1553578c8b89c3bea65fd9a451ef5abf419ce8a05524f2afc15b8d9a378a22ffb01c0c792d258320aeddb330b74f8f769180863041e333512d0eed2f4449c SHA512 7682e24d60c1896c661f2689af6820ae67b6bd8d9faaf18c58e8159bc7694ef80722f8e9611d6272da5b46eb2f3a44fc637b277e6801b7a8bf53aad045a81fe9 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.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.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.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.18-r1.ebuild 20842 BLAKE2B c80bd4f4694272cbb06eae6d317dbc64c765834856cd86f5fd323d279354346c7df9f81c86e7111951957299ff4bbcb1579477a973cab68fa88a60a25018c3d9 SHA512 68cfaac8a5ee39f435999e692bca486930dc0fe20232087a9937e4408dc067ea04b180f4b8e79e1fc10c6b80c613904d9d45921800fefa48bcfb30bc25100038
EBUILD virtualbox-7.0.20.ebuild 20843 BLAKE2B 829f98c05686b748d529ea87f32395d645c128a72072bb44f16df701b05b0dffff94920cc47f77d68b77afd7792f879f74c0e7ae30d56ad2bc672b5c2ce136b2 SHA512 bc65c17c2c04636e7cd5ea874c8cf1eac94ef627c9f735ab0641eb0be485ec6cd80fc0e9a2df9e2e5896c989c44c2047820bc7dd199a1e26fa7d400b1ce03c35 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 MISC metadata.xml 948 BLAKE2B c074e494d9affda91addd2355f8e71616602102b4cc151d2b45efd04754f1f92621ecd313dbe3baa44c3301f57b61e9cff780d445c2ea3d19ce3d9c8ae05213a SHA512 5338812da9334aedf08dd7a31a4a07c7bfa8232e8f0de6af9de9ac0f5585397cea16e66cb73d56632efa4cf21386782108182d803de6ff45c08082a13dc5fed9

View File

@ -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

View File

@ -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 $< $@

View File

@ -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/&nbsp;/\&#160;/g' \
-e 's/&ndash;/\&#8211;/g' \
-e 's/&larr;/\&#8592;/g' \
-e 's/&rarr;/\&#8594;/g' \
-e 's/&harr;/\&#8596;/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/&apos;[^&]*\(vboxdrv setup\|vboxconfig\)&apos;/\&apos;emerge -1 virtualbox-modules\&apos;/' {} \+ || 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
}

View File

@ -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/&nbsp;/\&#160;/g' \
-e 's/&ndash;/\&#8211;/g' \
-e 's/&larr;/\&#8592;/g' \
-e 's/&rarr;/\&#8594;/g' \
-e 's/&harr;/\&#8596;/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/&apos;[^&]*\(vboxdrv setup\|vboxconfig\)&apos;/\&apos;emerge -1 virtualbox-modules\&apos;/' {} \+ || 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
}

View File

@ -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/&nbsp;/\&#160;/g' \
-e 's/&ndash;/\&#8211;/g' \
-e 's/&larr;/\&#8592;/g' \
-e 's/&rarr;/\&#8594;/g' \
-e 's/&harr;/\&#8596;/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/&apos;[^&]*\(vboxdrv setup\|vboxconfig\)&apos;/\&apos;emerge -1 virtualbox-modules\&apos;/' {} \+ || 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
}

View File

@ -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/&nbsp;/\&#160;/g' \
-e 's/&ndash;/\&#8211;/g' \
-e 's/&larr;/\&#8592;/g' \
-e 's/&rarr;/\&#8594;/g' \
-e 's/&harr;/\&#8596;/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/&apos;[^&]*\(vboxdrv setup\|vboxconfig\)&apos;/\&apos;emerge -1 virtualbox-modules\&apos;/' {} \+ || 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
}

View File

@ -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-pc-libdir.patch 866 BLAKE2B bdbc18572fd5104ee04af672b9d493bb3271a8af7b383f5fb9042e8c44dbeaa760ed9c2c8f71192b891eeabae487ee096451ccdb8ae82a936e85331145c9bef6 SHA512 9ec288c174bb30060085c94f6703edb698f2e3806d872153cc58873ea838a84f9edbc07c6e5f8de4a6fd18f77ff1c1e4b1599ad598f3d0a4bba5b2c5bac73ad3
AUX stfl-0.22-ruby-sharedlib.patch 735 BLAKE2B 6b2b9e835f57f62ff1e1ff871103bc0b1106329916fc1be75eb22e550c9ff8abd007bbc201c66e15ce16a4697c0bbe0850b56ff41f666dd7006028432b1f77e5 SHA512 73a1b7aa7147100ab2f06264303c0a30463deb8bd0ce9e4111737393d07c4fb06174c5022c1dae8c7fd2688d1b544a4ab8c8ee5495f46e2bbc33ce89a7e46de7 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.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 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-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 MISC metadata.xml 884 BLAKE2B d1ee81a475935527af118da278c54f34a773dff1165c39ea2013135b767dbfe96972623d83833501d0531df78547c5d6040990039674832e9f5f701f915d3924 SHA512 55dc2b480ea7b0929be1e74d60d06ddc33ce977885969fdda332a6cb390c219cc13c017c0a56ed3594c475dcb9586b2d433c65fa200675de421e1aa4b22c7ce5

View File

@ -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 <vimproved@inventati.org>
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

View File

@ -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\>/$(AR)/' \
-e 's/\<ranlib\>/$(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
}

View File

@ -1 +1 @@
EBUILD ncpfs-modules-9999.ebuild 1364 BLAKE2B 4ff364e67dc7dff8908821d69daeb9fdcc3bf48642c4139bfd93ab3ac293b4127183b66cad60c309a7dcf1b11dd793f26b0b12d1d393f1654db413c0f5c3a14e SHA512 d8daa2d27f827aa405b8c2606a3d390383e9193493f5815fd22507764aed197ab9a4b89b22ce114ac56bac008f44b7beaa0aee43a7e4cd900bc0f075c401c6b5 EBUILD ncpfs-modules-9999.ebuild 1427 BLAKE2B 614ba81a917c469b94957f1a028cfe2a5c8b549d961ff1cf2ec9713002ad23b4f4b6f3e7366d8b08834a8285e7fc3b6d967a3cab2895752887f6daa1aebb9b4d SHA512 8cc6211423b9629cf364ace5e38325727fe60eb1a39d71d6dc08c5fbf0d45e370ce9eb6ddab1229bf2f070a353d363fd17840f96661bd8e01bc28878c675db5a

View File

@ -50,6 +50,9 @@ src_unpack() {
if kernel_is gt 6 6 0; then if kernel_is gt 6 6 0; then
EGIT_BRANCH="kernel_6.6" EGIT_BRANCH="kernel_6.6"
fi fi
if kernel_is gt 6 8 0; then
EGIT_BRANCH="kernel_6.8"
fi
if kernel_is gt 6 8 0; then if kernel_is gt 6 8 0; then
EGIT_BRANCH="master" EGIT_BRANCH="master"
fi fi

View File

@ -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-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-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-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-gcc10.patch 449 BLAKE2B b03c6f18f7765a1b3273c33461c299e7edf368a0a5563875fa956eefa6d18906394d3541ddc66d9c4a5ad7c6bd7c14b38709553fd03fa43608becfdf3fea7fe2 SHA512 4844610c9f516bebe37964a85810514660c7d1fcae5e6acaba8c421d61cb0e21676ed33f3a9d93f47ef974d111d455efb1a1460d5f3fc8beaa028017cadbae12
AUX ncpfs-2.2.6-gcc4.patch 1271 BLAKE2B 57b4cf96eeadd513b10ec4b6555ae4c73298304187b4bdef8e2f7d9315d1a56b225096ae25ed1a5744e5d6cc34e5dc86b84ff3adff9a91fde38e044648c259cd SHA512 b67b3a8267a76ef1fe3a128443fa96831896c3cac8f41136d3932816dfe9ab5a4d55258b6f19288c543015e53e41b691577484abf57f9163c0e3bebb4742cdbe 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 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-usr-merge.patch 514 BLAKE2B 44873b8731d062b2fe802f9ecc145509d12625be4e62b1025738a6076cb003d5577c2d5c21e338ff5fade6e0bea844a254509287a82aabc0bb92db20b0c7ec5d SHA512 cf05a0b2e41c45a8215bf1b150b79a16cdaa040c4e41ab6f361fffaa2a937fb792b464b1a9b49ecde18ae5df8e58e1887b1e965ff39adf1f05a2418f89efca11
AUX ncpfs-2.2.6-zend_function_entry.patch 296 BLAKE2B 3bb6db87517e0fb086e95462e9b567628ede7fbeef77b5d6e101dec8a316f2a5185cad8846bbaf37dada789acfedf6f6bbc75dafa92f3eb140cfde4eb038e1eb SHA512 c96723a840cb1b0cdddb91ebe74620b87a32350be084f21b741bda4e399a7648fd00522e9f2ec8404d5a98835d3f5a343dd588f4279848cc031de5bed01680e0 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 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

View File

@ -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 <stdarg.h>
#include <signal.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/wait.h>
#include <sys/errno.h>
#include <ncp/nwcalls.h>
#include <ncp/nwnet.h>

View File

@ -61,6 +61,8 @@ PATCHES=(
#"${FILESDIR}"/${P}-gcc10.patch #"${FILESDIR}"/${P}-gcc10.patch
"${FILESDIR}"/${P}-usr-merge.patch "${FILESDIR}"/${P}-usr-merge.patch
"${FILESDIR}"/${P}-fix-build-with-gcc14.patch
) )
DOCS=( FAQ README ) DOCS=( FAQ README )
@ -68,7 +70,7 @@ DOCS=( FAQ README )
src_prepare() { src_prepare() {
# Bug #273484. # Bug #273484.
sed -i '/ldconfig/d' lib/Makefile.in || die sed -i '/ldconfig/d' lib/Makefile.in || die
append-cflags -fcommon append-cflags -fcommon -Wincompatible-pointer-types
default default
} }

View File

@ -1,2 +1,2 @@
DIST teams-for-linux_1.9.0_amd64.deb 87135838 BLAKE2B d6be9c6283b4be01c735d694ceca6749fbf63539710f2cc852e1306261f89d2c88a7241e8b64dedfc5145a46471a5ccca25317d5004424877525393d7b405f34 SHA512 3d89d92ebbe5039263da824031e3c8ea6b4624c5fb0857a79368dec90f97fc026c8859470a5141ff7899ecc236af4e268c9098f17e921f81cc70c27e22ec5360 DIST teams-for-linux_1.11.3_amd64.deb 196339922 BLAKE2B 0a35b0a2c6624bf111da11e6ce76461cc453d585a8071e2138b30e6cfeb266bc6f501dd8945ccec33d6a2ecf2f0d5e3ee1af1afbd186c5fbe6611dc39cf196c6 SHA512 016114ee006dc2da1002da5cc23d148eca3d3e1e481bfffaf2572156d506b3710ca557492668713d2df586e0bfd86307300a627e47a7fd470cfe7d8269b809a7
EBUILD teams-for-linux-1.9.0.ebuild 3387 BLAKE2B 0e9031d17f3f3cab3fa8de3570c17fba700d66e35dd4d99df9054a3e7a2482d57e54c47a1d6ab08122d1fed7316a38802b28774d97d8ccebd11bbbb823d68b3f SHA512 f4a873cb21f097675309cf106edd2ff4b08dce10051cd71f5b5b4c0941bcf627b58de2983d5f59f7186cbd25d923a2ab4994f9526f2ccfd5240d9fe93f1ee462 EBUILD teams-for-linux-1.11.3.ebuild 3387 BLAKE2B 0e9031d17f3f3cab3fa8de3570c17fba700d66e35dd4d99df9054a3e7a2482d57e54c47a1d6ab08122d1fed7316a38802b28774d97d8ccebd11bbbb823d68b3f SHA512 f4a873cb21f097675309cf106edd2ff4b08dce10051cd71f5b5b4c0941bcf627b58de2983d5f59f7186cbd25d923a2ab4994f9526f2ccfd5240d9fe93f1ee462

View File

@ -1,20 +1,5 @@
DIST RASClient-19.0.23304_x86_64.tar.bz2 28644903 BLAKE2B 41f77a59774548601deb181570ee679269d8d540cfaac9598cdd39126b256778e50d71393d4deac44720efb04898f6cd9d0e14c29c0f0e1e3c84e44f9a58dfff SHA512 164380b6ec4627d1be85e798b71c3e4b865163eef65384d6dad46c03ba849ea5faf80ab53f35fd40b8d598a04ea9c5d7ebbde48af7c9559ccb26889fb8d7abad DIST RASClient-19.4.25171_x86_64.tar.bz2 32230894 BLAKE2B 24d674611b2d6c27fe4485ef8107f51f8f814f617d562617997f8708ef38961eb1d3c2cebcdb7781fe78bd5aacba899eddc5a7d29ed85e2c0f5c421d5a86f490 SHA512 7e37981f759b3e65a6943f9fa8c748fd5262c29d1a6ac23e9885ecff8b4c4a6e2dd037dc0980353df28e23f3fbca18d130f6b06c939fa8cac13b2b024964e5c3
DIST RASClient-19.1.23468_x86_64.tar.bz2 28745160 BLAKE2B 4ecb72d35628c6bfb73253d2382b2979f1cb5f28ed9a1abca26f2a9d88f7d0e576f7becec90535827c042dccfc782b8d70042913cd029ac3fcfca521d79e2e2d SHA512 0d00bcf026e0e663b79043e08949ca64442e114d0f31a3c984dd4be91c1b908f906bab47edae124d83bf7a1c46961b840fcdba66490fa46259ee8c8f29504b10 DIST RASClient-sso-19.4.25171_x86_64.tar.bz2 9324 BLAKE2B eece3e00417f3c39c7ac0f5dad9f5c0dc194cc8aa43caef303fd4c08b6d256e8f914443a1d675c8e44913318130f721332068249a2787f36fafdeb3f866519bf SHA512 e380881049586f95068caf1c69d3c3ce6b1b0d0bbd351f5f08850d3477bebc7d31a1c0513074d140e56cdc75f2cce28aca23a2a5312b8a3e5708138a281058f3
DIST RASClient-19.1.23476_x86_64.tar.bz2 28748749 BLAKE2B cb8c5f55e1677447fe61976748058fd37f8c60eaef83dbf6d68831d9f629a0fa5eb9f82de1348f306dfbfa9e2955be463c0b23b03b1ab24a865d47d34d40cf57 SHA512 e771963f4064b62417614462e1d30dd900cfa85b0da8a0020c8360c60f9d5ca1b506796444b894173b71e67b9889a93915b2d9c3e28ce8e57ed1c82db0e5eafe EBUILD rasclient-19.4.2.25171.ebuild 2002 BLAKE2B 83a3c776dd6bc7e24a351a4a0805b16c1d140996b03ccdd895d732b65e34a2f56e92746f8334d1497e7cf582b043a21325fb3b1b5adb09c9fc78432f408ee102 SHA512 c795faab8d827f210fbd3aa314fd08f8689ffed7f1c7033a66294dd366bc497ac3cedfee56bede47cd261805bcae9ba6391ebadbe9259996a85f117862790fb8
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
MISC ChangeLog 385 BLAKE2B ebe7cc81e97a7c49bd6dc63e83c4701deb3fa3cc665ae2c0c231e7d4dc79ce3a490e325dd57f962fa74b097fa3fb076ebafd6b0a3fc57d985fe6e16fc4cfc7a5 SHA512 eefdb08d4f09532d35752696b1ac758520ae01f5dca8f44fc63dbd1c7cfb3d83f7f03a32db69c051517ac36b16b9298727fc95d85b188ea336760652fb92305f MISC ChangeLog 385 BLAKE2B ebe7cc81e97a7c49bd6dc63e83c4701deb3fa3cc665ae2c0c231e7d4dc79ce3a490e325dd57f962fa74b097fa3fb076ebafd6b0a3fc57d985fe6e16fc4cfc7a5 SHA512 eefdb08d4f09532d35752696b1ac758520ae01f5dca8f44fc63dbd1c7cfb3d83f7f03a32db69c051517ac36b16b9298727fc95d85b188ea336760652fb92305f
MISC metadata.xml 408 BLAKE2B 66a3e2838d5c5f95c7463733cd13b1230ef3ca005ec0c5dac797561be30f950da98dfa41eeb4d43cf97500c9a2e0d04c57b0b084d60107072a988dd7c4d16ded SHA512 9cac3e4a07c425e87274de776e03d243e462341168235cd3991ef4706aa1a902cf6591ae8e965b9c4ed370fc2ebef3ca805a9c761d05c4b994ae8667198b267c MISC metadata.xml 408 BLAKE2B 66a3e2838d5c5f95c7463733cd13b1230ef3ca005ec0c5dac797561be30f950da98dfa41eeb4d43cf97500c9a2e0d04c57b0b084d60107072a988dd7c4d16ded SHA512 9cac3e4a07c425e87274de776e03d243e462341168235cd3991ef4706aa1a902cf6591ae8e965b9c4ed370fc2ebef3ca805a9c761d05c4b994ae8667198b267c

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -1,14 +1,14 @@
# Copyright 1999-2022 Gentoo Authors # Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=6 EAPI=7
inherit pax-utils xdg-utils versionator desktop inherit xdg-utils desktop
PV_MAJ=$(get_major_version ) PV_MAJ=$(ver_cut 1)
PV_MIN=$(get_version_component_range 2) PV_MIN=$(ver_cut 2)
PV_SUB=$(get_version_component_range 3) PV_SUB=$(ver_cut 3)
PV_DIF=$(get_version_component_range 4) PV_DIF=$(ver_cut 4)
MY_PV="${PV_MAJ}.${PV_MIN}.${PV_DIF}" MY_PV="${PV_MAJ}.${PV_MIN}.${PV_DIF}"
DESCRIPTION="Parallels Remote Application Client" DESCRIPTION="Parallels Remote Application Client"

View File

@ -1,4 +1,4 @@
DIST RemoteDesktopManager_2024.2.1.1_amd64.deb 212387392 BLAKE2B 3f5bacd01a793ec1ae9d2f90ae2f4398ea87d034304be4bd5c9c050424c4bd010ca53eb3863027aaec251dee46ca0abc964774e1543111c1b46bc40bf52c06c0 SHA512 6f0d2f48f6e874b18a01d49ef9becace2a8158d7e8039fb335195203ae5f0b33402f5dc4647c98d104c42647845c133ef3611b7a67ae6537b71d590c09f1f95f DIST RemoteDesktopManager_2024.3.1.2_amd64.deb 231593064 BLAKE2B 29d813208edf25f8be972f1cf343a99c3fe8c89cef662518fcec7df1995ad38b9a51521bfcc2e2c5cd1c8868c719b21294e943a8c312d52b447457b7502c3c91 SHA512 ef846ea9806af958c771220fcfbd95dbd15593cebe52a8a9fe9916a6e65b0f7cfc4c5c49c41b5cc5e280b7f784f9a6713b549e471daf0f4ad6cf542eaa4dcfcc
EBUILD remotedesktopmanager-2024.2.1.1.ebuild 1416 BLAKE2B 590a23f7c6251986494d63e160802650ff5f4792eebe3415f139e1e8dbe3fdb6de1222f4ff813118db4a396bdc22e3c542156ec626e8bb06f55bc48ac4988eba SHA512 5946e962d05a917faa3edea728a962a1218f11d4f778e2d66d208991fdff672ef001445e248dafc52a476b695dd07c248438d127d09ad26202624ba5459573bd EBUILD remotedesktopmanager-2024.3.1.2.ebuild 1416 BLAKE2B 590a23f7c6251986494d63e160802650ff5f4792eebe3415f139e1e8dbe3fdb6de1222f4ff813118db4a396bdc22e3c542156ec626e8bb06f55bc48ac4988eba SHA512 5946e962d05a917faa3edea728a962a1218f11d4f778e2d66d208991fdff672ef001445e248dafc52a476b695dd07c248438d127d09ad26202624ba5459573bd
MISC ChangeLog 889 BLAKE2B 216bbbfe9b264ef06f5b56748af1ea7366fa49f2406604264b7d22ce8f464ffd7491a57912d7cf1be7d3dc030578960acca895236d6e06fd017f02a9138f0b7f SHA512 09aa97933a9709827b6e3c01ce8a3829cb3d494f7fdac570faa30da6fac440c752391d8dcaf7d03c5cd1163686e8921c1bf4ad75827e4b8df05bbcde03548488 MISC ChangeLog 889 BLAKE2B 216bbbfe9b264ef06f5b56748af1ea7366fa49f2406604264b7d22ce8f464ffd7491a57912d7cf1be7d3dc030578960acca895236d6e06fd017f02a9138f0b7f SHA512 09aa97933a9709827b6e3c01ce8a3829cb3d494f7fdac570faa30da6fac440c752391d8dcaf7d03c5cd1163686e8921c1bf4ad75827e4b8df05bbcde03548488
MISC metadata.xml 408 BLAKE2B 66a3e2838d5c5f95c7463733cd13b1230ef3ca005ec0c5dac797561be30f950da98dfa41eeb4d43cf97500c9a2e0d04c57b0b084d60107072a988dd7c4d16ded SHA512 9cac3e4a07c425e87274de776e03d243e462341168235cd3991ef4706aa1a902cf6591ae8e965b9c4ed370fc2ebef3ca805a9c761d05c4b994ae8667198b267c MISC metadata.xml 408 BLAKE2B 66a3e2838d5c5f95c7463733cd13b1230ef3ca005ec0c5dac797561be30f950da98dfa41eeb4d43cf97500c9a2e0d04c57b0b084d60107072a988dd7c4d16ded SHA512 9cac3e4a07c425e87274de776e03d243e462341168235cd3991ef4706aa1a902cf6591ae8e965b9c4ed370fc2ebef3ca805a9c761d05c4b994ae8667198b267c