diff options
89 files changed, 1140 insertions, 15630 deletions
diff --git a/libre/cdfs-libre/PKGBUILD b/libre/cdfs-libre/PKGBUILD index 700c6b818..64bcc5bb4 100644 --- a/libre/cdfs-libre/PKGBUILD +++ b/libre/cdfs-libre/PKGBUILD @@ -6,7 +6,7 @@ _pkgname=cdfs pkgname=cdfs-libre pkgver=2.6.27 -pkgrel=27 +pkgrel=28 pkgdesc="File system module libre that 'exports' all tracks and boot images on a CD as normal files." arch=(i686 x86_64) url="http://www.elis.UGent.be/~ronsse/cdfs/" diff --git a/libre/iceweasel-i18n/PKGBUILD b/libre/iceweasel-i18n/PKGBUILD index 47a48dc9c..16acf66e2 100755 --- a/libre/iceweasel-i18n/PKGBUILD +++ b/libre/iceweasel-i18n/PKGBUILD @@ -9,7 +9,7 @@ # - Run 'make'. It will take care of everything else for you. _debname=iceweasel -_debver=15.0 +_debver=15.0.1 _debrel=1 _debrepo=http://ftp.debian.org/debian/pool/main/ debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; } @@ -20,7 +20,7 @@ pkgbase=iceweasel-i18n pkgname=($(for lang in ${_langpacks[@]} do echo $pkgbase-$lang | tr A-Z a-z done)) -_pkgver=15.0 +_pkgver=15.0.1 pkgver=${_debver}.${_debrel} pkgrel=1 @@ -56,90 +56,90 @@ package_iceweasel-i18n-$(echo $lang | tr A-Z a-z)() { " done -md5sums=('41a9b0d39466ec63707c77feb010f97c' - 'a868d76268f52f911683dce647af46b5' - '9eec699d60ca812ffbbf5939522b8393' - '388f4fbbe2266ba7b4896075c2bdbaef' - 'c64bc2261a3a5767f714a460255b15d5' - '2fc0a0395c1d92dd2529291258b7240b' - '0f59e1738c1b37d54b3bb05c2f7853a3' - '68ebd3ec4fc55187dafbfe599f62112e' - 'be4852fbb9c11b36648205f8f1f6cbd1' - 'e68a36c7cefc90e3c61f7d134bb838c7' - 'd242789df2d520b65fc88c1d3df0eae0' - 'e6c527cde3251a8409f16ea0bb278b03' - 'beeba513659afd8e0887a44a9cc44a57' - 'e8f4d9eee6eb1c270f99ddf08359c672' - '618fa08cfbe2ff33581ace766b2828fb' - '0d31f1a718ed91b6b1df885b205c7a75' - 'd823ae880fb0a193d107bc9546206299' - '4c446ef16e61f335f93eace4251f5d8c' - '2129b44ef2edd6223ff731e05aae5112' - 'ca4b27e3b8b9235235b0c59e7fb5e343' - 'ce2f7887eb064983923d917b094d14c2' - '8a5b6b934eb27b706aa52945256f32cf' - 'd6396fe6459c597572a10d1e02f195eb' - '78281b9ebd8a78f37ff6a8af07518cb7' - '36add693276f7d5c73f59e927d4645e4' - '93cafe70ca3b3b36ba0a56b4b4b4a7f9' - '6d911ee10f75ad316861ee6b8c435887' - 'ccd8d4f9ed54aa56e728508e42ec3538' - '4ef4fb5ef6b814bb414e4fed06ca7b14' - '7b49e8f2479c32c9435151a8e139f411' - '4f5974e5d1ec83a598892b729bbca5dc' - '3caf262ec4e12a3166cccbf2e163ec82' - 'eb4be46606957c856cf5d87c337184ca' - '45001918dacec18fb0db953c56e04032' - '766c6f9a84f6930317603d2014bd0a84' - 'bfe20727eb714f616c4a5cdee7300584' - 'fc6701b477ad209a3edb1429b529027f' - '5fb299bd54fd3fa10cf91d88d77df4e0' - '3b1988b200c303747aebfde97cb9333d' - '79bd597a764676dd1fddcf5e0a2aa646' - '9f63e8b4493063c770b835e80f883b66' - 'e9524c247402faaa8b767a93a5e5773a' - '457ae04a4f7437c0b16d1c021be71574' - '77828bdeef9d6e9b78719be537cb0491' - '4bb2c8bd527aed47ef0c50b3861fb2a4' - '4d94a161e882de38616c8344d1d2994a' - '098f4d49f2335cab2a5070c35d5f69e4' - '0deda71dbfb0b07b378de1de9209e047' - '331fab3aae394ef3a3674f4582d0b538' - '4daa8de8b393385d03379ed49b421bb3' - '60534b0e61dd9499ddb3ff3a29026b2f' - '519299dfc4764e987ece840b630fa8c9' - 'a13a1bc158353eadedd4d9a22f7a78fd' - '39804bd399a955cde36db0e7bfc0afd2' - '1c24d64463fb742fddb438939302a770' - 'a3246566714da549faaefed6a082747e' - '7d06acae2f3a3bc15344502cdef25bf0' - '68b3f9e98df3ddcca5458695297a6581' - '6cc30b2ec4e75c45a41bcd328385e285' - 'a0df4e646a376f8dce539309a057c340' - '8745389d916b522df730ea457fcc7b20' - '4982a6a88b3bf883b21633e3561a41d7' - '41ddec979a26c2fd6b212285cfa26b3c' - '7ac36674bd749e11c2a28cb646ed420c' - 'ba855d101c76ead73e7d4d7a74839a2b' - '4f2abadda53b3f0c0eeeb2bbefc96991' - '67e448c17a2ee9f981743427e6e69d69' - '90a365963d579ecb9d2681f0510b665f' - '92d635cf265e0eec023d80034b0d1cd0' - 'edd7160a59c4210b64bd384ee3196f76' - 'cd3c038c61d7ce643a01808ed88d92d0' - 'e5e07573a583ffc660f6ec846658b266' - '99e79e501170ca8a452d25eed5cfeab6' - 'dd6e06943820e0731d3b1697ac12d353' - 'c263cdeff3879481dc6b7cf44df9364a' - '3656bf7eba6a1042f3fa19c8cb494339' - '923313a52e0bf228fe2d41345401b296' - '1ba11249737fc1e2e61952e17fe764ec' - '8103d1b2f18f25df4b7702e3f1fc23ef' - '5d9cdf21c5bbd7bab97b10d9784f538e' - '4c032777e914f0e30cfeb2d1627f2b14' - '45a462e14b8e2c44d064f4bb6dffd3f5' - '075d374f6ee205df5b0f56629c0234fa' - '49517a540428d07cbf6809d96eecdd85' - '60f7b29f1325a6de41c45af2cb2423ba' - '8a000cb0afcb6655f7c626c05a313873' - '90e94eef2a30d9c20ecb0103d0203981')
\ No newline at end of file +md5sums=('79831dfa9c7bc1d225c1e0731aa1812d' + '5064fdac19ceb7a0e7591e3d5227c71a' + '58e40739dfdef056300b69f3ff243bf7' + '9b1e8be0c7e9f11c1b6833622c41f7f7' + 'f2cc2ab7fd4efb94a0abc2ed9f8dcd99' + '0c6b8d597963363d4deff2ba302933cb' + '4caf1810d3ec159aaee5aabe5fb41015' + '052e9fb61183919a9cef0ba3a21c1065' + '22a4011c70c2c7f2feb56ba9aa1b75b3' + 'e450bdc0489c13da7007046efde141d7' + '1066e9b63a9615e5e705abd050886381' + 'fb21b42b85f72d29ad104ee518f86816' + '261c4edc8eb830256e60221be390d573' + '489f7bf241f72945dd8003b7d579505a' + 'e53715797a28a95dd5ebb094695f5d7d' + '965568dae2adacfaa89af19861bdd3c8' + '2c0f1dadd9dad562405bc10633e9ea55' + '6d35c2d76d364a858f60cbb8b0660a87' + 'b735ed5cffb084c1c91146d27c4023f5' + '263a9856b1a3a00b629a22f2f69c6d4e' + '6b9235119e92fe3625e7ee12ad3cf7f1' + '2a8e8f053bd70a889a15bdac9e7b48de' + '337990a6b6b32cd8602617f0542577ad' + '48613cca6a97c02403cc9690e9fd8d2c' + '8be32d05a78f7276a4a6c4fcad6de138' + 'a6ea3d88bfd8f4ef58e484639cd2a699' + 'c1d0d16819bddceed43b25e4840c5e87' + '2dcd5644c1c95add25902727e9ac7d42' + '15176fb56b7c67949ca1d29ee02ce978' + '5fc634287dae98715ce017421212cc04' + '3076e60893d0e6cd32c679d021d00630' + '0157ff70e0e09a501525c56cd3b88ea4' + 'd96211027a8225e2f72bd68abd664949' + 'ffdfb3c66259660494af038d4079c097' + 'b891b408f643120a985c9cac9e81742a' + '16353581281c2bec3c937e089fb6457e' + '3b74bab168b0e0b463082a7adfef27de' + '350212900b1b5dedfde431f3fabbf9c9' + '06939ccc30180980ea6e12eae31495c9' + '29c8cf5d130e5592b1814dcc51a2dae2' + '18bc79a25230dffe1c27ec017eb96fd1' + '55ffa67fd02875c87b2b59b3359d68b8' + '0ecb61d1344ade52509604e9586b2d4c' + '8eef6c0339ca718a14cdc74b9886908b' + '5b70ad36f87875e1743586e04b12a411' + '18ff63b7fb7b48c240c23d8b7b664ca9' + 'fd70ac793964f2ce3714f302b30406f7' + 'f06d30c67e79b8ba8fe8140dcc6a7135' + '1ce03a6583705dd86d2badc7892fe93d' + '6fd4037255e5cf8839dab79ecef04e27' + '2ac8f87c1506270fd245e94e0ac3518a' + '68ef53993504ce07ff1f6afde33cb81c' + '49c5830b53b99102543eef7314207309' + '8dc5f8b6b93e94b576ea8c10275487e5' + '8f17ba770e49782537f1735260c03541' + '96c8f2567b232854a725163160c65448' + '58e122361c24f596e2ab7a4db0bdee2e' + 'a54c41dc316660ce259451a15601644c' + '6938ca2d179eb378affc3cb42cc2c246' + 'ed3a70fc0f5ede98f3d11183c0d9617b' + 'dd9f39a6c00a2ee8afd86385a6befe61' + 'a2c421a7c15a1756f8b08806b84c448f' + '5bd32e2abf133b3ba7a38c870961a2b5' + '8d3715ee6389fc20989189ece7dac88b' + 'cc3cd43d79e2e952118e589e9cdb1519' + 'bbb1bd76a28f5f339786a15a82dc6511' + '6e305cf35820a7eb81f233ad4cf0c6b3' + 'f268902fa45c71b989ae84bff17dfad7' + 'fc19d4e5c1fe55aed5e7ff81f4c5840a' + '983e4aade5b9f3744db59cd3e36f4957' + '88323b7e6cf6f5e3a4ce1a23fc818f13' + 'e6ab0d4d5e9d3e1b7f7b994998667931' + '572900c28726fc8aa25de53af7769218' + '21b497ea035a29df60fd3e8d07b56ddd' + '8a1667e492f18344ebcbbff72b9397e8' + '007462b1c8d812c56ab5d1856f15ca3e' + '8bd629c3984be0f9deeea91515d7367e' + '6853d129015e003996ccd94cf3873893' + 'def9852b081ab0bfe9217341e1a180e0' + '3c41610d639a0d30fc38bcdfe69925f6' + '934acd8b6f51527c3d384d268b054311' + '390d48709061fe8fa586c6e5ccd36fee' + 'f02a6c5c7ff53d61576d63258e65214c' + 'cdba209a41e8d6336539dab4fb4dcfbf' + '98651af79417b210a85702e40c19d4fb' + '016841fdf23b1e3ee4d4dcb5626a8dad' + '59128bae2e6a3cf053e191bf632c47d6')
\ No newline at end of file diff --git a/libre/iceweasel-libre/PKGBUILD b/libre/iceweasel-libre/PKGBUILD index 59435e71a..8eb6ef769 100755 --- a/libre/iceweasel-libre/PKGBUILD +++ b/libre/iceweasel-libre/PKGBUILD @@ -14,7 +14,7 @@ _pgo=false # We're getting this from Debian Experimental _debname=iceweasel -_debver=15.0 +_debver=15.0.1 _debrel=1 _debrepo=http://ftp.debian.org/debian/pool/main/ debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; } @@ -52,8 +52,8 @@ source=("${_debrepo}/`debfile ${_debname}`_${_debver}.orig.tar.bz2" vendor.js shared-libs.patch Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch) -md5sums=('aa5a7f08f55a2b02a71c86f30ef75a25' - 'b93090724434e3801375730744e79950' +md5sums=('0936242388cd4c75930c1d2487e15216' + 'ce37c76476b8edf40780d00cf79d0d62' 'eab149c1994ab14392e55af3abb08e80' 'ac29b01c189f20abae2f3eef1618ffc0' 'a485a2b5dc544a8a2bd40c985d2e5813' diff --git a/libre/kdenetwork-kopete-libre/PKGBUILD b/libre/kdenetwork-kopete-libre/PKGBUILD index 0ec26edcd..7b7d47180 100755 --- a/libre/kdenetwork-kopete-libre/PKGBUILD +++ b/libre/kdenetwork-kopete-libre/PKGBUILD @@ -6,7 +6,7 @@ pkgbase=kdenetwork pkgname=('kdenetwork-kopete-libre') pkgver=4.9.1 -pkgrel=1 +pkgrel=3 arch=('i686' 'x86_64') url='http://www.kde.org' license=('GPL' 'LGPL' 'FDL') diff --git a/libre/linux-libre-lts/PKGBUILD b/libre/linux-libre-lts/PKGBUILD index 03c280487..77bc80f7d 100755 --- a/libre/linux-libre-lts/PKGBUILD +++ b/libre/linux-libre-lts/PKGBUILD @@ -7,10 +7,10 @@ pkgbase=linux-libre-lts # Build stock -LIBRE-LTS kernel #pkgbase=linux-libre-custom # Build kernel with a different name _basekernel=3.0 -_sublevel=42 +_sublevel=43 pkgver=${_basekernel}.${_sublevel} pkgrel=1 -_lxopkgver=${_basekernel}.41 # nearly always the same as pkgver +_lxopkgver=${_basekernel}.43 # nearly always the same as pkgver arch=('i686' 'x86_64' 'mips64el') url="http://linux-libre.fsfla.org/" license=('GPL2') @@ -30,9 +30,9 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn 'ext4-options.patch' "http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/debuginfo/linux-patches-${_lxopkgver}-gnu_0loongsonlibre_mipsel.tar.bz2") md5sums=('5f64180fe7df4e574dac5911b78f5067' - '8f1c9341d99e941b07d1d6f85f1953aa' - '8cd05778fc1c2d8145b3b9932b4e3164' - '87a54dc6251cf2adf35f72ddeddb6ea8' + 'c4b4e6d908e70fc6f991a1789a3ac620' + '2e7d5f58da4d66e87bbe2c9294c50aef' + '77608e2de7b30a08ecd8e422bf2b16bb' 'c072b17032e80debc6a8626299245d46' '2967cecc3af9f954ccc822fd63dca6ff' '8267264d9a8966e57fdacd1fa1fc65c4' @@ -40,7 +40,7 @@ md5sums=('5f64180fe7df4e574dac5911b78f5067' '9d3c56a4b999c8bfbd4018089a62f662' '263725f20c0b9eb9c353040792d644e5' 'f36222e7ce20c8e4dc27376f9be60f6c' - '1f082cc9e5a18e227f7a044ff429914a') + '2c4870ef22f87ef885f3be392d1aaa90') if [ "$CARCH" != "mips64el" ]; then # Don't use the Loongson-specific patches on non-mips64el arches. unset source[${#source[@]}-1] @@ -224,11 +224,11 @@ _package() { mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_localversionname:--LIBRE-LTS}" echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_localversionname:--LIBRE-LTS}/version" - # move module tree /lib -> /usr/lib - mv "$pkgdir/lib" "$pkgdir/usr" - # Now we call depmod... depmod -b "$pkgdir" -F System.map "$_kernver" + + # move module tree /lib -> /usr/lib + mv "$pkgdir/lib" "$pkgdir/usr" } _package-headers() { diff --git a/libre/linux-libre-lts/config.i686 b/libre/linux-libre-lts/config.i686 index f4e10c441..74d543f70 100755 --- a/libre/linux-libre-lts/config.i686 +++ b/libre/linux-libre-lts/config.i686 @@ -1,6 +1,6 @@ # # Automatically generated make config: don't edit -# Linux/i386 3.0.40-2 Kernel Configuration +# Linux/i386 3.0.43-1 Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -81,7 +81,7 @@ CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y -# CONFIG_FHANDLE is not set +CONFIG_FHANDLE=y CONFIG_TASKSTATS=y CONFIG_TASK_DELAY_ACCT=y CONFIG_TASK_XACCT=y @@ -107,7 +107,6 @@ CONFIG_IRQ_FORCED_THREADING=y # RCU Subsystem # CONFIG_TREE_RCU=y -# CONFIG_TREE_PREEMPT_RCU is not set # CONFIG_PREEMPT_RCU is not set # CONFIG_RCU_TRACE is not set CONFIG_RCU_FANOUT=32 @@ -3446,6 +3445,7 @@ CONFIG_VIDEO_CX18_ALSA=m CONFIG_VIDEO_SAA7164=m CONFIG_VIDEO_CAFE_CCIC=m CONFIG_VIDEO_SR030PC30=m +CONFIG_VIDEO_VIA_CAMERA=m CONFIG_VIDEO_NOON010PC30=m CONFIG_VIDEO_M5MOLS=m CONFIG_SOC_CAMERA=m @@ -3871,7 +3871,9 @@ CONFIG_FB_I810_I2C=y # CONFIG_FB_S3 is not set # CONFIG_FB_SAVAGE is not set # CONFIG_FB_SIS is not set -# CONFIG_FB_VIA is not set +CONFIG_FB_VIA=m +CONFIG_FB_VIA_DIRECT_PROCFS=y +CONFIG_FB_VIA_X_COMPATIBILITY=y # CONFIG_FB_NEOMAGIC is not set # CONFIG_FB_KYRO is not set # CONFIG_FB_3DFX is not set @@ -5052,7 +5054,7 @@ CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y CONFIG_NILFS2_FS=m CONFIG_FS_POSIX_ACL=y -CONFIG_EXPORTFS=m +CONFIG_EXPORTFS=y CONFIG_FILE_LOCKING=y CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y diff --git a/libre/linux-libre-lts/config.x86_64 b/libre/linux-libre-lts/config.x86_64 index 80f5a7aca..e43cc343c 100755 --- a/libre/linux-libre-lts/config.x86_64 +++ b/libre/linux-libre-lts/config.x86_64 @@ -1,6 +1,6 @@ # # Automatically generated make config: don't edit -# Linux/x86_64 3.0.40-2 Kernel Configuration +# Linux/x86_64 3.0.43-1 Kernel Configuration # CONFIG_64BIT=y # CONFIG_X86_32 is not set @@ -82,7 +82,7 @@ CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y -# CONFIG_FHANDLE is not set +CONFIG_FHANDLE=y CONFIG_TASKSTATS=y CONFIG_TASK_DELAY_ACCT=y CONFIG_TASK_XACCT=y @@ -108,7 +108,6 @@ CONFIG_IRQ_FORCED_THREADING=y # RCU Subsystem # CONFIG_TREE_RCU=y -# CONFIG_TREE_PREEMPT_RCU is not set # CONFIG_PREEMPT_RCU is not set # CONFIG_RCU_TRACE is not set CONFIG_RCU_FANOUT=64 @@ -3280,6 +3279,7 @@ CONFIG_VIDEO_CX18_ALSA=m CONFIG_VIDEO_SAA7164=m CONFIG_VIDEO_CAFE_CCIC=m CONFIG_VIDEO_SR030PC30=m +CONFIG_VIDEO_VIA_CAMERA=m CONFIG_VIDEO_NOON010PC30=m CONFIG_VIDEO_M5MOLS=m CONFIG_SOC_CAMERA=m @@ -3684,7 +3684,9 @@ CONFIG_FB_EFI=y # CONFIG_FB_S3 is not set # CONFIG_FB_SAVAGE is not set # CONFIG_FB_SIS is not set -# CONFIG_FB_VIA is not set +CONFIG_FB_VIA=m +CONFIG_FB_VIA_DIRECT_PROCFS=y +CONFIG_FB_VIA_X_COMPATIBILITY=y # CONFIG_FB_NEOMAGIC is not set # CONFIG_FB_KYRO is not set # CONFIG_FB_3DFX is not set @@ -4793,7 +4795,7 @@ CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y CONFIG_NILFS2_FS=m CONFIG_FS_POSIX_ACL=y -CONFIG_EXPORTFS=m +CONFIG_EXPORTFS=y CONFIG_FILE_LOCKING=y CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y diff --git a/libre/linux-libre-lts/linux-libre-lts.install b/libre/linux-libre-lts/linux-libre-lts.install index 05124e7ab..d24939c13 100755 --- a/libre/linux-libre-lts/linux-libre-lts.install +++ b/libre/linux-libre-lts/linux-libre-lts.install @@ -2,7 +2,7 @@ # arg 2: the old package version KERNEL_NAME=-lts -KERNEL_VERSION=3.0.42-1-LIBRE-LTS +KERNEL_VERSION=3.0.43-1-LIBRE-LTS # set a sane PATH to ensure that critical utils like depmod will be found export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' diff --git a/libre/linux-libre/PKGBUILD b/libre/linux-libre/PKGBUILD index e63be980b..45888f407 100755 --- a/libre/linux-libre/PKGBUILD +++ b/libre/linux-libre/PKGBUILD @@ -10,10 +10,10 @@ pkgbase=linux-libre # Build stock -LIBRE kernel #pkgbase=linux-libre-custom # Build kernel with a different name _basekernel=3.5 -_sublevel=3 +_sublevel=4 pkgver=${_basekernel}.${_sublevel} pkgrel=1 -_lxopkgver=${_basekernel}.2 # nearly always the same as pkgver +_lxopkgver=${_basekernel}.4 # nearly always the same as pkgver arch=('i686' 'x86_64' 'mips64el') url="http://linux-libre.fsfla.org/" license=('GPL2') @@ -34,9 +34,9 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn 'i915-i2c-crash-3.5.x.patch' "http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/debuginfo/linux-patches-${_lxopkgver}-gnu_0loongsonlibre_mipsel.tar.bz2") md5sums=('2407fc9563a74acaf38aa0c06516eb1c' - '861f5f97c75b1a572fc5078605248ea3' - '3ba164b409d8024fdd433f3cc4ae1fea' - 'fa1e2ab2f036974199374f015f5a2c46' + '51fd8205ef5bcebc8c777a30c57b1fa2' + 'd83444b46ed5088e47f38cce2641023c' + '1ca6f15729d07ae7b3969eea3b4d8cff' 'e49ac236dfeef709f91a3d993ea7b62c' '2967cecc3af9f954ccc822fd63dca6ff' '8267264d9a8966e57fdacd1fa1fc65c4' @@ -45,7 +45,7 @@ md5sums=('2407fc9563a74acaf38aa0c06516eb1c' 'c1d58e712112cf8f95e7831012a1e67a' 'ae13ed1e92bba07e9b17cf5c8d89683c' 'ff4a203dd52e4dfb5d60948bb667d06d' - 'd822cc131b20090f39b0d448b0e1f8be') + 'd5c5a9bb87544c9fbc19c661802f9020') if [ "$CARCH" != "mips64el" ]; then # Don't use the Loongson-specific patches on non-mips64el arches. unset source[${#source[@]}-1] @@ -65,10 +65,6 @@ build() { # Add freedo as boot logo patch -Np1 -i "${srcdir}/boot-logo.patch" - # fix alsa powersave bug, probably fixed in 3.5.4 - # https://bugs.archlinux.org/task/31255 - patch -Np1 -i "${srcdir}/alsa-powersave-3.5.x.patch" - # fix broken watchdog # https://bugzilla.kernel.org/show_bug.cgi?id=44991 patch -Np1 -i "${srcdir}/watchdog-3.5.x.patch" @@ -228,11 +224,11 @@ _package() { mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_localversionname:--LIBRE}" echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_localversionname:--LIBRE}/version" - # move module tree /lib -> /usr/lib - mv "$pkgdir/lib" "$pkgdir/usr" - # Now we call depmod... depmod -b "$pkgdir" -F System.map "$_kernver" + + # move module tree /lib -> /usr/lib + mv "$pkgdir/lib" "$pkgdir/usr" } _package-headers() { diff --git a/libre/linux-libre/config.i686 b/libre/linux-libre/config.i686 index 54db12ba1..64792e25e 100755 --- a/libre/linux-libre/config.i686 +++ b/libre/linux-libre/config.i686 @@ -73,7 +73,7 @@ CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y -# CONFIG_FHANDLE is not set +CONFIG_FHANDLE=y CONFIG_TASKSTATS=y CONFIG_TASK_DELAY_ACCT=y CONFIG_TASK_XACCT=y @@ -4090,7 +4090,9 @@ CONFIG_FB_I810_I2C=y # CONFIG_FB_S3 is not set # CONFIG_FB_SAVAGE is not set # CONFIG_FB_SIS is not set -# CONFIG_FB_VIA is not set +CONFIG_FB_VIA=m +CONFIG_FB_VIA_DIRECT_PROCFS=y +CONFIG_FB_VIA_X_COMPATIBILITY=y # CONFIG_FB_NEOMAGIC is not set # CONFIG_FB_KYRO is not set # CONFIG_FB_3DFX is not set diff --git a/libre/linux-libre/config.x86_64 b/libre/linux-libre/config.x86_64 index 31da569ad..14112f8c1 100755 --- a/libre/linux-libre/config.x86_64 +++ b/libre/linux-libre/config.x86_64 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86_64 3.5.0-2 Kernel Configuration +# Linux/x86_64 3.5.4-1 Kernel Configuration # CONFIG_64BIT=y # CONFIG_X86_32 is not set @@ -74,7 +74,7 @@ CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y -# CONFIG_FHANDLE is not set +CONFIG_FHANDLE=y CONFIG_TASKSTATS=y CONFIG_TASK_DELAY_ACCT=y CONFIG_TASK_XACCT=y @@ -335,7 +335,7 @@ CONFIG_X86_MPPARSE=y CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_PARAVIRT_GUEST=y -CONFIG_PARAVIRT_TIME_ACCOUNTING=y +CONFIG_PARAVIRT_TIME_ACCOUNTING=y CONFIG_XEN=y CONFIG_XEN_DOM0=y CONFIG_XEN_PRIVILEGED_GUEST=y @@ -668,7 +668,7 @@ CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y CONFIG_BINFMT_MISC=y CONFIG_IA32_EMULATION=y CONFIG_IA32_AOUT=m -# CONFIG_X86_X32 is not set +CONFIG_X86_X32=y CONFIG_COMPAT=y CONFIG_COMPAT_FOR_U64_ALIGNMENT=y CONFIG_SYSVIPC_COMPAT=y @@ -2898,6 +2898,7 @@ CONFIG_I2C_SCMI=m # # I2C system bus drivers (mostly embedded / system-on-chip) # +CONFIG_I2C_DESIGNWARE_CORE=m CONFIG_I2C_DESIGNWARE_PCI=m CONFIG_I2C_EG20T=m # CONFIG_I2C_GPIO is not set @@ -3924,7 +3925,9 @@ CONFIG_FB_EFI=y # CONFIG_FB_S3 is not set # CONFIG_FB_SAVAGE is not set # CONFIG_FB_SIS is not set -# CONFIG_FB_VIA is not set +CONFIG_FB_VIA=m +CONFIG_FB_VIA_DIRECT_PROCFS=y +CONFIG_FB_VIA_X_COMPATIBILITY=y # CONFIG_FB_NEOMAGIC is not set # CONFIG_FB_KYRO is not set # CONFIG_FB_3DFX is not set @@ -5103,7 +5106,7 @@ CONFIG_BTRFS_FS_POSIX_ACL=y # CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set CONFIG_NILFS2_FS=m CONFIG_FS_POSIX_ACL=y -CONFIG_EXPORTFS=m +CONFIG_EXPORTFS=y CONFIG_FILE_LOCKING=y CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y diff --git a/libre/linux-libre/linux-libre.install b/libre/linux-libre/linux-libre.install index 0cd51930e..8b449331b 100755 --- a/libre/linux-libre/linux-libre.install +++ b/libre/linux-libre/linux-libre.install @@ -2,7 +2,7 @@ # arg 2: the old package version KERNEL_NAME= -KERNEL_VERSION=3.5.3-1-LIBRE +KERNEL_VERSION=3.5.4-1-LIBRE # set a sane PATH to ensure that critical utils like depmod will be found export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' diff --git a/libre/lirc-libre/PKGBUILD b/libre/lirc-libre/PKGBUILD index 0968afd17..bcb82132a 100755 --- a/libre/lirc-libre/PKGBUILD +++ b/libre/lirc-libre/PKGBUILD @@ -6,7 +6,7 @@ _pkgbase=lirc pkgbase=lirc-libre pkgname=('lirc-libre' 'lirc-utils-libre') pkgver=0.9.0 -pkgrel=26 +pkgrel=27 epoch=1 _extramodules=extramodules-3.5-LIBRE arch=('i686' 'x86_64' 'mips64el') diff --git a/libre/tp_smapi-libre/PKGBUILD b/libre/tp_smapi-libre/PKGBUILD index be2b8de26..add9fd496 100644 --- a/libre/tp_smapi-libre/PKGBUILD +++ b/libre/tp_smapi-libre/PKGBUILD @@ -11,7 +11,7 @@ _pkgname=tp_smapi pkgname=tp_smapi-libre pkgver=0.41 -pkgrel=5 +pkgrel=6 pkgdesc="Modules for ThinkPad's SMAPI functionality" arch=('i686' 'x86_64') url='https://github.com/evgeni/tp_smapi' diff --git a/libre/vhba-module-libre/PKGBUILD b/libre/vhba-module-libre/PKGBUILD index 51c847e40..0d01ae1e6 100755 --- a/libre/vhba-module-libre/PKGBUILD +++ b/libre/vhba-module-libre/PKGBUILD @@ -7,7 +7,7 @@ _pkgname=vhba-module pkgname=vhba-module-libre pkgver=20120422 _extramodules=extramodules-3.5-LIBRE -pkgrel=8 +pkgrel=9 pkgdesc="Kernel libre module that emulates SCSI devices" arch=('i686' 'x86_64') url="http://cdemu.sourceforge.net/" diff --git a/libre/virtualbox-libre-modules-lts/60-vboxguest.rules b/libre/virtualbox-libre-modules-lts/60-vboxguest.rules deleted file mode 100755 index 6285f7249..000000000 --- a/libre/virtualbox-libre-modules-lts/60-vboxguest.rules +++ /dev/null @@ -1,2 +0,0 @@ -ACTION=="add", KERNEL=="vboxguest", SUBSYSTEM=="misc", OWNER="root", MODE="0600" -ACTION=="add", KERNEL=="vboxuser", SUBSYSTEM=="misc", OWNER="root", MODE="0666" diff --git a/libre/virtualbox-libre-modules-lts/LocalConfig.kmk b/libre/virtualbox-libre-modules-lts/LocalConfig.kmk deleted file mode 100755 index af79f90cd..000000000 --- a/libre/virtualbox-libre-modules-lts/LocalConfig.kmk +++ /dev/null @@ -1,19 +0,0 @@ -VBOX_WITH_ADDITION_DRIVERS = -VBOX_WITH_INSTALLER = 1 -VBOX_WITH_LINUX_ADDITIONS = 1 -VBOX_WITH_X11_ADDITIONS = -VBOX_WITH_TESTCASES = -VBOX_WITH_TESTSUITE = -VBOX_WITH_ORIGIN := -VBOX_PATH_APP_PRIVATE_ARCH := /usr/lib/virtualbox -VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH) -VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH) -VBOX_PATH_APP_PRIVATE := /usr/share/virtualbox -VBOX_PATH_APP_DOCS := /usr/share/virtualbox -VBOX_WITH_REGISTRATION_REQUEST = -VBOX_WITH_UPDATE_REQUEST = -VBOX_WITH_VNC := 1 -VBOX_BLD_PYTHON = python2 -VBOX_JAVA_HOME = /usr/lib/jvm/java-6-openjdk -VBOX_GCC_WERR = -VBOX_GCC_WARN = diff --git a/libre/virtualbox-libre-modules-lts/PKGBUILD b/libre/virtualbox-libre-modules-lts/PKGBUILD index a3355d582..13a37fe88 100755..100644 --- a/libre/virtualbox-libre-modules-lts/PKGBUILD +++ b/libre/virtualbox-libre-modules-lts/PKGBUILD @@ -1,153 +1,71 @@ # $Id$ # Maintainer: Bartłomiej Piotrowski <nospam@bpiotrowski.pl> -# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com> -# Maintainer (Parabola): André Silva <emulatorman@lavabit.com> +# Contributor: Ionut Biru <ibiru@archlinux.org> +# Contributor: Sébastien Luttringer <seblu@aur.archlinux.org> # Maintainer (Parabola): Jorge López <jorginho@lavabit.com> +# Maintainer (Parabola): André Silva <emulatorman@lavabit.com> pkgbase=virtualbox-libre-modules-lts -pkgname=('virtualbox-libre-modules-lts' 'virtualbox-libre-parabola-modules-lts') -pkgver=4.1.22 -pkgrel=1 +pkgname=('virtualbox-libre-host-modules-lts' 'virtualbox-libre-guest-modules-lts') +pkgver=4.2.0 +pkgrel=2 arch=('i686' 'x86_64') url='http://virtualbox.org' license=('GPL') -makedepends=('libstdc++5' 'bin86' 'dev86' 'iasl' 'libxslt' 'libxml2' 'libpng' 'libidl2' 'xalan-c' 'sdl-libre' 'linux-libre-lts' 'linux-libre-lts-headers') -[[ $CARCH == "x86_64" ]] && makedepends=("${makedepends[@]}" 'gcc-multilib' 'lib32-glibc') -source=(http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}.tar.bz2 - LocalConfig.kmk 60-vboxguest.rules os_blag_64.png os_blag.png - os_dragora_64.png os_dragora.png os_dynebolic.png os_gnewsense_64.png os_gnewsense.png - os_gnu_64.png os_gnuhurd.png os_gnulinux_64.png os_gnulinux.png os_gnu.png - os_musix_64.png os_musix.png os_parabola_64.png os_parabola.png os_trisquel_64.png - os_trisquel.png os_ututo_64.png os_ututo.png os_venenux.png libre.patch - free-distros.patch) -md5sums=('84c5beeead094ce52d098105897aadbb' - '4c88bd122677a35f68abd76eb01b378b' - 'ed1341881437455d9735875ddf455fbe' - '8538dba8686d7449cb481c9bae9d722a' - '545c925b46f2ac95e5f8ae407fad101a' - 'f6416f509c2e5460e4dc624e0a57f3c1' - 'bbfb59dd517c020a23701b480187a355' - 'efacfdb61918286ea9bc89866b8fd239' - '7c3eb09995e8bafeef414374e44ad4ce' - 'a49ed3ab6bd0fb084de0ab3dd97ae93e' - '6b432b3305ed446125eef052c38355a6' - 'a70022a468bd3e9daf01818d2d74ac3c' - '6b432b3305ed446125eef052c38355a6' - 'a70022a468bd3e9daf01818d2d74ac3c' - 'a70022a468bd3e9daf01818d2d74ac3c' - '380eb2ab6cad3da198094585853c129c' - 'a60bb9a98abcc3c34156f9051d00df9a' - '3a908ef6952bcf987e63ef2fe4e98d24' - '02e87c39c353634cecacf98f1707fa15' - '0cf41a41e7a415d404d5584e047fd450' - '449cde3b58390284b59c5d663de3edc9' - 'c7951fe6888d939f3a7d0dafe477e82b' - '4da8eeb2ece7e475fc7a0d1003da26c6' - '5e4187af59726d71c5be48d0cd816c34' - 'a9e4724b56ddf99bb2e9a8fab8ad43ba' - '1e47d90affabfbf6dbb07d9d42742d6a') - -_extramodules=extramodules-3.0-LIBRE-LTS +makedepends=('linux-libre-lts-headers' + "virtualbox-libre-host-source>=$pkgver" + "virtualbox-libre-guest-source>=$pkgver" + 'expac') build() { - _kernver="$(cat /usr/lib/modules/${_extramodules}/version)" - export KERN_DIR=/usr/lib/modules/${_kernver}/build/ - export KERN_INCL=/usr/src/linux-${_kernver}/include/ - - cd "$srcdir/VirtualBox-${pkgver}" - - patch -Np1 -i "$srcdir/libre.patch" - patch -Np1 -i "$srcdir/free-distros.patch" - - ## Removing Nonfree directories - rm -rv "./include/VBox/ExtPack" - rm -rv "./src/VBox/ExtPacks" - rm -rv "./src/VBox/Main/src-helper-apps" - - ## Removing Oracle VM VirtualBox Extension Pack icons - rm -v "./src/VBox/Resources/darwin/virtualbox-vbox-extpack.icns" - rm -v "./src/VBox/Resources/other/virtualbox-vbox-extpack-"{16px,20px,24px,32px,40px,48px,64px,72px,80px,96px,128px,256px,512px}.png - rm -v "./src/VBox/Resources/win/OSE/virtualbox-vbox-extpack.ico" - rm -v "./src/VBox/Frontends/VirtualBox/images/extension_pack_"{16px,32px,disabled{_16px,_32px},install{_16px,_32px},install_disabled{_16px,_32px},uninstall{_16px,_32px},uninstall_disabled{_16px,_32px}}.png - - ## Adding free distros icons - for i in {gnuhurd,dynebolic,venenux,{gnu{,linux},parabola,gnewsense,blag,dragora,ututo,musix,trisquel}{,_64}}; do - cp -v "$srcdir/os_${i}.png" "./src/VBox/Frontends/VirtualBox/images" - done - - ## Removing non-free OS icons - rm -v "./src/VBox/Frontends/VirtualBox/images/os_"{{{arch,turbo}linux,debian,fedora,gentoo,linux{24,26},macosx,mandriva,{free,net,open}bsd,redhat,solaris,opensuse,oracle{,solaris},ubuntu,win{2k{3,8},7,8,vista,xp},xandros}{,_64},dos,jrockitve,l4,linux{,22,_other},netware,qnx,os2{_other,ecs,warp{3,4,45}},win{2k,31,95,98,_other,me,nt4}}.png - - cp "$srcdir/LocalConfig.kmk" . - - ./configure \ - --with-linux=/usr/src/linux-${_kernver} \ - --disable-java \ - --disable-docs \ - --disable-xpcom \ - --disable-python \ - --disable-sdl-ttf \ - --disable-alsa \ - --disable-pulse \ - --disable-dbus \ - --disable-opengl \ - --build-headless \ - --nofatal - source ./env.sh - kmk all - - make -C "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/src" - make -C "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src" + # current kernel libre version + _kernver=$(expac -Q '%v' linux-libre-lts-headers)-LIBRE-LTS + # dkms need modification to be run as user + cp -r /var/lib/dkms . + echo "dkms_tree='$srcdir/dkms'" > dkms.conf + # build host modules + msg2 'Host modules' + dkms --dkmsframework dkms.conf build "vboxhost/$pkgver" -k "$_kernver" + # build guest modules + msg2 'Guest modules' + dkms --dkmsframework dkms.conf build "vboxguest/$pkgver" -k "$_kernver" } -package_virtualbox-libre-parabola-modules-lts(){ - pkgdesc="Additions only for Parabola guests (long-term supported kernel libre modules)" - license=('GPL') - install=virtualbox-libre-parabola-modules-lts.install - depends=('linux-libre-lts>=3.0' 'linux-libre-lts<3.1') - replaces=('virtualbox-archlinux-modules-lts') - conflicts=('virtualbox-archlinux-modules-lts') - provides=("virtualbox-archlinux-modules-lts=$pkgver" 'virtualbox-libre-parabola-modules') - - source "$srcdir/VirtualBox-${pkgver}/env.sh" - - cd "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src" - - for module in vboxguest.ko vboxsf.ko vboxvideo.ko; do - install -D -m644 ${module} \ - "$pkgdir/usr/lib/modules/${_extramodules}/${module}" - done - - install -D -m 0644 "$srcdir/60-vboxguest.rules" \ - "$pkgdir/usr/lib/udev/rules.d/60-vboxguest.rules" - - find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \; +package_virtualbox-libre-host-modules-lts(){ + pkgdesc='Host kernel libre modules for VirtualBox' + depends=('linux-libre-lts>=3.0' 'linux-libre-lts<3.1') + replaces=('virtualbox-host-modules-lts' 'virtualbox-modules-lts' 'virtualbox-libre-modules-lts') + conflicts=('virtualbox-host-modules-lts' 'virtualbox-modules-lts' 'virtualbox-libre-modules-lts') + provides=("virtualbox-host-modules-lts=$pkgver" "virtualbox-libre-host-modules=$pkgver") + install=virtualbox-libre-host-modules-lts.install + + _kernver=$(expac -Q '%v' linux-libre-lts-headers)-LIBRE-LTS + _extraver=extramodules-${_kernver%.*}-LIBRE-LTS + + install -dm755 "$pkgdir/usr/lib/modules/$_extraver" + cd "dkms/vboxhost/$pkgver/$_kernver/$CARCH/module" + install -m644 * "$pkgdir/usr/lib/modules/$_extraver" + find "$pkgdir" -name '*.ko' -exec gzip -9 {} + + sed -ie "s/EXTRAMODULES='.*'/EXTRAMODULES='$_extraver'/" "$startdir/virtualbox-libre-host-modules-lts.install" } -package_virtualbox-libre-modules-lts(){ - pkgdesc="Long-term supported kernel libre modules for VirtualBox" - license=('GPL') - install=virtualbox-libre-modules-lts.install - depends=('linux-libre-lts>=3.0' 'linux-libre-lts<3.1') - replaces=('virtualbox-modules-lts') - conflicts=('virtualbox-modules-lts') - provides=("virtualbox-modules-lts=$pkgver" 'virtualbox-libre-modules') - - source "$srcdir/VirtualBox-${pkgver}/env.sh" - - cd "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/src" - - install -D -m644 vboxdrv.ko \ - "$pkgdir/usr/lib/modules/${_extramodules}/vboxdrv.ko" - - install -D -m644 vboxnetadp.ko \ - "$pkgdir/usr/lib/modules/${_extramodules}/vboxnetadp.ko" - - install -D -m644 vboxnetflt.ko \ - "$pkgdir/usr/lib/modules/${_extramodules}/vboxnetflt.ko" - - install -D -m644 vboxpci.ko \ - "$pkgdir/usr/lib/modules/${_extramodules}/vboxpci.ko" - - find "${pkgdir}" -name '*.ko' -exec gzip -9 {} + +package_virtualbox-libre-guest-modules-lts(){ + pkgdesc='Guest kernel libre modules for VirtualBox' + license=('GPL') + depends=('linux-libre-lts>=3.0' 'linux-libre-lts<3.1') + replaces=('virtualbox-guest-modules-lts' 'virtualbox-archlinux-modules-lts' 'virtualbox-libre-parabola-modules-lts') + conflicts=('virtualbox-guest-modules-lts' 'virtualbox-archlinux-modules-lts' 'virtualbox-libre-parabola-modules-lts') + provides=("virtualbox-guest-modules-lts=$pkgver" "virtualbox-libre-host-modules=$pkgver") + install=virtualbox-libre-guest-modules-lts.install + + _kernver=$(expac -Q '%v' linux-libre-lts-headers)-LIBRE-LTS + _extraver=extramodules-${_kernver%.*}-LIBRE-LTS + + install -dm755 "$pkgdir/usr/lib/modules/$_extraver" + cd "dkms/vboxguest/$pkgver/$_kernver/$CARCH/module" + install -m644 * "$pkgdir/usr/lib/modules/$_extraver" + find "$pkgdir" -name '*.ko' -exec gzip -9 {} + + sed -ie "s/EXTRAMODULES='.*'/EXTRAMODULES='$_extraver'/" "$startdir/virtualbox-libre-guest-modules-lts.install" } + +# vim:set ts=2 sw=2 et: diff --git a/libre/virtualbox-libre-modules-lts/build.sh b/libre/virtualbox-libre-modules-lts/build.sh new file mode 100755 index 000000000..87aefbff0 --- /dev/null +++ b/libre/virtualbox-libre-modules-lts/build.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +if (( $# != 1 )); then + echo "usage: $0 extra" + echo " $0 testing" + exit 1 +fi + +$1-i686-build +linux32 makechrootpkg -I ../../virtualbox/trunk/virtualbox-libre-host-source-*-i686.pkg.tar.xz -r /var/lib/archbuild/$1-i686 +linux32 makechrootpkg -I ../../virtualbox/trunk/virtualbox-libre-guest-source-*-i686.pkg.tar.xz -r /var/lib/archbuild/$1-i686 +linux32 makechrootpkg -r /var/lib/archbuild/$1-i686 + +$1-x86_64-build +makechrootpkg -I ../../virtualbox/trunk/virtualbox-libre-host-source-*-x86_64.pkg.tar.xz -r /var/lib/archbuild/$1-x86_64 +makechrootpkg -I ../../virtualbox/trunk/virtualbox-libre-guest-source-*-x86_64.pkg.tar.xz -r /var/lib/archbuild/$1-x86_64 +makechrootpkg -r /var/lib/archbuild/$1-x86_64 + + +# vim:set ts=2 sw=2 ft=sh et: diff --git a/libre/virtualbox-libre-modules-lts/free-distros.patch b/libre/virtualbox-libre-modules-lts/free-distros.patch deleted file mode 100755 index 47857e05d..000000000 --- a/libre/virtualbox-libre-modules-lts/free-distros.patch +++ /dev/null @@ -1,1383 +0,0 @@ ---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.cpp 2012-07-25 14:51:03.569003667 -0300 -+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.cpp 2012-07-25 14:51:03.652333615 -0300 -@@ -44,94 +44,38 @@ - * first matching string found, will be used. */ - static const osTypePattern gs_OSTypePattern[] = - { -- { QRegExp("DOS", Qt::CaseInsensitive), "DOS" }, - -- /* Windows */ -- { QRegExp("Wi.*98", Qt::CaseInsensitive), "Windows98" }, -- { QRegExp("Wi.*95", Qt::CaseInsensitive), "Windows95" }, -- { QRegExp("Wi.*Me", Qt::CaseInsensitive), "WindowsMe" }, -- { QRegExp("(Wi.*NT)|(NT4)", Qt::CaseInsensitive), "WindowsNT4" }, -- { QRegExp("((Wi.*XP)|(\\bXP\\b)).*64", Qt::CaseInsensitive), "WindowsXP_64" }, -- { QRegExp("(Wi.*XP)|(\\bXP\\b)", Qt::CaseInsensitive), "WindowsXP" }, -- { QRegExp("((Wi.*2003)|(W2K3)).*64", Qt::CaseInsensitive), "Windows2003_64" }, -- { QRegExp("(Wi.*2003)|(W2K3)", Qt::CaseInsensitive), "Windows2003" }, -- { QRegExp("((Wi.*V)|(Vista)).*64", Qt::CaseInsensitive), "WindowsVista_64" }, -- { QRegExp("(Wi.*V)|(Vista)", Qt::CaseInsensitive), "WindowsVista" }, -- { QRegExp("((Wi.*2008)|(W2K8)).*64", Qt::CaseInsensitive), "Windows2008_64" }, -- { QRegExp("(Wi.*2008)|(W2K8)", Qt::CaseInsensitive), "Windows2008" }, -- { QRegExp("(Wi.*2000)|(W2K)", Qt::CaseInsensitive), "Windows2000" }, -- { QRegExp("(Wi.*7.*64)|(W7.*64)", Qt::CaseInsensitive), "Windows7_64" }, -- { QRegExp("(Wi.*7)|(W7)", Qt::CaseInsensitive), "Windows7" }, -- { QRegExp("(Wi.*8.*64)|(W8.*64)", Qt::CaseInsensitive), "Windows8_64" }, -- { QRegExp("(Wi.*8)|(W8)", Qt::CaseInsensitive), "Windows8" }, -- { QRegExp("Wi.*3", Qt::CaseInsensitive), "Windows31" }, -- { QRegExp("Wi", Qt::CaseInsensitive), "WindowsXP" }, -- -- /* Solaris */ -- { QRegExp("((Op.*So)|(os20[01][0-9])|(So.*1[01])|(India)|(Neva)).*64", Qt::CaseInsensitive), "OpenSolaris_64" }, -- { QRegExp("(Op.*So)|(os20[01][0-9])|(So.*1[01])|(India)|(Neva)", Qt::CaseInsensitive), "OpenSolaris" }, -- { QRegExp("So.*64", Qt::CaseInsensitive), "Solaris_64" }, -- { QRegExp("So", Qt::CaseInsensitive), "Solaris" }, -- -- /* OS/2 */ -- { QRegExp("OS[/|!-]{,1}2.*W.*4.?5", Qt::CaseInsensitive), "OS2Warp45" }, -- { QRegExp("OS[/|!-]{,1}2.*W.*4", Qt::CaseInsensitive), "OS2Warp4" }, -- { QRegExp("OS[/|!-]{,1}2.*W", Qt::CaseInsensitive), "OS2Warp3" }, -- { QRegExp("(OS[/|!-]{,1}2.*e)|(eCS.*)", Qt::CaseInsensitive), "OS2eCS" }, -- { QRegExp("OS[/|!-]{,1}2", Qt::CaseInsensitive), "OS2" }, -- -- /* Code names for Linux distributions */ -- { QRegExp("((edgy)|(feisty)|(gutsy)|(hardy)|(intrepid)|(jaunty)|(karmic)|(lucid)|(maverick)|(natty)|(oneiric)|(precise)).*64", Qt::CaseInsensitive), "Ubuntu_64" }, -- { QRegExp("(edgy)|(feisty)|(gutsy)|(hardy)|(intrepid)|(jaunty)|(karmic)|(lucid)|(maverick)|(natty)|(oneiric)|(precise)", Qt::CaseInsensitive), "Ubuntu" }, -- { QRegExp("((sarge)|(etch)|(lenny)|(squeeze)|(wheezy)|(sid)).*64", Qt::CaseInsensitive), "Debian_64" }, -- { QRegExp("(sarge)|(etch)|(lenny)|(squeeze)|(wheezy)|(sid)", Qt::CaseInsensitive), "Debian" }, -- { QRegExp("((moonshine)|(werewolf)|(sulphur)|(cambridge)|(leonidas)|(constantine)|(goddard)|(laughlin)|(lovelock)|(verne)).*64", Qt::CaseInsensitive), "Fedora_64" }, -- { QRegExp("(moonshine)|(werewolf)|(sulphur)|(cambridge)|(leonidas)|(constantine)|(goddard)|(laughlin)|(lovelock)|(verne)", Qt::CaseInsensitive), "Fedora" }, -- -- /* Regular names of Linux distributions */ -- { QRegExp("Arc.*64", Qt::CaseInsensitive), "ArchLinux_64" }, -- { QRegExp("Arc", Qt::CaseInsensitive), "ArchLinux" }, -- { QRegExp("Deb.*64", Qt::CaseInsensitive), "Debian_64" }, -- { QRegExp("Deb", Qt::CaseInsensitive), "Debian" }, -- { QRegExp("((SU)|(Nov)|(SLE)).*64", Qt::CaseInsensitive), "OpenSUSE_64" }, -- { QRegExp("(SU)|(Nov)|(SLE)", Qt::CaseInsensitive), "OpenSUSE" }, -- { QRegExp("Fe.*64", Qt::CaseInsensitive), "Fedora_64" }, -- { QRegExp("Fe", Qt::CaseInsensitive), "Fedora" }, -- { QRegExp("((Gen)|(Sab)).*64", Qt::CaseInsensitive), "Gentoo_64" }, -- { QRegExp("(Gen)|(Sab)", Qt::CaseInsensitive), "Gentoo" }, -- { QRegExp("Man.*64", Qt::CaseInsensitive), "Mandriva_64" }, -- { QRegExp("Man", Qt::CaseInsensitive), "Mandriva" }, -- { QRegExp("((Red)|(rhel)|(cen)).*64", Qt::CaseInsensitive), "RedHat_64" }, -- { QRegExp("(Red)|(rhel)|(cen)", Qt::CaseInsensitive), "RedHat" }, -- { QRegExp("Tur.*64", Qt::CaseInsensitive), "Turbolinux_64" }, -- { QRegExp("Tur", Qt::CaseInsensitive), "Turbolinux" }, -- { QRegExp("Ub.*64", Qt::CaseInsensitive), "Ubuntu_64" }, -- { QRegExp("Ub", Qt::CaseInsensitive), "Ubuntu" }, -- { QRegExp("Xa.*64", Qt::CaseInsensitive), "Xandros_64" }, -- { QRegExp("Xa", Qt::CaseInsensitive), "Xandros" }, -- { QRegExp("((Or)|(oel)).*64", Qt::CaseInsensitive), "Oracle_64" }, -- { QRegExp("(Or)|(oel)", Qt::CaseInsensitive), "Oracle" }, -- { QRegExp("((Li)|(lnx)).*2.?2", Qt::CaseInsensitive), "Linux22" }, -- { QRegExp("((Li)|(lnx)).*2.?4.*64", Qt::CaseInsensitive), "Linux24_64" }, -- { QRegExp("((Li)|(lnx)).*2.?4", Qt::CaseInsensitive), "Linux24" }, -- { QRegExp("((((Li)|(lnx)).*2.?6)|(LFS)).*64", Qt::CaseInsensitive), "Linux26_64" }, -- { QRegExp("(((Li)|(lnx)).*2.?6)|(LFS)", Qt::CaseInsensitive), "Linux26" }, -- { QRegExp("((Li)|(lnx)).*64", Qt::CaseInsensitive), "Linux26_64" }, -- { QRegExp("(Li)|(lnx)", Qt::CaseInsensitive), "Linux26" }, -+ /* Code names for GNU/Linux distributions */ -+ { QRegExp("((Taranis)|(Dagda)|(Brigantia)).*64", Qt::CaseInsensitive), "Trisquel_64" }, -+ { QRegExp("(Taranis)|(Dagda)|(Brigantia)", Qt::CaseInsensitive), "Trisquel" }, -+ { QRegExp("((metad)|(parkes)|(three)).*64", Qt::CaseInsensitive), "gNewSense_64" }, -+ { QRegExp("(deltah)|(metad)|(parkes)|(three)", Qt::CaseInsensitive), "gNewSense" }, -+ { QRegExp("((90k)|(119k)|(140k)|(160k)|(90000)|(119000)|(140000)|(160000)|(Spartakus)).*64", Qt::CaseInsensitive), "Blag_64" }, -+ { QRegExp("(90k)|(119k)|(140k)|(160k)|(90000)|(119000)|(140000)|(160000)|(Spartakus)", Qt::CaseInsensitive), "Blag" }, -+ -+ /* Regular names of GNU/Linux distributions and GNU-Hurd */ -+ { QRegExp("Pa.*64", Qt::CaseInsensitive), "Parabola_64" }, -+ { QRegExp("Pa", Qt::CaseInsensitive), "Parabola" }, -+ { QRegExp("((gNe)|(new)|(Sen)).*64", Qt::CaseInsensitive), "gNewSense_64" }, -+ { QRegExp("(gNe)|(new)|(Sen)", Qt::CaseInsensitive), "gNewSense" }, -+ { QRegExp("Bla.*64", Qt::CaseInsensitive), "Blag_64" }, -+ { QRegExp("Bla", Qt::CaseInsensitive), "Blag" }, -+ { QRegExp("Dra.*64", Qt::CaseInsensitive), "Dragora_64" }, -+ { QRegExp("Dra", Qt::CaseInsensitive), "Dragora" }, -+ { QRegExp("((Utu)|(XS)).*64", Qt::CaseInsensitive), "Ututo_64" }, -+ { QRegExp("(Utu)|(XS)", Qt::CaseInsensitive), "Ututo" }, -+ { QRegExp("Mus.*64", Qt::CaseInsensitive), "Musix_64" }, -+ { QRegExp("Mus", Qt::CaseInsensitive), "Musix" }, -+ { QRegExp("Tri.*64", Qt::CaseInsensitive), "Trisquel_64" }, -+ { QRegExp("Tri", Qt::CaseInsensitive), "Trisquel" }, -+ { QRegExp("Dyn", Qt::CaseInsensitive), "Dynebolic" }, -+ { QRegExp("Ven", Qt::CaseInsensitive), "Venenux" }, -+ { QRegExp("GNU", Qt::CaseInsensitive), "GNU" }, -+ { QRegExp("Hu", Qt::CaseInsensitive), "GNUHurd" }, -+ { QRegExp("((Li)|(lnx)).*64", Qt::CaseInsensitive), "GNULinux_64" }, -+ { QRegExp("(Li)|(lnx)", Qt::CaseInsensitive), "GNULinux" }, - - /* Other */ -- { QRegExp("L4", Qt::CaseInsensitive), "L4" }, -- { QRegExp("((Fr.*B)|(fbsd)).*64", Qt::CaseInsensitive), "FreeBSD_64" }, -- { QRegExp("(Fr.*B)|(fbsd)", Qt::CaseInsensitive), "FreeBSD" }, -- { QRegExp("Op.*B.*64", Qt::CaseInsensitive), "OpenBSD_64" }, -- { QRegExp("Op.*B", Qt::CaseInsensitive), "OpenBSD" }, -- { QRegExp("Ne.*B.*64", Qt::CaseInsensitive), "NetBSD_64" }, -- { QRegExp("Ne.*B", Qt::CaseInsensitive), "NetBSD" }, -- { QRegExp("QN", Qt::CaseInsensitive), "QNX" }, -- { QRegExp("((Mac)|(Tig)|(Leop)|(osx)).*64", Qt::CaseInsensitive), "MacOS_64" }, -- { QRegExp("(Mac)|(Tig)|(Leop)|(osx)", Qt::CaseInsensitive), "MacOS" }, -- { QRegExp("Net", Qt::CaseInsensitive), "Netware" }, -- { QRegExp("Rocki", Qt::CaseInsensitive), "JRockitVE" }, - { QRegExp("Ot", Qt::CaseInsensitive), "Other" }, - }; - ---- VirtualBox-4.1.18.orig/src/VBox/Main/xml/Settings.cpp 2012-07-25 15:14:50.498764160 -0300 -+++ VirtualBox-4.1.18/src/VBox/Main/xml/Settings.cpp 2012-07-25 15:14:50.548761649 -0300 -@@ -3227,40 +3227,18 @@ - } aConvertOSTypes[] = - { - { "unknown", "Other" }, -- { "dos", "DOS" }, -- { "win31", "Windows31" }, -- { "win95", "Windows95" }, -- { "win98", "Windows98" }, -- { "winme", "WindowsMe" }, -- { "winnt4", "WindowsNT4" }, -- { "win2k", "Windows2000" }, -- { "winxp", "WindowsXP" }, -- { "win2k3", "Windows2003" }, -- { "winvista", "WindowsVista" }, -- { "win2k8", "Windows2008" }, -- { "os2warp3", "OS2Warp3" }, -- { "os2warp4", "OS2Warp4" }, -- { "os2warp45", "OS2Warp45" }, -- { "ecs", "OS2eCS" }, -- { "linux22", "Linux22" }, -- { "linux24", "Linux24" }, -- { "linux26", "Linux26" }, -- { "archlinux", "ArchLinux" }, -- { "debian", "Debian" }, -- { "opensuse", "OpenSUSE" }, -- { "fedoracore", "Fedora" }, -- { "gentoo", "Gentoo" }, -- { "mandriva", "Mandriva" }, -- { "redhat", "RedHat" }, -- { "ubuntu", "Ubuntu" }, -- { "xandros", "Xandros" }, -- { "freebsd", "FreeBSD" }, -- { "openbsd", "OpenBSD" }, -- { "netbsd", "NetBSD" }, -- { "netware", "Netware" }, -- { "solaris", "Solaris" }, -- { "opensolaris", "OpenSolaris" }, -- { "l4", "L4" } -+ { "gnu", "GNU" }, -+ { "gnuhurd", "GNUHurd" }, -+ { "gnulinux", "GNULinux" }, -+ { "parabola", "Parabola" }, -+ { "gnewsense", "gNewSense" }, -+ { "blag", "Blag" }, -+ { "dragora", "Dragora" }, -+ { "ututo", "Ututo" }, -+ { "musix", "Musix" }, -+ { "trisquel", "Trisquel" }, -+ { "dynebolic", "Dynebolic" }, -+ { "venenux", "Venenux" }, - }; - - void MachineConfigFile::convertOldOSType_pre1_5(Utf8Str &str) ---- VirtualBox-4.1.18.orig/src/VBox/Main/xml/SettingsConverter.xsl 2012-07-25 15:21:04.553581275 -0300 -+++ VirtualBox-4.1.18/src/VBox/Main/xml/SettingsConverter.xsl 2012-07-25 15:21:04.593579427 -0300 -@@ -729,40 +729,18 @@ - <xsl:attribute name="OSType"> - <xsl:choose> - <xsl:when test="@OSType='unknown'">Other</xsl:when> -- <xsl:when test="@OSType='dos'">DOS</xsl:when> -- <xsl:when test="@OSType='win31'">Windows31</xsl:when> -- <xsl:when test="@OSType='win95'">Windows95</xsl:when> -- <xsl:when test="@OSType='win98'">Windows98</xsl:when> -- <xsl:when test="@OSType='winme'">WindowsMe</xsl:when> -- <xsl:when test="@OSType='winnt4'">WindowsNT4</xsl:when> -- <xsl:when test="@OSType='win2k'">Windows2000</xsl:when> -- <xsl:when test="@OSType='winxp'">WindowsXP</xsl:when> -- <xsl:when test="@OSType='win2k3'">Windows2003</xsl:when> -- <xsl:when test="@OSType='winvista'">WindowsVista</xsl:when> -- <xsl:when test="@OSType='win2k8'">Windows2008</xsl:when> -- <xsl:when test="@OSType='os2warp3'">OS2Warp3</xsl:when> -- <xsl:when test="@OSType='os2warp4'">OS2Warp4</xsl:when> -- <xsl:when test="@OSType='os2warp45'">OS2Warp45</xsl:when> -- <xsl:when test="@OSType='ecs'">OS2eCS</xsl:when> -- <xsl:when test="@OSType='linux22'">Linux22</xsl:when> -- <xsl:when test="@OSType='linux24'">Linux24</xsl:when> -- <xsl:when test="@OSType='linux26'">Linux26</xsl:when> -- <xsl:when test="@OSType='archlinux'">ArchLinux</xsl:when> -- <xsl:when test="@OSType='debian'">Debian</xsl:when> -- <xsl:when test="@OSType='opensuse'">OpenSUSE</xsl:when> -- <xsl:when test="@OSType='fedoracore'">Fedora</xsl:when> -- <xsl:when test="@OSType='gentoo'">Gentoo</xsl:when> -- <xsl:when test="@OSType='mandriva'">Mandriva</xsl:when> -- <xsl:when test="@OSType='redhat'">RedHat</xsl:when> -- <xsl:when test="@OSType='ubuntu'">Ubuntu</xsl:when> -- <xsl:when test="@OSType='xandros'">Xandros</xsl:when> -- <xsl:when test="@OSType='freebsd'">FreeBSD</xsl:when> -- <xsl:when test="@OSType='openbsd'">OpenBSD</xsl:when> -- <xsl:when test="@OSType='netbsd'">NetBSD</xsl:when> -- <xsl:when test="@OSType='netware'">Netware</xsl:when> -- <xsl:when test="@OSType='solaris'">Solaris</xsl:when> -- <xsl:when test="@OSType='opensolaris'">OpenSolaris</xsl:when> -- <xsl:when test="@OSType='l4'">L4</xsl:when> -+ <xsl:when test="@OSType='gnu'">GNU</xsl:when> -+ <xsl:when test="@OSType='gnuhurd'">GNUHurd</xsl:when> -+ <xsl:when test="@OSType='gnulinux'">GNULinux</xsl:when> -+ <xsl:when test="@OSType='parabola'">Parabola</xsl:when> -+ <xsl:when test="@OSType='gnewsense'">gNewSense</xsl:when> -+ <xsl:when test="@OSType='blag'">Blag</xsl:when> -+ <xsl:when test="@OSType='dragora'">Dragora</xsl:when> -+ <xsl:when test="@OSType='ututo'">Ututo</xsl:when> -+ <xsl:when test="@OSType='musix'">Musix</xsl:when> -+ <xsl:when test="@OSType='trisquel'">Trisquel</xsl:when> -+ <xsl:when test="@OSType='dynebolic'">Dynebolic</xsl:when> -+ <xsl:when test="@OSType='venenux'">Venenux</xsl:when> - </xsl:choose> - </xsl:attribute> - <xsl:apply-templates select="@*[name()!='OSType']" mode="v1.5"/> ---- VirtualBox-4.1.18.orig/src/VBox/Main/xml/VirtualBox-settings-common.xsd 2012-07-25 15:04:37.856003691 -0300 -+++ VirtualBox-4.1.18/src/VBox/Main/xml/VirtualBox-settings-common.xsd 2012-07-25 15:04:37.892668156 -0300 -@@ -137,75 +137,27 @@ - <xsd:simpleType name="TGuestOSType"> - <xsd:restriction base="xsd:string"> - <xsd:enumeration value="Other"/> -- <xsd:enumeration value="DOS"/> -- <xsd:enumeration value="Netware"/> -- <xsd:enumeration value="L4"/> -- <xsd:enumeration value="Windows31"/> -- <xsd:enumeration value="Windows95"/> -- <xsd:enumeration value="Windows98"/> -- <xsd:enumeration value="WindowsMe"/> -- <xsd:enumeration value="WindowsNT4"/> -- <xsd:enumeration value="Windows2000"/> -- <xsd:enumeration value="WindowsXP"/> -- <xsd:enumeration value="WindowsXP_64"/> -- <xsd:enumeration value="Windows2003"/> -- <xsd:enumeration value="Windows2003_64"/> -- <xsd:enumeration value="WindowsVista"/> -- <xsd:enumeration value="WindowsVista_64"/> -- <xsd:enumeration value="Windows2008"/> -- <xsd:enumeration value="Windows2008_64"/> -- <xsd:enumeration value="Windows7"/> -- <xsd:enumeration value="Windows7_64"/> -- <xsd:enumeration value="Windows8"/> -- <xsd:enumeration value="Windows8_64"/> -- <xsd:enumeration value="WindowsNT"/> -- <xsd:enumeration value="OS2Warp3"/> -- <xsd:enumeration value="OS2Warp4"/> -- <xsd:enumeration value="OS2Warp45"/> -- <xsd:enumeration value="OS2eCS"/> -- <xsd:enumeration value="OS2"/> -- <xsd:enumeration value="Linux22"/> -- <xsd:enumeration value="Linux24"/> -- <xsd:enumeration value="Linux24_64"/> -- <xsd:enumeration value="Linux26"/> -- <xsd:enumeration value="Linux26_64"/> -- <xsd:enumeration value="ArchLinux"/> -- <xsd:enumeration value="ArchLinux_64"/> -- <xsd:enumeration value="Debian"/> -- <xsd:enumeration value="Debian_64"/> -- <xsd:enumeration value="OpenSUSE"/> -- <xsd:enumeration value="OpenSUSE_64"/> -- <xsd:enumeration value="Fedora"/> -- <xsd:enumeration value="Fedora_64"/> -- <xsd:enumeration value="Gentoo"/> -- <xsd:enumeration value="Gentoo_64"/> -- <xsd:enumeration value="Mandriva"/> -- <xsd:enumeration value="Mandriva_64"/> -- <xsd:enumeration value="RedHat"/> -- <xsd:enumeration value="RedHat_64"/> -- <xsd:enumeration value="Turbolinux"/> -- <xsd:enumeration value="Turbolinux_64"/> -- <xsd:enumeration value="Ubuntu"/> -- <xsd:enumeration value="Ubuntu_64"/> -- <xsd:enumeration value="Xandros"/> -- <xsd:enumeration value="Xandros_64"/> -- <xsd:enumeration value="Oracle"/> -- <xsd:enumeration value="Oracle_64"/> -- <xsd:enumeration value="Linux"/> -- <xsd:enumeration value="FreeBSD"/> -- <xsd:enumeration value="FreeBSD_64"/> -- <xsd:enumeration value="OpenBSD"/> -- <xsd:enumeration value="OpenBSD_64"/> -- <xsd:enumeration value="NetBSD"/> -- <xsd:enumeration value="NetBSD_64"/> -- <xsd:enumeration value="Solaris"/> -- <xsd:enumeration value="Solaris_64"/> -- <xsd:enumeration value="OpenSolaris"/> -- <xsd:enumeration value="OpenSolaris_64"/> -- <xsd:enumeration value="QNX"/> -- <xsd:enumeration value="MacOS"/> -- <xsd:enumeration value="MacOS_64"/> -- <xsd:enumeration value="JRockitVE"/> -+ <xsd:enumeration value="GNU"/> -+ <xsd:enumeration value="GNU_64"/> -+ <xsd:enumeration value="GNUHurd"/> -+ <xsd:enumeration value="GNULinux"/> -+ <xsd:enumeration value="GNULinux_64"/> -+ <xsd:enumeration value="Parabola"/> -+ <xsd:enumeration value="Parabola_64"/> -+ <xsd:enumeration value="gNewSense"/> -+ <xsd:enumeration value="gNewSense_64"/> -+ <xsd:enumeration value="Blag"/> -+ <xsd:enumeration value="Blag_64"/> -+ <xsd:enumeration value="Dragora"/> -+ <xsd:enumeration value="Dragora_64"/> -+ <xsd:enumeration value="Ututo"/> -+ <xsd:enumeration value="Ututo_64"/> -+ <xsd:enumeration value="Musix"/> -+ <xsd:enumeration value="Musix_64"/> -+ <xsd:enumeration value="Trisquel"/> -+ <xsd:enumeration value="Trisquel_64"/> -+ <xsd:enumeration value="Dynebolic"/> -+ <xsd:enumeration value="Venenux"/> - </xsd:restriction> - </xsd:simpleType> - ---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc 2012-07-25 15:40:56.733096866 -0300 -+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc 2012-07-25 15:40:56.796426519 -0300 -@@ -1,75 +1,27 @@ - <!DOCTYPE RCC><RCC version="1.0"> - <qresource prefix="/"> -- <file alias="os_archlinux.png">images/os_archlinux.png</file> -- <file alias="os_archlinux_64.png">images/os_archlinux_64.png</file> -- <file alias="os_debian.png">images/os_debian.png</file> -- <file alias="os_debian_64.png">images/os_debian_64.png</file> -- <file alias="os_dos.png">images/os_dos.png</file> -- <file alias="os_fedora.png">images/os_fedora.png</file> -- <file alias="os_fedora_64.png">images/os_fedora_64.png</file> -- <file alias="os_freebsd.png">images/os_freebsd.png</file> -- <file alias="os_freebsd_64.png">images/os_freebsd_64.png</file> -- <file alias="os_gentoo.png">images/os_gentoo.png</file> -- <file alias="os_gentoo_64.png">images/os_gentoo_64.png</file> -- <file alias="os_jrockitve.png">images/os_jrockitve.png</file> -- <file alias="os_l4.png">images/os_l4.png</file> -- <file alias="os_linux_other.png">images/os_linux_other.png</file> -- <file alias="os_linux22.png">images/os_linux22.png</file> -- <file alias="os_linux24.png">images/os_linux24.png</file> -- <file alias="os_linux24_64.png">images/os_linux24_64.png</file> -- <file alias="os_linux26.png">images/os_linux26.png</file> -- <file alias="os_linux26_64.png">images/os_linux26_64.png</file> -- <file alias="os_mandriva.png">images/os_mandriva.png</file> -- <file alias="os_mandriva_64.png">images/os_mandriva_64.png</file> -- <file alias="os_netbsd.png">images/os_netbsd.png</file> -- <file alias="os_netbsd_64.png">images/os_netbsd_64.png</file> -- <file alias="os_netware.png">images/os_netware.png</file> -- <file alias="os_openbsd.png">images/os_openbsd.png</file> -- <file alias="os_openbsd_64.png">images/os_openbsd_64.png</file> -- <file alias="os_oraclesolaris.png">images/os_oraclesolaris.png</file> -- <file alias="os_oraclesolaris_64.png">images/os_oraclesolaris_64.png</file> -- <file alias="os_opensuse.png">images/os_opensuse.png</file> -- <file alias="os_opensuse_64.png">images/os_opensuse_64.png</file> -- <file alias="os_os2_other.png">images/os_os2_other.png</file> -- <file alias="os_os2ecs.png">images/os_os2ecs.png</file> -- <file alias="os_os2warp3.png">images/os_os2warp3.png</file> -- <file alias="os_os2warp4.png">images/os_os2warp4.png</file> -- <file alias="os_os2warp45.png">images/os_os2warp45.png</file> -+ <file alias="os_parabola.png">images/os_parabola.png</file> -+ <file alias="os_parabola_64.png">images/os_parabola_64.png</file> -+ <file alias="os_gnewsense.png">images/os_gnewsense.png</file> -+ <file alias="os_gnewsense_64.png">images/os_gnewsense_64.png</file> -+ <file alias="os_blag.png">images/os_blag.png</file> -+ <file alias="os_blag_64.png">images/os_blag_64.png</file> -+ <file alias="os_ututo.png">images/os_ututo.png</file> -+ <file alias="os_ututo_64.png">images/os_ututo_64.png</file> -+ <file alias="os_gnu.png">images/os_gnu.png</file> -+ <file alias="os_gnu_64.png">images/os_gnu_64.png</file> -+ <file alias="os_gnuhurd.png">images/os_gnuhurd.png</file> -+ <file alias="os_gnulinux.png">images/os_gnulinux.png</file> -+ <file alias="os_gnulinux_64.png">images/os_gnulinux_64.png</file> -+ <file alias="os_musix.png">images/os_musix.png</file> -+ <file alias="os_musix_64.png">images/os_musix_64.png</file> -+ <file alias="os_dragora.png">images/os_dragora.png</file> -+ <file alias="os_dragora_64.png">images/os_dragora_64.png</file> - <file alias="os_other.png">images/os_other.png</file> -- <file alias="os_qnx.png">images/os_qnx.png</file> -- <file alias="os_redhat.png">images/os_redhat.png</file> -- <file alias="os_redhat_64.png">images/os_redhat_64.png</file> -- <file alias="os_turbolinux.png">images/os_turbolinux.png</file> -- <file alias="os_turbolinux_64.png">images/os_turbolinux_64.png</file> -- <file alias="os_solaris.png">images/os_solaris.png</file> -- <file alias="os_solaris_64.png">images/os_solaris_64.png</file> -- <file alias="os_ubuntu.png">images/os_ubuntu.png</file> -- <file alias="os_ubuntu_64.png">images/os_ubuntu_64.png</file> -- <file alias="os_win_other.png">images/os_win_other.png</file> -- <file alias="os_win2k.png">images/os_win2k.png</file> -- <file alias="os_win2k3.png">images/os_win2k3.png</file> -- <file alias="os_win2k3_64.png">images/os_win2k3_64.png</file> -- <file alias="os_win2k8.png">images/os_win2k8.png</file> -- <file alias="os_win2k8_64.png">images/os_win2k8_64.png</file> -- <file alias="os_win31.png">images/os_win31.png</file> -- <file alias="os_win7.png">images/os_win7.png</file> -- <file alias="os_win7_64.png">images/os_win7_64.png</file> -- <file alias="os_win8.png">images/os_win8.png</file> -- <file alias="os_win8_64.png">images/os_win8_64.png</file> -- <file alias="os_win95.png">images/os_win95.png</file> -- <file alias="os_win98.png">images/os_win98.png</file> -- <file alias="os_winme.png">images/os_winme.png</file> -- <file alias="os_winnt4.png">images/os_winnt4.png</file> -- <file alias="os_winvista.png">images/os_winvista.png</file> -- <file alias="os_winvista_64.png">images/os_winvista_64.png</file> -- <file alias="os_winxp.png">images/os_winxp.png</file> -- <file alias="os_winxp_64.png">images/os_winxp_64.png</file> -- <file alias="os_xandros.png">images/os_xandros.png</file> -- <file alias="os_xandros_64.png">images/os_xandros_64.png</file> -- <file alias="os_oracle.png">images/os_oracle.png</file> -- <file alias="os_oracle_64.png">images/os_oracle_64.png</file> -- <file alias="os_macosx.png">images/os_macosx.png</file> -- <file alias="os_macosx_64.png">images/os_macosx_64.png</file> -+ <file alias="os_dynebolic.png">images/os_dynebolic.png</file> -+ <file alias="os_venenux.png">images/os_venenux.png</file> -+ <file alias="os_trisquel.png">images/os_trisquel.png</file> -+ <file alias="os_trisquel_64.png">images/os_trisquel_64.png</file> - <file alias="hd_16px.png">images/hd_16px.png</file> - <file alias="hd_disabled_16px.png">images/hd_disabled_16px.png</file> - <file alias="hd_32px.png">images/hd_32px.png</file> ---- VirtualBox-4.1.20.orig/src/VBox/Main/src-all/Global.cpp 2012-08-20 11:36:24.000000000 -0300 -+++ VirtualBox-4.1.20/src/VBox/Main/src-all/Global.cpp 2012-08-21 14:22:29.148190849 -0300 -@@ -35,284 +35,90 @@ - VBOXOSTYPE_Unknown, VBOXOSHINT_NONE, - 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows31, "Windows 3.1", -- VBOXOSTYPE_Win31, VBOXOSHINT_NONE, -- 32, 4, 1 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows95, "Windows 95", -- VBOXOSTYPE_Win95, VBOXOSHINT_NONE, -- 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows98, "Windows 98", -- VBOXOSTYPE_Win98, VBOXOSHINT_NONE, -- 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsMe, "Windows Me", -- VBOXOSTYPE_WinMe, VBOXOSHINT_NONE, -- 64, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsNT4, "Windows NT 4", -- VBOXOSTYPE_WinNT4, VBOXOSHINT_NONE, -- 128, 16, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2000, "Windows 2000", -- VBOXOSTYPE_Win2k, VBOXOSHINT_USBTABLET, -- 168, 16, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsXP, "Windows XP", -- VBOXOSTYPE_WinXP, VBOXOSHINT_USBTABLET, -- 192, 16, 10 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsXP_64, "Windows XP (64 bit)", -- VBOXOSTYPE_WinXP_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET, -- 192, 16, 10 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2003, "Windows 2003", -- VBOXOSTYPE_Win2k3, VBOXOSHINT_USBTABLET, -- 256, 16, 20 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2003_64, "Windows 2003 (64 bit)", -- VBOXOSTYPE_Win2k3_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET, -- 256, 16, 20 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsVista, "Windows Vista", -- VBOXOSTYPE_WinVista, VBOXOSHINT_USBTABLET, -- 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsVista_64, "Windows Vista (64 bit)", -- VBOXOSTYPE_WinVista_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET, -- 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2008, "Windows 2008", -- VBOXOSTYPE_Win2k8, VBOXOSHINT_USBTABLET, -- 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2008_64, "Windows 2008 (64 bit)", -- VBOXOSTYPE_Win2k8_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET, -- 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows7, "Windows 7", -- VBOXOSTYPE_Win7, VBOXOSHINT_USBTABLET, -- 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows7_64, "Windows 7 (64 bit)", -- VBOXOSTYPE_Win7_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET, -- 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows8, "Windows 8", -- VBOXOSTYPE_Win8, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_PAE, -- 1024,128, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows8_64, "Windows 8 (64 bit)", -- VBOXOSTYPE_Win8_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET, -- 1536,128, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsNT, "Other Windows", -- VBOXOSTYPE_WinNT, VBOXOSHINT_NONE, -- 512, 16, 20 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux22, "Linux 2.2", -- VBOXOSTYPE_Linux22, VBOXOSHINT_RTCUTC, -- 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux24, "Linux 2.4", -- VBOXOSTYPE_Linux24, VBOXOSHINT_RTCUTC, -- 128, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux24_64, "Linux 2.4 (64 bit)", -- VBOXOSTYPE_Linux24_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC, -- 128, 4, 4 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -+ { "GNU", "GNU", SchemaDefs_OSTypeId_GNU, "GNU", -+ VBOXOSTYPE_GNU, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -+ StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -+ { "GNU", "GNU", SchemaDefs_OSTypeId_GNU_64, "GNU (64 bit)", -+ VBOXOSTYPE_GNU_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -+ StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -+ { "GNU-Hurd", "GNU-Hurd", SchemaDefs_OSTypeId_GNUHurd, "GNU-Hurd", -+ VBOXOSTYPE_GNUHurd, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux26, "Linux 2.6", -- VBOXOSTYPE_Linux26, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_GNULinux, "GNU/Linux", -+ VBOXOSTYPE_GNULinux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux26_64, "Linux 2.6 (64 bit)", -- VBOXOSTYPE_Linux26_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_GNULinux_64, "GNU/Linux (64 bit)", -+ VBOXOSTYPE_GNULinux_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_ArchLinux, "Arch Linux", -- VBOXOSTYPE_ArchLinux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Parabola, "Parabola GNU/Linux-libre", -+ VBOXOSTYPE_Parabola, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_ArchLinux_64, "Arch Linux (64 bit)", -- VBOXOSTYPE_ArchLinux_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Parabola_64, "Parabola GNU/Linux-libre (64 bit)", -+ VBOXOSTYPE_Parabola_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Debian, "Debian", -- VBOXOSTYPE_Debian, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_gNewSense, "gNewSense", -+ VBOXOSTYPE_gNewSense, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Debian_64, "Debian (64 bit)", -- VBOXOSTYPE_Debian_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_gNewSense_64, "gNewSense (64 bit)", -+ VBOXOSTYPE_gNewSense_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97}, -- { "Linux", "Linux", SchemaDefs_OSTypeId_OpenSUSE, "openSUSE", -- VBOXOSTYPE_OpenSUSE, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_OpenSUSE_64, "openSUSE (64 bit)", -- VBOXOSTYPE_OpenSUSE_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Fedora, "Fedora", -- VBOXOSTYPE_FedoraCore, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Blag, "Blag Linux and GNU", -+ VBOXOSTYPE_Blag, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 768, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Fedora_64, "Fedora (64 bit)", -- VBOXOSTYPE_FedoraCore_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Blag_64, "Blag Linux and GNU (64 bit)", -+ VBOXOSTYPE_Blag_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 768, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Gentoo, "Gentoo", -- VBOXOSTYPE_Gentoo, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Dragora, "Dragora", -+ VBOXOSTYPE_Dragora, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Gentoo_64, "Gentoo (64 bit)", -- VBOXOSTYPE_Gentoo_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Dragora_64, "Dragora (64 bit)", -+ VBOXOSTYPE_Dragora_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Mandriva, "Mandriva", -- VBOXOSTYPE_Mandriva, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Mandriva_64, "Mandriva (64 bit)", -- VBOXOSTYPE_Mandriva_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_RedHat, "Red Hat", -- VBOXOSTYPE_RedHat, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE, -- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Ututo, "Ututo XS", -+ VBOXOSTYPE_Ututo, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_RedHat_64, "Red Hat (64 bit)", -- VBOXOSTYPE_RedHat_x64, VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC, -- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Ututo_64, "Ututo XS (64 bit)", -+ VBOXOSTYPE_Ututo_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Turbolinux, "Turbolinux", -- VBOXOSTYPE_Turbolinux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Musix, "Musix", -+ VBOXOSTYPE_Musix, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Turbolinux, "Turbolinux (64 bit)", -- VBOXOSTYPE_Turbolinux_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Musix_64, "Musix (64 bit)", -+ VBOXOSTYPE_Musix_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Ubuntu, "Ubuntu", -- VBOXOSTYPE_Ubuntu, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE | VBOXOSHINT_USBTABLET, -+ StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97}, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Trisquel, "Trisquel", -+ VBOXOSTYPE_Trisquel, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE | VBOXOSHINT_USBTABLET, - 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Ubuntu_64, "Ubuntu (64 bit)", -- VBOXOSTYPE_Ubuntu_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Trisquel_64, "Trisquel (64 bit)", -+ VBOXOSTYPE_Trisquel_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Xandros, "Xandros", -- VBOXOSTYPE_Xandros, VBOXOSHINT_RTCUTC, -- 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Dynebolic, "Dyne:bolic", -+ VBOXOSTYPE_Dynebolic, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Xandros_64, "Xandros (64 bit)", -- VBOXOSTYPE_Xandros_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC, -- 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Venenux, "Venenux", -+ VBOXOSTYPE_Venenux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Oracle, "Oracle", -- VBOXOSTYPE_Oracle, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE, -- 512, 12, 12 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Oracle_64, "Oracle (64 bit)", -- VBOXOSTYPE_Oracle_x64, VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC, -- 512, 12, 12 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux, "Other Linux", -- VBOXOSTYPE_Linux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -- 256, 12, 8 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Solaris", "Solaris", SchemaDefs_OSTypeId_Solaris, "Oracle Solaris 10 5/09 and earlier", -- VBOXOSTYPE_Solaris, VBOXOSHINT_NONE, -- 768, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Solaris", "Solaris", SchemaDefs_OSTypeId_Solaris_64, "Oracle Solaris 10 5/09 and earlier (64 bit)", -- VBOXOSTYPE_Solaris_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC, -- 1536, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Solaris", "Solaris", SchemaDefs_OSTypeId_OpenSolaris, "Oracle Solaris 10 10/09 and later", -- VBOXOSTYPE_OpenSolaris, VBOXOSHINT_USBTABLET, -- 768, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Solaris", "Solaris", SchemaDefs_OSTypeId_OpenSolaris_64, "Oracle Solaris 10 10/09 and later (64 bit)", -- VBOXOSTYPE_OpenSolaris_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET, -- 1536, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "BSD", "BSD", SchemaDefs_OSTypeId_FreeBSD, "FreeBSD", -- VBOXOSTYPE_FreeBSD, VBOXOSHINT_NONE, -- 128, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "BSD", "BSD", SchemaDefs_OSTypeId_FreeBSD_64, "FreeBSD (64 bit)", -- VBOXOSTYPE_FreeBSD_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC, -- 128, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "BSD", "BSD", SchemaDefs_OSTypeId_OpenBSD, "OpenBSD", -- VBOXOSTYPE_OpenBSD, VBOXOSHINT_HWVIRTEX, -- 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "BSD", "BSD", SchemaDefs_OSTypeId_OpenBSD_64, "OpenBSD (64 bit)", -- VBOXOSTYPE_OpenBSD_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC, -- 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "BSD", "BSD", SchemaDefs_OSTypeId_NetBSD, "NetBSD", -- VBOXOSTYPE_NetBSD, VBOXOSHINT_NONE, -- 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "BSD", "BSD", SchemaDefs_OSTypeId_NetBSD_64, "NetBSD (64 bit)", -- VBOXOSTYPE_NetBSD_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC, -- 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "OS2", "IBM OS/2", SchemaDefs_OSTypeId_OS2Warp3, "OS/2 Warp 3", -- VBOXOSTYPE_OS2Warp3, VBOXOSHINT_HWVIRTEX, -- 48, 4, 1 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "OS2", "IBM OS/2", SchemaDefs_OSTypeId_OS2Warp4, "OS/2 Warp 4", -- VBOXOSTYPE_OS2Warp4, VBOXOSHINT_HWVIRTEX, -- 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "OS2", "IBM OS/2", SchemaDefs_OSTypeId_OS2Warp45, "OS/2 Warp 4.5", -- VBOXOSTYPE_OS2Warp45, VBOXOSHINT_HWVIRTEX, -- 96, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "OS2", "IBM OS/2", SchemaDefs_OSTypeId_OS2eCS, "eComStation", -- VBOXOSTYPE_ECS, VBOXOSHINT_HWVIRTEX, -- 96, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "OS2", "IBM OS/2", SchemaDefs_OSTypeId_OS2, "Other OS/2", -- VBOXOSTYPE_OS2, VBOXOSHINT_HWVIRTEX, -- 96, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "MacOS", "Mac OS X", SchemaDefs_OSTypeId_MacOS, "Mac OS X Server", -- VBOXOSTYPE_MacOS, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_USBTABLET, -- 1024, 4, 20 * _1G64, NetworkAdapterType_I82543GC, 0, -- StorageControllerType_ICH6, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA, -- ChipsetType_ICH9, AudioControllerType_HDA }, -- { "MacOS", "Mac OS X", SchemaDefs_OSTypeId_MacOS_64, "Mac OS X Server (64 bit)", -- VBOXOSTYPE_MacOS_x64, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE | VBOXOSHINT_64BIT | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_USBTABLET, -- 1024, 4, 20 * _1G64, NetworkAdapterType_I82543GC, 0, -- StorageControllerType_ICH6, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA, -- ChipsetType_ICH9, AudioControllerType_HDA }, -- { "Other", "Other", SchemaDefs_OSTypeId_DOS, "DOS", -- VBOXOSTYPE_DOS, VBOXOSHINT_NONE, -- 32, 4, 500 * _1M, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16 }, -- { "Other", "Other", SchemaDefs_OSTypeId_Netware, "Netware", -- VBOXOSTYPE_Netware, VBOXOSHINT_HWVIRTEX, -- 512, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Other", "Other", SchemaDefs_OSTypeId_L4, "L4", -- VBOXOSTYPE_L4, VBOXOSHINT_NONE, -- 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Other", "Other", SchemaDefs_OSTypeId_QNX, "QNX", -- VBOXOSTYPE_QNX, VBOXOSHINT_HWVIRTEX, -- 512, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Other", "Other", SchemaDefs_OSTypeId_JRockitVE, "JRockitVE", -- VBOXOSTYPE_JRockitVE, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_PAE, -- 1024, 4, 8 * _1G64, NetworkAdapterType_I82545EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_BusLogic, StorageBus_SCSI, ChipsetType_PIIX3, AudioControllerType_AC97 }, - }; - - /** ---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp 2012-07-25 21:44:01.290876720 -0300 -+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp 2012-07-25 22:00:57.819380802 -0300 -@@ -4875,75 +4875,27 @@ - static const char *kOSTypeIcons [][2] = - { - {"Other", ":/os_other.png"}, -- {"DOS", ":/os_dos.png"}, -- {"Netware", ":/os_netware.png"}, -- {"L4", ":/os_l4.png"}, -- {"Windows31", ":/os_win31.png"}, -- {"Windows95", ":/os_win95.png"}, -- {"Windows98", ":/os_win98.png"}, -- {"WindowsMe", ":/os_winme.png"}, -- {"WindowsNT4", ":/os_winnt4.png"}, -- {"Windows2000", ":/os_win2k.png"}, -- {"WindowsXP", ":/os_winxp.png"}, -- {"WindowsXP_64", ":/os_winxp_64.png"}, -- {"Windows2003", ":/os_win2k3.png"}, -- {"Windows2003_64", ":/os_win2k3_64.png"}, -- {"WindowsVista", ":/os_winvista.png"}, -- {"WindowsVista_64", ":/os_winvista_64.png"}, -- {"Windows2008", ":/os_win2k8.png"}, -- {"Windows2008_64", ":/os_win2k8_64.png"}, -- {"Windows7", ":/os_win7.png"}, -- {"Windows7_64", ":/os_win7_64.png"}, -- {"Windows8", ":/os_win8.png"}, -- {"Windows8_64", ":/os_win8_64.png"}, -- {"WindowsNT", ":/os_win_other.png"}, -- {"OS2Warp3", ":/os_os2warp3.png"}, -- {"OS2Warp4", ":/os_os2warp4.png"}, -- {"OS2Warp45", ":/os_os2warp45.png"}, -- {"OS2eCS", ":/os_os2ecs.png"}, -- {"OS2", ":/os_os2_other.png"}, -- {"Linux22", ":/os_linux22.png"}, -- {"Linux24", ":/os_linux24.png"}, -- {"Linux24_64", ":/os_linux24_64.png"}, -- {"Linux26", ":/os_linux26.png"}, -- {"Linux26_64", ":/os_linux26_64.png"}, -- {"ArchLinux", ":/os_archlinux.png"}, -- {"ArchLinux_64", ":/os_archlinux_64.png"}, -- {"Debian", ":/os_debian.png"}, -- {"Debian_64", ":/os_debian_64.png"}, -- {"OpenSUSE", ":/os_opensuse.png"}, -- {"OpenSUSE_64", ":/os_opensuse_64.png"}, -- {"Fedora", ":/os_fedora.png"}, -- {"Fedora_64", ":/os_fedora_64.png"}, -- {"Gentoo", ":/os_gentoo.png"}, -- {"Gentoo_64", ":/os_gentoo_64.png"}, -- {"Mandriva", ":/os_mandriva.png"}, -- {"Mandriva_64", ":/os_mandriva_64.png"}, -- {"RedHat", ":/os_redhat.png"}, -- {"RedHat_64", ":/os_redhat_64.png"}, -- {"Turbolinux", ":/os_turbolinux.png"}, -- {"Turbolinux_64", ":/os_turbolinux_64.png"}, -- {"Ubuntu", ":/os_ubuntu.png"}, -- {"Ubuntu_64", ":/os_ubuntu_64.png"}, -- {"Xandros", ":/os_xandros.png"}, -- {"Xandros_64", ":/os_xandros_64.png"}, -- {"Oracle", ":/os_oracle.png"}, -- {"Oracle_64", ":/os_oracle_64.png"}, -- {"Linux", ":/os_linux_other.png"}, -- {"FreeBSD", ":/os_freebsd.png"}, -- {"FreeBSD_64", ":/os_freebsd_64.png"}, -- {"OpenBSD", ":/os_openbsd.png"}, -- {"OpenBSD_64", ":/os_openbsd_64.png"}, -- {"NetBSD", ":/os_netbsd.png"}, -- {"NetBSD_64", ":/os_netbsd_64.png"}, -- {"Solaris", ":/os_solaris.png"}, -- {"Solaris_64", ":/os_solaris_64.png"}, -- {"OpenSolaris", ":/os_oraclesolaris.png"}, -- {"OpenSolaris_64", ":/os_oraclesolaris_64.png"}, -- {"QNX", ":/os_qnx.png"}, -- {"MacOS", ":/os_macosx.png"}, -- {"MacOS_64", ":/os_macosx_64.png"}, -- {"JRockitVE", ":/os_jrockitve.png"}, -+ {"GNU", ":/os_gnu.png"}, -+ {"GNU_64", ":/os_gnu_64.png"}, -+ {"GNUHurd", ":/os_gnuhurd.png"}, -+ {"GNULinux", ":/os_gnulinux.png"}, -+ {"GNULinux_64", ":/os_gnulinux_64.png"}, -+ {"Parabola", ":/os_parabola.png"}, -+ {"Parabola_64", ":/os_parabola_64.png"}, -+ {"gNewSense", ":/os_gnewsense.png"}, -+ {"gNewSense_64", ":/os_gnewsense_64.png"}, -+ {"Blag", ":/os_blag.png"}, -+ {"Blag_64", ":/os_blag_64.png"}, -+ {"Dragora", ":/os_dragora.png"}, -+ {"Dragora_64", ":/os_dragora_64.png"}, -+ {"Ututo", ":/os_ututo.png"}, -+ {"Ututo_64", ":/os_ututo_64.png"}, -+ {"Musix", ":/os_musix.png"}, -+ {"Musix_64", ":/os_musix_64.png"}, -+ {"Trisquel", ":/os_trisquel.png"}, -+ {"Trisquel_64", ":/os_trisquel_64.png"}, -+ {"Dynebolic", ":/os_dynebolic.png"}, -+ {"Venenux", ":/os_venenux.png"}, - }; - for (uint n = 0; n < SIZEOF_ARRAY (kOSTypeIcons); ++ n) - { ---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorWidget.cpp.orig 2012-06-20 10:16:38.000000000 -0300 -+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorWidget.cpp 2012-07-25 22:07:51.232436783 -0300 -@@ -192,17 +192,10 @@ - if (typeIndex != -1) - mCbType->setCurrentIndex (typeIndex); - } -- /* Or select WinXP item for Windows family as default */ -- else if (familyId == "Windows") -+ /* Or select Parabola GNU/Linux-libre item for GNU/Linux family as default */ -+ else if (familyId == "GNU/Linux") - { -- int xpIndex = mCbType->findData ("WindowsXP", RoleTypeID); -- if (xpIndex != -1) -- mCbType->setCurrentIndex (xpIndex); -- } -- /* Or select Ubuntu item for Linux family as default */ -- else if (familyId == "Linux") -- { -- int ubIndex = mCbType->findData ("Ubuntu", RoleTypeID); -+ int ubIndex = mCbType->findData ("Parabola", RoleTypeID); - if (ubIndex != -1) - mCbType->setCurrentIndex (ubIndex); - } ---- VirtualBox-4.1.18.orig/include/VBox/ostypes.h 2012-06-20 10:07:51.000000000 -0300 -+++ VirtualBox-4.1.18/include/VBox/ostypes.h 2012-07-25 23:20:57.322757456 -0300 -@@ -43,77 +43,27 @@ - typedef enum VBOXOSTYPE - { - VBOXOSTYPE_Unknown = 0, -- VBOXOSTYPE_DOS = 0x10000, -- VBOXOSTYPE_Win31 = 0x15000, -- VBOXOSTYPE_Win9x = 0x20000, -- VBOXOSTYPE_Win95 = 0x21000, -- VBOXOSTYPE_Win98 = 0x22000, -- VBOXOSTYPE_WinMe = 0x23000, -- VBOXOSTYPE_WinNT = 0x30000, -- VBOXOSTYPE_WinNT4 = 0x31000, -- VBOXOSTYPE_Win2k = 0x32000, -- VBOXOSTYPE_WinXP = 0x33000, -- VBOXOSTYPE_WinXP_x64 = 0x33100, -- VBOXOSTYPE_Win2k3 = 0x34000, -- VBOXOSTYPE_Win2k3_x64 = 0x34100, -- VBOXOSTYPE_WinVista = 0x35000, -- VBOXOSTYPE_WinVista_x64 = 0x35100, -- VBOXOSTYPE_Win2k8 = 0x36000, -- VBOXOSTYPE_Win2k8_x64 = 0x36100, -- VBOXOSTYPE_Win7 = 0x37000, -- VBOXOSTYPE_Win7_x64 = 0x37100, -- VBOXOSTYPE_Win8 = 0x38000, -- VBOXOSTYPE_Win8_x64 = 0x38100, -- VBOXOSTYPE_OS2 = 0x40000, -- VBOXOSTYPE_OS2Warp3 = 0x41000, -- VBOXOSTYPE_OS2Warp4 = 0x42000, -- VBOXOSTYPE_OS2Warp45 = 0x43000, -- VBOXOSTYPE_ECS = 0x44000, -- VBOXOSTYPE_Linux = 0x50000, -- VBOXOSTYPE_Linux_x64 = 0x50100, -- VBOXOSTYPE_Linux22 = 0x51000, -- VBOXOSTYPE_Linux24 = 0x52000, -- VBOXOSTYPE_Linux24_x64 = 0x52100, -- VBOXOSTYPE_Linux26 = 0x53000, -- VBOXOSTYPE_Linux26_x64 = 0x53100, -- VBOXOSTYPE_ArchLinux = 0x54000, -- VBOXOSTYPE_ArchLinux_x64 = 0x54100, -- VBOXOSTYPE_Debian = 0x55000, -- VBOXOSTYPE_Debian_x64 = 0x55100, -- VBOXOSTYPE_OpenSUSE = 0x56000, -- VBOXOSTYPE_OpenSUSE_x64 = 0x56100, -- VBOXOSTYPE_FedoraCore = 0x57000, -- VBOXOSTYPE_FedoraCore_x64 = 0x57100, -- VBOXOSTYPE_Gentoo = 0x58000, -- VBOXOSTYPE_Gentoo_x64 = 0x58100, -- VBOXOSTYPE_Mandriva = 0x59000, -- VBOXOSTYPE_Mandriva_x64 = 0x59100, -- VBOXOSTYPE_RedHat = 0x5A000, -- VBOXOSTYPE_RedHat_x64 = 0x5A100, -- VBOXOSTYPE_Turbolinux = 0x5B000, -- VBOXOSTYPE_Turbolinux_x64 = 0x5B100, -- VBOXOSTYPE_Ubuntu = 0x5C000, -- VBOXOSTYPE_Ubuntu_x64 = 0x5C100, -- VBOXOSTYPE_Xandros = 0x5D000, -- VBOXOSTYPE_Xandros_x64 = 0x5D100, -- VBOXOSTYPE_Oracle = 0x5E000, -- VBOXOSTYPE_Oracle_x64 = 0x5E100, -- VBOXOSTYPE_FreeBSD = 0x60000, -- VBOXOSTYPE_FreeBSD_x64 = 0x60100, -- VBOXOSTYPE_OpenBSD = 0x61000, -- VBOXOSTYPE_OpenBSD_x64 = 0x61100, -- VBOXOSTYPE_NetBSD = 0x62000, -- VBOXOSTYPE_NetBSD_x64 = 0x62100, -- VBOXOSTYPE_Netware = 0x70000, -- VBOXOSTYPE_Solaris = 0x80000, -- VBOXOSTYPE_Solaris_x64 = 0x80100, -- VBOXOSTYPE_OpenSolaris = 0x81000, -- VBOXOSTYPE_OpenSolaris_x64 = 0x81100, -- VBOXOSTYPE_L4 = 0x90000, -- VBOXOSTYPE_QNX = 0xA0000, -- VBOXOSTYPE_MacOS = 0xB0000, -- VBOXOSTYPE_MacOS_x64 = 0xB0100, -- VBOXOSTYPE_JRockitVE = 0xC0000, -+ VBOXOSTYPE_GNU = 0x10000, -+ VBOXOSTYPE_GNU_x64 = 0x10100, -+ VBOXOSTYPE_GNUHurd = 0x20000, -+ VBOXOSTYPE_GNULinux = 0x30000, -+ VBOXOSTYPE_GNULinux_x64 = 0x30100, -+ VBOXOSTYPE_Parabola = 0x31000, -+ VBOXOSTYPE_Parabola_x64 = 0x31100, -+ VBOXOSTYPE_gNewSense = 0x32000, -+ VBOXOSTYPE_gNewSense_x64 = 0x32100, -+ VBOXOSTYPE_Blag = 0x33000, -+ VBOXOSTYPE_Blag_x64 = 0x33100, -+ VBOXOSTYPE_Dragora = 0x34000, -+ VBOXOSTYPE_Dragora_x64 = 0x34100, -+ VBOXOSTYPE_Ututo = 0x35000, -+ VBOXOSTYPE_Ututo_x64 = 0x35100, -+ VBOXOSTYPE_Musix = 0x36000, -+ VBOXOSTYPE_Musix_x64 = 0x36100, -+ VBOXOSTYPE_Trisquel = 0x37000, -+ VBOXOSTYPE_Trisquel_x64 = 0x37100, -+ VBOXOSTYPE_Dynebolic = 0x38000, -+ VBOXOSTYPE_Venenux = 0x39000, - /** The bit number which indicates 64-bit or 32-bit. */ - #define VBOXOSTYPE_x64_BIT 8 - /** The mask which indicates 64-bit. */ -@@ -129,16 +79,11 @@ - typedef enum VBOXOSFAMILY - { - VBOXOSFAMILY_Unknown = 0, -- VBOXOSFAMILY_Windows32 = 1, -- VBOXOSFAMILY_Windows64 = 2, -- VBOXOSFAMILY_Linux32 = 3, -- VBOXOSFAMILY_Linux64 = 4, -- VBOXOSFAMILY_FreeBSD32 = 5, -- VBOXOSFAMILY_FreeBSD64 = 6, -- VBOXOSFAMILY_Solaris32 = 7, -- VBOXOSFAMILY_Solaris64 = 8, -- VBOXOSFAMILY_MacOSX32 = 9, -- VBOXOSFAMILY_MacOSX64 = 10, -+ VBOXOSFAMILY_GNU32 = 1, -+ VBOXOSFAMILY_GNU64 = 2, -+ VBOXOSFAMILY_GNUHurd = 3, -+ VBOXOSFAMILY_GNULinux32 = 4, -+ VBOXOSFAMILY_GNULinux64 = 5, - /** The usual 32-bit hack. */ - VBOXOSFAMILY_32BIT_HACK = 0x7fffffff - } VBOXOSFAMILY; ---- VirtualBox-4.1.18.orig/src/VBox/Main/src-server/ApplianceImpl.cpp 2012-06-20 10:17:35.000000000 -0300 -+++ VirtualBox-4.1.18/src/VBox/Main/src-server/ApplianceImpl.cpp 2012-07-26 01:28:50.033551279 -0300 -@@ -49,94 +49,33 @@ - g_osTypes[] = - { - { ovf::CIMOSType_CIMOS_Unknown, SchemaDefs_OSTypeId_Other }, -- { ovf::CIMOSType_CIMOS_OS2, SchemaDefs_OSTypeId_OS2 }, -- { ovf::CIMOSType_CIMOS_OS2, SchemaDefs_OSTypeId_OS2Warp3 }, -- { ovf::CIMOSType_CIMOS_OS2, SchemaDefs_OSTypeId_OS2Warp4 }, -- { ovf::CIMOSType_CIMOS_OS2, SchemaDefs_OSTypeId_OS2Warp45 }, -- { ovf::CIMOSType_CIMOS_MSDOS, SchemaDefs_OSTypeId_DOS }, -- { ovf::CIMOSType_CIMOS_WIN3x, SchemaDefs_OSTypeId_Windows31 }, -- { ovf::CIMOSType_CIMOS_WIN95, SchemaDefs_OSTypeId_Windows95 }, -- { ovf::CIMOSType_CIMOS_WIN98, SchemaDefs_OSTypeId_Windows98 }, -- { ovf::CIMOSType_CIMOS_WINNT, SchemaDefs_OSTypeId_WindowsNT }, -- { ovf::CIMOSType_CIMOS_WINNT, SchemaDefs_OSTypeId_WindowsNT4 }, -- { ovf::CIMOSType_CIMOS_NetWare, SchemaDefs_OSTypeId_Netware }, -- { ovf::CIMOSType_CIMOS_NovellOES, SchemaDefs_OSTypeId_Netware }, -- { ovf::CIMOSType_CIMOS_Solaris, SchemaDefs_OSTypeId_Solaris }, -- { ovf::CIMOSType_CIMOS_SunOS, SchemaDefs_OSTypeId_Solaris }, -- { ovf::CIMOSType_CIMOS_FreeBSD, SchemaDefs_OSTypeId_FreeBSD }, -- { ovf::CIMOSType_CIMOS_NetBSD, SchemaDefs_OSTypeId_NetBSD }, -- { ovf::CIMOSType_CIMOS_QNX, SchemaDefs_OSTypeId_QNX }, -- { ovf::CIMOSType_CIMOS_Windows2000, SchemaDefs_OSTypeId_Windows2000 }, -- { ovf::CIMOSType_CIMOS_WindowsMe, SchemaDefs_OSTypeId_WindowsMe }, -- { ovf::CIMOSType_CIMOS_OpenBSD, SchemaDefs_OSTypeId_OpenBSD }, -- { ovf::CIMOSType_CIMOS_WindowsXP, SchemaDefs_OSTypeId_WindowsXP }, -- { ovf::CIMOSType_CIMOS_WindowsXPEmbedded, SchemaDefs_OSTypeId_WindowsXP }, -- { ovf::CIMOSType_CIMOS_WindowsEmbeddedforPointofService, SchemaDefs_OSTypeId_WindowsXP }, -- { ovf::CIMOSType_CIMOS_MicrosoftWindowsServer2003, SchemaDefs_OSTypeId_Windows2003 }, -- { ovf::CIMOSType_CIMOS_MicrosoftWindowsServer2003_64, SchemaDefs_OSTypeId_Windows2003_64 }, -- { ovf::CIMOSType_CIMOS_WindowsXP_64, SchemaDefs_OSTypeId_WindowsXP_64 }, -- { ovf::CIMOSType_CIMOS_WindowsVista, SchemaDefs_OSTypeId_WindowsVista }, -- { ovf::CIMOSType_CIMOS_WindowsVista_64, SchemaDefs_OSTypeId_WindowsVista_64 }, -- { ovf::CIMOSType_CIMOS_MicrosoftWindowsServer2008, SchemaDefs_OSTypeId_Windows2008 }, -- { ovf::CIMOSType_CIMOS_MicrosoftWindowsServer2008_64, SchemaDefs_OSTypeId_Windows2008_64 }, -- { ovf::CIMOSType_CIMOS_FreeBSD_64, SchemaDefs_OSTypeId_FreeBSD_64 }, -- { ovf::CIMOSType_CIMOS_MACOS, SchemaDefs_OSTypeId_MacOS }, -- { ovf::CIMOSType_CIMOS_MACOS, SchemaDefs_OSTypeId_MacOS_64 }, // there is no CIM 64-bit type for this -- -- // Linuxes -- { ovf::CIMOSType_CIMOS_RedHatEnterpriseLinux, SchemaDefs_OSTypeId_RedHat }, -- { ovf::CIMOSType_CIMOS_RedHatEnterpriseLinux_64, SchemaDefs_OSTypeId_RedHat_64 }, -- { ovf::CIMOSType_CIMOS_Solaris_64, SchemaDefs_OSTypeId_Solaris_64 }, -- { ovf::CIMOSType_CIMOS_SUSE, SchemaDefs_OSTypeId_OpenSUSE }, -- { ovf::CIMOSType_CIMOS_SLES, SchemaDefs_OSTypeId_OpenSUSE }, -- { ovf::CIMOSType_CIMOS_NovellLinuxDesktop, SchemaDefs_OSTypeId_OpenSUSE }, -- { ovf::CIMOSType_CIMOS_SUSE_64, SchemaDefs_OSTypeId_OpenSUSE_64 }, -- { ovf::CIMOSType_CIMOS_SLES_64, SchemaDefs_OSTypeId_OpenSUSE_64 }, -- { ovf::CIMOSType_CIMOS_LINUX, SchemaDefs_OSTypeId_Linux }, -- { ovf::CIMOSType_CIMOS_LINUX, SchemaDefs_OSTypeId_Linux22 }, -- { ovf::CIMOSType_CIMOS_SunJavaDesktopSystem, SchemaDefs_OSTypeId_Linux }, -- { ovf::CIMOSType_CIMOS_TurboLinux, SchemaDefs_OSTypeId_Turbolinux }, -- { ovf::CIMOSType_CIMOS_TurboLinux_64, SchemaDefs_OSTypeId_Turbolinux_64 }, -- { ovf::CIMOSType_CIMOS_Mandriva, SchemaDefs_OSTypeId_Mandriva }, -- { ovf::CIMOSType_CIMOS_Mandriva_64, SchemaDefs_OSTypeId_Mandriva_64 }, -- { ovf::CIMOSType_CIMOS_Ubuntu, SchemaDefs_OSTypeId_Ubuntu }, -- { ovf::CIMOSType_CIMOS_Ubuntu_64, SchemaDefs_OSTypeId_Ubuntu_64 }, -- { ovf::CIMOSType_CIMOS_Debian, SchemaDefs_OSTypeId_Debian }, -- { ovf::CIMOSType_CIMOS_Debian_64, SchemaDefs_OSTypeId_Debian_64 }, -- { ovf::CIMOSType_CIMOS_Linux_2_4_x, SchemaDefs_OSTypeId_Linux24 }, -- { ovf::CIMOSType_CIMOS_Linux_2_4_x_64, SchemaDefs_OSTypeId_Linux24_64 }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x, SchemaDefs_OSTypeId_Linux26 }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, SchemaDefs_OSTypeId_Linux26_64 }, -- { ovf::CIMOSType_CIMOS_Linux_64, SchemaDefs_OSTypeId_Linux26_64 }, -- -- // types that we have support for but CIM doesn't -- { ovf::CIMOSType_CIMOS_Linux_2_6_x, SchemaDefs_OSTypeId_ArchLinux }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, SchemaDefs_OSTypeId_ArchLinux_64 }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x, SchemaDefs_OSTypeId_Fedora }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, SchemaDefs_OSTypeId_Fedora_64 }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x, SchemaDefs_OSTypeId_Gentoo }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, SchemaDefs_OSTypeId_Gentoo_64 }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x, SchemaDefs_OSTypeId_Xandros }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, SchemaDefs_OSTypeId_Xandros_64 }, -- { ovf::CIMOSType_CIMOS_Solaris, SchemaDefs_OSTypeId_OpenSolaris }, -- { ovf::CIMOSType_CIMOS_Solaris_64, SchemaDefs_OSTypeId_OpenSolaris_64 }, -- -- // types added with CIM 2.25.0 follow: -- { ovf::CIMOSType_CIMOS_WindowsServer2008R2, SchemaDefs_OSTypeId_Windows2008 }, // duplicate, see above --// { ovf::CIMOSType_CIMOS_VMwareESXi = 104, // we can't run ESX in a VM -- { ovf::CIMOSType_CIMOS_Windows7, SchemaDefs_OSTypeId_Windows7 }, -- { ovf::CIMOSType_CIMOS_Windows7, SchemaDefs_OSTypeId_Windows7_64 }, // there is no CIM 64-bit type for this -- { ovf::CIMOSType_CIMOS_CentOS, SchemaDefs_OSTypeId_RedHat }, -- { ovf::CIMOSType_CIMOS_CentOS_64, SchemaDefs_OSTypeId_RedHat_64 }, -- { ovf::CIMOSType_CIMOS_OracleEnterpriseLinux, SchemaDefs_OSTypeId_Oracle }, -- { ovf::CIMOSType_CIMOS_OracleEnterpriseLinux_64, SchemaDefs_OSTypeId_Oracle_64 }, -- { ovf::CIMOSType_CIMOS_eComStation, SchemaDefs_OSTypeId_OS2eCS } -- -- // there are no CIM types for these, so these turn to "other" on export: -- // SchemaDefs_OSTypeId_OpenBSD -- // SchemaDefs_OSTypeId_OpenBSD_64 -- // SchemaDefs_OSTypeId_NetBSD -- // SchemaDefs_OSTypeId_NetBSD_64 -+ -+ // Custom OS -+ { ovf::CIMOSType_CIMOS_GNU, SchemaDefs_OSTypeId_GNU }, -+ { ovf::CIMOSType_CIMOS_GNU_64, SchemaDefs_OSTypeId_GNU_64 }, -+ { ovf::CIMOSType_CIMOS_GNUHurd, SchemaDefs_OSTypeId_GNUHurd }, -+ { ovf::CIMOSType_CIMOS_GNULinux, SchemaDefs_OSTypeId_GNULinux }, -+ { ovf::CIMOSType_CIMOS_GNULinux_64, SchemaDefs_OSTypeId_GNULinux_64 }, -+ -+ // GNU/Linux free distros -+ { ovf::CIMOSType_CIMOS_gNewSense, SchemaDefs_OSTypeId_gNewSense }, -+ { ovf::CIMOSType_CIMOS_gNewSense_64, SchemaDefs_OSTypeId_gNewSense_64 }, -+ { ovf::CIMOSType_CIMOS_Dragora, SchemaDefs_OSTypeId_Dragora }, -+ { ovf::CIMOSType_CIMOS_Dragora_64, SchemaDefs_OSTypeId_Dragora_64 }, -+ { ovf::CIMOSType_CIMOS_Musix, SchemaDefs_OSTypeId_Musix }, -+ { ovf::CIMOSType_CIMOS_Musix_64, SchemaDefs_OSTypeId_Musix_64 }, -+ { ovf::CIMOSType_CIMOS_Trisquel, SchemaDefs_OSTypeId_Trisquel }, -+ { ovf::CIMOSType_CIMOS_Trisquel_64, SchemaDefs_OSTypeId_Trisquel_64 }, -+ { ovf::CIMOSType_CIMOS_Dynebolic, SchemaDefs_OSTypeId_Dynebolic }, -+ { ovf::CIMOSType_CIMOS_Venenux, SchemaDefs_OSTypeId_Venenux }, -+ -+ // GNU/Linux free distros that we have support for but CIM doesn't -+ { ovf::CIMOSType_CIMOS_GNULinux, SchemaDefs_OSTypeId_Parabola }, -+ { ovf::CIMOSType_CIMOS_GNULinux_64, SchemaDefs_OSTypeId_Parabola_64 }, -+ { ovf::CIMOSType_CIMOS_GNULinux, SchemaDefs_OSTypeId_Blag }, -+ { ovf::CIMOSType_CIMOS_GNULinux_64, SchemaDefs_OSTypeId_Blag_64 }, -+ { ovf::CIMOSType_CIMOS_GNULinux, SchemaDefs_OSTypeId_Ututo }, -+ { ovf::CIMOSType_CIMOS_GNULinux_64, SchemaDefs_OSTypeId_Ututo_64 }, - - }; - -@@ -150,53 +89,34 @@ - /* These are the 32-Bit ones. They are sorted by priority. */ - static const osTypePattern g_osTypesPattern[] = - { -- {"Windows NT", SchemaDefs_OSTypeId_WindowsNT4}, -- {"Windows XP", SchemaDefs_OSTypeId_WindowsXP}, -- {"Windows 2000", SchemaDefs_OSTypeId_Windows2000}, -- {"Windows 2003", SchemaDefs_OSTypeId_Windows2003}, -- {"Windows Vista", SchemaDefs_OSTypeId_WindowsVista}, -- {"Windows 2008", SchemaDefs_OSTypeId_Windows2008}, -- {"SUSE", SchemaDefs_OSTypeId_OpenSUSE}, -- {"Novell", SchemaDefs_OSTypeId_OpenSUSE}, -- {"Red Hat", SchemaDefs_OSTypeId_RedHat}, -- {"Mandriva", SchemaDefs_OSTypeId_Mandriva}, -- {"Ubuntu", SchemaDefs_OSTypeId_Ubuntu}, -- {"Debian", SchemaDefs_OSTypeId_Debian}, -- {"QNX", SchemaDefs_OSTypeId_QNX}, -- {"Linux 2.4", SchemaDefs_OSTypeId_Linux24}, -- {"Linux 2.6", SchemaDefs_OSTypeId_Linux26}, -- {"Linux", SchemaDefs_OSTypeId_Linux}, -- {"OpenSolaris", SchemaDefs_OSTypeId_OpenSolaris}, -- {"Solaris", SchemaDefs_OSTypeId_OpenSolaris}, -- {"FreeBSD", SchemaDefs_OSTypeId_FreeBSD}, -- {"NetBSD", SchemaDefs_OSTypeId_NetBSD}, -- {"Windows 95", SchemaDefs_OSTypeId_Windows95}, -- {"Windows 98", SchemaDefs_OSTypeId_Windows98}, -- {"Windows Me", SchemaDefs_OSTypeId_WindowsMe}, -- {"Windows 3.", SchemaDefs_OSTypeId_Windows31}, -- {"DOS", SchemaDefs_OSTypeId_DOS}, -- {"OS2", SchemaDefs_OSTypeId_OS2} -+ -+ {"Parabola GNU/Linux-libre", SchemaDefs_OSTypeId_Parabola}, -+ {"gNewSense", SchemaDefs_OSTypeId_gNewSense}, -+ {"Blag Linux and GNU", SchemaDefs_OSTypeId_Blag}, -+ {"Dragora", SchemaDefs_OSTypeId_Dragora}, -+ {"Ututo XS", SchemaDefs_OSTypeId_Ututo}, -+ {"Musix", SchemaDefs_OSTypeId_Musix}, -+ {"Trisquel", SchemaDefs_OSTypeId_Trisquel}, -+ {"Dyne:bolic", SchemaDefs_OSTypeId_Dynebolic}, -+ {"Venenux", SchemaDefs_OSTypeId_Venenux}, -+ {"GNU", SchemaDefs_OSTypeId_GNU}, -+ {"GNU-Hurd", SchemaDefs_OSTypeId_GNUHurd}, -+ {"GNU/Linux", SchemaDefs_OSTypeId_GNULinux}, -+ - }; - - /* These are the 64-Bit ones. They are sorted by priority. */ - static const osTypePattern g_osTypesPattern64[] = - { -- {"Windows XP", SchemaDefs_OSTypeId_WindowsXP_64}, -- {"Windows 2003", SchemaDefs_OSTypeId_Windows2003_64}, -- {"Windows Vista", SchemaDefs_OSTypeId_WindowsVista_64}, -- {"Windows 2008", SchemaDefs_OSTypeId_Windows2008_64}, -- {"SUSE", SchemaDefs_OSTypeId_OpenSUSE_64}, -- {"Novell", SchemaDefs_OSTypeId_OpenSUSE_64}, -- {"Red Hat", SchemaDefs_OSTypeId_RedHat_64}, -- {"Mandriva", SchemaDefs_OSTypeId_Mandriva_64}, -- {"Ubuntu", SchemaDefs_OSTypeId_Ubuntu_64}, -- {"Debian", SchemaDefs_OSTypeId_Debian_64}, -- {"Linux 2.4", SchemaDefs_OSTypeId_Linux24_64}, -- {"Linux 2.6", SchemaDefs_OSTypeId_Linux26_64}, -- {"Linux", SchemaDefs_OSTypeId_Linux26_64}, -- {"OpenSolaris", SchemaDefs_OSTypeId_OpenSolaris_64}, -- {"Solaris", SchemaDefs_OSTypeId_OpenSolaris_64}, -- {"FreeBSD", SchemaDefs_OSTypeId_FreeBSD_64}, -+ {"Parabola GNU/Linux-libre", SchemaDefs_OSTypeId_Parabola_64}, -+ {"gNewSense", SchemaDefs_OSTypeId_gNewSense_64}, -+ {"Blag Linux and GNU", SchemaDefs_OSTypeId_Blag_64}, -+ {"Dragora", SchemaDefs_OSTypeId_Dragora_64}, -+ {"Ututo XS", SchemaDefs_OSTypeId_Ututo_64}, -+ {"Musix", SchemaDefs_OSTypeId_Musix_64}, -+ {"Trisquel", SchemaDefs_OSTypeId_Trisquel_64}, -+ {"GNU", SchemaDefs_OSTypeId_GNU_64}, -+ {"GNU/Linux", SchemaDefs_OSTypeId_GNULinux_64}, - }; - - /** ---- VirtualBox-4.1.18.orig/src/VBox/Main/include/ovfreader.h 2012-06-20 10:17:34.000000000 -0300 -+++ VirtualBox-4.1.18/src/VBox/Main/include/ovfreader.h 2012-07-26 03:51:21.807619186 -0300 -@@ -34,119 +34,24 @@ - - enum CIMOSType_T - { -- CIMOSType_CIMOS_Unknown = 0, -- CIMOSType_CIMOS_Other = 1, -- CIMOSType_CIMOS_MACOS = 2, -- CIMOSType_CIMOS_ATTUNIX = 3, -- CIMOSType_CIMOS_DGUX = 4, -- CIMOSType_CIMOS_DECNT = 5, -- CIMOSType_CIMOS_Tru64UNIX = 6, -- CIMOSType_CIMOS_OpenVMS = 7, -- CIMOSType_CIMOS_HPUX = 8, -- CIMOSType_CIMOS_AIX = 9, -- CIMOSType_CIMOS_MVS = 10, -- CIMOSType_CIMOS_OS400 = 11, -- CIMOSType_CIMOS_OS2 = 12, -- CIMOSType_CIMOS_JavaVM = 13, -- CIMOSType_CIMOS_MSDOS = 14, -- CIMOSType_CIMOS_WIN3x = 15, -- CIMOSType_CIMOS_WIN95 = 16, -- CIMOSType_CIMOS_WIN98 = 17, -- CIMOSType_CIMOS_WINNT = 18, -- CIMOSType_CIMOS_WINCE = 19, -- CIMOSType_CIMOS_NCR3000 = 20, -- CIMOSType_CIMOS_NetWare = 21, -- CIMOSType_CIMOS_OSF = 22, -- CIMOSType_CIMOS_DCOS = 23, -- CIMOSType_CIMOS_ReliantUNIX = 24, -- CIMOSType_CIMOS_SCOUnixWare = 25, -- CIMOSType_CIMOS_SCOOpenServer = 26, -- CIMOSType_CIMOS_Sequent = 27, -- CIMOSType_CIMOS_IRIX = 28, -- CIMOSType_CIMOS_Solaris = 29, -- CIMOSType_CIMOS_SunOS = 30, -- CIMOSType_CIMOS_U6000 = 31, -- CIMOSType_CIMOS_ASERIES = 32, -- CIMOSType_CIMOS_HPNonStopOS = 33, -- CIMOSType_CIMOS_HPNonStopOSS = 34, -- CIMOSType_CIMOS_BS2000 = 35, -- CIMOSType_CIMOS_LINUX = 36, -- CIMOSType_CIMOS_Lynx = 37, -- CIMOSType_CIMOS_XENIX = 38, -- CIMOSType_CIMOS_VM = 39, -- CIMOSType_CIMOS_InteractiveUNIX = 40, -- CIMOSType_CIMOS_BSDUNIX = 41, -- CIMOSType_CIMOS_FreeBSD = 42, -- CIMOSType_CIMOS_NetBSD = 43, -- CIMOSType_CIMOS_GNUHurd = 44, -- CIMOSType_CIMOS_OS9 = 45, -- CIMOSType_CIMOS_MACHKernel = 46, -- CIMOSType_CIMOS_Inferno = 47, -- CIMOSType_CIMOS_QNX = 48, -- CIMOSType_CIMOS_EPOC = 49, -- CIMOSType_CIMOS_IxWorks = 50, -- CIMOSType_CIMOS_VxWorks = 51, -- CIMOSType_CIMOS_MiNT = 52, -- CIMOSType_CIMOS_BeOS = 53, -- CIMOSType_CIMOS_HPMPE = 54, -- CIMOSType_CIMOS_NextStep = 55, -- CIMOSType_CIMOS_PalmPilot = 56, -- CIMOSType_CIMOS_Rhapsody = 57, -- CIMOSType_CIMOS_Windows2000 = 58, -- CIMOSType_CIMOS_Dedicated = 59, -- CIMOSType_CIMOS_OS390 = 60, -- CIMOSType_CIMOS_VSE = 61, -- CIMOSType_CIMOS_TPF = 62, -- CIMOSType_CIMOS_WindowsMe = 63, -- CIMOSType_CIMOS_CalderaOpenUNIX = 64, -- CIMOSType_CIMOS_OpenBSD = 65, -- CIMOSType_CIMOS_NotApplicable = 66, -- CIMOSType_CIMOS_WindowsXP = 67, -- CIMOSType_CIMOS_zOS = 68, -- CIMOSType_CIMOS_MicrosoftWindowsServer2003 = 69, -- CIMOSType_CIMOS_MicrosoftWindowsServer2003_64 = 70, -- CIMOSType_CIMOS_WindowsXP_64 = 71, -- CIMOSType_CIMOS_WindowsXPEmbedded = 72, -- CIMOSType_CIMOS_WindowsVista = 73, -- CIMOSType_CIMOS_WindowsVista_64 = 74, -- CIMOSType_CIMOS_WindowsEmbeddedforPointofService = 75, -- CIMOSType_CIMOS_MicrosoftWindowsServer2008 = 76, -- CIMOSType_CIMOS_MicrosoftWindowsServer2008_64 = 77, -- CIMOSType_CIMOS_FreeBSD_64 = 78, -- CIMOSType_CIMOS_RedHatEnterpriseLinux = 79, -- CIMOSType_CIMOS_RedHatEnterpriseLinux_64 = 80, -- CIMOSType_CIMOS_Solaris_64 = 81, -- CIMOSType_CIMOS_SUSE = 82, -- CIMOSType_CIMOS_SUSE_64 = 83, -- CIMOSType_CIMOS_SLES = 84, -- CIMOSType_CIMOS_SLES_64 = 85, -- CIMOSType_CIMOS_NovellOES = 86, -- CIMOSType_CIMOS_NovellLinuxDesktop = 87, -- CIMOSType_CIMOS_SunJavaDesktopSystem = 88, -- CIMOSType_CIMOS_Mandriva = 89, -- CIMOSType_CIMOS_Mandriva_64 = 90, -- CIMOSType_CIMOS_TurboLinux = 91, -- CIMOSType_CIMOS_TurboLinux_64 = 92, -- CIMOSType_CIMOS_Ubuntu = 93, -- CIMOSType_CIMOS_Ubuntu_64 = 94, -- CIMOSType_CIMOS_Debian = 95, -- CIMOSType_CIMOS_Debian_64 = 96, -- CIMOSType_CIMOS_Linux_2_4_x = 97, -- CIMOSType_CIMOS_Linux_2_4_x_64 = 98, -- CIMOSType_CIMOS_Linux_2_6_x = 99, -- CIMOSType_CIMOS_Linux_2_6_x_64 = 100, -- CIMOSType_CIMOS_Linux_64 = 101, -- CIMOSType_CIMOS_Other_64 = 102, -- // types added with CIM 2.25.0 follow: -- CIMOSType_CIMOS_WindowsServer2008R2 = 103, -- CIMOSType_CIMOS_VMwareESXi = 104, -- CIMOSType_CIMOS_Windows7 = 105, -- CIMOSType_CIMOS_CentOS = 106, -- CIMOSType_CIMOS_CentOS_64 = 107, -- CIMOSType_CIMOS_OracleEnterpriseLinux = 108, -- CIMOSType_CIMOS_OracleEnterpriseLinux_64 = 109, -- CIMOSType_CIMOS_eComStation = 110 -- // no new types added with CIM 2.26.0 -+ CIMOSType_CIMOS_Unknown = 0, -+ CIMOSType_CIMOS_Other = 1, -+ CIMOSType_CIMOS_Other_64 = 2, -+ CIMOSType_CIMOS_gNewSense = 3, -+ CIMOSType_CIMOS_gNewSense_64 = 4, -+ CIMOSType_CIMOS_Dragora = 5, -+ CIMOSType_CIMOS_Dragora_64 = 6, -+ CIMOSType_CIMOS_Musix = 7, -+ CIMOSType_CIMOS_Musix_64 = 8, -+ CIMOSType_CIMOS_Trisquel = 9, -+ CIMOSType_CIMOS_Trisquel_64 = 10, -+ CIMOSType_CIMOS_Dynebolic = 11, -+ CIMOSType_CIMOS_Venenux = 12, -+ CIMOSType_CIMOS_GNU = 13, -+ CIMOSType_CIMOS_GNU_64 = 14, -+ CIMOSType_CIMOS_GNUHurd = 15, -+ CIMOSType_CIMOS_GNULinux = 16, -+ CIMOSType_CIMOS_GNULinux_64 = 17 - }; - - ---- VirtualBox-4.1.18.orig/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c 2012-06-20 10:09:01.000000000 -0300 -+++ VirtualBox-4.1.18/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c 2012-07-26 15:32:55.309812685 -0300 -@@ -622,16 +622,16 @@ - * Call the common device extension initializer. - */ - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0) && defined(RT_ARCH_X86) -- VBOXOSTYPE enmOSType = VBOXOSTYPE_Linux26; -+ VBOXOSTYPE enmOSType = VBOXOSTYPE_GNULinux; - #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0) && defined(RT_ARCH_AMD64) -- VBOXOSTYPE enmOSType = VBOXOSTYPE_Linux26_x64; -+ VBOXOSTYPE enmOSType = VBOXOSTYPE_GNULinux_x64; - #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0) && defined(RT_ARCH_X86) -- VBOXOSTYPE enmOSType = VBOXOSTYPE_Linux24; -+ VBOXOSTYPE enmOSType = VBOXOSTYPE_GNULinux; - #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0) && defined(RT_ARCH_AMD64) -- VBOXOSTYPE enmOSType = VBOXOSTYPE_Linux24_x64; -+ VBOXOSTYPE enmOSType = VBOXOSTYPE_GNULinux_x64; - #else - # warning "huh? which arch + version is this?" -- VBOXOSTYPE enmOsType = VBOXOSTYPE_Linux; -+ VBOXOSTYPE enmOsType = VBOXOSTYPE_GNULinux; - #endif - rc = VBoxGuestInitDevExt(&g_DevExt, - g_IOPortBase, diff --git a/libre/virtualbox-libre-modules-lts/libre.patch b/libre/virtualbox-libre-modules-lts/libre.patch deleted file mode 100755 index e51d0c0a7..000000000 --- a/libre/virtualbox-libre-modules-lts/libre.patch +++ /dev/null @@ -1,5765 +0,0 @@ ---- VirtualBox-4.1.18.orig/Config.kmk 2012-07-24 16:38:43.981310996 -0300 -+++ VirtualBox-4.1.18/Config.kmk 2012-07-24 16:38:44.001309865 -0300 -@@ -56,9 +56,6 @@ - PROPS_SYSMODS_ACCUMULATE_L += INTERMEDIATES - PROPS_MISCBINS_ACCUMULATE_L += INTERMEDIATES - --# Misc names used bye the install paths below. --VBOX_PUEL_MANGLED_NAME := Oracle_VM_VirtualBox_Extension_Pack -- - # Install paths - ## @todo This will change after 4.1 is branched off! - # What is now 'bin' and 'lib' will be moved down under 'staged/', except on -@@ -125,9 +122,6 @@ - endif - - INST_DOC = doc/ --INST_EXTPACK = $(INST_BIN)ExtensionPacks/ --INST_EXTPACK_CERTS = $(INST_BIN)ExtPackCertificates/ --INST_EXTPACK_PUEL = $(INST_EXTPACK)$(VBOX_PUEL_MANGLED_NAME)/ - INST_PACKAGES = packages/ - - VBOX_PATH_SDK = $(patsubst %/,%,$(PATH_STAGE)/$(INST_SDK)) -@@ -136,7 +130,6 @@ - VBOX_PATH_ADDITIONS = $(patsubst %/,%,$(PATH_STAGE)/$(INST_ADDITIONS)) - VBOX_PATH_ADDITIONS_ISO = $(patsubst %/,%,$(PATH_STAGE)/$(INST_ADDITIONS_ISO)) - VBOX_PATH_ADDITIONS_LIB = $(patsubst %/,%,$(PATH_STAGE)/$(INST_ADDITIONS_LIB)) --VBOX_PATH_EXTPACK_PUEL= $(patsubst %/,%,$(PATH_STAGE)/$(INST_EXTPACK_PUEL)) - VBOX_PATH_PACKAGES = $(patsubst %/,%,$(PATH_STAGE)/$(INST_PACKAGES)) - - -@@ -208,7 +201,6 @@ - export VBOX_ADDITIONS_SH_MODE = release - export VBOX_DOCUMENTATION_SH_MODE = release - export VBOX_EFI_SH_MODE = release -- export VBOX_EXTPACKS_SH_MODE = release - endif - - # Some info on the vendor -@@ -361,8 +353,6 @@ - VBOX_WITH_USB = 1 - # Enable the USB 1.1 controller plus virtual USB HID devices. - VBOX_WITH_VUSB = 1 --# Enable the USB 2.0 controller. --VBOX_WITH_EHCI = 1 - # Enable the ISCSI feature. - VBOX_WITH_ISCSI = 1 - # Enable INIP support in the ISCSI feature. -@@ -430,9 +420,6 @@ - ifdef VBOX_WITH_USB - VBOX_WITH_VUSB = 1 - endif --ifdef VBOX_WITH_EHCI -- VBOX_WITH_EHCI_IMPL = 1 --endif - ifdef VBOX_WITH_PCI_PASSTHROUGH - VBOX_WITH_PCI_PASSTHROUGH_IMPL = 1 - endif -@@ -591,15 +578,6 @@ - ## @} - - --## @name Extension pack --## @{ --# Enables the extension pack feature. --VBOX_WITH_EXTPACK = 1 --# Enables separating code into the Oracle VM VirtualBox Extension Pack, dubbed PUEL. --VBOX_WITH_EXTPACK_PUEL = 1 --# Enables building+packing the Oracle VM VirtualBox Extension Pack, includes VBOX_WITH_EXTPACK_PUEL --VBOX_WITH_EXTPACK_PUEL_BUILD = 1 --## @} - - ## @name Misc - ## @{ -@@ -777,14 +755,6 @@ - # Skip stuff. - # - --ifdef VBOX_ONLY_EXTPACKS -- # Clear some VBOX_WITH_XXX variables instead of adding ifdefs all over the place. -- VBOX_WITH_DEBUGGER = -- VBOX_WITH_ADDITIONS = -- VBOX_WITH_VBOXDRV = -- VBOX_WITH_TESTCASES = --endif -- - # VBOX_QUICK can be used by core developers to speed to the build - ifdef VBOX_QUICK - # undefine variables by assigning blank. -@@ -848,7 +818,6 @@ - VBOX_WITH_TESTSUITE= - VBOX_WITH_QTGUI= - VBOX_WITH_USB= -- VBOX_WITH_EHCI= - VBOX_WITH_DOCS= - VBOX_WITH_PDM_ASYNC_COMPLETION= - VBOX_WITH_KCHMVIEWER= -@@ -870,7 +839,6 @@ - VBOX_WITH_CROGL= - VBOX_WITH_DEBUGGER= - VBOX_WITH_DOCS= -- VBOX_WITH_EHCI= - VBOX_WITH_HARDENING= - VBOX_WITH_HEADLESS= - VBOX_WITH_HGCM= -@@ -952,9 +920,6 @@ - # - ifdef VBOX_OSE - VBOX_WITH_VRDP= -- VBOX_WITH_EHCI_IMPL= -- VBOX_WITH_EXTPACK_PUEL= -- VBOX_WITH_EXTPACK_PUEL_BUILD= - VBOX_WITH_PCI_PASSTHROUGH_IMPL= - VBOX_WITH_OS2_ADDITIONS_BIN= - VBOX_WITH_SECURELABEL= -@@ -1082,10 +1047,6 @@ - VBOX_WITH_KCHMVIEWER= - endif - --ifdef VBOX_WITH_EXTPACK_PUEL_BUILD -- VBOX_WITH_EXTPACK_PUEL = 1 --endif -- - # - # Mark OSE builds clearly, helps figuring out limitations more easily. - # -@@ -1679,9 +1640,6 @@ - # biossums (set BIOS checksums) - VBOX_BIOSSUMS ?= $(PATH_OBJ)/biossums/biossums$(HOSTSUFF_EXE) - --# RTManifest (extension pack manifest utility) --VBOX_RTMANIFEST ?= $(PATH_OBJ)/bldRTManifest/bldRTManifest$(HOSTSUFF_EXE) -- - # filesplitter (splits java files) - VBOX_FILESPLIT ?= $(PATH_OBJ)/filesplitter/filesplitter$(HOSTSUFF_EXE) - -@@ -2461,13 +2419,6 @@ - SDK_VBOX_OPENSSL2_LIBS = $(NO_SUCH_VARIABLE) - endif - --SDK_VBoxOpenSslExtPack = Internal use only. --SDK_VBoxOpenSslExtPack_INCS = $(SDK_VBOX_OPENSSL_VBOX_DEFAULT_INCS) --SDK_VBoxOpenSslExtPack_ORDERDEPS = $(crypto-headers_1_TARGET) --SDK_VBoxOpenSslExtPack_LIBS = \ -- $(PATH_STAGE_LIB)/VBoxExtPack-libssl$(VBOX_SUFF_LIB) \ -- $(PATH_STAGE_LIB)/VBoxExtPack-libcrypto$(VBOX_SUFF_LIB) -- - SDK_VBOX_BLD_OPENSSL = . - SDK_VBOX_BLD_OPENSSL_EXTENDS = VBOX_OPENSSL - SDK_VBOX_BLD_OPENSSL_LIBS ?= \ -@@ -3817,100 +3768,6 @@ - endif - TEMPLATE_VBOXMAINCLIENTDLL_LDFLAGS.darwin = $(filter-out -bind_at_load,$(TEMPLATE_VBOXMAINCLIENTEXE_LDFLAGS.darwin)) - -- -- --# --# Templates used for building the extension packs. --# --ifdef VBOX_WITH_EXTPACK -- # Base templates (native or portable). -- TEMPLATE_VBoxR3ExtPack = For the ring-3 context extension pack modules. -- if 1 # Native for now. -- TEMPLATE_VBoxR3ExtPack_EXTENDS = VBOXR3DLLNOXCPT -- TEMPLATE_VBoxR3ExtPack_DEFS = $(TEMPLATE_VBOXR3DLLNOXCPT_DEFS) VBOX_IN_EXTPACK VBOX_IN_EXTPACK_R3 -- else -- TEMPLATE_VBoxR3ExtPack_EXTENDS = VBOXNOCRTGCC -- TEMPLATE_VBoxR3ExtPack_DEFS = $(TEMPLATE_VBOXNOCRTGCC_DEFS) VBOX_IN_EXTPACK VBOX_IN_EXTPACK_R3 IPRT_NO_CRT IN_RING3 -- TEMPLATE_VBoxR3ExtPack_INCS = $(PATH_ROOT)/include/iprt/nocrt $(TEMPLATE_VBOXR3DLLNOXCPT_INCS) -- endif -- ifneq ($(KBUILD_TARGET),win) -- TEMPLATE_VBoxR3ExtPack_CXXFLAGS = $(TEMPLATE_VBOXR3DLLNOXCPT_CXXFLAGS) -fno-rtti -- endif -- TEMPLATE_VBoxR3ExtPack_INST = $(INST_EXTPACK)YouShallOverrideThis/ -- ifeq ($(KBUILD_TARGET),linux) -- TEMPLATE_VBoxR3ExtPack_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)' '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)', $(TEMPLATE_VBOXR3DLLNOXCPT_LDFLAGS)) -- else -- if !defined(VBOX_WITH_RUNPATH) && defined(VBOX_WITH_RELATIVE_RUNPATH) -- TEMPLATE_VBoxR3ExtPack_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)/../../..' $(filter-out '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)', $(TEMPLATE_VBOXR3DLLNOXCPT_LDFLAGS)) -- endif -- endif -- ifdef VBOX_ONLY_EXTPACKS_USE_IMPLIBS -- if1of ($(KBUILD_TARGET), win os2) -- TEMPLATE_VBoxR3ExtPack_LIBS = \ -- $(TEMPLATE_LIBS_VBOXR3) \ -- $(PATH_STAGE_LIB)/VMMR3Imp$(VBOX_SUFF_LIB) \ -- $(PATH_STAGE_LIB)/VBoxRTImp$(VBOX_SUFF_LIB) -- else -- TEMPLATE_VBoxR3ExtPack_LIBS = \ -- $(TEMPLATE_LIBS_VBOXR3) \ -- $(PATH_STAGE_LIB)/VMMR3Imp$(VBOX_SUFF_DLL) \ -- $(PATH_STAGE_LIB)/VBoxRTImp$(VBOX_SUFF_DLL) -- endif -- else -- TEMPLATE_VBoxR3ExtPack_LIBS = \ -- $(TEMPLATE_LIBS_VBOXR3) \ -- $(LIB_RUNTIME) \ -- $(LIB_VMM) -- endif -- -- TEMPLATE_VBoxR0ExtPack = For the ring-0 context extension pack modules. -- TEMPLATE_VBoxR0ExtPack_EXTENDS = VBoxR0 -- TEMPLATE_VBoxR0ExtPack_EXTENDS_BY = appending -- TEMPLATE_VBoxR0ExtPack_INST = $(INST_EXTPACK)YouShallOverrideThis/ -- TEMPLATE_VBoxR0ExtPack_DEFS = VBOX_IN_EXTPACK VBOX_IN_EXTPACK_R0 -- if1of ($(VBOX_LDR_FMT), pe lx) -- TEMPLATE_VBoxR0ExtPack_LIBS = \ -- $(PATH_STAGE_LIB)/VMMR0Imp$(VBOX_SUFF_LIB) \ -- $(PATH_STAGE_LIB)/SUPR0$(VBOX_SUFF_LIB) -- endif -- -- TEMPLATE_VBoxRcExtPack = For the raw-mode context extension pack modules. -- TEMPLATE_VBoxRcExtPack_EXTENDS = VBoxRc -- TEMPLATE_VBoxRcExtPack_EXTENDS_BY = appending -- TEMPLATE_VBoxRcExtPack_SYSSUFF = .rc -- TEMPLATE_VBoxRcExtPack_INST = $(INST_EXTPACK)YouShallOverrideThis/ -- TEMPLATE_VBoxRcExtPack_DEFS = VBOX_IN_EXTPACK VBOX_IN_EXTPACK_RC -- if1of ($(VBOX_LDR_FMT32), pe lx) -- TEMPLATE_VBoxRcExtPack_LIBS = \ -- $(PATH_STAGE_LIB)/VMMRCBuiltin$(VBOX_SUFF_LIB) \ -- $(PATH_STAGE_LIB)/VMMRCImp$(VBOX_SUFF_LIB) -- endif -- -- TEMPLATE_VBoxInsExtPack = For the install targets of an extension pack. -- TEMPLATE_VBoxInsExtPack_MODE = 0644 -- TEMPLATE_VBoxInsExtPack_INST = $(INST_EXTPACK)YouShallOverrideThis/ -- -- # For each individual extension pack -- ifdef VBOX_WITH_EXTPACK_PUEL -- TEMPLATE_VBoxR3ExtPackPuel = For the ring-3 context modules in the PUEL extension pack. -- TEMPLATE_VBoxR3ExtPackPuel_EXTENDS = VBoxR3ExtPack -- TEMPLATE_VBoxR3ExtPackPuel_INST = $(INST_EXTPACK_PUEL)$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)/ -- -- TEMPLATE_VBoxR0ExtPackPuel = For the ring-0 context modules in the PUEL extension pack. -- TEMPLATE_VBoxR0ExtPackPuel_EXTENDS = VBoxR0ExtPack -- TEMPLATE_VBoxR0ExtPackPuel_INST = $(INST_EXTPACK_PUEL)$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)/ -- -- TEMPLATE_VBoxRcExtPackPuel = For the raw-mode context modules in the PUEL extension pack. -- TEMPLATE_VBoxRcExtPackPuel_EXTENDS = VBoxRcExtPack -- TEMPLATE_VBoxRcExtPackPuel_INST = $(INST_EXTPACK_PUEL)$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)/ -- -- TEMPLATE_VBoxInsExtPackPuel = For the install targets of an extension pack. -- TEMPLATE_VBoxInsExtPackPuel_EXTENDS = VBoxR0ExtPack -- TEMPLATE_VBoxInsExtPackPuel_INST = $(INST_EXTPACK_PUEL) --endif --endif # VBOX_WITH_EXTPACK -- -- - # - # Qt 4 - # Qt 4 ---- VirtualBox-4.1.18.orig/Makefile.kmk 2012-07-24 17:16:47.078929150 -0300 -+++ VirtualBox-4.1.18/Makefile.kmk 2012-07-24 17:16:47.125592981 -0300 -@@ -446,7 +446,6 @@ - include/VBox \ - include/VBox/vmm \ - include/VBox/com \ -- include/VBox/ExtPack \ - include/VBox/HostServices \ - include/VBox/GuestHost \ - include/VBox/HGSMI \ -@@ -862,191 +861,6 @@ - additions-build-linux.x86.combined \ - additions-packing - -- --# --# Build the extension packs, all of them. --# --# This is tailored (hardcoded) for the extension pack build box. --# --# The fetching must be done in serial fashion, while the building should be --# more flexible wrt to -jN. --# --extpacks-fetch: -- + $(KMK) -C tools fetch VBOX_ONLY_EXTPACKS=1 -- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=darwin BUILD_TARGET_ARCH=amd64 BUILD_TARGET=darwin VBOX_ONLY_EXTPACKS=1 -- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=darwin BUILD_TARGET_ARCH=x86 BUILD_TARGET=darwin VBOX_ONLY_EXTPACKS=1 --# + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=freebsd BUILD_TARGET_ARCH=amd64 BUILD_TARGET=freebsd VBOX_ONLY_EXTPACKS=1 --# + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=freebsd BUILD_TARGET_ARCH=x86 BUILD_TARGET=freebsd VBOX_ONLY_EXTPACKS=1 -- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=linux BUILD_TARGET_ARCH=amd64 BUILD_TARGET=linux VBOX_ONLY_EXTPACKS=1 -- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=linux BUILD_TARGET_ARCH=x86 BUILD_TARGET=linux VBOX_ONLY_EXTPACKS=1 --# + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=os2 BUILD_TARGET_ARCH=x86 BUILD_TARGET=os2 VBOX_ONLY_EXTPACKS=1 -- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=solaris BUILD_TARGET_ARCH=amd64 BUILD_TARGET=solaris VBOX_ONLY_EXTPACKS=1 -- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=solaris BUILD_TARGET_ARCH=x86 BUILD_TARGET=solaris VBOX_ONLY_EXTPACKS=1 -- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=win BUILD_TARGET_ARCH=amd64 BUILD_TARGET=win VBOX_ONLY_EXTPACKS=1 -- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=win BUILD_TARGET_ARCH=x86 BUILD_TARGET=win VBOX_ONLY_EXTPACKS=1 -- -- --extpacks-build: \ -- extpacks-build-win.amd64 \ -- extpacks-build-win.x86 \ -- extpacks-build-solaris.amd64 \ -- extpacks-build-solaris.x86 \ -- extpacks-build-os2.x86 \ -- extpacks-build-linux.amd64 \ -- extpacks-build-linux.x86 \ -- extpacks-build-darwin.amd64 \ -- extpacks-build-darwin.x86 \ -- extpacks-build-freebsd.amd64 \ -- extpacks-build-freebsd.x86 -- --VBOX_EXTPACKS_BUILD.amd64 = VBOX_ONLY_EXTPACKS=1 \ -- KBUILD_TYPE=$(KBUILD_TYPE) BUILD_TYPE=$(KBUILD_TYPE) \ -- KBUILD_TARGET_ARCH=amd64 BUILD_TARGET_ARCH=amd64 \ -- VBOX_SVN_REV=$(VBOX_SVN_REV) -- --VBOX_EXTPACKS_BUILD.x86 = VBOX_ONLY_EXTPACKS=1 \ -- KBUILD_TYPE=$(KBUILD_TYPE) BUILD_TYPE=$(KBUILD_TYPE) \ -- KBUILD_TARGET_ARCH=x86 BUILD_TARGET_ARCH=x86 \ -- VBOX_SVN_REV=$(VBOX_SVN_REV) -- --# Automatically determine the extpack build subdir name. Used for figuring out --# directory names inside the extension pack building VMs. --VBOX_EXTPACKS_BUILD_SUBDIRNAME := $(lastword $(subst /, ,$(PATH_ROOT))) -- --# When building in parallel on a Windows host, make sure we finish the host --# bit before kicking off any UNIX guest or we'll run into file sharing issues. --ifeq ($(KBUILD_TARGET),win) --VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST = extpacks-build-win.x86 extpacks-build-win.amd64 --else --VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST = --endif -- --extpacks-build-win.amd64: --ifeq ($(KBUILD_TARGET),win) -- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) --else -- $(call MSG_L1,Building Windows/amd64 extension packs) -- $(VBOX_KMK_TIME) ssh vbox@192.168.27.6 " echo $@ && cd e:/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_EXTPACKS_BUILD.amd64) all" --endif -- --extpacks-build-win.x86: --ifeq ($(KBUILD_TARGET),win) -- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) --else -- $(call MSG_L1,Building Windows/x86 extension packs) -- $(VBOX_KMK_TIME) ssh vbox@192.168.27.16 " echo $@ && cd e:/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_EXTPACKS_BUILD.x86) all" --endif -- --ifeq ($(KBUILD_TARGET),solaris) --extpacks-build-solaris.amd64: -- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) -- --extpacks-build-solaris.x86: extpacks-build-solaris.amd64 -- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) VBOX_WITH_COMBINED_SOLARIS_GUEST_PACKAGE=1 all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) -- --else --# Serialize 32-bit and 64-bit ASSUMING the same VM builds both. --extpacks-build-solaris.rsync-into-vm: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) -- $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,solaris,*) . 192.168.27.4:/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) -- --extpacks-build-solaris.build-it: extpacks-build-solaris.rsync-into-vm -- $(call MSG_L1,Building Solaris/amd64 extension packs) -- $(VBOX_KMK_TIME) ssh vbox@192.168.27.4 " echo $@/amd64 && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all" -- $(call MSG_L1,Building Solaris/x86 extension packs) -- $(VBOX_KMK_TIME) ssh vbox@192.168.27.4 " echo $@/x86 && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all" -- --extpacks-build-solaris.rsync-out-of-vm: extpacks-build-solaris.build-it -- $(VBOX_KMK_TIME) rsync -a --delete 192.168.27.4:/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/solaris.x86 out/ -- $(VBOX_KMK_TIME) rsync -a --delete 192.168.27.4:/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/solaris.amd64 out/ -- --.NOTPARALLEL: extpacks-build-solaris.rsync-out-of-vm extpacks-build-solaris.rsync-into-vm --.PHONY: extpacks-build-solaris.rsync-out-of-vm extpacks-build-solaris.rsync-into-vm extpacks-build-solaris.build-it -- --extpacks-build-solaris.amd64: extpacks-build-solaris.rsync-out-of-vm --extpacks-build-solaris.x86: extpacks-build-solaris.rsync-out-of-vm --endif -- --extpacks-build-os2.x86: --#ifeq ($(KBUILD_TARGET),os2) --# + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) --#else --# $(VBOX_KMK_TIME) ssh vbox@192.168.27.3 " cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) " --#endif -- --extpacks-build-linux.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) --ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),linux.amd64) -- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) --else -- $(call MSG_L1,Building Linux/amd64 extension packs) -- $(VBOX_KMK_TIME) ssh vbox@192.168.27.12 " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all" --endif -- --extpacks-build-linux.x86: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) --ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),linux.x86) -- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) --else -- $(call MSG_L1,Building Linux/x86 extension packs) -- $(VBOX_KMK_TIME) ssh vbox@192.168.27.11 " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all" --endif -- --extpacks-build-freebsd.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) --#ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),freebsd.amd64) --# + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) --#else --# $(call MSG_L1,Building FreeBSD/amd64 extension packs) --# $(VBOX_KMK_TIME) ssh vbox@192.168.27.17 " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all" --#endif -- --extpacks-build-freebsd.x86: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) --#ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),freebsd.x86) --# + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) --#else --# $(call MSG_L1,Building FreeBSD/x86 extension packs) --# $(VBOX_KMK_TIME) ssh vbox@192.168.27.7 " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all" --#endif -- --extpacks-build-darwin.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) --ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.amd64) -- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) --else -- $(call MSG_L1,Building Darwin/amd64 extension packs) -- $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,darwin,amd64) . 192.168.27.15:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) -- $(VBOX_KMK_TIME) ssh vbox@192.168.27.15 " echo $@ && cd /Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all" -- $(VBOX_KMK_TIME) rsync -am -v --delete 192.168.27.15:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/darwin.amd64 out/ --endif -- --extpacks-build-darwin.x86: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) --ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.x86) -- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) --else -- $(call MSG_L1,Building Darwin/x86 extension packs) -- $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,darwin,x86) . 192.168.27.5:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) -- $(VBOX_KMK_TIME) ssh vbox@192.168.27.5 " echo $@ && cd /Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all" -- $(VBOX_KMK_TIME) rsync -am -v --delete 192.168.27.5:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/darwin.x86 out/ --endif -- -- --extpacks-packing: -- + $(KMK) VBOX_ONLY_EXTPACKS=1 \ -- VBOX_WITH_EXTPACK_OS_ARCHS="darwin.amd64 darwin.x86 linux.amd64 linux.x86 solaris.amd64 solaris.x86 win.amd64 win.x86" \ -- packing --# +++ freebsd.amd64 freebsd.x86 os2.x86 ^^^ -- --.PHONY: \ -- extpacks-build-win.x86 \ -- extpacks-build-win.amd64 \ -- extpacks-build-solaris.amd64 \ -- extpacks-build-solaris.x86 \ -- extpacks-build-os2.x86 \ -- extpacks-build-linux.amd64 \ -- extpacks-build-linux.x86 \ -- extpacks-build-freebsd.amd64 \ -- extpacks-build-freebsd.x86 \ -- extpacks-build-darwin.amd64 \ -- extpacks-build-darwin.x86 \ -- extpacks-packing -- -- - # - # Build the test suite, all of it. - # ---- VirtualBox-4.1.18.orig/src/VBox/Devices/build/VBoxDD.cpp 2012-06-20 10:15:51.000000000 -0300 -+++ VirtualBox-4.1.18/src/VBox/Devices/build/VBoxDD.cpp 2012-07-24 16:18:03.964493454 -0300 -@@ -132,11 +132,6 @@ - if (RT_FAILURE(rc)) - return rc; - #endif --#ifdef VBOX_WITH_EHCI_IMPL -- rc = pCallbacks->pfnRegister(pCallbacks, &g_DeviceEHCI); -- if (RT_FAILURE(rc)) -- return rc; --#endif - #ifdef VBOX_ACPI - rc = pCallbacks->pfnRegister(pCallbacks, &g_DeviceACPI); - if (RT_FAILURE(rc)) ---- VirtualBox-4.1.18.orig/src/VBox/Devices/build/VBoxDD.h 2012-06-20 10:15:51.000000000 -0300 -+++ VirtualBox-4.1.18/src/VBox/Devices/build/VBoxDD.h 2012-07-24 16:20:35.939205389 -0300 -@@ -62,7 +62,6 @@ - extern const PDMDEVREG g_DeviceICH6_HDA; - extern const PDMDEVREG g_DeviceAudioSniffer; - extern const PDMDEVREG g_DeviceOHCI; --extern const PDMDEVREG g_DeviceEHCI; - extern const PDMDEVREG g_DeviceACPI; - extern const PDMDEVREG g_DeviceDMA; - extern const PDMDEVREG g_DeviceFloppyController; ---- VirtualBox-4.1.18.orig/src/VBox/Main/include/ExtPackManagerImpl.h 2012-06-20 10:17:33.000000000 -0300 -+++ /dev/null 2012-07-24 14:48:18.638572110 -0300 -@@ -1,245 +0,0 @@ --/* $Id: ExtPackManagerImpl.h $ */ --/** @file -- * VirtualBox Main - interface for Extension Packs, VBoxSVC & VBoxC. -- */ -- --/* -- * Copyright (C) 2010 Oracle Corporation -- * -- * This file is part of VirtualBox Open Source Edition (OSE), as -- * available from http://www.virtualbox.org. This file is free software; -- * you can redistribute it and/or modify it under the terms of the GNU -- * General Public License (GPL) as published by the Free Software -- * Foundation, in version 2 as it comes in the "COPYING" file of the -- * VirtualBox OSE distribution. VirtualBox OSE is distributed in the -- * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. -- */ -- --#ifndef ____H_EXTPACKMANAGERIMPL --#define ____H_EXTPACKMANAGERIMPL -- --#include "VirtualBoxBase.h" --#include <VBox/ExtPack/ExtPack.h> --#include <iprt/fs.h> -- --/** -- * An extension pack file. -- */ --class ATL_NO_VTABLE ExtPackFile : -- public VirtualBoxBase, -- VBOX_SCRIPTABLE_IMPL(IExtPackFile) --{ --public: -- /** @name COM and internal init/term/mapping cruft. -- * @{ */ -- VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT(ExtPackFile, IExtPackFile) -- DECLARE_NOT_AGGREGATABLE(ExtPackFile) -- DECLARE_PROTECT_FINAL_CONSTRUCT() -- BEGIN_COM_MAP(ExtPackFile) -- VBOX_DEFAULT_INTERFACE_ENTRIES(IExtPackFile) -- COM_INTERFACE_ENTRY(IExtPackBase) -- END_COM_MAP() -- DECLARE_EMPTY_CTOR_DTOR(ExtPackFile) -- -- HRESULT FinalConstruct(); -- void FinalRelease(); -- HRESULT initWithFile(const char *a_pszFile, const char *a_pszDigest, class ExtPackManager *a_pExtPackMgr, VirtualBox *a_pVirtualBox); -- void uninit(); -- RTMEMEF_NEW_AND_DELETE_OPERATORS(); -- /** @} */ -- -- /** @name IExtPackBase interfaces -- * @{ */ -- STDMETHOD(COMGETTER(Name))(BSTR *a_pbstrName); -- STDMETHOD(COMGETTER(Description))(BSTR *a_pbstrDescription); -- STDMETHOD(COMGETTER(Version))(BSTR *a_pbstrVersion); -- STDMETHOD(COMGETTER(Revision))(ULONG *a_puRevision); -- STDMETHOD(COMGETTER(VRDEModule))(BSTR *a_pbstrVrdeModule); -- STDMETHOD(COMGETTER(PlugIns))(ComSafeArrayOut(IExtPackPlugIn *, a_paPlugIns)); -- STDMETHOD(COMGETTER(Usable))(BOOL *a_pfUsable); -- STDMETHOD(COMGETTER(WhyUnusable))(BSTR *a_pbstrWhy); -- STDMETHOD(COMGETTER(ShowLicense))(BOOL *a_pfShowIt); -- STDMETHOD(COMGETTER(License))(BSTR *a_pbstrHtmlLicense); -- STDMETHOD(QueryLicense)(IN_BSTR a_bstrPreferredLocale, IN_BSTR a_bstrPreferredLanguage, -- IN_BSTR a_bstrFormat, BSTR *a_pbstrLicense); -- /** @} */ -- -- /** @name IExtPackFile interfaces -- * @{ */ -- STDMETHOD(COMGETTER(FilePath))(BSTR *a_pbstrPath); -- STDMETHOD(Install)(BOOL a_fReplace, IN_BSTR a_bstrDisplayInfo, IProgress **a_ppProgress); -- /** @} */ -- --private: -- /** @name Misc init helpers -- * @{ */ -- HRESULT initFailed(const char *a_pszWhyFmt, ...); -- /** @} */ -- --private: -- struct Data; -- /** Pointer to the private instance. */ -- Data *m; -- -- friend class ExtPackManager; --}; -- -- --/** -- * An installed extension pack. -- */ --class ATL_NO_VTABLE ExtPack : -- public VirtualBoxBase, -- VBOX_SCRIPTABLE_IMPL(IExtPack) --{ --public: -- /** @name COM and internal init/term/mapping cruft. -- * @{ */ -- VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT(ExtPack, IExtPack) -- DECLARE_NOT_AGGREGATABLE(ExtPack) -- DECLARE_PROTECT_FINAL_CONSTRUCT() -- BEGIN_COM_MAP(ExtPack) -- VBOX_DEFAULT_INTERFACE_ENTRIES(IExtPack) -- COM_INTERFACE_ENTRY(IExtPackBase) -- END_COM_MAP() -- DECLARE_EMPTY_CTOR_DTOR(ExtPack) -- -- HRESULT FinalConstruct(); -- void FinalRelease(); -- HRESULT initWithDir(VBOXEXTPACKCTX a_enmContext, const char *a_pszName, const char *a_pszDir); -- void uninit(); -- RTMEMEF_NEW_AND_DELETE_OPERATORS(); -- /** @} */ -- -- /** @name IExtPackBase interfaces -- * @{ */ -- STDMETHOD(COMGETTER(Name))(BSTR *a_pbstrName); -- STDMETHOD(COMGETTER(Description))(BSTR *a_pbstrDescription); -- STDMETHOD(COMGETTER(Version))(BSTR *a_pbstrVersion); -- STDMETHOD(COMGETTER(Revision))(ULONG *a_puRevision); -- STDMETHOD(COMGETTER(VRDEModule))(BSTR *a_pbstrVrdeModule); -- STDMETHOD(COMGETTER(PlugIns))(ComSafeArrayOut(IExtPackPlugIn *, a_paPlugIns)); -- STDMETHOD(COMGETTER(Usable))(BOOL *a_pfUsable); -- STDMETHOD(COMGETTER(WhyUnusable))(BSTR *a_pbstrWhy); -- STDMETHOD(COMGETTER(ShowLicense))(BOOL *a_pfShowIt); -- STDMETHOD(COMGETTER(License))(BSTR *a_pbstrHtmlLicense); -- STDMETHOD(QueryLicense)(IN_BSTR a_bstrPreferredLocale, IN_BSTR a_bstrPreferredLanguage, -- IN_BSTR a_bstrFormat, BSTR *a_pbstrLicense); -- /** @} */ -- -- /** @name IExtPack interfaces -- * @{ */ -- STDMETHOD(QueryObject)(IN_BSTR a_bstrObjectId, IUnknown **a_ppUnknown); -- /** @} */ -- -- /** @name Internal interfaces used by ExtPackManager. -- * @{ */ -- bool callInstalledHook(IVirtualBox *a_pVirtualBox, AutoWriteLock *a_pLock, PRTERRINFO pErrInfo); -- HRESULT callUninstallHookAndClose(IVirtualBox *a_pVirtualBox, bool a_fForcedRemoval); -- bool callVirtualBoxReadyHook(IVirtualBox *a_pVirtualBox, AutoWriteLock *a_pLock); -- bool callConsoleReadyHook(IConsole *a_pConsole, AutoWriteLock *a_pLock); -- bool callVmCreatedHook(IVirtualBox *a_pVirtualBox, IMachine *a_pMachine, AutoWriteLock *a_pLock); -- bool callVmConfigureVmmHook(IConsole *a_pConsole, PVM a_pVM, AutoWriteLock *a_pLock, int *a_pvrc); -- bool callVmPowerOnHook(IConsole *a_pConsole, PVM a_pVM, AutoWriteLock *a_pLock, int *a_pvrc); -- bool callVmPowerOffHook(IConsole *a_pConsole, PVM a_pVM, AutoWriteLock *a_pLock); -- HRESULT checkVrde(void); -- HRESULT getVrdpLibraryName(Utf8Str *a_pstrVrdeLibrary); -- bool wantsToBeDefaultVrde(void) const; -- HRESULT refresh(bool *pfCanDelete); -- /** @} */ -- --protected: -- /** @name Internal helper methods. -- * @{ */ -- void probeAndLoad(void); -- bool findModule(const char *a_pszName, const char *a_pszExt, VBOXEXTPACKMODKIND a_enmKind, -- Utf8Str *a_ppStrFound, bool *a_pfNative, PRTFSOBJINFO a_pObjInfo) const; -- static bool objinfoIsEqual(PCRTFSOBJINFO pObjInfo1, PCRTFSOBJINFO pObjInfo2); -- /** @} */ -- -- /** @name Extension Pack Helpers -- * @{ */ -- static DECLCALLBACK(int) hlpFindModule(PCVBOXEXTPACKHLP pHlp, const char *pszName, const char *pszExt, -- VBOXEXTPACKMODKIND enmKind, char *pszFound, size_t cbFound, bool *pfNative); -- static DECLCALLBACK(int) hlpGetFilePath(PCVBOXEXTPACKHLP pHlp, const char *pszFilename, char *pszPath, size_t cbPath); -- static DECLCALLBACK(VBOXEXTPACKCTX) hlpGetContext(PCVBOXEXTPACKHLP pHlp); -- static DECLCALLBACK(int) hlpReservedN(PCVBOXEXTPACKHLP pHlp); -- /** @} */ -- --private: -- struct Data; -- /** Pointer to the private instance. */ -- Data *m; -- -- friend class ExtPackManager; --}; -- -- --/** -- * Extension pack manager. -- */ --class ATL_NO_VTABLE ExtPackManager : -- public VirtualBoxBase, -- VBOX_SCRIPTABLE_IMPL(IExtPackManager) --{ -- /** @name COM and internal init/term/mapping cruft. -- * @{ */ -- VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT(ExtPackManager, IExtPackManager) -- DECLARE_NOT_AGGREGATABLE(ExtPackManager) -- DECLARE_PROTECT_FINAL_CONSTRUCT() -- BEGIN_COM_MAP(ExtPackManager) -- VBOX_DEFAULT_INTERFACE_ENTRIES(IExtPackManager) -- END_COM_MAP() -- DECLARE_EMPTY_CTOR_DTOR(ExtPackManager) -- -- HRESULT FinalConstruct(); -- void FinalRelease(); -- HRESULT initExtPackManager(VirtualBox *a_pVirtualBox, VBOXEXTPACKCTX a_enmContext); -- void uninit(); -- RTMEMEF_NEW_AND_DELETE_OPERATORS(); -- /** @} */ -- -- /** @name IExtPack interfaces -- * @{ */ -- STDMETHOD(COMGETTER(InstalledExtPacks))(ComSafeArrayOut(IExtPack *, a_paExtPacks)); -- STDMETHOD(Find)(IN_BSTR a_bstrName, IExtPack **a_pExtPack); -- STDMETHOD(OpenExtPackFile)(IN_BSTR a_bstrTarball, IExtPackFile **a_ppExtPackFile); -- STDMETHOD(Uninstall)(IN_BSTR a_bstrName, BOOL a_fForcedRemoval, IN_BSTR a_bstrDisplayInfo, IProgress **a_ppProgress); -- STDMETHOD(Cleanup)(void); -- STDMETHOD(QueryAllPlugInsForFrontend)(IN_BSTR a_bstrFrontend, ComSafeArrayOut(BSTR, a_pabstrPlugInModules)); -- STDMETHOD(IsExtPackUsable(IN_BSTR a_bstrExtPack, BOOL *aUsable)); -- /** @} */ -- -- /** @name Internal interfaces used by other Main classes. -- * @{ */ -- static DECLCALLBACK(int) doInstallThreadProc(RTTHREAD hThread, void *pvJob); -- HRESULT doInstall(ExtPackFile *a_pExtPackFile, bool a_fReplace, Utf8Str const *a_pstrDisplayInfo); -- static DECLCALLBACK(int) doUninstallThreadProc(RTTHREAD hThread, void *pvJob); -- HRESULT doUninstall(const Utf8Str *a_pstrName, bool a_fForcedRemoval, const Utf8Str *a_pstrDisplayInfo); -- void callAllVirtualBoxReadyHooks(void); -- void callAllConsoleReadyHooks(IConsole *a_pConsole); -- void callAllVmCreatedHooks(IMachine *a_pMachine); -- int callAllVmConfigureVmmHooks(IConsole *a_pConsole, PVM a_pVM); -- int callAllVmPowerOnHooks(IConsole *a_pConsole, PVM a_pVM); -- void callAllVmPowerOffHooks(IConsole *a_pConsole, PVM a_pVM); -- HRESULT checkVrdeExtPack(Utf8Str const *a_pstrExtPack); -- int getVrdeLibraryPathForExtPack(Utf8Str const *a_pstrExtPack, Utf8Str *a_pstrVrdeLibrary); -- HRESULT getDefaultVrdeExtPack(Utf8Str *a_pstrExtPack); -- bool isExtPackUsable(const char *a_pszExtPack); -- void dumpAllToReleaseLog(void); -- /** @} */ -- --private: -- HRESULT runSetUidToRootHelper(Utf8Str const *a_pstrDisplayInfo, const char *a_pszCommand, ...); -- ExtPack *findExtPack(const char *a_pszName); -- void removeExtPack(const char *a_pszName); -- HRESULT refreshExtPack(const char *a_pszName, bool a_fUnsuableIsError, ExtPack **a_ppExtPack); -- --private: -- struct Data; -- /** Pointer to the private instance. */ -- Data *m; --}; -- --#endif --/* vi: set tabstop=4 shiftwidth=4 expandtab: */ ---- VirtualBox-4.1.18.orig/src/VBox/Main/include/ExtPackUtil.h 2012-06-20 10:17:33.000000000 -0300 -+++ /dev/null 2012-07-24 14:48:18.638572110 -0300 -@@ -1,137 +0,0 @@ --/* $Id: ExtPackUtil.h $ */ --/** @file -- * VirtualBox Main - Extension Pack Utilities and definitions, VBoxC, VBoxSVC, ++. -- */ -- --/* -- * Copyright (C) 2010 Oracle Corporation -- * -- * This file is part of VirtualBox Open Source Edition (OSE), as -- * available from http://www.virtualbox.org. This file is free software; -- * you can redistribute it and/or modify it under the terms of the GNU -- * General Public License (GPL) as published by the Free Software -- * Foundation, in version 2 as it comes in the "COPYING" file of the -- * VirtualBox OSE distribution. VirtualBox OSE is distributed in the -- * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. -- */ -- --#ifndef ____H_EXTPACKUTIL --#define ____H_EXTPACKUTIL -- --#include <iprt/cpp/ministring.h> --#include <iprt/fs.h> --#include <iprt/vfs.h> -- -- --/** @name VBOX_EXTPACK_DESCRIPTION_NAME -- * The name of the description file in an extension pack. */ --#define VBOX_EXTPACK_DESCRIPTION_NAME "ExtPack.xml" --/** @name VBOX_EXTPACK_DESCRIPTION_NAME -- * The name of the manifest file in an extension pack. */ --#define VBOX_EXTPACK_MANIFEST_NAME "ExtPack.manifest" --/** @name VBOX_EXTPACK_SIGNATURE_NAME -- * The name of the signature file in an extension pack. */ --#define VBOX_EXTPACK_SIGNATURE_NAME "ExtPack.signature" --/** @name VBOX_EXTPACK_LICENSE_NAME_PREFIX -- * The name prefix of a license file in an extension pack. There can be -- * several license files in a pack, the variations being on locale, language -- * and format (HTML, RTF, plain text). All extension packages shall include -- * a */ --#define VBOX_EXTPACK_LICENSE_NAME_PREFIX "ExtPack-license" --/** @name VBOX_EXTPACK_SUFFIX -- * The suffix of a extension pack tarball. */ --#define VBOX_EXTPACK_SUFFIX ".vbox-extpack" -- --/** The minimum length (strlen) of a extension pack name. */ --#define VBOX_EXTPACK_NAME_MIN_LEN 3 --/** The max length (strlen) of a extension pack name. */ --#define VBOX_EXTPACK_NAME_MAX_LEN 64 -- --/** The architecture-dependent application data subdirectory where the -- * extension packs are installed. Relative to RTPathAppPrivateArch. */ --#define VBOX_EXTPACK_INSTALL_DIR "ExtensionPacks" --/** The architecture-independent application data subdirectory where the -- * certificates are installed. Relative to RTPathAppPrivateNoArch. */ --#define VBOX_EXTPACK_CERT_DIR "ExtPackCertificates" -- --/** The maximum entry name length. -- * Play short and safe. */ --#define VBOX_EXTPACK_MAX_MEMBER_NAME_LENGTH 128 -- -- --/** -- * Plug-in descriptor. -- */ --typedef struct VBOXEXTPACKPLUGINDESC --{ -- /** The name. */ -- RTCString strName; -- /** The module name. */ -- RTCString strModule; -- /** The description. */ -- RTCString strDescription; -- /** The frontend or component which it plugs into. */ -- RTCString strFrontend; --} VBOXEXTPACKPLUGINDESC; --/** Pointer to a plug-in descriptor. */ --typedef VBOXEXTPACKPLUGINDESC *PVBOXEXTPACKPLUGINDESC; -- --/** -- * Extension pack descriptor -- * -- * This is the internal representation of the ExtPack.xml. -- */ --typedef struct VBOXEXTPACKDESC --{ -- /** The name. */ -- RTCString strName; -- /** The description. */ -- RTCString strDescription; -- /** The version string. */ -- RTCString strVersion; -- /** The edition string. */ -- RTCString strEdition; -- /** The internal revision number. */ -- uint32_t uRevision; -- /** The name of the main module. */ -- RTCString strMainModule; -- /** The name of the VRDE module, empty if none. */ -- RTCString strVrdeModule; -- /** The number of plug-in descriptors. */ -- uint32_t cPlugIns; -- /** Pointer to an array of plug-in descriptors. */ -- PVBOXEXTPACKPLUGINDESC paPlugIns; -- /** Whether to show the license prior to installation. */ -- bool fShowLicense; --} VBOXEXTPACKDESC; -- --/** Pointer to a extension pack descriptor. */ --typedef VBOXEXTPACKDESC *PVBOXEXTPACKDESC; --/** Pointer to a const extension pack descriptor. */ --typedef VBOXEXTPACKDESC const *PCVBOXEXTPACKDESC; -- -- --void VBoxExtPackInitDesc(PVBOXEXTPACKDESC a_pExtPackDesc); --RTCString *VBoxExtPackLoadDesc(const char *a_pszDir, PVBOXEXTPACKDESC a_pExtPackDesc, PRTFSOBJINFO a_pObjInfo); --RTCString *VBoxExtPackLoadDescFromVfsFile(RTVFSFILE hVfsFile, PVBOXEXTPACKDESC a_pExtPackDesc, PRTFSOBJINFO a_pObjInfo); --RTCString *VBoxExtPackExtractNameFromTarballPath(const char *pszTarball); --void VBoxExtPackFreeDesc(PVBOXEXTPACKDESC a_pExtPackDesc); --bool VBoxExtPackIsValidName(const char *pszName); --bool VBoxExtPackIsValidMangledName(const char *pszMangledName, size_t cchMax = RTSTR_MAX); --RTCString *VBoxExtPackMangleName(const char *pszName); --RTCString *VBoxExtPackUnmangleName(const char *pszMangledName, size_t cbMax); --int VBoxExtPackCalcDir(char *pszExtPackDir, size_t cbExtPackDir, const char *pszParentDir, const char *pszName); --bool VBoxExtPackIsValidVersionString(const char *pszVersion); --bool VBoxExtPackIsValidEditionString(const char *pszEdition); --bool VBoxExtPackIsValidModuleString(const char *pszModule); -- --int VBoxExtPackValidateMember(const char *pszName, RTVFSOBJTYPE enmType, RTVFSOBJ hVfsObj, char *pszError, size_t cbError); --int VBoxExtPackOpenTarFss(RTFILE hTarballFile, char *pszError, size_t cbError, PRTVFSFSSTREAM phTarFss, PRTMANIFEST phFileManifest); --int VBoxExtPackValidateTarball(RTFILE hTarballFile, const char *pszExtPackName, -- const char *pszTarball, const char *pszTarballDigest, -- char *pszError, size_t cbError, -- PRTMANIFEST phValidManifest, PRTVFSFILE phXmlFile, RTCString *pStrDigest); -- -- --#endif -- ---- VirtualBox-4.1.18.orig/src/VBox/Main/src-all/ExtPackManagerImpl.cpp 2012-06-20 10:17:34.000000000 -0300 -+++ /dev/null 2012-07-24 14:48:18.638572110 -0300 -@@ -1,3126 +0,0 @@ --/* $Id: ExtPackManagerImpl.cpp $ */ --/** @file -- * VirtualBox Main - interface for Extension Packs, VBoxSVC & VBoxC. -- */ -- --/* -- * Copyright (C) 2010 Oracle Corporation -- * -- * This file is part of VirtualBox Open Source Edition (OSE), as -- * available from http://www.virtualbox.org. This file is free software; -- * you can redistribute it and/or modify it under the terms of the GNU -- * General Public License (GPL) as published by the Free Software -- * Foundation, in version 2 as it comes in the "COPYING" file of the -- * VirtualBox OSE distribution. VirtualBox OSE is distributed in the -- * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. -- */ -- -- --/******************************************************************************* --* Header Files * --*******************************************************************************/ --#include "ExtPackManagerImpl.h" --#include "ExtPackUtil.h" -- --#include <iprt/buildconfig.h> --#include <iprt/ctype.h> --#include <iprt/dir.h> --#include <iprt/env.h> --#include <iprt/file.h> --#include <iprt/ldr.h> --#include <iprt/manifest.h> --#include <iprt/param.h> --#include <iprt/path.h> --#include <iprt/pipe.h> --#include <iprt/process.h> --#include <iprt/string.h> -- --#include <VBox/com/array.h> --#include <VBox/com/ErrorInfo.h> --#include <VBox/err.h> --#include <VBox/log.h> --#include <VBox/sup.h> --#include <VBox/version.h> --#include "AutoCaller.h" --#include "Global.h" --#include "ProgressImpl.h" --#include "SystemPropertiesImpl.h" --#include "VirtualBoxImpl.h" -- -- --/******************************************************************************* --* Defined Constants And Macros * --*******************************************************************************/ --/** @name VBOX_EXTPACK_HELPER_NAME -- * The name of the utility application we employ to install and uninstall the -- * extension packs. This is a set-uid-to-root binary on unixy platforms, which -- * is why it has to be a separate application. -- */ --#if defined(RT_OS_WINDOWS) || defined(RT_OS_OS2) --# define VBOX_EXTPACK_HELPER_NAME "VBoxExtPackHelperApp.exe" --#else --# define VBOX_EXTPACK_HELPER_NAME "VBoxExtPackHelperApp" --#endif -- -- --/******************************************************************************* --* Structures and Typedefs * --*******************************************************************************/ --struct ExtPackBaseData --{ --public: -- /** The extension pack descriptor (loaded from the XML, mostly). */ -- VBOXEXTPACKDESC Desc; -- /** The file system object info of the XML file. -- * This is for detecting changes and save time in refresh(). */ -- RTFSOBJINFO ObjInfoDesc; -- /** Whether it's usable or not. */ -- bool fUsable; -- /** Why it is unusable. */ -- Utf8Str strWhyUnusable; --}; -- --/** -- * Private extension pack data. -- */ --struct ExtPackFile::Data : public ExtPackBaseData --{ --public: -- /** The path to the tarball. */ -- Utf8Str strExtPackFile; -- /** The SHA-256 hash of the file (as string). */ -- Utf8Str strDigest; -- /** The file handle of the extension pack file. */ -- RTFILE hExtPackFile; -- /** Our manifest for the tarball. */ -- RTMANIFEST hOurManifest; -- /** Pointer to the extension pack manager. */ -- ComObjPtr<ExtPackManager> ptrExtPackMgr; -- /** Pointer to the VirtualBox object so we can create a progress object. */ -- VirtualBox *pVirtualBox; -- -- RTMEMEF_NEW_AND_DELETE_OPERATORS(); --}; -- --/** -- * Private extension pack data. -- */ --struct ExtPack::Data : public ExtPackBaseData --{ --public: -- /** Where the extension pack is located. */ -- Utf8Str strExtPackPath; -- /** The file system object info of the extension pack directory. -- * This is for detecting changes and save time in refresh(). */ -- RTFSOBJINFO ObjInfoExtPack; -- /** The full path to the main module. */ -- Utf8Str strMainModPath; -- /** The file system object info of the main module. -- * This is used to determin whether to bother try reload it. */ -- RTFSOBJINFO ObjInfoMainMod; -- /** The module handle of the main extension pack module. */ -- RTLDRMOD hMainMod; -- -- /** The helper callbacks for the extension pack. */ -- VBOXEXTPACKHLP Hlp; -- /** Pointer back to the extension pack object (for Hlp methods). */ -- ExtPack *pThis; -- /** The extension pack registration structure. */ -- PCVBOXEXTPACKREG pReg; -- /** The current context. */ -- VBOXEXTPACKCTX enmContext; -- /** Set if we've made the pfnVirtualBoxReady or pfnConsoleReady call. */ -- bool fMadeReadyCall; -- -- RTMEMEF_NEW_AND_DELETE_OPERATORS(); --}; -- --/** List of extension packs. */ --typedef std::list< ComObjPtr<ExtPack> > ExtPackList; -- --/** -- * Private extension pack manager data. -- */ --struct ExtPackManager::Data --{ -- /** The directory where the extension packs are installed. */ -- Utf8Str strBaseDir; -- /** The directory where the certificates this installation recognizes are -- * stored. */ -- Utf8Str strCertificatDirPath; -- /** The list of installed extension packs. */ -- ExtPackList llInstalledExtPacks; -- /** Pointer to the VirtualBox object, our parent. */ -- VirtualBox *pVirtualBox; -- /** The current context. */ -- VBOXEXTPACKCTX enmContext; --#if !defined(RT_OS_WINDOWS) && !defined(RT_OS_DARWIN) -- /** File handle for the VBoxVMM libary which we slurp because ExtPacks depend on it. */ -- RTLDRMOD hVBoxVMM; --#endif -- -- RTMEMEF_NEW_AND_DELETE_OPERATORS(); --}; -- --/** -- * Extension pack installation job. -- */ --typedef struct EXTPACKINSTALLJOB --{ -- /** Smart pointer to the extension pack file. */ -- ComPtr<ExtPackFile> ptrExtPackFile; -- /** The replace argument. */ -- bool fReplace; -- /** The display info argument. */ -- Utf8Str strDisplayInfo; -- /** Smart pointer to the extension manager. */ -- ComPtr<ExtPackManager> ptrExtPackMgr; -- /** Smart pointer to the progress object for this job. */ -- ComObjPtr<Progress> ptrProgress; --} EXTPACKINSTALLJOB; --/** Pointer to an extension pack installation job. */ --typedef EXTPACKINSTALLJOB *PEXTPACKINSTALLJOB; -- --/** -- * Extension pack uninstallation job. -- */ --typedef struct EXTPACKUNINSTALLJOB --{ -- /** Smart pointer to the extension manager. */ -- ComPtr<ExtPackManager> ptrExtPackMgr; -- /** The name of the extension pack. */ -- Utf8Str strName; -- /** The replace argument. */ -- bool fForcedRemoval; -- /** The display info argument. */ -- Utf8Str strDisplayInfo; -- /** Smart pointer to the progress object for this job. */ -- ComObjPtr<Progress> ptrProgress; --} EXTPACKUNINSTALLJOB; --/** Pointer to an extension pack uninstallation job. */ --typedef EXTPACKUNINSTALLJOB *PEXTPACKUNINSTALLJOB; -- -- --DEFINE_EMPTY_CTOR_DTOR(ExtPackFile) -- --/** -- * Called by ComObjPtr::createObject when creating the object. -- * -- * Just initialize the basic object state, do the rest in initWithDir(). -- * -- * @returns S_OK. -- */ --HRESULT ExtPackFile::FinalConstruct() --{ -- m = NULL; -- return BaseFinalConstruct(); --} -- --/** -- * Initializes the extension pack by reading its file. -- * -- * @returns COM status code. -- * @param a_pszFile The path to the extension pack file. -- * @param a_pszDigest The SHA-256 digest of the file. Or an empty string. -- * @param a_pExtPackMgr Pointer to the extension pack manager. -- * @param a_pVirtualBox Pointer to the VirtualBox object. -- */ --HRESULT ExtPackFile::initWithFile(const char *a_pszFile, const char *a_pszDigest, ExtPackManager *a_pExtPackMgr, VirtualBox *a_pVirtualBox) --{ -- AutoInitSpan autoInitSpan(this); -- AssertReturn(autoInitSpan.isOk(), E_FAIL); -- -- /* -- * Allocate + initialize our private data. -- */ -- m = new ExtPackFile::Data; -- VBoxExtPackInitDesc(&m->Desc); -- RT_ZERO(m->ObjInfoDesc); -- m->fUsable = false; -- m->strWhyUnusable = tr("ExtPack::init failed"); -- m->strExtPackFile = a_pszFile; -- m->strDigest = a_pszDigest; -- m->hExtPackFile = NIL_RTFILE; -- m->hOurManifest = NIL_RTMANIFEST; -- m->ptrExtPackMgr = a_pExtPackMgr; -- m->pVirtualBox = a_pVirtualBox; -- -- RTCString *pstrTarName = VBoxExtPackExtractNameFromTarballPath(a_pszFile); -- if (pstrTarName) -- { -- m->Desc.strName = *pstrTarName; -- delete pstrTarName; -- pstrTarName = NULL; -- } -- -- autoInitSpan.setSucceeded(); -- -- /* -- * Try open the extension pack and check that it is a regular file. -- */ -- int vrc = RTFileOpen(&m->hExtPackFile, a_pszFile, -- RTFILE_O_READ | RTFILE_O_DENY_WRITE | RTFILE_O_OPEN); -- if (RT_FAILURE(vrc)) -- { -- if (vrc == VERR_FILE_NOT_FOUND || vrc == VERR_PATH_NOT_FOUND) -- return initFailed(tr("'%s' file not found"), a_pszFile); -- return initFailed(tr("RTFileOpen('%s',,) failed with %Rrc"), a_pszFile, vrc); -- } -- -- RTFSOBJINFO ObjInfo; -- vrc = RTFileQueryInfo(m->hExtPackFile, &ObjInfo, RTFSOBJATTRADD_UNIX); -- if (RT_FAILURE(vrc)) -- return initFailed(tr("RTFileQueryInfo failed with %Rrc on '%s'"), vrc, a_pszFile); -- if (!RTFS_IS_FILE(ObjInfo.Attr.fMode)) -- return initFailed(tr("Not a regular file: %s"), a_pszFile); -- -- /* -- * Validate the tarball and extract the XML file. -- */ -- char szError[8192]; -- RTVFSFILE hXmlFile; -- vrc = VBoxExtPackValidateTarball(m->hExtPackFile, NULL /*pszExtPackName*/, a_pszFile, a_pszDigest, -- szError, sizeof(szError), &m->hOurManifest, &hXmlFile, &m->strDigest); -- if (RT_FAILURE(vrc)) -- return initFailed(tr("%s"), szError); -- -- /* -- * Parse the XML. -- */ -- RTCString strSavedName(m->Desc.strName); -- RTCString *pStrLoadErr = VBoxExtPackLoadDescFromVfsFile(hXmlFile, &m->Desc, &m->ObjInfoDesc); -- RTVfsFileRelease(hXmlFile); -- if (pStrLoadErr != NULL) -- { -- m->strWhyUnusable.printf(tr("Failed to the xml file: %s"), pStrLoadErr->c_str()); -- m->Desc.strName = strSavedName; -- delete pStrLoadErr; -- return S_OK; -- } -- -- /* -- * Match the tarball name with the name from the XML. -- */ -- /** @todo drop this restriction after the old install interface is -- * dropped. */ -- if (!strSavedName.equalsIgnoreCase(m->Desc.strName)) -- return initFailed(tr("Extension pack name mismatch between the downloaded file and the XML inside it (xml='%s' file='%s')"), -- m->Desc.strName.c_str(), strSavedName.c_str()); -- -- m->fUsable = true; -- m->strWhyUnusable.setNull(); -- return S_OK; --} -- --/** -- * Protected helper that formats the strWhyUnusable value. -- * -- * @returns S_OK -- * @param a_pszWhyFmt Why it failed, format string. -- * @param ... The format arguments. -- */ --HRESULT ExtPackFile::initFailed(const char *a_pszWhyFmt, ...) --{ -- va_list va; -- va_start(va, a_pszWhyFmt); -- m->strWhyUnusable.printfV(a_pszWhyFmt, va); -- va_end(va); -- return S_OK; --} -- --/** -- * COM cruft. -- */ --void ExtPackFile::FinalRelease() --{ -- uninit(); -- BaseFinalRelease(); --} -- --/** -- * Do the actual cleanup. -- */ --void ExtPackFile::uninit() --{ -- /* Enclose the state transition Ready->InUninit->NotReady */ -- AutoUninitSpan autoUninitSpan(this); -- if (!autoUninitSpan.uninitDone() && m != NULL) -- { -- VBoxExtPackFreeDesc(&m->Desc); -- RTFileClose(m->hExtPackFile); -- m->hExtPackFile = NIL_RTFILE; -- RTManifestRelease(m->hOurManifest); -- m->hOurManifest = NIL_RTMANIFEST; -- -- delete m; -- m = NULL; -- } --} -- --STDMETHODIMP ExtPackFile::COMGETTER(Name)(BSTR *a_pbstrName) --{ -- CheckComArgOutPointerValid(a_pbstrName); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- Bstr str(m->Desc.strName); -- str.cloneTo(a_pbstrName); -- } -- return hrc; --} -- --STDMETHODIMP ExtPackFile::COMGETTER(Description)(BSTR *a_pbstrDescription) --{ -- CheckComArgOutPointerValid(a_pbstrDescription); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- Bstr str(m->Desc.strDescription); -- str.cloneTo(a_pbstrDescription); -- } -- return hrc; --} -- --STDMETHODIMP ExtPackFile::COMGETTER(Version)(BSTR *a_pbstrVersion) --{ -- CheckComArgOutPointerValid(a_pbstrVersion); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- /* HACK ALERT: This is for easing backporting to 4.1. The edition stuff -- will be changed into a separate */ -- if (m->Desc.strEdition.isEmpty()) -- { -- Bstr str(m->Desc.strVersion); -- str.cloneTo(a_pbstrVersion); -- } -- else -- { -- RTCString strHack(m->Desc.strVersion); -- strHack.append('-'); -- strHack.append(m->Desc.strEdition); -- -- Bstr str(strHack); -- str.cloneTo(a_pbstrVersion); -- } -- } -- return hrc; --} -- --STDMETHODIMP ExtPackFile::COMGETTER(Revision)(ULONG *a_puRevision) --{ -- CheckComArgOutPointerValid(a_puRevision); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- *a_puRevision = m->Desc.uRevision; -- return hrc; --} -- --STDMETHODIMP ExtPackFile::COMGETTER(VRDEModule)(BSTR *a_pbstrVrdeModule) --{ -- CheckComArgOutPointerValid(a_pbstrVrdeModule); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- Bstr str(m->Desc.strVrdeModule); -- str.cloneTo(a_pbstrVrdeModule); -- } -- return hrc; --} -- --STDMETHODIMP ExtPackFile::COMGETTER(PlugIns)(ComSafeArrayOut(IExtPackPlugIn *, a_paPlugIns)) --{ -- /** @todo implement plug-ins. */ --#ifdef VBOX_WITH_XPCOM -- NOREF(a_paPlugIns); -- NOREF(a_paPlugInsSize); --#endif -- ReturnComNotImplemented(); --} -- --STDMETHODIMP ExtPackFile::COMGETTER(Usable)(BOOL *a_pfUsable) --{ -- CheckComArgOutPointerValid(a_pfUsable); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- *a_pfUsable = m->fUsable; -- return hrc; --} -- --STDMETHODIMP ExtPackFile::COMGETTER(WhyUnusable)(BSTR *a_pbstrWhy) --{ -- CheckComArgOutPointerValid(a_pbstrWhy); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- m->strWhyUnusable.cloneTo(a_pbstrWhy); -- return hrc; --} -- --STDMETHODIMP ExtPackFile::COMGETTER(ShowLicense)(BOOL *a_pfShowIt) --{ -- CheckComArgOutPointerValid(a_pfShowIt); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- *a_pfShowIt = m->Desc.fShowLicense; -- return hrc; --} -- --STDMETHODIMP ExtPackFile::COMGETTER(License)(BSTR *a_pbstrHtmlLicense) --{ -- Bstr bstrHtml("html"); -- return QueryLicense(Bstr::Empty.raw(), Bstr::Empty.raw(), bstrHtml.raw(), a_pbstrHtmlLicense); --} -- --/* Same as ExtPack::QueryLicense, should really explore the subject of base classes here... */ --STDMETHODIMP ExtPackFile::QueryLicense(IN_BSTR a_bstrPreferredLocale, IN_BSTR a_bstrPreferredLanguage, IN_BSTR a_bstrFormat, -- BSTR *a_pbstrLicense) --{ -- /* -- * Validate input. -- */ -- CheckComArgOutPointerValid(a_pbstrLicense); -- CheckComArgNotNull(a_bstrPreferredLocale); -- CheckComArgNotNull(a_bstrPreferredLanguage); -- CheckComArgNotNull(a_bstrFormat); -- -- Utf8Str strPreferredLocale(a_bstrPreferredLocale); -- if (strPreferredLocale.length() != 2 && strPreferredLocale.length() != 0) -- return setError(E_FAIL, tr("The preferred locale is a two character string or empty.")); -- -- Utf8Str strPreferredLanguage(a_bstrPreferredLanguage); -- if (strPreferredLanguage.length() != 2 && strPreferredLanguage.length() != 0) -- return setError(E_FAIL, tr("The preferred lanuage is a two character string or empty.")); -- -- Utf8Str strFormat(a_bstrFormat); -- if ( !strFormat.equals("html") -- && !strFormat.equals("rtf") -- && !strFormat.equals("txt")) -- return setError(E_FAIL, tr("The license format can only have the values 'html', 'rtf' and 'txt'.")); -- -- /* -- * Combine the options to form a file name before locking down anything. -- */ -- char szName[sizeof(VBOX_EXTPACK_LICENSE_NAME_PREFIX "-de_DE.html") + 2]; -- if (strPreferredLocale.isNotEmpty() && strPreferredLanguage.isNotEmpty()) -- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX "-%s_%s.%s", -- strPreferredLocale.c_str(), strPreferredLanguage.c_str(), strFormat.c_str()); -- else if (strPreferredLocale.isNotEmpty()) -- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX "-%s.%s", strPreferredLocale.c_str(), strFormat.c_str()); -- else if (strPreferredLanguage.isNotEmpty()) -- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX "-_%s.%s", strPreferredLocale.c_str(), strFormat.c_str()); -- else -- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX ".%s", strFormat.c_str()); -- -- /* -- * Lock the extension pack. We need a write lock here as there must not be -- * concurrent accesses to the tar file handle. -- */ -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- -- /* -- * Do not permit this query on a pack that isn't considered usable (could -- * be marked so because of bad license files). -- */ -- if (!m->fUsable) -- hrc = setError(E_FAIL, tr("%s"), m->strWhyUnusable.c_str()); -- else -- { -- /* -- * Look it up in the manifest before scanning the tarball for it -- */ -- if (RTManifestEntryExists(m->hOurManifest, szName)) -- { -- RTVFSFSSTREAM hTarFss; -- char szError[8192]; -- int vrc = VBoxExtPackOpenTarFss(m->hExtPackFile, szError, sizeof(szError), &hTarFss, NULL); -- if (RT_SUCCESS(vrc)) -- { -- for (;;) -- { -- /* Get the first/next. */ -- char *pszName; -- RTVFSOBJ hVfsObj; -- RTVFSOBJTYPE enmType; -- vrc = RTVfsFsStrmNext(hTarFss, &pszName, &enmType, &hVfsObj); -- if (RT_FAILURE(vrc)) -- { -- if (vrc != VERR_EOF) -- hrc = setError(VBOX_E_IPRT_ERROR, tr("RTVfsFsStrmNext failed: %Rrc"), vrc); -- else -- hrc = setError(E_UNEXPECTED, tr("'%s' was found in the manifest but not in the tarball"), szName); -- break; -- } -- -- /* Is this it? */ -- const char *pszAdjName = pszName[0] == '.' && pszName[1] == '/' ? &pszName[2] : pszName; -- if ( !strcmp(pszAdjName, szName) -- && ( enmType == RTVFSOBJTYPE_IO_STREAM -- || enmType == RTVFSOBJTYPE_FILE)) -- { -- RTVFSIOSTREAM hVfsIos = RTVfsObjToIoStream(hVfsObj); -- RTVfsObjRelease(hVfsObj); -- RTStrFree(pszName); -- -- /* Load the file into memory. */ -- RTFSOBJINFO ObjInfo; -- vrc = RTVfsIoStrmQueryInfo(hVfsIos, &ObjInfo, RTFSOBJATTRADD_NOTHING); -- if (RT_SUCCESS(vrc)) -- { -- size_t cbFile = (size_t)ObjInfo.cbObject; -- void *pvFile = RTMemAllocZ(cbFile + 1); -- if (pvFile) -- { -- vrc = RTVfsIoStrmRead(hVfsIos, pvFile, cbFile, true /*fBlocking*/, NULL); -- if (RT_SUCCESS(vrc)) -- { -- /* try translate it into a string we can return. */ -- Bstr bstrLicense((const char *)pvFile, cbFile); -- if (bstrLicense.isNotEmpty()) -- { -- bstrLicense.detachTo(a_pbstrLicense); -- hrc = S_OK; -- } -- else -- hrc = setError(VBOX_E_IPRT_ERROR, -- tr("The license file '%s' is empty or contains invalid UTF-8 encoding"), -- szName); -- } -- else -- hrc = setError(VBOX_E_IPRT_ERROR, tr("Failed to read '%s': %Rrc"), szName, vrc); -- RTMemFree(pvFile); -- } -- else -- hrc = setError(E_OUTOFMEMORY, tr("Failed to allocate %zu bytes for '%s'"), cbFile, szName); -- } -- else -- hrc = setError(VBOX_E_IPRT_ERROR, tr("RTVfsIoStrmQueryInfo on '%s': %Rrc"), szName, vrc); -- RTVfsIoStrmRelease(hVfsIos); -- break; -- } -- -- /* Release current. */ -- RTVfsObjRelease(hVfsObj); -- RTStrFree(pszName); -- } -- RTVfsFsStrmRelease(hTarFss); -- } -- else -- hrc = setError(VBOX_E_OBJECT_NOT_FOUND, tr("%s"), szError); -- } -- else -- hrc = setError(VBOX_E_OBJECT_NOT_FOUND, tr("The license file '%s' was not found in '%s'"), -- szName, m->strExtPackFile.c_str()); -- } -- } -- return hrc; --} -- --STDMETHODIMP ExtPackFile::COMGETTER(FilePath)(BSTR *a_pbstrPath) --{ -- CheckComArgOutPointerValid(a_pbstrPath); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- m->strExtPackFile.cloneTo(a_pbstrPath); -- return hrc; --} -- --STDMETHODIMP ExtPackFile::Install(BOOL a_fReplace, IN_BSTR a_bstrDisplayInfo, IProgress **a_ppProgress) --{ -- if (a_ppProgress) -- *a_ppProgress = NULL; -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- if (m->fUsable) -- { -- PEXTPACKINSTALLJOB pJob = NULL; -- try -- { -- pJob = new EXTPACKINSTALLJOB; -- pJob->ptrExtPackFile = this; -- pJob->fReplace = a_fReplace != FALSE; -- pJob->strDisplayInfo = a_bstrDisplayInfo; -- pJob->ptrExtPackMgr = m->ptrExtPackMgr; -- hrc = pJob->ptrProgress.createObject(); -- if (SUCCEEDED(hrc)) -- { -- Bstr bstrDescription = tr("Installing extension pack"); -- hrc = pJob->ptrProgress->init( --#ifndef VBOX_COM_INPROC -- m->pVirtualBox, --#endif -- static_cast<IExtPackFile *>(this), -- bstrDescription.raw(), -- FALSE /*aCancelable*/, -- NULL /*aId*/); -- } -- if (SUCCEEDED(hrc)) -- { -- ComPtr<Progress> ptrProgress = pJob->ptrProgress; -- int vrc = RTThreadCreate(NULL /*phThread*/, ExtPackManager::doInstallThreadProc, pJob, 0, -- RTTHREADTYPE_DEFAULT, 0 /*fFlags*/, "ExtPackInst"); -- if (RT_SUCCESS(vrc)) -- { -- pJob = NULL; /* the thread deletes it */ -- ptrProgress.queryInterfaceTo(a_ppProgress); -- } -- else -- hrc = setError(VBOX_E_IPRT_ERROR, tr("RTThreadCreate failed with %Rrc"), vrc); -- } -- } -- catch (std::bad_alloc) -- { -- hrc = E_OUTOFMEMORY; -- } -- if (pJob) -- delete pJob; -- } -- else -- hrc = setError(E_FAIL, "%s", m->strWhyUnusable.c_str()); -- } -- return hrc; --} -- -- -- -- -- --DEFINE_EMPTY_CTOR_DTOR(ExtPack) -- --/** -- * Called by ComObjPtr::createObject when creating the object. -- * -- * Just initialize the basic object state, do the rest in initWithDir(). -- * -- * @returns S_OK. -- */ --HRESULT ExtPack::FinalConstruct() --{ -- m = NULL; -- return S_OK; --} -- --/** -- * Initializes the extension pack by reading its file. -- * -- * @returns COM status code. -- * @param a_enmContext The context we're in. -- * @param a_pszName The name of the extension pack. This is also the -- * name of the subdirector under @a a_pszParentDir -- * where the extension pack is installed. -- * @param a_pszDir The extension pack directory name. -- */ --HRESULT ExtPack::initWithDir(VBOXEXTPACKCTX a_enmContext, const char *a_pszName, const char *a_pszDir) --{ -- AutoInitSpan autoInitSpan(this); -- AssertReturn(autoInitSpan.isOk(), E_FAIL); -- -- static const VBOXEXTPACKHLP s_HlpTmpl = -- { -- /* u32Version = */ VBOXEXTPACKHLP_VERSION, -- /* uVBoxFullVersion = */ VBOX_FULL_VERSION, -- /* uVBoxVersionRevision = */ 0, -- /* u32Padding = */ 0, -- /* pszVBoxVersion = */ "", -- /* pfnFindModule = */ ExtPack::hlpFindModule, -- /* pfnGetFilePath = */ ExtPack::hlpGetFilePath, -- /* pfnGetContext = */ ExtPack::hlpGetContext, -- /* pfnReserved1 = */ ExtPack::hlpReservedN, -- /* pfnReserved2 = */ ExtPack::hlpReservedN, -- /* pfnReserved3 = */ ExtPack::hlpReservedN, -- /* pfnReserved4 = */ ExtPack::hlpReservedN, -- /* pfnReserved5 = */ ExtPack::hlpReservedN, -- /* pfnReserved6 = */ ExtPack::hlpReservedN, -- /* pfnReserved7 = */ ExtPack::hlpReservedN, -- /* pfnReserved8 = */ ExtPack::hlpReservedN, -- /* pfnReserved9 = */ ExtPack::hlpReservedN, -- /* u32EndMarker = */ VBOXEXTPACKHLP_VERSION -- }; -- -- /* -- * Allocate + initialize our private data. -- */ -- m = new Data; -- VBoxExtPackInitDesc(&m->Desc); -- m->Desc.strName = a_pszName; -- RT_ZERO(m->ObjInfoDesc); -- m->fUsable = false; -- m->strWhyUnusable = tr("ExtPack::init failed"); -- m->strExtPackPath = a_pszDir; -- RT_ZERO(m->ObjInfoExtPack); -- m->strMainModPath.setNull(); -- RT_ZERO(m->ObjInfoMainMod); -- m->hMainMod = NIL_RTLDRMOD; -- m->Hlp = s_HlpTmpl; -- m->Hlp.pszVBoxVersion = RTBldCfgVersion(); -- m->Hlp.uVBoxInternalRevision = RTBldCfgRevision(); -- m->pThis = this; -- m->pReg = NULL; -- m->enmContext = a_enmContext; -- m->fMadeReadyCall = false; -- -- /* -- * Probe the extension pack (this code is shared with refresh()). -- */ -- probeAndLoad(); -- -- autoInitSpan.setSucceeded(); -- return S_OK; --} -- --/** -- * COM cruft. -- */ --void ExtPack::FinalRelease() --{ -- uninit(); --} -- --/** -- * Do the actual cleanup. -- */ --void ExtPack::uninit() --{ -- /* Enclose the state transition Ready->InUninit->NotReady */ -- AutoUninitSpan autoUninitSpan(this); -- if (!autoUninitSpan.uninitDone() && m != NULL) -- { -- if (m->hMainMod != NIL_RTLDRMOD) -- { -- AssertPtr(m->pReg); -- if (m->pReg->pfnUnload != NULL) -- m->pReg->pfnUnload(m->pReg); -- -- RTLdrClose(m->hMainMod); -- m->hMainMod = NIL_RTLDRMOD; -- m->pReg = NULL; -- } -- -- VBoxExtPackFreeDesc(&m->Desc); -- -- delete m; -- m = NULL; -- } --} -- -- --/** -- * Calls the installed hook. -- * -- * @returns true if we left the lock, false if we didn't. -- * @param a_pVirtualBox The VirtualBox interface. -- * @param a_pLock The write lock held by the caller. -- * @param pErrInfo Where to return error information. -- */ --bool ExtPack::callInstalledHook(IVirtualBox *a_pVirtualBox, AutoWriteLock *a_pLock, PRTERRINFO pErrInfo) --{ -- if ( m != NULL -- && m->hMainMod != NIL_RTLDRMOD) -- { -- if (m->pReg->pfnInstalled) -- { -- ComPtr<ExtPack> ptrSelfRef = this; -- a_pLock->release(); -- pErrInfo->rc = m->pReg->pfnInstalled(m->pReg, a_pVirtualBox, pErrInfo); -- a_pLock->acquire(); -- return true; -- } -- } -- pErrInfo->rc = VINF_SUCCESS; -- return false; --} -- --/** -- * Calls the uninstall hook and closes the module. -- * -- * @returns S_OK or COM error status with error information. -- * @param a_pVirtualBox The VirtualBox interface. -- * @param a_fForcedRemoval When set, we'll ignore complaints from the -- * uninstall hook. -- * @remarks The caller holds the manager's write lock, not released. -- */ --HRESULT ExtPack::callUninstallHookAndClose(IVirtualBox *a_pVirtualBox, bool a_fForcedRemoval) --{ -- HRESULT hrc = S_OK; -- -- if ( m != NULL -- && m->hMainMod != NIL_RTLDRMOD) -- { -- if (m->pReg->pfnUninstall && !a_fForcedRemoval) -- { -- int vrc = m->pReg->pfnUninstall(m->pReg, a_pVirtualBox); -- if (RT_FAILURE(vrc)) -- { -- LogRel(("ExtPack pfnUninstall returned %Rrc for %s\n", vrc, m->Desc.strName.c_str())); -- if (!a_fForcedRemoval) -- hrc = setError(E_FAIL, tr("pfnUninstall returned %Rrc"), vrc); -- } -- } -- if (SUCCEEDED(hrc)) -- { -- RTLdrClose(m->hMainMod); -- m->hMainMod = NIL_RTLDRMOD; -- m->pReg = NULL; -- } -- } -- -- return hrc; --} -- --/** -- * Calls the pfnVirtualBoxReady hook. -- * -- * @returns true if we left the lock, false if we didn't. -- * @param a_pVirtualBox The VirtualBox interface. -- * @param a_pLock The write lock held by the caller. -- */ --bool ExtPack::callVirtualBoxReadyHook(IVirtualBox *a_pVirtualBox, AutoWriteLock *a_pLock) --{ -- if ( m != NULL -- && m->fUsable -- && !m->fMadeReadyCall) -- { -- m->fMadeReadyCall = true; -- if (m->pReg->pfnVirtualBoxReady) -- { -- ComPtr<ExtPack> ptrSelfRef = this; -- a_pLock->release(); -- m->pReg->pfnVirtualBoxReady(m->pReg, a_pVirtualBox); -- a_pLock->acquire(); -- return true; -- } -- } -- return false; --} -- --/** -- * Calls the pfnConsoleReady hook. -- * -- * @returns true if we left the lock, false if we didn't. -- * @param a_pConsole The Console interface. -- * @param a_pLock The write lock held by the caller. -- */ --bool ExtPack::callConsoleReadyHook(IConsole *a_pConsole, AutoWriteLock *a_pLock) --{ -- if ( m != NULL -- && m->fUsable -- && !m->fMadeReadyCall) -- { -- m->fMadeReadyCall = true; -- if (m->pReg->pfnConsoleReady) -- { -- ComPtr<ExtPack> ptrSelfRef = this; -- a_pLock->release(); -- m->pReg->pfnConsoleReady(m->pReg, a_pConsole); -- a_pLock->acquire(); -- return true; -- } -- } -- return false; --} -- --/** -- * Calls the pfnVMCreate hook. -- * -- * @returns true if we left the lock, false if we didn't. -- * @param a_pVirtualBox The VirtualBox interface. -- * @param a_pMachine The machine interface of the new VM. -- * @param a_pLock The write lock held by the caller. -- */ --bool ExtPack::callVmCreatedHook(IVirtualBox *a_pVirtualBox, IMachine *a_pMachine, AutoWriteLock *a_pLock) --{ -- if ( m != NULL -- && m->fUsable) -- { -- if (m->pReg->pfnVMCreated) -- { -- ComPtr<ExtPack> ptrSelfRef = this; -- a_pLock->release(); -- m->pReg->pfnVMCreated(m->pReg, a_pVirtualBox, a_pMachine); -- a_pLock->acquire(); -- return true; -- } -- } -- return false; --} -- --/** -- * Calls the pfnVMConfigureVMM hook. -- * -- * @returns true if we left the lock, false if we didn't. -- * @param a_pConsole The console interface. -- * @param a_pVM The VM handle. -- * @param a_pLock The write lock held by the caller. -- * @param a_pvrc Where to return the status code of the -- * callback. This is always set. LogRel is -- * called on if a failure status is returned. -- */ --bool ExtPack::callVmConfigureVmmHook(IConsole *a_pConsole, PVM a_pVM, AutoWriteLock *a_pLock, int *a_pvrc) --{ -- *a_pvrc = VINF_SUCCESS; -- if ( m != NULL -- && m->fUsable) -- { -- if (m->pReg->pfnVMConfigureVMM) -- { -- ComPtr<ExtPack> ptrSelfRef = this; -- a_pLock->release(); -- int vrc = m->pReg->pfnVMConfigureVMM(m->pReg, a_pConsole, a_pVM); -- *a_pvrc = vrc; -- a_pLock->acquire(); -- if (RT_FAILURE(vrc)) -- LogRel(("ExtPack pfnVMConfigureVMM returned %Rrc for %s\n", vrc, m->Desc.strName.c_str())); -- return true; -- } -- } -- return false; --} -- --/** -- * Calls the pfnVMPowerOn hook. -- * -- * @returns true if we left the lock, false if we didn't. -- * @param a_pConsole The console interface. -- * @param a_pVM The VM handle. -- * @param a_pLock The write lock held by the caller. -- * @param a_pvrc Where to return the status code of the -- * callback. This is always set. LogRel is -- * called on if a failure status is returned. -- */ --bool ExtPack::callVmPowerOnHook(IConsole *a_pConsole, PVM a_pVM, AutoWriteLock *a_pLock, int *a_pvrc) --{ -- *a_pvrc = VINF_SUCCESS; -- if ( m != NULL -- && m->fUsable) -- { -- if (m->pReg->pfnVMPowerOn) -- { -- ComPtr<ExtPack> ptrSelfRef = this; -- a_pLock->release(); -- int vrc = m->pReg->pfnVMPowerOn(m->pReg, a_pConsole, a_pVM); -- *a_pvrc = vrc; -- a_pLock->acquire(); -- if (RT_FAILURE(vrc)) -- LogRel(("ExtPack pfnVMPowerOn returned %Rrc for %s\n", vrc, m->Desc.strName.c_str())); -- return true; -- } -- } -- return false; --} -- --/** -- * Calls the pfnVMPowerOff hook. -- * -- * @returns true if we left the lock, false if we didn't. -- * @param a_pConsole The console interface. -- * @param a_pVM The VM handle. -- * @param a_pLock The write lock held by the caller. -- */ --bool ExtPack::callVmPowerOffHook(IConsole *a_pConsole, PVM a_pVM, AutoWriteLock *a_pLock) --{ -- if ( m != NULL -- && m->fUsable) -- { -- if (m->pReg->pfnVMPowerOff) -- { -- ComPtr<ExtPack> ptrSelfRef = this; -- a_pLock->release(); -- m->pReg->pfnVMPowerOff(m->pReg, a_pConsole, a_pVM); -- a_pLock->acquire(); -- return true; -- } -- } -- return false; --} -- --/** -- * Check if the extension pack is usable and has an VRDE module. -- * -- * @returns S_OK or COM error status with error information. -- * -- * @remarks Caller holds the extension manager lock for reading, no locking -- * necessary. -- */ --HRESULT ExtPack::checkVrde(void) --{ -- HRESULT hrc; -- if ( m != NULL -- && m->fUsable) -- { -- if (m->Desc.strVrdeModule.isNotEmpty()) -- hrc = S_OK; -- else -- hrc = setError(E_FAIL, tr("The extension pack '%s' does not include a VRDE module"), m->Desc.strName.c_str()); -- } -- else -- hrc = setError(E_FAIL, tr("%s"), m->strWhyUnusable.c_str()); -- return hrc; --} -- --/** -- * Same as checkVrde(), except that it also resolves the path to the module. -- * -- * @returns S_OK or COM error status with error information. -- * @param a_pstrVrdeLibrary Where to return the path on success. -- * -- * @remarks Caller holds the extension manager lock for reading, no locking -- * necessary. -- */ --HRESULT ExtPack::getVrdpLibraryName(Utf8Str *a_pstrVrdeLibrary) --{ -- HRESULT hrc = checkVrde(); -- if (SUCCEEDED(hrc)) -- { -- if (findModule(m->Desc.strVrdeModule.c_str(), NULL, VBOXEXTPACKMODKIND_R3, -- a_pstrVrdeLibrary, NULL /*a_pfNative*/, NULL /*a_pObjInfo*/)) -- hrc = S_OK; -- else -- hrc = setError(E_FAIL, tr("Failed to locate the VRDE module '%s' in extension pack '%s'"), -- m->Desc.strVrdeModule.c_str(), m->Desc.strName.c_str()); -- } -- return hrc; --} -- --/** -- * Check if this extension pack wishes to be the default VRDE provider. -- * -- * @returns @c true if it wants to and it is in a usable state, otherwise -- * @c false. -- * -- * @remarks Caller holds the extension manager lock for reading, no locking -- * necessary. -- */ --bool ExtPack::wantsToBeDefaultVrde(void) const --{ -- return m->fUsable -- && m->Desc.strVrdeModule.isNotEmpty(); --} -- --/** -- * Refreshes the extension pack state. -- * -- * This is called by the manager so that the on disk changes are picked up. -- * -- * @returns S_OK or COM error status with error information. -- * -- * @param a_pfCanDelete Optional can-delete-this-object output indicator. -- * -- * @remarks Caller holds the extension manager lock for writing. -- * @remarks Only called in VBoxSVC. -- */ --HRESULT ExtPack::refresh(bool *a_pfCanDelete) --{ -- if (a_pfCanDelete) -- *a_pfCanDelete = false; -- -- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS); /* for the COMGETTERs */ -- -- /* -- * Has the module been deleted? -- */ -- RTFSOBJINFO ObjInfoExtPack; -- int vrc = RTPathQueryInfoEx(m->strExtPackPath.c_str(), &ObjInfoExtPack, RTFSOBJATTRADD_UNIX, RTPATH_F_ON_LINK); -- if ( RT_FAILURE(vrc) -- || !RTFS_IS_DIRECTORY(ObjInfoExtPack.Attr.fMode)) -- { -- if (a_pfCanDelete) -- *a_pfCanDelete = true; -- return S_OK; -- } -- -- /* -- * We've got a directory, so try query file system object info for the -- * files we are interested in as well. -- */ -- RTFSOBJINFO ObjInfoDesc; -- char szDescFilePath[RTPATH_MAX]; -- vrc = RTPathJoin(szDescFilePath, sizeof(szDescFilePath), m->strExtPackPath.c_str(), VBOX_EXTPACK_DESCRIPTION_NAME); -- if (RT_SUCCESS(vrc)) -- vrc = RTPathQueryInfoEx(szDescFilePath, &ObjInfoDesc, RTFSOBJATTRADD_UNIX, RTPATH_F_ON_LINK); -- if (RT_FAILURE(vrc)) -- RT_ZERO(ObjInfoDesc); -- -- RTFSOBJINFO ObjInfoMainMod; -- if (m->strMainModPath.isNotEmpty()) -- vrc = RTPathQueryInfoEx(m->strMainModPath.c_str(), &ObjInfoMainMod, RTFSOBJATTRADD_UNIX, RTPATH_F_ON_LINK); -- if (m->strMainModPath.isEmpty() || RT_FAILURE(vrc)) -- RT_ZERO(ObjInfoMainMod); -- -- /* -- * If we have a usable module already, just verify that things haven't -- * changed since we loaded it. -- */ -- if (m->fUsable) -- { -- if (m->hMainMod == NIL_RTLDRMOD) -- probeAndLoad(); -- else if ( !objinfoIsEqual(&ObjInfoDesc, &m->ObjInfoDesc) -- || !objinfoIsEqual(&ObjInfoMainMod, &m->ObjInfoMainMod) -- || !objinfoIsEqual(&ObjInfoExtPack, &m->ObjInfoExtPack) ) -- { -- /** @todo not important, so it can wait. */ -- } -- } -- /* -- * Ok, it is currently not usable. If anything has changed since last time -- * reprobe the extension pack. -- */ -- else if ( !objinfoIsEqual(&ObjInfoDesc, &m->ObjInfoDesc) -- || !objinfoIsEqual(&ObjInfoMainMod, &m->ObjInfoMainMod) -- || !objinfoIsEqual(&ObjInfoExtPack, &m->ObjInfoExtPack) ) -- probeAndLoad(); -- -- return S_OK; --} -- --/** -- * Probes the extension pack, loading the main dll and calling its registration -- * entry point. -- * -- * This updates the state accordingly, the strWhyUnusable and fUnusable members -- * being the most important ones. -- */ --void ExtPack::probeAndLoad(void) --{ -- m->fUsable = false; -- m->fMadeReadyCall = false; -- -- /* -- * Query the file system info for the extension pack directory. This and -- * all other file system info we save is for the benefit of refresh(). -- */ -- int vrc = RTPathQueryInfoEx(m->strExtPackPath.c_str(), &m->ObjInfoExtPack, RTFSOBJATTRADD_UNIX, RTPATH_F_ON_LINK); -- if (RT_FAILURE(vrc)) -- { -- m->strWhyUnusable.printf(tr("RTPathQueryInfoEx on '%s' failed: %Rrc"), m->strExtPackPath.c_str(), vrc); -- return; -- } -- if (!RTFS_IS_DIRECTORY(m->ObjInfoExtPack.Attr.fMode)) -- { -- if (RTFS_IS_SYMLINK(m->ObjInfoExtPack.Attr.fMode)) -- m->strWhyUnusable.printf(tr("'%s' is a symbolic link, this is not allowed"), m->strExtPackPath.c_str(), vrc); -- else if (RTFS_IS_FILE(m->ObjInfoExtPack.Attr.fMode)) -- m->strWhyUnusable.printf(tr("'%s' is a symbolic file, not a directory"), m->strExtPackPath.c_str(), vrc); -- else -- m->strWhyUnusable.printf(tr("'%s' is not a directory (fMode=%#x)"), m->strExtPackPath.c_str(), m->ObjInfoExtPack.Attr.fMode); -- return; -- } -- -- RTERRINFOSTATIC ErrInfo; -- RTErrInfoInitStatic(&ErrInfo); -- vrc = SUPR3HardenedVerifyDir(m->strExtPackPath.c_str(), true /*fRecursive*/, true /*fCheckFiles*/, &ErrInfo.Core); -- if (RT_FAILURE(vrc)) -- { -- m->strWhyUnusable.printf(tr("%s (rc=%Rrc)"), ErrInfo.Core.pszMsg, vrc); -- return; -- } -- -- /* -- * Read the description file. -- */ -- RTCString strSavedName(m->Desc.strName); -- RTCString *pStrLoadErr = VBoxExtPackLoadDesc(m->strExtPackPath.c_str(), &m->Desc, &m->ObjInfoDesc); -- if (pStrLoadErr != NULL) -- { -- m->strWhyUnusable.printf(tr("Failed to load '%s/%s': %s"), -- m->strExtPackPath.c_str(), VBOX_EXTPACK_DESCRIPTION_NAME, pStrLoadErr->c_str()); -- m->Desc.strName = strSavedName; -- delete pStrLoadErr; -- return; -- } -- -- /* -- * Make sure the XML name and directory matches. -- */ -- if (!m->Desc.strName.equalsIgnoreCase(strSavedName)) -- { -- m->strWhyUnusable.printf(tr("The description name ('%s') and directory name ('%s') does not match"), -- m->Desc.strName.c_str(), strSavedName.c_str()); -- m->Desc.strName = strSavedName; -- return; -- } -- -- /* -- * Load the main DLL and call the predefined entry point. -- */ -- bool fIsNative; -- if (!findModule(m->Desc.strMainModule.c_str(), NULL /* default extension */, VBOXEXTPACKMODKIND_R3, -- &m->strMainModPath, &fIsNative, &m->ObjInfoMainMod)) -- { -- m->strWhyUnusable.printf(tr("Failed to locate the main module ('%s')"), m->Desc.strMainModule.c_str()); -- return; -- } -- -- vrc = SUPR3HardenedVerifyPlugIn(m->strMainModPath.c_str(), &ErrInfo.Core); -- if (RT_FAILURE(vrc)) -- { -- m->strWhyUnusable.printf(tr("%s"), ErrInfo.Core.pszMsg); -- return; -- } -- -- if (fIsNative) -- { -- vrc = SUPR3HardenedLdrLoadPlugIn(m->strMainModPath.c_str(), &m->hMainMod, &ErrInfo.Core); -- if (RT_FAILURE(vrc)) -- { -- m->hMainMod = NIL_RTLDRMOD; -- m->strWhyUnusable.printf(tr("Failed to load the main module ('%s'): %Rrc - %s"), -- m->strMainModPath.c_str(), vrc, ErrInfo.Core.pszMsg); -- return; -- } -- } -- else -- { -- m->strWhyUnusable.printf(tr("Only native main modules are currently supported")); -- return; -- } -- -- /* -- * Resolve the predefined entry point. -- */ -- PFNVBOXEXTPACKREGISTER pfnRegistration; -- vrc = RTLdrGetSymbol(m->hMainMod, VBOX_EXTPACK_MAIN_MOD_ENTRY_POINT, (void **)&pfnRegistration); -- if (RT_SUCCESS(vrc)) -- { -- RTErrInfoClear(&ErrInfo.Core); -- vrc = pfnRegistration(&m->Hlp, &m->pReg, &ErrInfo.Core); -- if ( RT_SUCCESS(vrc) -- && !RTErrInfoIsSet(&ErrInfo.Core) -- && VALID_PTR(m->pReg)) -- { -- if ( VBOXEXTPACK_IS_MAJOR_VER_EQUAL(m->pReg->u32Version, VBOXEXTPACKREG_VERSION) -- && m->pReg->u32EndMarker == m->pReg->u32Version) -- { -- if ( (!m->pReg->pfnInstalled || RT_VALID_PTR(m->pReg->pfnInstalled)) -- && (!m->pReg->pfnUninstall || RT_VALID_PTR(m->pReg->pfnUninstall)) -- && (!m->pReg->pfnVirtualBoxReady || RT_VALID_PTR(m->pReg->pfnVirtualBoxReady)) -- && (!m->pReg->pfnConsoleReady || RT_VALID_PTR(m->pReg->pfnConsoleReady)) -- && (!m->pReg->pfnUnload || RT_VALID_PTR(m->pReg->pfnUnload)) -- && (!m->pReg->pfnVMCreated || RT_VALID_PTR(m->pReg->pfnVMCreated)) -- && (!m->pReg->pfnVMConfigureVMM || RT_VALID_PTR(m->pReg->pfnVMConfigureVMM)) -- && (!m->pReg->pfnVMPowerOn || RT_VALID_PTR(m->pReg->pfnVMPowerOn)) -- && (!m->pReg->pfnVMPowerOff || RT_VALID_PTR(m->pReg->pfnVMPowerOff)) -- && (!m->pReg->pfnQueryObject || RT_VALID_PTR(m->pReg->pfnQueryObject)) -- ) -- { -- /* -- * We're good! -- */ -- m->fUsable = true; -- m->strWhyUnusable.setNull(); -- return; -- } -- -- m->strWhyUnusable = tr("The registration structure contains on or more invalid function pointers"); -- } -- else -- m->strWhyUnusable.printf(tr("Unsupported registration structure version %u.%u"), -- RT_HIWORD(m->pReg->u32Version), RT_LOWORD(m->pReg->u32Version)); -- } -- else -- m->strWhyUnusable.printf(tr("%s returned %Rrc, pReg=%p ErrInfo='%s'"), -- VBOX_EXTPACK_MAIN_MOD_ENTRY_POINT, vrc, m->pReg, ErrInfo.Core.pszMsg); -- m->pReg = NULL; -- } -- else -- m->strWhyUnusable.printf(tr("Failed to resolve exported symbol '%s' in the main module: %Rrc"), -- VBOX_EXTPACK_MAIN_MOD_ENTRY_POINT, vrc); -- -- RTLdrClose(m->hMainMod); -- m->hMainMod = NIL_RTLDRMOD; --} -- --/** -- * Finds a module. -- * -- * @returns true if found, false if not. -- * @param a_pszName The module base name (no extension). -- * @param a_pszExt The extension. If NULL we use default -- * extensions. -- * @param a_enmKind The kind of module to locate. -- * @param a_pStrFound Where to return the path to the module we've -- * found. -- * @param a_pfNative Where to return whether this is a native module -- * or an agnostic one. Optional. -- * @param a_pObjInfo Where to return the file system object info for -- * the module. Optional. -- */ --bool ExtPack::findModule(const char *a_pszName, const char *a_pszExt, VBOXEXTPACKMODKIND a_enmKind, -- Utf8Str *a_pStrFound, bool *a_pfNative, PRTFSOBJINFO a_pObjInfo) const --{ -- /* -- * Try the native path first. -- */ -- char szPath[RTPATH_MAX]; -- int vrc = RTPathJoin(szPath, sizeof(szPath), m->strExtPackPath.c_str(), RTBldCfgTargetDotArch()); -- AssertLogRelRCReturn(vrc, false); -- vrc = RTPathAppend(szPath, sizeof(szPath), a_pszName); -- AssertLogRelRCReturn(vrc, false); -- if (!a_pszExt) -- { -- const char *pszDefExt; -- switch (a_enmKind) -- { -- case VBOXEXTPACKMODKIND_RC: pszDefExt = ".rc"; break; -- case VBOXEXTPACKMODKIND_R0: pszDefExt = ".r0"; break; -- case VBOXEXTPACKMODKIND_R3: pszDefExt = RTLdrGetSuff(); break; -- default: -- AssertFailedReturn(false); -- } -- vrc = RTStrCat(szPath, sizeof(szPath), pszDefExt); -- AssertLogRelRCReturn(vrc, false); -- } -- -- RTFSOBJINFO ObjInfo; -- if (!a_pObjInfo) -- a_pObjInfo = &ObjInfo; -- vrc = RTPathQueryInfo(szPath, a_pObjInfo, RTFSOBJATTRADD_UNIX); -- if (RT_SUCCESS(vrc) && RTFS_IS_FILE(a_pObjInfo->Attr.fMode)) -- { -- if (a_pfNative) -- *a_pfNative = true; -- *a_pStrFound = szPath; -- return true; -- } -- -- /* -- * Try the platform agnostic modules. -- */ -- /* gcc.x86/module.rel */ -- char szSubDir[32]; -- RTStrPrintf(szSubDir, sizeof(szSubDir), "%s.%s", RTBldCfgCompiler(), RTBldCfgTargetArch()); -- vrc = RTPathJoin(szPath, sizeof(szPath), m->strExtPackPath.c_str(), szSubDir); -- AssertLogRelRCReturn(vrc, false); -- vrc = RTPathAppend(szPath, sizeof(szPath), a_pszName); -- AssertLogRelRCReturn(vrc, false); -- if (!a_pszExt) -- { -- vrc = RTStrCat(szPath, sizeof(szPath), ".rel"); -- AssertLogRelRCReturn(vrc, false); -- } -- vrc = RTPathQueryInfo(szPath, a_pObjInfo, RTFSOBJATTRADD_UNIX); -- if (RT_SUCCESS(vrc) && RTFS_IS_FILE(a_pObjInfo->Attr.fMode)) -- { -- if (a_pfNative) -- *a_pfNative = false; -- *a_pStrFound = szPath; -- return true; -- } -- -- /* x86/module.rel */ -- vrc = RTPathJoin(szPath, sizeof(szPath), m->strExtPackPath.c_str(), RTBldCfgTargetArch()); -- AssertLogRelRCReturn(vrc, false); -- vrc = RTPathAppend(szPath, sizeof(szPath), a_pszName); -- AssertLogRelRCReturn(vrc, false); -- if (!a_pszExt) -- { -- vrc = RTStrCat(szPath, sizeof(szPath), ".rel"); -- AssertLogRelRCReturn(vrc, false); -- } -- vrc = RTPathQueryInfo(szPath, a_pObjInfo, RTFSOBJATTRADD_UNIX); -- if (RT_SUCCESS(vrc) && RTFS_IS_FILE(a_pObjInfo->Attr.fMode)) -- { -- if (a_pfNative) -- *a_pfNative = false; -- *a_pStrFound = szPath; -- return true; -- } -- -- return false; --} -- --/** -- * Compares two file system object info structures. -- * -- * @returns true if equal, false if not. -- * @param pObjInfo1 The first. -- * @param pObjInfo2 The second. -- * @todo IPRT should do this, really. -- */ --/* static */ bool ExtPack::objinfoIsEqual(PCRTFSOBJINFO pObjInfo1, PCRTFSOBJINFO pObjInfo2) --{ -- if (!RTTimeSpecIsEqual(&pObjInfo1->ModificationTime, &pObjInfo2->ModificationTime)) -- return false; -- if (!RTTimeSpecIsEqual(&pObjInfo1->ChangeTime, &pObjInfo2->ChangeTime)) -- return false; -- if (!RTTimeSpecIsEqual(&pObjInfo1->BirthTime, &pObjInfo2->BirthTime)) -- return false; -- if (pObjInfo1->cbObject != pObjInfo2->cbObject) -- return false; -- if (pObjInfo1->Attr.fMode != pObjInfo2->Attr.fMode) -- return false; -- if (pObjInfo1->Attr.enmAdditional == pObjInfo2->Attr.enmAdditional) -- { -- switch (pObjInfo1->Attr.enmAdditional) -- { -- case RTFSOBJATTRADD_UNIX: -- if (pObjInfo1->Attr.u.Unix.uid != pObjInfo2->Attr.u.Unix.uid) -- return false; -- if (pObjInfo1->Attr.u.Unix.gid != pObjInfo2->Attr.u.Unix.gid) -- return false; -- if (pObjInfo1->Attr.u.Unix.INodeIdDevice != pObjInfo2->Attr.u.Unix.INodeIdDevice) -- return false; -- if (pObjInfo1->Attr.u.Unix.INodeId != pObjInfo2->Attr.u.Unix.INodeId) -- return false; -- if (pObjInfo1->Attr.u.Unix.GenerationId != pObjInfo2->Attr.u.Unix.GenerationId) -- return false; -- break; -- default: -- break; -- } -- } -- return true; --} -- -- --/** -- * @interface_method_impl{VBOXEXTPACKHLP,pfnFindModule} -- */ --/*static*/ DECLCALLBACK(int) --ExtPack::hlpFindModule(PCVBOXEXTPACKHLP pHlp, const char *pszName, const char *pszExt, VBOXEXTPACKMODKIND enmKind, -- char *pszFound, size_t cbFound, bool *pfNative) --{ -- /* -- * Validate the input and get our bearings. -- */ -- AssertPtrReturn(pszName, VERR_INVALID_POINTER); -- AssertPtrNullReturn(pszExt, VERR_INVALID_POINTER); -- AssertPtrReturn(pszFound, VERR_INVALID_POINTER); -- AssertPtrNullReturn(pfNative, VERR_INVALID_POINTER); -- AssertReturn(enmKind > VBOXEXTPACKMODKIND_INVALID && enmKind < VBOXEXTPACKMODKIND_END, VERR_INVALID_PARAMETER); -- -- AssertPtrReturn(pHlp, VERR_INVALID_POINTER); -- AssertReturn(pHlp->u32Version == VBOXEXTPACKHLP_VERSION, VERR_INVALID_POINTER); -- ExtPack::Data *m = RT_FROM_CPP_MEMBER(pHlp, Data, Hlp); -- AssertPtrReturn(m, VERR_INVALID_POINTER); -- ExtPack *pThis = m->pThis; -- AssertPtrReturn(pThis, VERR_INVALID_POINTER); -- -- /* -- * This is just a wrapper around findModule. -- */ -- Utf8Str strFound; -- if (pThis->findModule(pszName, pszExt, enmKind, &strFound, pfNative, NULL)) -- return RTStrCopy(pszFound, cbFound, strFound.c_str()); -- return VERR_FILE_NOT_FOUND; --} -- --/*static*/ DECLCALLBACK(int) --ExtPack::hlpGetFilePath(PCVBOXEXTPACKHLP pHlp, const char *pszFilename, char *pszPath, size_t cbPath) --{ -- /* -- * Validate the input and get our bearings. -- */ -- AssertPtrReturn(pszFilename, VERR_INVALID_POINTER); -- AssertPtrReturn(pszPath, VERR_INVALID_POINTER); -- AssertReturn(cbPath > 0, VERR_BUFFER_OVERFLOW); -- -- AssertPtrReturn(pHlp, VERR_INVALID_POINTER); -- AssertReturn(pHlp->u32Version == VBOXEXTPACKHLP_VERSION, VERR_INVALID_POINTER); -- ExtPack::Data *m = RT_FROM_CPP_MEMBER(pHlp, Data, Hlp); -- AssertPtrReturn(m, VERR_INVALID_POINTER); -- ExtPack *pThis = m->pThis; -- AssertPtrReturn(pThis, VERR_INVALID_POINTER); -- -- /* -- * This is a simple RTPathJoin, no checking if things exists or anything. -- */ -- int vrc = RTPathJoin(pszPath, cbPath, pThis->m->strExtPackPath.c_str(), pszFilename); -- if (RT_FAILURE(vrc)) -- RT_BZERO(pszPath, cbPath); -- return vrc; --} -- --/*static*/ DECLCALLBACK(VBOXEXTPACKCTX) --ExtPack::hlpGetContext(PCVBOXEXTPACKHLP pHlp) --{ -- /* -- * Validate the input and get our bearings. -- */ -- AssertPtrReturn(pHlp, VBOXEXTPACKCTX_INVALID); -- AssertReturn(pHlp->u32Version == VBOXEXTPACKHLP_VERSION, VBOXEXTPACKCTX_INVALID); -- ExtPack::Data *m = RT_FROM_CPP_MEMBER(pHlp, Data, Hlp); -- AssertPtrReturn(m, VBOXEXTPACKCTX_INVALID); -- ExtPack *pThis = m->pThis; -- AssertPtrReturn(pThis, VBOXEXTPACKCTX_INVALID); -- -- return pThis->m->enmContext; --} -- --/*static*/ DECLCALLBACK(int) --ExtPack::hlpReservedN(PCVBOXEXTPACKHLP pHlp) --{ -- /* -- * Validate the input and get our bearings. -- */ -- AssertPtrReturn(pHlp, VERR_INVALID_POINTER); -- AssertReturn(pHlp->u32Version == VBOXEXTPACKHLP_VERSION, VERR_INVALID_POINTER); -- ExtPack::Data *m = RT_FROM_CPP_MEMBER(pHlp, Data, Hlp); -- AssertPtrReturn(m, VERR_INVALID_POINTER); -- ExtPack *pThis = m->pThis; -- AssertPtrReturn(pThis, VERR_INVALID_POINTER); -- -- return VERR_NOT_IMPLEMENTED; --} -- -- -- -- -- --STDMETHODIMP ExtPack::COMGETTER(Name)(BSTR *a_pbstrName) --{ -- CheckComArgOutPointerValid(a_pbstrName); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- Bstr str(m->Desc.strName); -- str.cloneTo(a_pbstrName); -- } -- return hrc; --} -- --STDMETHODIMP ExtPack::COMGETTER(Description)(BSTR *a_pbstrDescription) --{ -- CheckComArgOutPointerValid(a_pbstrDescription); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- Bstr str(m->Desc.strDescription); -- str.cloneTo(a_pbstrDescription); -- } -- return hrc; --} -- --STDMETHODIMP ExtPack::COMGETTER(Version)(BSTR *a_pbstrVersion) --{ -- CheckComArgOutPointerValid(a_pbstrVersion); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- /* HACK ALERT: This is for easing backporting to 4.1. The edition stuff -- will be changed into a separate */ -- if (m->Desc.strEdition.isEmpty()) -- { -- Bstr str(m->Desc.strVersion); -- str.cloneTo(a_pbstrVersion); -- } -- else -- { -- RTCString strHack(m->Desc.strVersion); -- strHack.append('-'); -- strHack.append(m->Desc.strEdition); -- -- Bstr str(strHack); -- str.cloneTo(a_pbstrVersion); -- } -- } -- return hrc; --} -- --STDMETHODIMP ExtPack::COMGETTER(Revision)(ULONG *a_puRevision) --{ -- CheckComArgOutPointerValid(a_puRevision); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- *a_puRevision = m->Desc.uRevision; -- return hrc; --} -- --STDMETHODIMP ExtPack::COMGETTER(VRDEModule)(BSTR *a_pbstrVrdeModule) --{ -- CheckComArgOutPointerValid(a_pbstrVrdeModule); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- Bstr str(m->Desc.strVrdeModule); -- str.cloneTo(a_pbstrVrdeModule); -- } -- return hrc; --} -- --STDMETHODIMP ExtPack::COMGETTER(PlugIns)(ComSafeArrayOut(IExtPackPlugIn *, a_paPlugIns)) --{ -- /** @todo implement plug-ins. */ --#ifdef VBOX_WITH_XPCOM -- NOREF(a_paPlugIns); -- NOREF(a_paPlugInsSize); --#endif -- ReturnComNotImplemented(); --} -- --STDMETHODIMP ExtPack::COMGETTER(Usable)(BOOL *a_pfUsable) --{ -- CheckComArgOutPointerValid(a_pfUsable); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- *a_pfUsable = m->fUsable; -- return hrc; --} -- --STDMETHODIMP ExtPack::COMGETTER(WhyUnusable)(BSTR *a_pbstrWhy) --{ -- CheckComArgOutPointerValid(a_pbstrWhy); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- m->strWhyUnusable.cloneTo(a_pbstrWhy); -- return hrc; --} -- --STDMETHODIMP ExtPack::COMGETTER(ShowLicense)(BOOL *a_pfShowIt) --{ -- CheckComArgOutPointerValid(a_pfShowIt); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- *a_pfShowIt = m->Desc.fShowLicense; -- return hrc; --} -- --STDMETHODIMP ExtPack::COMGETTER(License)(BSTR *a_pbstrHtmlLicense) --{ -- Bstr bstrHtml("html"); -- return QueryLicense(Bstr::Empty.raw(), Bstr::Empty.raw(), bstrHtml.raw(), a_pbstrHtmlLicense); --} -- --STDMETHODIMP ExtPack::QueryLicense(IN_BSTR a_bstrPreferredLocale, IN_BSTR a_bstrPreferredLanguage, IN_BSTR a_bstrFormat, -- BSTR *a_pbstrLicense) --{ -- /* -- * Validate input. -- */ -- CheckComArgOutPointerValid(a_pbstrLicense); -- CheckComArgNotNull(a_bstrPreferredLocale); -- CheckComArgNotNull(a_bstrPreferredLanguage); -- CheckComArgNotNull(a_bstrFormat); -- -- Utf8Str strPreferredLocale(a_bstrPreferredLocale); -- if (strPreferredLocale.length() != 2 && strPreferredLocale.length() != 0) -- return setError(E_FAIL, tr("The preferred locale is a two character string or empty.")); -- -- Utf8Str strPreferredLanguage(a_bstrPreferredLanguage); -- if (strPreferredLanguage.length() != 2 && strPreferredLanguage.length() != 0) -- return setError(E_FAIL, tr("The preferred lanuage is a two character string or empty.")); -- -- Utf8Str strFormat(a_bstrFormat); -- if ( !strFormat.equals("html") -- && !strFormat.equals("rtf") -- && !strFormat.equals("txt")) -- return setError(E_FAIL, tr("The license format can only have the values 'html', 'rtf' and 'txt'.")); -- -- /* -- * Combine the options to form a file name before locking down anything. -- */ -- char szName[sizeof(VBOX_EXTPACK_LICENSE_NAME_PREFIX "-de_DE.html") + 2]; -- if (strPreferredLocale.isNotEmpty() && strPreferredLanguage.isNotEmpty()) -- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX "-%s_%s.%s", -- strPreferredLocale.c_str(), strPreferredLanguage.c_str(), strFormat.c_str()); -- else if (strPreferredLocale.isNotEmpty()) -- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX "-%s.%s", strPreferredLocale.c_str(), strFormat.c_str()); -- else if (strPreferredLanguage.isNotEmpty()) -- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX "-_%s.%s", strPreferredLocale.c_str(), strFormat.c_str()); -- else -- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX ".%s", strFormat.c_str()); -- -- /* -- * Effectuate the query. -- */ -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS); /* paranoia */ -- -- if (!m->fUsable) -- hrc = setError(E_FAIL, tr("%s"), m->strWhyUnusable.c_str()); -- else -- { -- char szPath[RTPATH_MAX]; -- int vrc = RTPathJoin(szPath, sizeof(szPath), m->strExtPackPath.c_str(), szName); -- if (RT_SUCCESS(vrc)) -- { -- void *pvFile; -- size_t cbFile; -- vrc = RTFileReadAllEx(szPath, 0, RTFOFF_MAX, RTFILE_RDALL_O_DENY_READ, &pvFile, &cbFile); -- if (RT_SUCCESS(vrc)) -- { -- Bstr bstrLicense((const char *)pvFile, cbFile); -- if (bstrLicense.isNotEmpty()) -- { -- bstrLicense.detachTo(a_pbstrLicense); -- hrc = S_OK; -- } -- else -- hrc = setError(VBOX_E_IPRT_ERROR, tr("The license file '%s' is empty or contains invalid UTF-8 encoding"), -- szPath); -- RTFileReadAllFree(pvFile, cbFile); -- } -- else if (vrc == VERR_FILE_NOT_FOUND || vrc == VERR_PATH_NOT_FOUND) -- hrc = setError(VBOX_E_OBJECT_NOT_FOUND, tr("The license file '%s' was not found in extension pack '%s'"), -- szName, m->Desc.strName.c_str()); -- else -- hrc = setError(VBOX_E_FILE_ERROR, tr("Failed to open the license file '%s': %Rrc"), szPath, vrc); -- } -- else -- hrc = setError(VBOX_E_IPRT_ERROR, tr("RTPathJoin failed: %Rrc"), vrc); -- } -- } -- return hrc; --} -- -- --STDMETHODIMP ExtPack::QueryObject(IN_BSTR a_bstrObjectId, IUnknown **a_ppUnknown) --{ -- com::Guid ObjectId; -- CheckComArgGuid(a_bstrObjectId, ObjectId); -- CheckComArgOutPointerValid(a_ppUnknown); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- if ( m->pReg -- && m->pReg->pfnQueryObject) -- { -- void *pvUnknown = m->pReg->pfnQueryObject(m->pReg, ObjectId.raw()); -- if (pvUnknown) -- *a_ppUnknown = (IUnknown *)pvUnknown; -- else -- hrc = E_NOINTERFACE; -- } -- else -- hrc = E_NOINTERFACE; -- } -- return hrc; --} -- -- -- -- --DEFINE_EMPTY_CTOR_DTOR(ExtPackManager) -- --/** -- * Called by ComObjPtr::createObject when creating the object. -- * -- * Just initialize the basic object state, do the rest in init(). -- * -- * @returns S_OK. -- */ --HRESULT ExtPackManager::FinalConstruct() --{ -- m = NULL; -- return S_OK; --} -- --/** -- * Initializes the extension pack manager. -- * -- * @returns COM status code. -- * @param a_pVirtualBox Pointer to the VirtualBox object. -- * @param a_enmContext The context we're in. -- */ --HRESULT ExtPackManager::initExtPackManager(VirtualBox *a_pVirtualBox, VBOXEXTPACKCTX a_enmContext) --{ -- AutoInitSpan autoInitSpan(this); -- AssertReturn(autoInitSpan.isOk(), E_FAIL); -- -- /* -- * Figure some stuff out before creating the instance data. -- */ -- char szBaseDir[RTPATH_MAX]; -- int rc = RTPathAppPrivateArchTop(szBaseDir, sizeof(szBaseDir)); -- AssertLogRelRCReturn(rc, E_FAIL); -- rc = RTPathAppend(szBaseDir, sizeof(szBaseDir), VBOX_EXTPACK_INSTALL_DIR); -- AssertLogRelRCReturn(rc, E_FAIL); -- -- char szCertificatDir[RTPATH_MAX]; -- rc = RTPathAppPrivateNoArch(szCertificatDir, sizeof(szCertificatDir)); -- AssertLogRelRCReturn(rc, E_FAIL); -- rc = RTPathAppend(szCertificatDir, sizeof(szCertificatDir), VBOX_EXTPACK_CERT_DIR); -- AssertLogRelRCReturn(rc, E_FAIL); -- -- /* -- * Allocate and initialize the instance data. -- */ -- m = new Data; -- m->strBaseDir = szBaseDir; -- m->strCertificatDirPath = szCertificatDir; -- m->pVirtualBox = a_pVirtualBox; -- m->enmContext = a_enmContext; -- -- /* -- * Slurp in VBoxVMM which is used by VBoxPuelMain. -- */ --#if !defined(RT_OS_WINDOWS) && !defined(RT_OS_DARWIN) -- if (a_enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON) -- { -- int vrc = SUPR3HardenedLdrLoadAppPriv("VBoxVMM", &m->hVBoxVMM, RTLDRLOAD_FLAGS_GLOBAL, NULL); -- if (RT_FAILURE(vrc)) -- m->hVBoxVMM = NIL_RTLDRMOD; -- /* cleanup in ::uninit()? */ -- } --#endif -- -- /* -- * Go looking for extensions. The RTDirOpen may fail if nothing has been -- * installed yet, or if root is paranoid and has revoked our access to them. -- * -- * We ASSUME that there are no files, directories or stuff in the directory -- * that exceed the max name length in RTDIRENTRYEX. -- */ -- HRESULT hrc = S_OK; -- PRTDIR pDir; -- int vrc = RTDirOpen(&pDir, szBaseDir); -- if (RT_SUCCESS(vrc)) -- { -- for (;;) -- { -- RTDIRENTRYEX Entry; -- vrc = RTDirReadEx(pDir, &Entry, NULL /*pcbDirEntry*/, RTFSOBJATTRADD_NOTHING, RTPATH_F_ON_LINK); -- if (RT_FAILURE(vrc)) -- { -- AssertLogRelMsg(vrc == VERR_NO_MORE_FILES, ("%Rrc\n", vrc)); -- break; -- } -- if ( RTFS_IS_DIRECTORY(Entry.Info.Attr.fMode) -- && strcmp(Entry.szName, ".") != 0 -- && strcmp(Entry.szName, "..") != 0 -- && VBoxExtPackIsValidMangledName(Entry.szName) ) -- { -- /* -- * All directories are extensions, the shall be nothing but -- * extensions in this subdirectory. -- */ -- char szExtPackDir[RTPATH_MAX]; -- vrc = RTPathJoin(szExtPackDir, sizeof(szExtPackDir), m->strBaseDir.c_str(), Entry.szName); -- AssertLogRelRC(vrc); -- if (RT_SUCCESS(vrc)) -- { -- RTCString *pstrName = VBoxExtPackUnmangleName(Entry.szName, RTSTR_MAX); -- AssertLogRel(pstrName); -- if (pstrName) -- { -- ComObjPtr<ExtPack> NewExtPack; -- HRESULT hrc2 = NewExtPack.createObject(); -- if (SUCCEEDED(hrc2)) -- hrc2 = NewExtPack->initWithDir(a_enmContext, pstrName->c_str(), szExtPackDir); -- delete pstrName; -- if (SUCCEEDED(hrc2)) -- m->llInstalledExtPacks.push_back(NewExtPack); -- else if (SUCCEEDED(rc)) -- hrc = hrc2; -- } -- else -- hrc = E_UNEXPECTED; -- } -- else -- hrc = E_UNEXPECTED; -- } -- } -- RTDirClose(pDir); -- } -- /* else: ignore, the directory probably does not exist or something. */ -- -- if (SUCCEEDED(hrc)) -- autoInitSpan.setSucceeded(); -- return hrc; --} -- --/** -- * COM cruft. -- */ --void ExtPackManager::FinalRelease() --{ -- uninit(); --} -- --/** -- * Do the actual cleanup. -- */ --void ExtPackManager::uninit() --{ -- /* Enclose the state transition Ready->InUninit->NotReady */ -- AutoUninitSpan autoUninitSpan(this); -- if (!autoUninitSpan.uninitDone() && m != NULL) -- { -- delete m; -- m = NULL; -- } --} -- -- --STDMETHODIMP ExtPackManager::COMGETTER(InstalledExtPacks)(ComSafeArrayOut(IExtPack *, a_paExtPacks)) --{ -- CheckComArgOutSafeArrayPointerValid(a_paExtPacks); -- Assert(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- -- SafeIfaceArray<IExtPack> SaExtPacks(m->llInstalledExtPacks); -- SaExtPacks.detachTo(ComSafeArrayOutArg(a_paExtPacks)); -- } -- -- return hrc; --} -- --STDMETHODIMP ExtPackManager::Find(IN_BSTR a_bstrName, IExtPack **a_pExtPack) --{ -- CheckComArgNotNull(a_bstrName); -- CheckComArgOutPointerValid(a_pExtPack); -- Utf8Str strName(a_bstrName); -- Assert(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- -- ComPtr<ExtPack> ptrExtPack = findExtPack(strName.c_str()); -- if (!ptrExtPack.isNull()) -- ptrExtPack.queryInterfaceTo(a_pExtPack); -- else -- hrc = VBOX_E_OBJECT_NOT_FOUND; -- } -- -- return hrc; --} -- --STDMETHODIMP ExtPackManager::OpenExtPackFile(IN_BSTR a_bstrTarballAndDigest, IExtPackFile **a_ppExtPackFile) --{ -- CheckComArgNotNull(a_bstrTarballAndDigest); -- CheckComArgOutPointerValid(a_ppExtPackFile); -- AssertReturn(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON, E_UNEXPECTED); -- -- /* The API can optionally take a ::SHA-256=<hex-digest> attribute at the -- end of the file name. This is just a temporary measure for -- backporting, in 4.2 we'll add another parameter to the method. */ -- Utf8Str strTarball; -- Utf8Str strDigest; -- Utf8Str strTarballAndDigest(a_bstrTarballAndDigest); -- size_t offSha256 = strTarballAndDigest.find("::SHA-256="); -- if (offSha256 == Utf8Str::npos) -- strTarball = strTarballAndDigest; -- else -- { -- strTarball = strTarballAndDigest.substr(0, offSha256); -- strDigest = strTarballAndDigest.substr(offSha256 + sizeof("::SHA-256=") - 1); -- } -- -- ComObjPtr<ExtPackFile> NewExtPackFile; -- HRESULT hrc = NewExtPackFile.createObject(); -- if (SUCCEEDED(hrc)) -- hrc = NewExtPackFile->initWithFile(strTarball.c_str(), strDigest.c_str(), this, m->pVirtualBox); -- if (SUCCEEDED(hrc)) -- NewExtPackFile.queryInterfaceTo(a_ppExtPackFile); -- -- return hrc; --} -- --STDMETHODIMP ExtPackManager::Uninstall(IN_BSTR a_bstrName, BOOL a_fForcedRemoval, IN_BSTR a_bstrDisplayInfo, -- IProgress **a_ppProgress) --{ -- CheckComArgNotNull(a_bstrName); -- if (a_ppProgress) -- *a_ppProgress = NULL; -- Assert(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- PEXTPACKUNINSTALLJOB pJob = NULL; -- try -- { -- pJob = new EXTPACKUNINSTALLJOB; -- pJob->ptrExtPackMgr = this; -- pJob->strName = a_bstrName; -- pJob->fForcedRemoval = a_fForcedRemoval != FALSE; -- pJob->strDisplayInfo = a_bstrDisplayInfo; -- hrc = pJob->ptrProgress.createObject(); -- if (SUCCEEDED(hrc)) -- { -- Bstr bstrDescription = tr("Uninstalling extension pack"); -- hrc = pJob->ptrProgress->init( --#ifndef VBOX_COM_INPROC -- m->pVirtualBox, --#endif -- static_cast<IExtPackManager *>(this), -- bstrDescription.raw(), -- FALSE /*aCancelable*/, -- NULL /*aId*/); -- } -- if (SUCCEEDED(hrc)) -- { -- ComPtr<Progress> ptrProgress = pJob->ptrProgress; -- int vrc = RTThreadCreate(NULL /*phThread*/, ExtPackManager::doUninstallThreadProc, pJob, 0, -- RTTHREADTYPE_DEFAULT, 0 /*fFlags*/, "ExtPackUninst"); -- if (RT_SUCCESS(vrc)) -- { -- pJob = NULL; /* the thread deletes it */ -- ptrProgress.queryInterfaceTo(a_ppProgress); -- } -- else -- hrc = setError(VBOX_E_IPRT_ERROR, tr("RTThreadCreate failed with %Rrc"), vrc); -- } -- } -- catch (std::bad_alloc) -- { -- hrc = E_OUTOFMEMORY; -- } -- if (pJob) -- delete pJob; -- } -- -- return hrc; --} -- --STDMETHODIMP ExtPackManager::Cleanup(void) --{ -- Assert(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- /* -- * Run the set-uid-to-root binary that performs the cleanup. -- * -- * Take the write lock to prevent conflicts with other calls to this -- * VBoxSVC instance. -- */ -- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- hrc = runSetUidToRootHelper(NULL, -- "cleanup", -- "--base-dir", m->strBaseDir.c_str(), -- (const char *)NULL); -- } -- -- return hrc; --} -- --STDMETHODIMP ExtPackManager::QueryAllPlugInsForFrontend(IN_BSTR a_bstrFrontend, ComSafeArrayOut(BSTR, a_pabstrPlugInModules)) --{ -- CheckComArgNotNull(a_bstrFrontend); -- Utf8Str strName(a_bstrFrontend); -- CheckComArgOutSafeArrayPointerValid(a_pabstrPlugInModules); -- Assert(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- com::SafeArray<BSTR> saPaths((size_t)0); -- /** @todo implement plug-ins */ -- saPaths.detachTo(ComSafeArrayOutArg(a_pabstrPlugInModules)); -- } -- return hrc; --} -- --STDMETHODIMP ExtPackManager::IsExtPackUsable(IN_BSTR a_bstrExtPack, BOOL *aUsable) --{ -- CheckComArgNotNull(a_bstrExtPack); -- Utf8Str strExtPack(a_bstrExtPack); -- *aUsable = isExtPackUsable(strExtPack.c_str()); -- return S_OK; --} -- --/** -- * Finds the success indicator string in the stderr output ofr hte helper app. -- * -- * @returns Pointer to the indicator. -- * @param psz The stderr output string. Can be NULL. -- * @param cch The size of the string. -- */ --static char *findSuccessIndicator(char *psz, size_t cch) --{ -- static const char s_szSuccessInd[] = "rcExit=RTEXITCODE_SUCCESS"; -- Assert(!cch || strlen(psz) == cch); -- if (cch < sizeof(s_szSuccessInd) - 1) -- return NULL; -- char *pszInd = &psz[cch - sizeof(s_szSuccessInd) + 1]; -- if (strcmp(s_szSuccessInd, pszInd)) -- return NULL; -- return pszInd; --} -- --/** -- * Runs the helper application that does the privileged operations. -- * -- * @returns S_OK or a failure status with error information set. -- * @param a_pstrDisplayInfo Platform specific display info hacks. -- * @param a_pszCommand The command to execute. -- * @param ... The argument strings that goes along with the -- * command. Maximum is about 16. Terminated by a -- * NULL. -- */ --HRESULT ExtPackManager::runSetUidToRootHelper(Utf8Str const *a_pstrDisplayInfo, const char *a_pszCommand, ...) --{ -- /* -- * Calculate the path to the helper application. -- */ -- char szExecName[RTPATH_MAX]; -- int vrc = RTPathAppPrivateArch(szExecName, sizeof(szExecName)); -- AssertLogRelRCReturn(vrc, E_UNEXPECTED); -- -- vrc = RTPathAppend(szExecName, sizeof(szExecName), VBOX_EXTPACK_HELPER_NAME); -- AssertLogRelRCReturn(vrc, E_UNEXPECTED); -- -- /* -- * Convert the variable argument list to a RTProcCreate argument vector. -- */ -- const char *apszArgs[20]; -- unsigned cArgs = 0; -- -- LogRel(("ExtPack: Executing '%s'", szExecName)); -- apszArgs[cArgs++] = &szExecName[0]; -- -- if ( a_pstrDisplayInfo -- && a_pstrDisplayInfo->isNotEmpty()) -- { -- LogRel((" '--display-info-hack' '%s'", a_pstrDisplayInfo->c_str())); -- apszArgs[cArgs++] = "--display-info-hack"; -- apszArgs[cArgs++] = a_pstrDisplayInfo->c_str(); -- } -- -- LogRel(("'%s'", a_pszCommand)); -- apszArgs[cArgs++] = a_pszCommand; -- -- va_list va; -- va_start(va, a_pszCommand); -- const char *pszLastArg; -- for (;;) -- { -- AssertReturn(cArgs < RT_ELEMENTS(apszArgs) - 1, E_UNEXPECTED); -- pszLastArg = va_arg(va, const char *); -- if (!pszLastArg) -- break; -- LogRel((" '%s'", pszLastArg)); -- apszArgs[cArgs++] = pszLastArg; -- }; -- va_end(va); -- -- LogRel(("\n")); -- apszArgs[cArgs] = NULL; -- -- /* -- * Create a PIPE which we attach to stderr so that we can read the error -- * message on failure and report it back to the caller. -- */ -- RTPIPE hPipeR; -- RTHANDLE hStdErrPipe; -- hStdErrPipe.enmType = RTHANDLETYPE_PIPE; -- vrc = RTPipeCreate(&hPipeR, &hStdErrPipe.u.hPipe, RTPIPE_C_INHERIT_WRITE); -- AssertLogRelRCReturn(vrc, E_UNEXPECTED); -- -- /* -- * Spawn the process. -- */ -- HRESULT hrc; -- RTPROCESS hProcess; -- vrc = RTProcCreateEx(szExecName, -- apszArgs, -- RTENV_DEFAULT, -- 0 /*fFlags*/, -- NULL /*phStdIn*/, -- NULL /*phStdOut*/, -- &hStdErrPipe, -- NULL /*pszAsUser*/, -- NULL /*pszPassword*/, -- &hProcess); -- if (RT_SUCCESS(vrc)) -- { -- vrc = RTPipeClose(hStdErrPipe.u.hPipe); -- hStdErrPipe.u.hPipe = NIL_RTPIPE; -- -- /* -- * Read the pipe output until the process completes. -- */ -- RTPROCSTATUS ProcStatus = { -42, RTPROCEXITREASON_ABEND }; -- size_t cbStdErrBuf = 0; -- size_t offStdErrBuf = 0; -- char *pszStdErrBuf = NULL; -- do -- { -- /* -- * Service the pipe. Block waiting for output or the pipe breaking -- * when the process terminates. -- */ -- if (hPipeR != NIL_RTPIPE) -- { -- char achBuf[1024]; -- size_t cbRead; -- vrc = RTPipeReadBlocking(hPipeR, achBuf, sizeof(achBuf), &cbRead); -- if (RT_SUCCESS(vrc)) -- { -- /* grow the buffer? */ -- size_t cbBufReq = offStdErrBuf + cbRead + 1; -- if ( cbBufReq > cbStdErrBuf -- && cbBufReq < _256K) -- { -- size_t cbNew = RT_ALIGN_Z(cbBufReq, 16); // 1024 -- void *pvNew = RTMemRealloc(pszStdErrBuf, cbNew); -- if (pvNew) -- { -- pszStdErrBuf = (char *)pvNew; -- cbStdErrBuf = cbNew; -- } -- } -- -- /* append if we've got room. */ -- if (cbBufReq <= cbStdErrBuf) -- { -- memcpy(&pszStdErrBuf[offStdErrBuf], achBuf, cbRead); -- offStdErrBuf = offStdErrBuf + cbRead; -- pszStdErrBuf[offStdErrBuf] = '\0'; -- } -- } -- else -- { -- AssertLogRelMsg(vrc == VERR_BROKEN_PIPE, ("%Rrc\n", vrc)); -- RTPipeClose(hPipeR); -- hPipeR = NIL_RTPIPE; -- } -- } -- -- /* -- * Service the process. Block if we have no pipe. -- */ -- if (hProcess != NIL_RTPROCESS) -- { -- vrc = RTProcWait(hProcess, -- hPipeR == NIL_RTPIPE ? RTPROCWAIT_FLAGS_BLOCK : RTPROCWAIT_FLAGS_NOBLOCK, -- &ProcStatus); -- if (RT_SUCCESS(vrc)) -- hProcess = NIL_RTPROCESS; -- else -- AssertLogRelMsgStmt(vrc == VERR_PROCESS_RUNNING, ("%Rrc\n", vrc), hProcess = NIL_RTPROCESS); -- } -- } while ( hPipeR != NIL_RTPIPE -- || hProcess != NIL_RTPROCESS); -- -- LogRel(("ExtPack: enmReason=%d iStatus=%d stderr='%s'\n", -- ProcStatus.enmReason, ProcStatus.iStatus, offStdErrBuf ? pszStdErrBuf : "")); -- -- /* -- * Look for rcExit=RTEXITCODE_SUCCESS at the end of the error output, -- * cut it as it is only there to attest the success. -- */ -- if (offStdErrBuf > 0) -- { -- RTStrStripR(pszStdErrBuf); -- offStdErrBuf = strlen(pszStdErrBuf); -- } -- -- char *pszSuccessInd = findSuccessIndicator(pszStdErrBuf, offStdErrBuf); -- if (pszSuccessInd) -- { -- *pszSuccessInd = '\0'; -- offStdErrBuf = pszSuccessInd - pszStdErrBuf; -- } -- else if ( ProcStatus.enmReason == RTPROCEXITREASON_NORMAL -- && ProcStatus.iStatus == 0) -- ProcStatus.iStatus = offStdErrBuf ? 667 : 666; -- -- /* -- * Compose the status code and, on failure, error message. -- */ -- if ( ProcStatus.enmReason == RTPROCEXITREASON_NORMAL -- && ProcStatus.iStatus == 0) -- hrc = S_OK; -- else if (ProcStatus.enmReason == RTPROCEXITREASON_NORMAL) -- { -- AssertMsg(ProcStatus.iStatus != 0, ("%s\n", pszStdErrBuf)); -- hrc = setError(E_FAIL, tr("The installer failed with exit code %d: %s"), -- ProcStatus.iStatus, offStdErrBuf ? pszStdErrBuf : ""); -- } -- else if (ProcStatus.enmReason == RTPROCEXITREASON_SIGNAL) -- hrc = setError(E_UNEXPECTED, tr("The installer was killed by signal #d (stderr: %s)"), -- ProcStatus.iStatus, offStdErrBuf ? pszStdErrBuf : ""); -- else if (ProcStatus.enmReason == RTPROCEXITREASON_ABEND) -- hrc = setError(E_UNEXPECTED, tr("The installer aborted abnormally (stderr: %s)"), -- offStdErrBuf ? pszStdErrBuf : ""); -- else -- hrc = setError(E_UNEXPECTED, tr("internal error: enmReason=%d iStatus=%d stderr='%s'"), -- ProcStatus.enmReason, ProcStatus.iStatus, offStdErrBuf ? pszStdErrBuf : ""); -- -- RTMemFree(pszStdErrBuf); -- } -- else -- hrc = setError(VBOX_E_IPRT_ERROR, tr("Failed to launch the helper application '%s' (%Rrc)"), szExecName, vrc); -- -- RTPipeClose(hPipeR); -- RTPipeClose(hStdErrPipe.u.hPipe); -- -- return hrc; --} -- --/** -- * Finds an installed extension pack. -- * -- * @returns Pointer to the extension pack if found, NULL if not. (No reference -- * counting problem here since the caller must be holding the lock.) -- * @param a_pszName The name of the extension pack. -- */ --ExtPack *ExtPackManager::findExtPack(const char *a_pszName) --{ -- size_t cchName = strlen(a_pszName); -- -- for (ExtPackList::iterator it = m->llInstalledExtPacks.begin(); -- it != m->llInstalledExtPacks.end(); -- it++) -- { -- ExtPack::Data *pExtPackData = (*it)->m; -- if ( pExtPackData -- && pExtPackData->Desc.strName.length() == cchName -- && pExtPackData->Desc.strName.equalsIgnoreCase(a_pszName)) -- return (*it); -- } -- return NULL; --} -- --/** -- * Removes an installed extension pack from the internal list. -- * -- * The package is expected to exist! -- * -- * @param a_pszName The name of the extension pack. -- */ --void ExtPackManager::removeExtPack(const char *a_pszName) --{ -- size_t cchName = strlen(a_pszName); -- -- for (ExtPackList::iterator it = m->llInstalledExtPacks.begin(); -- it != m->llInstalledExtPacks.end(); -- it++) -- { -- ExtPack::Data *pExtPackData = (*it)->m; -- if ( pExtPackData -- && pExtPackData->Desc.strName.length() == cchName -- && pExtPackData->Desc.strName.equalsIgnoreCase(a_pszName)) -- { -- m->llInstalledExtPacks.erase(it); -- return; -- } -- } -- AssertMsgFailed(("%s\n", a_pszName)); --} -- --/** -- * Refreshes the specified extension pack. -- * -- * This may remove the extension pack from the list, so any non-smart pointers -- * to the extension pack object may become invalid. -- * -- * @returns S_OK and *a_ppExtPack on success, COM status code and error -- * message on failure. Note that *a_ppExtPack can be NULL. -- * -- * @param a_pszName The extension to update.. -- * @param a_fUnusableIsError If @c true, report an unusable extension pack -- * as an error. -- * @param a_ppExtPack Where to store the pointer to the extension -- * pack of it is still around after the refresh. -- * This is optional. -- * -- * @remarks Caller holds the extension manager lock. -- * @remarks Only called in VBoxSVC. -- */ --HRESULT ExtPackManager::refreshExtPack(const char *a_pszName, bool a_fUnusableIsError, ExtPack **a_ppExtPack) --{ -- Assert(m->pVirtualBox != NULL); /* Only called from VBoxSVC. */ -- -- HRESULT hrc; -- ExtPack *pExtPack = findExtPack(a_pszName); -- if (pExtPack) -- { -- /* -- * Refresh existing object. -- */ -- bool fCanDelete; -- hrc = pExtPack->refresh(&fCanDelete); -- if (SUCCEEDED(hrc)) -- { -- if (fCanDelete) -- { -- removeExtPack(a_pszName); -- pExtPack = NULL; -- } -- } -- } -- else -- { -- /* -- * Do this check here, otherwise VBoxExtPackCalcDir() will fail with a strange -- * error. -- */ -- bool fValid = VBoxExtPackIsValidName(a_pszName); -- if (!fValid) -- return setError(E_FAIL, "Invalid extension pack name specified"); -- -- /* -- * Does the dir exist? Make some special effort to deal with case -- * sensitivie file systems (a_pszName is case insensitive and mangled). -- */ -- char szDir[RTPATH_MAX]; -- int vrc = VBoxExtPackCalcDir(szDir, sizeof(szDir), m->strBaseDir.c_str(), a_pszName); -- AssertLogRelRCReturn(vrc, E_FAIL); -- -- RTDIRENTRYEX Entry; -- RTFSOBJINFO ObjInfo; -- vrc = RTPathQueryInfoEx(szDir, &ObjInfo, RTFSOBJATTRADD_NOTHING, RTPATH_F_ON_LINK); -- bool fExists = RT_SUCCESS(vrc) && RTFS_IS_DIRECTORY(ObjInfo.Attr.fMode); -- if (!fExists) -- { -- PRTDIR pDir; -- vrc = RTDirOpen(&pDir, m->strBaseDir.c_str()); -- if (RT_SUCCESS(vrc)) -- { -- const char *pszMangledName = RTPathFilename(szDir); -- for (;;) -- { -- vrc = RTDirReadEx(pDir, &Entry, NULL /*pcbDirEntry*/, RTFSOBJATTRADD_NOTHING, RTPATH_F_ON_LINK); -- if (RT_FAILURE(vrc)) -- { -- AssertLogRelMsg(vrc == VERR_NO_MORE_FILES, ("%Rrc\n", vrc)); -- break; -- } -- if ( RTFS_IS_DIRECTORY(Entry.Info.Attr.fMode) -- && !RTStrICmp(Entry.szName, pszMangledName)) -- { -- /* -- * The installed extension pack has a uses different case. -- * Update the name and directory variables. -- */ -- vrc = RTPathJoin(szDir, sizeof(szDir), m->strBaseDir.c_str(), Entry.szName); /* not really necessary */ -- AssertLogRelRCReturnStmt(vrc, RTDirClose(pDir), E_UNEXPECTED); -- a_pszName = Entry.szName; -- fExists = true; -- break; -- } -- } -- RTDirClose(pDir); -- } -- } -- if (fExists) -- { -- /* -- * We've got something, create a new extension pack object for it. -- */ -- ComObjPtr<ExtPack> ptrNewExtPack; -- hrc = ptrNewExtPack.createObject(); -- if (SUCCEEDED(hrc)) -- hrc = ptrNewExtPack->initWithDir(m->enmContext, a_pszName, szDir); -- if (SUCCEEDED(hrc)) -- { -- m->llInstalledExtPacks.push_back(ptrNewExtPack); -- if (ptrNewExtPack->m->fUsable) -- LogRel(("ExtPackManager: Found extension pack '%s'.\n", a_pszName)); -- else -- LogRel(("ExtPackManager: Found bad extension pack '%s': %s\n", -- a_pszName, ptrNewExtPack->m->strWhyUnusable.c_str() )); -- pExtPack = ptrNewExtPack; -- } -- } -- else -- hrc = S_OK; -- } -- -- /* -- * Report error if not usable, if that is desired. -- */ -- if ( SUCCEEDED(hrc) -- && pExtPack -- && a_fUnusableIsError -- && !pExtPack->m->fUsable) -- hrc = setError(E_FAIL, "%s", pExtPack->m->strWhyUnusable.c_str()); -- -- if (a_ppExtPack) -- *a_ppExtPack = pExtPack; -- return hrc; --} -- --/** -- * Thread wrapper around doInstall. -- * -- * @returns VINF_SUCCESS (ignored) -- * @param hThread The thread handle (ignored). -- * @param pvJob The job structure. -- */ --/*static*/ DECLCALLBACK(int) ExtPackManager::doInstallThreadProc(RTTHREAD hThread, void *pvJob) --{ -- PEXTPACKINSTALLJOB pJob = (PEXTPACKINSTALLJOB)pvJob; -- HRESULT hrc = pJob->ptrExtPackMgr->doInstall(pJob->ptrExtPackFile, pJob->fReplace, &pJob->strDisplayInfo); -- pJob->ptrProgress->notifyComplete(hrc); -- delete pJob; -- -- NOREF(hThread); -- return VINF_SUCCESS; --} -- --/** -- * Worker for IExtPackFile::Install. -- * -- * Called on a worker thread via doInstallThreadProc. -- * -- * @returns COM status code. -- * @param a_pExtPackFile The extension pack file, caller checks that -- * it's usable. -- * @param a_fReplace Whether to replace any existing extpack or just -- * fail. -- * @param a_pstrDisplayInfo Host specific display information hacks. -- * @param a_ppProgress Where to return a progress object some day. Can -- * be NULL. -- */ --HRESULT ExtPackManager::doInstall(ExtPackFile *a_pExtPackFile, bool a_fReplace, Utf8Str const *a_pstrDisplayInfo) --{ -- AssertReturn(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON, E_UNEXPECTED); -- RTCString const * const pStrName = &a_pExtPackFile->m->Desc.strName; -- RTCString const * const pStrTarball = &a_pExtPackFile->m->strExtPackFile; -- RTCString const * const pStrTarballDigest = &a_pExtPackFile->m->strDigest; -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- -- /* -- * Refresh the data we have on the extension pack as it -- * may be made stale by direct meddling or some other user. -- */ -- ExtPack *pExtPack; -- hrc = refreshExtPack(pStrName->c_str(), false /*a_fUnusableIsError*/, &pExtPack); -- if (SUCCEEDED(hrc)) -- { -- if (pExtPack && a_fReplace) -- hrc = pExtPack->callUninstallHookAndClose(m->pVirtualBox, false /*a_ForcedRemoval*/); -- else if (pExtPack) -- hrc = setError(E_FAIL, -- tr("Extension pack '%s' is already installed." -- " In case of a reinstallation, please uninstall it first"), -- pStrName->c_str()); -- } -- if (SUCCEEDED(hrc)) -- { -- /* -- * Run the privileged helper binary that performs the actual -- * installation. Then create an object for the packet (we do this -- * even on failure, to be on the safe side). -- */ -- hrc = runSetUidToRootHelper(a_pstrDisplayInfo, -- "install", -- "--base-dir", m->strBaseDir.c_str(), -- "--cert-dir", m->strCertificatDirPath.c_str(), -- "--name", pStrName->c_str(), -- "--tarball", pStrTarball->c_str(), -- "--sha-256", pStrTarballDigest->c_str(), -- pExtPack ? "--replace" : (const char *)NULL, -- (const char *)NULL); -- if (SUCCEEDED(hrc)) -- { -- hrc = refreshExtPack(pStrName->c_str(), true /*a_fUnusableIsError*/, &pExtPack); -- if (SUCCEEDED(hrc) && pExtPack) -- { -- RTERRINFOSTATIC ErrInfo; -- RTErrInfoInitStatic(&ErrInfo); -- pExtPack->callInstalledHook(m->pVirtualBox, &autoLock, &ErrInfo.Core); -- if (RT_SUCCESS(ErrInfo.Core.rc)) -- LogRel(("ExtPackManager: Successfully installed extension pack '%s'.\n", pStrName->c_str())); -- else -- { -- LogRel(("ExtPackManager: Installated hook for '%s' failed: %Rrc - %s\n", -- pStrName->c_str(), ErrInfo.Core.rc, ErrInfo.Core.pszMsg)); -- -- /* -- * Uninstall the extpack if the error indicates that. -- */ -- if (ErrInfo.Core.rc == VERR_EXTPACK_UNSUPPORTED_HOST_UNINSTALL) -- runSetUidToRootHelper(a_pstrDisplayInfo, -- "uninstall", -- "--base-dir", m->strBaseDir.c_str(), -- "--name", pStrName->c_str(), -- "--forced", -- (const char *)NULL); -- hrc = setError(E_FAIL, tr("The installation hook failed: %Rrc - %s"), -- ErrInfo.Core.rc, ErrInfo.Core.pszMsg); -- } -- } -- else if (SUCCEEDED(hrc)) -- hrc = setError(E_FAIL, tr("Installing extension pack '%s' failed under mysterious circumstances"), -- pStrName->c_str()); -- } -- else -- { -- ErrorInfoKeeper Eik; -- refreshExtPack(pStrName->c_str(), false /*a_fUnusableIsError*/, NULL); -- } -- } -- -- /* -- * Do VirtualBoxReady callbacks now for any freshly installed -- * extension pack (old ones will not be called). -- */ -- if (m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON) -- { -- autoLock.release(); -- callAllVirtualBoxReadyHooks(); -- } -- } -- -- return hrc; --} -- --/** -- * Thread wrapper around doUninstall. -- * -- * @returns VINF_SUCCESS (ignored) -- * @param hThread The thread handle (ignored). -- * @param pvJob The job structure. -- */ --/*static*/ DECLCALLBACK(int) ExtPackManager::doUninstallThreadProc(RTTHREAD hThread, void *pvJob) --{ -- PEXTPACKUNINSTALLJOB pJob = (PEXTPACKUNINSTALLJOB)pvJob; -- HRESULT hrc = pJob->ptrExtPackMgr->doUninstall(&pJob->strName, pJob->fForcedRemoval, &pJob->strDisplayInfo); -- pJob->ptrProgress->notifyComplete(hrc); -- delete pJob; -- -- NOREF(hThread); -- return VINF_SUCCESS; --} -- --/** -- * Worker for IExtPackManager::Uninstall. -- * -- * Called on a worker thread via doUninstallThreadProc. -- * -- * @returns COM status code. -- * @param a_pstrName The name of the extension pack to uninstall. -- * @param a_fForcedRemoval Whether to be skip and ignore certain bits of -- * the extpack feedback. To deal with misbehaving -- * extension pack hooks. -- * @param a_pstrDisplayInfo Host specific display information hacks. -- */ --HRESULT ExtPackManager::doUninstall(Utf8Str const *a_pstrName, bool a_fForcedRemoval, Utf8Str const *a_pstrDisplayInfo) --{ -- Assert(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- -- /* -- * Refresh the data we have on the extension pack as it may be made -- * stale by direct meddling or some other user. -- */ -- ExtPack *pExtPack; -- hrc = refreshExtPack(a_pstrName->c_str(), false /*a_fUnusableIsError*/, &pExtPack); -- if (SUCCEEDED(hrc)) -- { -- if (!pExtPack) -- { -- LogRel(("ExtPackManager: Extension pack '%s' is not installed, so nothing to uninstall.\n", a_pstrName->c_str())); -- hrc = S_OK; /* nothing to uninstall */ -- } -- else -- { -- /* -- * Call the uninstall hook and unload the main dll. -- */ -- hrc = pExtPack->callUninstallHookAndClose(m->pVirtualBox, a_fForcedRemoval); -- if (SUCCEEDED(hrc)) -- { -- /* -- * Run the set-uid-to-root binary that performs the -- * uninstallation. Then refresh the object. -- * -- * This refresh is theorically subject to races, but it's of -- * the don't-do-that variety. -- */ -- const char *pszForcedOpt = a_fForcedRemoval ? "--forced" : NULL; -- hrc = runSetUidToRootHelper(a_pstrDisplayInfo, -- "uninstall", -- "--base-dir", m->strBaseDir.c_str(), -- "--name", a_pstrName->c_str(), -- pszForcedOpt, /* Last as it may be NULL. */ -- (const char *)NULL); -- if (SUCCEEDED(hrc)) -- { -- hrc = refreshExtPack(a_pstrName->c_str(), false /*a_fUnusableIsError*/, &pExtPack); -- if (SUCCEEDED(hrc)) -- { -- if (!pExtPack) -- LogRel(("ExtPackManager: Successfully uninstalled extension pack '%s'.\n", a_pstrName->c_str())); -- else -- hrc = setError(E_FAIL, -- tr("Uninstall extension pack '%s' failed under mysterious circumstances"), -- a_pstrName->c_str()); -- } -- } -- else -- { -- ErrorInfoKeeper Eik; -- refreshExtPack(a_pstrName->c_str(), false /*a_fUnusableIsError*/, NULL); -- } -- } -- } -- } -- -- /* -- * Do VirtualBoxReady callbacks now for any freshly installed -- * extension pack (old ones will not be called). -- */ -- if (m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON) -- { -- autoLock.release(); -- callAllVirtualBoxReadyHooks(); -- } -- } -- -- return hrc; --} -- -- --/** -- * Calls the pfnVirtualBoxReady hook for all working extension packs. -- * -- * @remarks The caller must not hold any locks. -- */ --void ExtPackManager::callAllVirtualBoxReadyHooks(void) --{ -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (FAILED(hrc)) -- return; -- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- ComPtr<ExtPackManager> ptrSelfRef = this; -- -- for (ExtPackList::iterator it = m->llInstalledExtPacks.begin(); -- it != m->llInstalledExtPacks.end(); -- /* advancing below */) -- { -- if ((*it)->callVirtualBoxReadyHook(m->pVirtualBox, &autoLock)) -- it = m->llInstalledExtPacks.begin(); -- else -- it++; -- } --} -- --/** -- * Calls the pfnConsoleReady hook for all working extension packs. -- * -- * @param a_pConsole The console interface. -- * @remarks The caller must not hold any locks. -- */ --void ExtPackManager::callAllConsoleReadyHooks(IConsole *a_pConsole) --{ -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (FAILED(hrc)) -- return; -- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- ComPtr<ExtPackManager> ptrSelfRef = this; -- -- for (ExtPackList::iterator it = m->llInstalledExtPacks.begin(); -- it != m->llInstalledExtPacks.end(); -- /* advancing below */) -- { -- if ((*it)->callConsoleReadyHook(a_pConsole, &autoLock)) -- it = m->llInstalledExtPacks.begin(); -- else -- it++; -- } --} -- --/** -- * Calls the pfnVMCreated hook for all working extension packs. -- * -- * @param a_pMachine The machine interface of the new VM. -- */ --void ExtPackManager::callAllVmCreatedHooks(IMachine *a_pMachine) --{ -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (FAILED(hrc)) -- return; -- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- ComPtr<ExtPackManager> ptrSelfRef = this; /* paranoia */ -- ExtPackList llExtPacks = m->llInstalledExtPacks; -- -- for (ExtPackList::iterator it = llExtPacks.begin(); it != llExtPacks.end(); it++) -- (*it)->callVmCreatedHook(m->pVirtualBox, a_pMachine, &autoLock); --} -- --/** -- * Calls the pfnVMConfigureVMM hook for all working extension packs. -- * -- * @returns VBox status code. Stops on the first failure, expecting the caller -- * to signal this to the caller of the CFGM constructor. -- * @param a_pConsole The console interface for the VM. -- * @param a_pVM The VM handle. -- */ --int ExtPackManager::callAllVmConfigureVmmHooks(IConsole *a_pConsole, PVM a_pVM) --{ -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (FAILED(hrc)) -- return Global::vboxStatusCodeFromCOM(hrc); -- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- ComPtr<ExtPackManager> ptrSelfRef = this; /* paranoia */ -- ExtPackList llExtPacks = m->llInstalledExtPacks; -- -- for (ExtPackList::iterator it = llExtPacks.begin(); it != llExtPacks.end(); it++) -- { -- int vrc; -- (*it)->callVmConfigureVmmHook(a_pConsole, a_pVM, &autoLock, &vrc); -- if (RT_FAILURE(vrc)) -- return vrc; -- } -- -- return VINF_SUCCESS; --} -- --/** -- * Calls the pfnVMPowerOn hook for all working extension packs. -- * -- * @returns VBox status code. Stops on the first failure, expecting the caller -- * to not power on the VM. -- * @param a_pConsole The console interface for the VM. -- * @param a_pVM The VM handle. -- */ --int ExtPackManager::callAllVmPowerOnHooks(IConsole *a_pConsole, PVM a_pVM) --{ -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (FAILED(hrc)) -- return Global::vboxStatusCodeFromCOM(hrc); -- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- ComPtr<ExtPackManager> ptrSelfRef = this; /* paranoia */ -- ExtPackList llExtPacks = m->llInstalledExtPacks; -- -- for (ExtPackList::iterator it = llExtPacks.begin(); it != llExtPacks.end(); it++) -- { -- int vrc; -- (*it)->callVmPowerOnHook(a_pConsole, a_pVM, &autoLock, &vrc); -- if (RT_FAILURE(vrc)) -- return vrc; -- } -- -- return VINF_SUCCESS; --} -- --/** -- * Calls the pfnVMPowerOff hook for all working extension packs. -- * -- * @param a_pConsole The console interface for the VM. -- * @param a_pVM The VM handle. Can be NULL. -- */ --void ExtPackManager::callAllVmPowerOffHooks(IConsole *a_pConsole, PVM a_pVM) --{ -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (FAILED(hrc)) -- return; -- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- ComPtr<ExtPackManager> ptrSelfRef = this; /* paranoia */ -- ExtPackList llExtPacks = m->llInstalledExtPacks; -- -- for (ExtPackList::iterator it = llExtPacks.begin(); it != llExtPacks.end(); it++) -- (*it)->callVmPowerOffHook(a_pConsole, a_pVM, &autoLock); --} -- -- --/** -- * Checks that the specified extension pack contains a VRDE module and that it -- * is shipshape. -- * -- * @returns S_OK if ok, appropriate failure status code with details. -- * @param a_pstrExtPack The name of the extension pack. -- */ --HRESULT ExtPackManager::checkVrdeExtPack(Utf8Str const *a_pstrExtPack) --{ -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- -- ExtPack *pExtPack = findExtPack(a_pstrExtPack->c_str()); -- if (pExtPack) -- hrc = pExtPack->checkVrde(); -- else -- hrc = setError(VBOX_E_OBJECT_NOT_FOUND, tr("No extension pack by the name '%s' was found"), a_pstrExtPack->c_str()); -- } -- -- return hrc; --} -- --/** -- * Gets the full path to the VRDE library of the specified extension pack. -- * -- * This will do extacly the same as checkVrdeExtPack and then resolve the -- * library path. -- * -- * @returns S_OK if a path is returned, COM error status and message return if -- * not. -- * @param a_pstrExtPack The extension pack. -- * @param a_pstrVrdeLibrary Where to return the path. -- */ --int ExtPackManager::getVrdeLibraryPathForExtPack(Utf8Str const *a_pstrExtPack, Utf8Str *a_pstrVrdeLibrary) --{ -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- -- ExtPack *pExtPack = findExtPack(a_pstrExtPack->c_str()); -- if (pExtPack) -- hrc = pExtPack->getVrdpLibraryName(a_pstrVrdeLibrary); -- else -- hrc = setError(VBOX_E_OBJECT_NOT_FOUND, tr("No extension pack by the name '%s' was found"), a_pstrExtPack->c_str()); -- } -- -- return hrc; --} -- --/** -- * Gets the name of the default VRDE extension pack. -- * -- * @returns S_OK or some COM error status on red tape failure. -- * @param a_pstrExtPack Where to return the extension pack name. Returns -- * empty if no extension pack wishes to be the default -- * VRDP provider. -- */ --HRESULT ExtPackManager::getDefaultVrdeExtPack(Utf8Str *a_pstrExtPack) --{ -- a_pstrExtPack->setNull(); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- -- for (ExtPackList::iterator it = m->llInstalledExtPacks.begin(); -- it != m->llInstalledExtPacks.end(); -- it++) -- { -- if ((*it)->wantsToBeDefaultVrde()) -- { -- *a_pstrExtPack = (*it)->m->Desc.strName; -- break; -- } -- } -- } -- return hrc; --} -- --/** -- * Checks if an extension pack is (present and) usable. -- * -- * @returns @c true if it is, otherwise @c false. -- * @param a_pszExtPack The name of the extension pack. -- */ --bool ExtPackManager::isExtPackUsable(const char *a_pszExtPack) --{ -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (FAILED(hrc)) -- return false; -- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- -- ExtPack *pExtPack = findExtPack(a_pszExtPack); -- return pExtPack != NULL -- && pExtPack->m->fUsable; --} -- --/** -- * Dumps all extension packs to the release log. -- */ --void ExtPackManager::dumpAllToReleaseLog(void) --{ -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (FAILED(hrc)) -- return; -- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- -- LogRel(("Installed Extension Packs:\n")); -- for (ExtPackList::iterator it = m->llInstalledExtPacks.begin(); -- it != m->llInstalledExtPacks.end(); -- it++) -- { -- ExtPack::Data *pExtPackData = (*it)->m; -- if (pExtPackData) -- { -- if (pExtPackData->fUsable) -- LogRel((" %s (Version: %s r%u%s%s; VRDE Module: %s)\n", -- pExtPackData->Desc.strName.c_str(), -- pExtPackData->Desc.strVersion.c_str(), -- pExtPackData->Desc.uRevision, -- pExtPackData->Desc.strEdition.isEmpty() ? "" : " ", -- pExtPackData->Desc.strEdition.c_str(), -- pExtPackData->Desc.strVrdeModule.c_str() )); -- else -- LogRel((" %s (Version: %s r%u%s%s; VRDE Module: %s unusable because of '%s')\n", -- pExtPackData->Desc.strName.c_str(), -- pExtPackData->Desc.strVersion.c_str(), -- pExtPackData->Desc.uRevision, -- pExtPackData->Desc.strEdition.isEmpty() ? "" : " ", -- pExtPackData->Desc.strEdition.c_str(), -- pExtPackData->Desc.strVrdeModule.c_str(), -- pExtPackData->strWhyUnusable.c_str() )); -- } -- else -- LogRel((" pExtPackData is NULL\n")); -- } -- -- if (!m->llInstalledExtPacks.size()) -- LogRel((" None installed!\n")); --} -- --/* vi: set tabstop=4 shiftwidth=4 expandtab: */ ---- VirtualBox-4.1.18.orig/src/VBox/Main/src-all/ExtPackUtil.cpp 2012-06-20 10:17:34.000000000 -0300 -+++ /dev/null 2012-07-24 14:48:18.638572110 -0300 -@@ -1,1385 +0,0 @@ --/* $Id: ExtPackUtil.cpp $ */ --/** @file -- * VirtualBox Main - Extension Pack Utilities and definitions, VBoxC, VBoxSVC, ++. -- */ -- --/* -- * Copyright (C) 2010-2012 Oracle Corporation -- * -- * This file is part of VirtualBox Open Source Edition (OSE), as -- * available from http://www.virtualbox.org. This file is free software; -- * you can redistribute it and/or modify it under the terms of the GNU -- * General Public License (GPL) as published by the Free Software -- * Foundation, in version 2 as it comes in the "COPYING" file of the -- * VirtualBox OSE distribution. VirtualBox OSE is distributed in the -- * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. -- */ -- -- --/******************************************************************************* --* Header Files * --*******************************************************************************/ --#include "../include/ExtPackUtil.h" -- --#include <iprt/ctype.h> --#include <iprt/dir.h> --#include <iprt/file.h> --#include <iprt/manifest.h> --#include <iprt/param.h> --#include <iprt/path.h> --#include <iprt/sha.h> --#include <iprt/string.h> --#include <iprt/vfs.h> --#include <iprt/tar.h> --#include <iprt/zip.h> --#include <iprt/cpp/xml.h> -- --#include <VBox/log.h> -- -- --/** -- * Worker for VBoxExtPackLoadDesc that loads the plug-in descriptors. -- * -- * @returns Same as VBoxExtPackLoadDesc. -- * @param pVBoxExtPackElm -- * @param pcPlugIns Where to return the number of plug-ins in the -- * array. -- * @param paPlugIns Where to return the plug-in descriptor array. -- * (RTMemFree it even on failure) -- */ --static RTCString * --vboxExtPackLoadPlugInDescs(const xml::ElementNode *pVBoxExtPackElm, -- uint32_t *pcPlugIns, PVBOXEXTPACKPLUGINDESC *paPlugIns) --{ -- *pcPlugIns = 0; -- *paPlugIns = NULL; -- -- /** @todo plug-ins */ -- NOREF(pVBoxExtPackElm); -- -- return NULL; --} -- --/** -- * Clears the extension pack descriptor. -- * -- * @param a_pExtPackDesc The descriptor to clear. -- */ --static void vboxExtPackClearDesc(PVBOXEXTPACKDESC a_pExtPackDesc) --{ -- a_pExtPackDesc->strName.setNull(); -- a_pExtPackDesc->strDescription.setNull(); -- a_pExtPackDesc->strVersion.setNull(); -- a_pExtPackDesc->strEdition.setNull(); -- a_pExtPackDesc->uRevision = 0; -- a_pExtPackDesc->strMainModule.setNull(); -- a_pExtPackDesc->strVrdeModule.setNull(); -- a_pExtPackDesc->cPlugIns = 0; -- a_pExtPackDesc->paPlugIns = NULL; -- a_pExtPackDesc->fShowLicense = false; --} -- --/** -- * Initializes an extension pack descriptor so that it's safe to call free on -- * it whatever happens later on. -- * -- * @param a_pExtPackDesc The descirptor to initialize. -- */ --void VBoxExtPackInitDesc(PVBOXEXTPACKDESC a_pExtPackDesc) --{ -- vboxExtPackClearDesc(a_pExtPackDesc); --} -- -- --/** -- * Load the extension pack descriptor from an XML document. -- * -- * @returns NULL on success, pointer to an error message on failure (caller -- * deletes it). -- * @param a_pDoc Pointer to the the XML document. -- * @param a_pExtPackDesc Where to store the extension pack descriptor. -- */ --static RTCString *vboxExtPackLoadDescFromDoc(xml::Document *a_pDoc, PVBOXEXTPACKDESC a_pExtPackDesc) --{ -- /* -- * Get the main element and check its version. -- */ -- const xml::ElementNode *pVBoxExtPackElm = a_pDoc->getRootElement(); -- if ( !pVBoxExtPackElm -- || strcmp(pVBoxExtPackElm->getName(), "VirtualBoxExtensionPack") != 0) -- return new RTCString("No VirtualBoxExtensionPack element"); -- -- RTCString strFormatVersion; -- if (!pVBoxExtPackElm->getAttributeValue("version", strFormatVersion)) -- return new RTCString("Missing format version"); -- if (!strFormatVersion.equals("1.0")) -- return &(new RTCString("Unsupported format version: "))->append(strFormatVersion); -- -- /* -- * Read and validate mandatory bits. -- */ -- const xml::ElementNode *pNameElm = pVBoxExtPackElm->findChildElement("Name"); -- if (!pNameElm) -- return new RTCString("The 'Name' element is missing"); -- const char *pszName = pNameElm->getValue(); -- if (!VBoxExtPackIsValidName(pszName)) -- return &(new RTCString("Invalid name: "))->append(pszName); -- -- const xml::ElementNode *pDescElm = pVBoxExtPackElm->findChildElement("Description"); -- if (!pDescElm) -- return new RTCString("The 'Description' element is missing"); -- const char *pszDesc = pDescElm->getValue(); -- if (!pszDesc || *pszDesc == '\0') -- return new RTCString("The 'Description' element is empty"); -- if (strpbrk(pszDesc, "\n\r\t\v\b") != NULL) -- return new RTCString("The 'Description' must not contain control characters"); -- -- const xml::ElementNode *pVersionElm = pVBoxExtPackElm->findChildElement("Version"); -- if (!pVersionElm) -- return new RTCString("The 'Version' element is missing"); -- const char *pszVersion = pVersionElm->getValue(); -- if (!pszVersion || *pszVersion == '\0') -- return new RTCString("The 'Version' element is empty"); -- if (!VBoxExtPackIsValidVersionString(pszVersion)) -- return &(new RTCString("Invalid version string: "))->append(pszVersion); -- -- uint32_t uRevision; -- if (!pVersionElm->getAttributeValue("revision", uRevision)) -- uRevision = 0; -- -- const char *pszEdition; -- if (!pVersionElm->getAttributeValue("edition", pszEdition)) -- pszEdition = ""; -- if (!VBoxExtPackIsValidEditionString(pszEdition)) -- return &(new RTCString("Invalid edition string: "))->append(pszEdition); -- -- const xml::ElementNode *pMainModuleElm = pVBoxExtPackElm->findChildElement("MainModule"); -- if (!pMainModuleElm) -- return new RTCString("The 'MainModule' element is missing"); -- const char *pszMainModule = pMainModuleElm->getValue(); -- if (!pszMainModule || *pszMainModule == '\0') -- return new RTCString("The 'MainModule' element is empty"); -- if (!VBoxExtPackIsValidModuleString(pszMainModule)) -- return &(new RTCString("Invalid main module string: "))->append(pszMainModule); -- -- /* -- * The VRDE module, optional. -- * Accept both none and empty as tokens of no VRDE module. -- */ -- const char *pszVrdeModule = NULL; -- const xml::ElementNode *pVrdeModuleElm = pVBoxExtPackElm->findChildElement("VRDEModule"); -- if (pVrdeModuleElm) -- { -- pszVrdeModule = pVrdeModuleElm->getValue(); -- if (!pszVrdeModule || *pszVrdeModule == '\0') -- pszVrdeModule = NULL; -- else if (!VBoxExtPackIsValidModuleString(pszVrdeModule)) -- return &(new RTCString("Invalid VRDE module string: "))->append(pszVrdeModule); -- } -- -- /* -- * Whether to show the license, optional. (presense is enough here) -- */ -- const xml::ElementNode *pShowLicenseElm = pVBoxExtPackElm->findChildElement("ShowLicense"); -- bool fShowLicense = pShowLicenseElm != NULL; -- -- /* -- * Parse plug-in descriptions (last because of the manual memory management). -- */ -- uint32_t cPlugIns = 0; -- PVBOXEXTPACKPLUGINDESC paPlugIns = NULL; -- RTCString *pstrRet = vboxExtPackLoadPlugInDescs(pVBoxExtPackElm, &cPlugIns, &paPlugIns); -- if (pstrRet) -- { -- RTMemFree(paPlugIns); -- return pstrRet; -- } -- -- /* -- * Everything seems fine, fill in the return values and return successfully. -- */ -- a_pExtPackDesc->strName = pszName; -- a_pExtPackDesc->strDescription = pszDesc; -- a_pExtPackDesc->strVersion = pszVersion; -- a_pExtPackDesc->strEdition = pszEdition; -- a_pExtPackDesc->uRevision = uRevision; -- a_pExtPackDesc->strMainModule = pszMainModule; -- a_pExtPackDesc->strVrdeModule = pszVrdeModule; -- a_pExtPackDesc->cPlugIns = cPlugIns; -- a_pExtPackDesc->paPlugIns = paPlugIns; -- a_pExtPackDesc->fShowLicense = fShowLicense; -- -- return NULL; --} -- --/** -- * Reads the extension pack descriptor. -- * -- * @returns NULL on success, pointer to an error message on failure (caller -- * deletes it). -- * @param a_pszDir The directory containing the description file. -- * @param a_pExtPackDesc Where to store the extension pack descriptor. -- * @param a_pObjInfo Where to store the object info for the file (unix -- * attribs). Optional. -- */ --RTCString *VBoxExtPackLoadDesc(const char *a_pszDir, PVBOXEXTPACKDESC a_pExtPackDesc, PRTFSOBJINFO a_pObjInfo) --{ -- vboxExtPackClearDesc(a_pExtPackDesc); -- -- /* -- * Validate, open and parse the XML file. -- */ -- char szFilePath[RTPATH_MAX]; -- int vrc = RTPathJoin(szFilePath, sizeof(szFilePath), a_pszDir, VBOX_EXTPACK_DESCRIPTION_NAME); -- if (RT_FAILURE(vrc)) -- return new RTCString("RTPathJoin failed with %Rrc", vrc); -- -- RTFSOBJINFO ObjInfo; -- vrc = RTPathQueryInfoEx(szFilePath, &ObjInfo, RTFSOBJATTRADD_UNIX, RTPATH_F_ON_LINK); -- if (RT_FAILURE(vrc)) -- return &(new RTCString())->printf("RTPathQueryInfoEx failed with %Rrc", vrc); -- if (a_pObjInfo) -- *a_pObjInfo = ObjInfo; -- if (!RTFS_IS_FILE(ObjInfo.Attr.fMode)) -- { -- if (RTFS_IS_SYMLINK(ObjInfo.Attr.fMode)) -- return new RTCString("The XML file is symlinked, that is not allowed"); -- return &(new RTCString)->printf("The XML file is not a file (fMode=%#x)", ObjInfo.Attr.fMode); -- } -- -- xml::Document Doc; -- { -- xml::XmlFileParser Parser; -- try -- { -- Parser.read(szFilePath, Doc); -- } -- catch (xml::XmlError Err) -- { -- return new RTCString(Err.what()); -- } -- } -- -- /* -- * Hand the xml doc over to the common code. -- */ -- return vboxExtPackLoadDescFromDoc(&Doc, a_pExtPackDesc); --} -- --/** -- * Reads the extension pack descriptor. -- * -- * @returns NULL on success, pointer to an error message on failure (caller -- * deletes it). -- * @param a_pszDir The directory containing the description file. -- * @param a_pExtPackDesc Where to store the extension pack descriptor. -- * @param a_pObjInfo Where to store the object info for the file (unix -- * attribs). Optional. -- */ --RTCString *VBoxExtPackLoadDescFromVfsFile(RTVFSFILE hVfsFile, PVBOXEXTPACKDESC a_pExtPackDesc, PRTFSOBJINFO a_pObjInfo) --{ -- vboxExtPackClearDesc(a_pExtPackDesc); -- -- /* -- * Query the object info. -- */ -- RTFSOBJINFO ObjInfo; -- int rc = RTVfsFileQueryInfo(hVfsFile, &ObjInfo, RTFSOBJATTRADD_UNIX); -- if (RT_FAILURE(rc)) -- return &(new RTCString)->printf("RTVfsFileQueryInfo failed: %Rrc", rc); -- if (a_pObjInfo) -- *a_pObjInfo = ObjInfo; -- -- /* -- * The simple approach, read the whole thing into memory and pass this to -- * the XML parser. -- */ -- -- /* Check the file size. */ -- if (ObjInfo.cbObject > _1M || ObjInfo.cbObject < 0) -- return &(new RTCString)->printf("The XML file is too large (%'RU64 bytes)", ObjInfo.cbObject); -- size_t const cbFile = (size_t)ObjInfo.cbObject; -- -- /* Rewind to the start of the file. */ -- rc = RTVfsFileSeek(hVfsFile, 0, RTFILE_SEEK_BEGIN, NULL); -- if (RT_FAILURE(rc)) -- return &(new RTCString)->printf("RTVfsFileSeek(,0,BEGIN) failed: %Rrc", rc); -- -- /* Allocate memory and read the file content into it. */ -- void *pvFile = RTMemTmpAlloc(cbFile); -- if (!pvFile) -- return &(new RTCString)->printf("RTMemTmpAlloc(%zu) failed", cbFile); -- -- RTCString *pstrErr = NULL; -- rc = RTVfsFileRead(hVfsFile, pvFile, cbFile, NULL); -- if (RT_FAILURE(rc)) -- pstrErr = &(new RTCString)->printf("RTVfsFileRead failed: %Rrc", rc); -- -- /* -- * Parse the file. -- */ -- xml::Document Doc; -- if (RT_SUCCESS(rc)) -- { -- xml::XmlMemParser Parser; -- RTCString strFileName = VBOX_EXTPACK_DESCRIPTION_NAME; -- try -- { -- Parser.read(pvFile, cbFile, strFileName, Doc); -- } -- catch (xml::XmlError Err) -- { -- pstrErr = new RTCString(Err.what()); -- rc = VERR_PARSE_ERROR; -- } -- } -- RTMemTmpFree(pvFile); -- -- /* -- * Hand the xml doc over to the common code. -- */ -- if (RT_SUCCESS(rc)) -- pstrErr = vboxExtPackLoadDescFromDoc(&Doc, a_pExtPackDesc); -- -- return pstrErr; --} -- --/** -- * Frees all resources associated with a extension pack descriptor. -- * -- * @param a_pExtPackDesc The extension pack descriptor which members -- * should be freed. -- */ --void VBoxExtPackFreeDesc(PVBOXEXTPACKDESC a_pExtPackDesc) --{ -- if (!a_pExtPackDesc) -- return; -- -- a_pExtPackDesc->strName.setNull(); -- a_pExtPackDesc->strDescription.setNull(); -- a_pExtPackDesc->strVersion.setNull(); -- a_pExtPackDesc->strEdition.setNull(); -- a_pExtPackDesc->uRevision = 0; -- a_pExtPackDesc->strMainModule.setNull(); -- a_pExtPackDesc->strVrdeModule.setNull(); -- a_pExtPackDesc->cPlugIns = 0; -- RTMemFree(a_pExtPackDesc->paPlugIns); -- a_pExtPackDesc->paPlugIns = NULL; -- a_pExtPackDesc->fShowLicense = false; --} -- --/** -- * Extract the extension pack name from the tarball path. -- * -- * @returns String containing the name on success, the caller must delete it. -- * NULL if no valid name was found or if we ran out of memory. -- * @param pszTarball The path to the tarball. -- */ --RTCString *VBoxExtPackExtractNameFromTarballPath(const char *pszTarball) --{ -- /* -- * Skip ahead to the filename part and count the number of characters -- * that matches the criteria for a mangled extension pack name. -- */ -- const char *pszSrc = RTPathFilename(pszTarball); -- if (!pszSrc) -- return NULL; -- -- size_t off = 0; -- while (RT_C_IS_ALNUM(pszSrc[off]) || pszSrc[off] == '_') -- off++; -- -- /* -- * Check min and max name limits. -- */ -- if ( off > VBOX_EXTPACK_NAME_MAX_LEN -- || off < VBOX_EXTPACK_NAME_MIN_LEN) -- return NULL; -- -- /* -- * Return the unmangled name. -- */ -- return VBoxExtPackUnmangleName(pszSrc, off); --} -- --/** -- * Validates the extension pack name. -- * -- * @returns true if valid, false if not. -- * @param pszName The name to validate. -- * @sa VBoxExtPackExtractNameFromTarballPath -- */ --bool VBoxExtPackIsValidName(const char *pszName) --{ -- if (!pszName) -- return false; -- -- /* -- * Check the characters making up the name, only english alphabet -- * characters, decimal digits and spaces are allowed. -- */ -- size_t off = 0; -- while (pszName[off]) -- { -- if (!RT_C_IS_ALNUM(pszName[off]) && pszName[off] != ' ') -- return false; -- off++; -- } -- -- /* -- * Check min and max name limits. -- */ -- if ( off > VBOX_EXTPACK_NAME_MAX_LEN -- || off < VBOX_EXTPACK_NAME_MIN_LEN) -- return false; -- -- return true; --} -- --/** -- * Checks if an alledged manged extension pack name. -- * -- * @returns true if valid, false if not. -- * @param pszMangledName The mangled name to validate. -- * @param cchMax The max number of chars to test. -- * @sa VBoxExtPackMangleName -- */ --bool VBoxExtPackIsValidMangledName(const char *pszMangledName, size_t cchMax /*= RTSTR_MAX*/) --{ -- if (!pszMangledName) -- return false; -- -- /* -- * Check the characters making up the name, only english alphabet -- * characters, decimal digits and underscores (=space) are allowed. -- */ -- size_t off = 0; -- while (off < cchMax && pszMangledName[off]) -- { -- if (!RT_C_IS_ALNUM(pszMangledName[off]) && pszMangledName[off] != '_') -- return false; -- off++; -- } -- -- /* -- * Check min and max name limits. -- */ -- if ( off > VBOX_EXTPACK_NAME_MAX_LEN -- || off < VBOX_EXTPACK_NAME_MIN_LEN) -- return false; -- -- return true; --} -- --/** -- * Mangle an extension pack name so it can be used by a directory or file name. -- * -- * @returns String containing the mangled name on success, the caller must -- * delete it. NULL on failure. -- * @param pszName The unmangled name. -- * @sa VBoxExtPackUnmangleName, VBoxExtPackIsValidMangledName -- */ --RTCString *VBoxExtPackMangleName(const char *pszName) --{ -- AssertReturn(VBoxExtPackIsValidName(pszName), NULL); -- -- char szTmp[VBOX_EXTPACK_NAME_MAX_LEN + 1]; -- size_t off = 0; -- char ch; -- while ((ch = pszName[off]) != '\0') -- { -- if (ch == ' ') -- ch = '_'; -- szTmp[off++] = ch; -- } -- szTmp[off] = '\0'; -- Assert(VBoxExtPackIsValidMangledName(szTmp)); -- -- return new RTCString(szTmp, off); --} -- --/** -- * Unmangle an extension pack name (reverses VBoxExtPackMangleName). -- * -- * @returns String containing the mangled name on success, the caller must -- * delete it. NULL on failure. -- * @param pszMangledName The mangled name. -- * @param cchMax The max name length. RTSTR_MAX is fine. -- * @sa VBoxExtPackMangleName, VBoxExtPackIsValidMangledName -- */ --RTCString *VBoxExtPackUnmangleName(const char *pszMangledName, size_t cchMax) --{ -- AssertReturn(VBoxExtPackIsValidMangledName(pszMangledName, cchMax), NULL); -- -- char szTmp[VBOX_EXTPACK_NAME_MAX_LEN + 1]; -- size_t off = 0; -- char ch; -- while ( off < cchMax -- && (ch = pszMangledName[off]) != '\0') -- { -- if (ch == '_') -- ch = ' '; -- else -- AssertReturn(RT_C_IS_ALNUM(ch) || ch == ' ', NULL); -- szTmp[off++] = ch; -- } -- szTmp[off] = '\0'; -- AssertReturn(VBoxExtPackIsValidName(szTmp), NULL); -- -- return new RTCString(szTmp, off); --} -- --/** -- * Constructs the extension pack directory path. -- * -- * A combination of RTPathJoin and VBoxExtPackMangleName. -- * -- * @returns IPRT status code like RTPathJoin. -- * @param pszExtPackDir Where to return the directory path. -- * @param cbExtPackDir The size of the return buffer. -- * @param pszParentDir The parent directory (".../Extensions"). -- * @param pszName The extension pack name, unmangled. -- */ --int VBoxExtPackCalcDir(char *pszExtPackDir, size_t cbExtPackDir, const char *pszParentDir, const char *pszName) --{ -- AssertReturn(VBoxExtPackIsValidName(pszName), VERR_INTERNAL_ERROR_5); -- -- RTCString *pstrMangledName = VBoxExtPackMangleName(pszName); -- if (!pstrMangledName) -- return VERR_INTERNAL_ERROR_4; -- -- int vrc = RTPathJoin(pszExtPackDir, cbExtPackDir, pszParentDir, pstrMangledName->c_str()); -- delete pstrMangledName; -- -- return vrc; --} -- -- --/** -- * Validates the extension pack version string. -- * -- * @returns true if valid, false if not. -- * @param pszVersion The version string to validate. -- */ --bool VBoxExtPackIsValidVersionString(const char *pszVersion) --{ -- if (!pszVersion || *pszVersion == '\0') -- return false; -- -- /* 1.x.y.z... */ -- for (;;) -- { -- if (!RT_C_IS_DIGIT(*pszVersion)) -- return false; -- do -- pszVersion++; -- while (RT_C_IS_DIGIT(*pszVersion)); -- if (*pszVersion != '.') -- break; -- pszVersion++; -- } -- -- /* upper case string + numbers indicating the build type */ -- if (*pszVersion == '-' || *pszVersion == '_') -- { -- /** @todo Should probably restrict this to known build types (alpha, -- * beta, rc, ++). */ -- do -- pszVersion++; -- while ( RT_C_IS_DIGIT(*pszVersion) -- || RT_C_IS_UPPER(*pszVersion) -- || *pszVersion == '-' -- || *pszVersion == '_'); -- } -- -- return *pszVersion == '\0'; --} -- --/** -- * Validates the extension pack edition string. -- * -- * @returns true if valid, false if not. -- * @param pszEdition The edition string to validate. -- */ --bool VBoxExtPackIsValidEditionString(const char *pszEdition) --{ -- if (*pszEdition) -- { -- if (!RT_C_IS_UPPER(*pszEdition)) -- return false; -- -- do -- pszEdition++; -- while ( RT_C_IS_UPPER(*pszEdition) -- || RT_C_IS_DIGIT(*pszEdition) -- || *pszEdition == '-' -- || *pszEdition == '_'); -- } -- return *pszEdition == '\0'; --} -- --/** -- * Validates an extension pack module string. -- * -- * @returns true if valid, false if not. -- * @param pszModule The module string to validate. -- */ --bool VBoxExtPackIsValidModuleString(const char *pszModule) --{ -- if (!pszModule || *pszModule == '\0') -- return false; -- -- /* Restricted charset, no extensions (dots). */ -- while ( RT_C_IS_ALNUM(*pszModule) -- || *pszModule == '-' -- || *pszModule == '_') -- pszModule++; -- -- return *pszModule == '\0'; --} -- --/** -- * RTStrPrintfv wrapper. -- * -- * @returns @a rc -- * @param rc The status code to return. -- * @param pszError The error buffer. -- * @param cbError The size of the buffer. -- * @param pszFormat The error message format string. -- * @param ... Format arguments. -- */ --static int vboxExtPackReturnError(int rc, char *pszError, size_t cbError, const char *pszFormat, ...) --{ -- va_list va; -- va_start(va, pszFormat); -- RTStrPrintfV(pszError, cbError, pszFormat, va); -- va_end(va); -- return rc; --} -- --/** -- * RTStrPrintfv wrapper. -- * -- * @param pszError The error buffer. -- * @param cbError The size of the buffer. -- * @param pszFormat The error message format string. -- * @param ... Format arguments. -- */ --static void vboxExtPackSetError(char *pszError, size_t cbError, const char *pszFormat, ...) --{ -- va_list va; -- va_start(va, pszFormat); -- RTStrPrintfV(pszError, cbError, pszFormat, va); -- va_end(va); --} -- --/** -- * Verifies the manifest and its signature. -- * -- * @returns VBox status code, failures with message. -- * @param hManifestFile The xml from the extension pack. -- * @param pszExtPackName The expected extension pack name. This can be -- * NULL, in which we don't have any expectations. -- * @param pszError Where to store an error message on failure. -- * @param cbError The size of the buffer @a pszError points to. -- */ --static int vboxExtPackVerifyXml(RTVFSFILE hXmlFile, const char *pszExtPackName, char *pszError, size_t cbError) --{ -- /* -- * Load the XML. -- */ -- VBOXEXTPACKDESC ExtPackDesc; -- RTCString *pstrErr = VBoxExtPackLoadDescFromVfsFile(hXmlFile, &ExtPackDesc, NULL); -- if (pstrErr) -- { -- RTStrCopy(pszError, cbError, pstrErr->c_str()); -- delete pstrErr; -- return VERR_PARSE_ERROR; -- } -- -- /* -- * Check the name. -- */ -- /** @todo drop this restriction after the old install interface is -- * dropped. */ -- int rc = VINF_SUCCESS; -- if ( pszExtPackName -- && !ExtPackDesc.strName.equalsIgnoreCase(pszExtPackName)) -- rc = vboxExtPackReturnError(VERR_NOT_EQUAL, pszError, cbError, -- "The name of the downloaded file and the name stored inside the extension pack does not match" -- " (xml='%s' file='%s')", ExtPackDesc.strName.c_str(), pszExtPackName); -- return rc; --} -- --/** -- * Verifies the manifest and its signature. -- * -- * @returns VBox status code, failures with message. -- * @param hOurManifest The manifest we compiled. -- * @param hManifestFile The manifest file in the extension pack. -- * @param hSignatureFile The manifest signature file. -- * @param pszError Where to store an error message on failure. -- * @param cbError The size of the buffer @a pszError points to. -- */ --static int vboxExtPackVerifyManifestAndSignature(RTMANIFEST hOurManifest, RTVFSFILE hManifestFile, RTVFSFILE hSignatureFile, -- char *pszError, size_t cbError) --{ -- /* -- * Read the manifest from the extension pack. -- */ -- int rc = RTVfsFileSeek(hManifestFile, 0, RTFILE_SEEK_BEGIN, NULL); -- if (RT_FAILURE(rc)) -- return vboxExtPackReturnError(rc, pszError, cbError, "RTVfsFileSeek failed: %Rrc", rc); -- -- RTMANIFEST hTheirManifest; -- rc = RTManifestCreate(0 /*fFlags*/, &hTheirManifest); -- if (RT_FAILURE(rc)) -- return vboxExtPackReturnError(rc, pszError, cbError, "RTManifestCreate failed: %Rrc", rc); -- -- RTVFSIOSTREAM hVfsIos = RTVfsFileToIoStream(hManifestFile); -- rc = RTManifestReadStandard(hTheirManifest, hVfsIos); -- RTVfsIoStrmRelease(hVfsIos); -- if (RT_SUCCESS(rc)) -- { -- /* -- * Compare the manifests. -- */ -- static const char *s_apszIgnoreEntries[] = -- { -- VBOX_EXTPACK_MANIFEST_NAME, -- VBOX_EXTPACK_SIGNATURE_NAME, -- "./" VBOX_EXTPACK_MANIFEST_NAME, -- "./" VBOX_EXTPACK_SIGNATURE_NAME, -- NULL -- }; -- char szError[RTPATH_MAX]; -- rc = RTManifestEqualsEx(hOurManifest, hTheirManifest, &s_apszIgnoreEntries[0], NULL, -- RTMANIFEST_EQUALS_IGN_MISSING_ATTRS /*fFlags*/, -- szError, sizeof(szError)); -- if (RT_SUCCESS(rc)) -- { -- /* -- * Validate the manifest file signature. -- */ -- /** @todo implement signature stuff */ -- NOREF(hSignatureFile); -- -- } -- else if (rc == VERR_NOT_EQUAL && szError[0]) -- vboxExtPackSetError(pszError, cbError, "Manifest mismatch: %s", szError); -- else -- vboxExtPackSetError(pszError, cbError, "RTManifestEqualsEx failed: %Rrc", rc); --#if 0 -- RTVFSIOSTREAM hVfsIosStdOut = NIL_RTVFSIOSTREAM; -- RTVfsIoStrmFromStdHandle(RTHANDLESTD_OUTPUT, RTFILE_O_WRITE, true, &hVfsIosStdOut); -- RTVfsIoStrmWrite(hVfsIosStdOut, "Our:\n", sizeof("Our:\n") - 1, true, NULL); -- RTManifestWriteStandard(hOurManifest, hVfsIosStdOut); -- RTVfsIoStrmWrite(hVfsIosStdOut, "Their:\n", sizeof("Their:\n") - 1, true, NULL); -- RTManifestWriteStandard(hTheirManifest, hVfsIosStdOut); --#endif -- } -- else -- vboxExtPackSetError(pszError, cbError, "Error parsing '%s': %Rrc", VBOX_EXTPACK_MANIFEST_NAME, rc); -- -- RTManifestRelease(hTheirManifest); -- return rc; --} -- -- --/** -- * Verifies the file digest (if specified) and returns the SHA-256 of the file. -- * -- * @returns -- * @param hFileManifest Manifest containing a SHA-256 digest of the file -- * that was calculated as the file was processed. -- * @param pszFileDigest SHA-256 digest of the file. -- * @param pStrDigest Where to return the SHA-256 digest. Optional. -- * @param pszError Where to write an error message on failure. -- * @param cbError The size of the @a pszError buffer. -- */ --static int vboxExtPackVerifyFileDigest(RTMANIFEST hFileManifest, const char *pszFileDigest, -- RTCString *pStrDigest, char *pszError, size_t cbError) --{ -- /* -- * Extract the SHA-256 entry for the extpack file. -- */ -- char szCalculatedDigest[RTSHA256_DIGEST_LEN + 1]; -- int rc = RTManifestEntryQueryAttr(hFileManifest, "extpack", NULL /*no name*/, RTMANIFEST_ATTR_SHA256, -- szCalculatedDigest, sizeof(szCalculatedDigest), NULL); -- if (RT_SUCCESS(rc)) -- { -- /* -- * Convert the two strings to binary form before comparing. -- * We convert the calculated hash even if we don't have anything to -- * compare with, just to validate it. -- */ -- uint8_t abCalculatedHash[RTSHA256_HASH_SIZE]; -- rc = RTSha256FromString(szCalculatedDigest, abCalculatedHash); -- if (RT_SUCCESS(rc)) -- { -- if ( pszFileDigest -- && *pszFileDigest != '\0') -- { -- uint8_t abFileHash[RTSHA256_HASH_SIZE]; -- rc = RTSha256FromString(pszFileDigest, abFileHash); -- if (RT_SUCCESS(rc)) -- { -- if (memcmp(abFileHash, abCalculatedHash, sizeof(abFileHash))) -- { -- vboxExtPackSetError(pszError, cbError, "The extension pack file has changed (SHA-256 mismatch)"); -- rc = VERR_NOT_EQUAL; -- } -- } -- else -- vboxExtPackSetError(pszError, cbError, "Bad SHA-256 '%s': %Rrc", szCalculatedDigest, rc); -- } -- -- /* -- * Set the output hash on success. -- */ -- if (pStrDigest && RT_SUCCESS(rc)) -- { -- try -- { -- *pStrDigest = szCalculatedDigest; -- } -- catch (std::bad_alloc) -- { -- rc = VERR_NO_MEMORY; -- } -- } -- } -- else -- vboxExtPackSetError(pszError, cbError, "Bad SHA-256 '%s': %Rrc", szCalculatedDigest, rc); -- } -- else -- vboxExtPackSetError(pszError, cbError, "RTManifestEntryGetAttr: %Rrc", rc); -- return rc; --} -- -- -- --/** -- * Validates a standard file. -- * -- * Generally all files are -- * -- * @returns VBox status code, failure message in @a pszError. -- * @param pszAdjName The adjusted member name. -- * @param enmType The VFS object type. -- * @param phVfsObj The pointer to the VFS object handle variable. -- * This is both input and output. -- * @param phVfsFile Where to store the handle to the memorized -- * file. This is NULL for license files. -- * @param pszError Where to write an error message on failure. -- * @param cbError The size of the @a pszError buffer. -- */ --static int VBoxExtPackValidateStandardFile(const char *pszAdjName, RTVFSOBJTYPE enmType, -- PRTVFSOBJ phVfsObj, PRTVFSFILE phVfsFile, char *pszError, size_t cbError) --{ -- int rc; -- -- /* -- * Make sure it's a file and that it isn't too large. -- */ -- if (phVfsFile && *phVfsFile != NIL_RTVFSFILE) -- rc = vboxExtPackReturnError(VERR_DUPLICATE, pszError, cbError, -- "There can only be one '%s'", pszAdjName); -- else if (enmType != RTVFSOBJTYPE_IO_STREAM && enmType != RTVFSOBJTYPE_FILE) -- rc = vboxExtPackReturnError(VERR_NOT_A_FILE, pszError, cbError, -- "Standard member '%s' is not a file", pszAdjName); -- else -- { -- RTFSOBJINFO ObjInfo; -- rc = RTVfsObjQueryInfo(*phVfsObj, &ObjInfo, RTFSOBJATTRADD_NOTHING); -- if (RT_SUCCESS(rc)) -- { -- if (!RTFS_IS_FILE(ObjInfo.Attr.fMode)) -- rc = vboxExtPackReturnError(VERR_NOT_A_FILE, pszError, cbError, -- "Standard member '%s' is not a file", pszAdjName); -- else if (ObjInfo.cbObject >= _1M) -- rc = vboxExtPackReturnError(VERR_OUT_OF_RANGE, pszError, cbError, -- "Standard member '%s' is too large: %'RU64 bytes (max 1 MB)", -- pszAdjName, (uint64_t)ObjInfo.cbObject); -- else -- { -- /* -- * Make an in memory copy of the stream and check that the file -- * is UTF-8 clean. -- */ -- RTVFSIOSTREAM hVfsIos = RTVfsObjToIoStream(*phVfsObj); -- RTVFSFILE hVfsFile; -- rc = RTVfsMemorizeIoStreamAsFile(hVfsIos, RTFILE_O_READ, &hVfsFile); -- if (RT_SUCCESS(rc)) -- { -- rc = RTVfsIoStrmValidateUtf8Encoding(hVfsIos, -- RTVFS_VALIDATE_UTF8_BY_RTC_3629 | RTVFS_VALIDATE_UTF8_NO_NULL, -- NULL); -- if (RT_SUCCESS(rc)) -- { -- /* -- * Replace *phVfsObj with the memorized file. -- */ -- rc = RTVfsFileSeek(hVfsFile, 0, RTFILE_SEEK_BEGIN, NULL); -- if (RT_SUCCESS(rc)) -- { -- RTVfsObjRelease(*phVfsObj); -- *phVfsObj = RTVfsObjFromFile(hVfsFile); -- } -- else -- vboxExtPackSetError(pszError, cbError, "RTVfsFileSeek failed on '%s': %Rrc", pszAdjName, rc); -- } -- -- if (phVfsFile && RT_SUCCESS(rc)) -- *phVfsFile = hVfsFile; -- else -- RTVfsFileRelease(hVfsFile); -- } -- else -- vboxExtPackSetError(pszError, cbError, "RTVfsMemorizeIoStreamAsFile failed on '%s': %Rrc", pszAdjName, rc); -- RTVfsIoStrmRelease(hVfsIos); -- } -- } -- else -- vboxExtPackSetError(pszError, cbError, "RTVfsObjQueryInfo failed on '%s': %Rrc", pszAdjName, rc); -- } -- return rc; --} -- -- --/** -- * Validates a name in an extension pack. -- * -- * We restrict the charset to try make sure the extension pack can be unpacked -- * on all file systems. -- * -- * @returns VBox status code, failures with message. -- * @param pszName The name to validate. -- * @param pszError Where to store an error message on failure. -- * @param cbError The size of the buffer @a pszError points to. -- */ --static int vboxExtPackValidateMemberName(const char *pszName, char *pszError, size_t cbError) --{ -- if (RTPathStartsWithRoot(pszName)) -- return vboxExtPackReturnError(VERR_PATH_IS_NOT_RELATIVE, pszError, cbError, "'%s': starts with root spec", pszName); -- -- const char *pszErr = NULL; -- const char *psz = pszName; -- int ch; -- while ((ch = *psz) != '\0') -- { -- /* Character set restrictions. */ -- if (ch < 0 || ch >= 128) -- { -- pszErr = "Only 7-bit ASCII allowed"; -- break; -- } -- if (ch <= 31 || ch == 127) -- { -- pszErr = "No control characters are not allowed"; -- break; -- } -- if (ch == '\\') -- { -- pszErr = "Only backward slashes are not allowed"; -- break; -- } -- if (strchr("'\":;*?|[]<>(){}", ch)) -- { -- pszErr = "The characters ', \", :, ;, *, ?, |, [, ], <, >, (, ), { and } are not allowed"; -- break; -- } -- -- /* Take the simple way out and ban all ".." sequences. */ -- if ( ch == '.' -- && psz[1] == '.') -- { -- pszErr = "Double dot sequence are not allowed"; -- break; -- } -- -- /* Keep the tree shallow or the hardening checks will fail. */ -- if (psz - pszName > VBOX_EXTPACK_MAX_MEMBER_NAME_LENGTH) -- { -- pszErr = "Too long"; -- break; -- } -- -- /* advance */ -- psz++; -- } -- -- if (pszErr) -- return vboxExtPackReturnError(VERR_INVALID_NAME, pszError, cbError, -- "Bad member name '%s' (pos %zu): %s", pszName, (size_t)(psz - pszName), pszErr); -- return RTEXITCODE_SUCCESS; --} -- -- --/** -- * Validates a file in an extension pack. -- * -- * @returns VBox status code, failures with message. -- * @param pszName The name of the file. -- * @param hVfsObj The VFS object. -- * @param pszError Where to store an error message on failure. -- * @param cbError The size of the buffer @a pszError points to. -- */ --static int vboxExtPackValidateMemberFile(const char *pszName, RTVFSOBJ hVfsObj, char *pszError, size_t cbError) --{ -- int rc = vboxExtPackValidateMemberName(pszName, pszError, cbError); -- if (RT_SUCCESS(rc)) -- { -- RTFSOBJINFO ObjInfo; -- rc = RTVfsObjQueryInfo(hVfsObj, &ObjInfo, RTFSOBJATTRADD_NOTHING); -- if (RT_SUCCESS(rc)) -- { -- if (ObjInfo.cbObject >= 9*_1G64) -- rc = vboxExtPackReturnError(VERR_OUT_OF_RANGE, pszError, cbError, -- "'%s': too large (%'RU64 bytes)", -- pszName, (uint64_t)ObjInfo.cbObject); -- if (!RTFS_IS_FILE(ObjInfo.Attr.fMode)) -- rc = vboxExtPackReturnError(VERR_NOT_A_FILE, pszError, cbError, -- "The alleged file '%s' has a mode mask stating otherwise (%RTfmode)", -- pszName, ObjInfo.Attr.fMode); -- } -- else -- vboxExtPackSetError(pszError, cbError, "RTVfsObjQueryInfo failed on '%s': %Rrc", pszName, rc); -- } -- return rc; --} -- -- --/** -- * Validates a directory in an extension pack. -- * -- * @returns VBox status code, failures with message. -- * @param pszName The name of the directory. -- * @param hVfsObj The VFS object. -- * @param pszError Where to store an error message on failure. -- * @param cbError The size of the buffer @a pszError points to. -- */ --static int vboxExtPackValidateMemberDir(const char *pszName, RTVFSOBJ hVfsObj, char *pszError, size_t cbError) --{ -- int rc = vboxExtPackValidateMemberName(pszName, pszError, cbError); -- if (RT_SUCCESS(rc)) -- { -- RTFSOBJINFO ObjInfo; -- rc = RTVfsObjQueryInfo(hVfsObj, &ObjInfo, RTFSOBJATTRADD_NOTHING); -- if (RT_SUCCESS(rc)) -- { -- if (!RTFS_IS_DIRECTORY(ObjInfo.Attr.fMode)) -- rc = vboxExtPackReturnError(VERR_NOT_A_DIRECTORY, pszError, cbError, -- "The alleged directory '%s' has a mode mask saying differently (%RTfmode)", -- pszName, ObjInfo.Attr.fMode); -- } -- else -- vboxExtPackSetError(pszError, cbError, "RTVfsObjQueryInfo failed on '%s': %Rrc", pszName, rc); -- } -- return rc; --} -- --/** -- * Validates a member of an extension pack. -- * -- * @returns VBox status code, failures with message. -- * @param pszName The name of the directory. -- * @param enmType The object type. -- * @param hVfsObj The VFS object. -- * @param pszError Where to store an error message on failure. -- * @param cbError The size of the buffer @a pszError points to. -- */ --int VBoxExtPackValidateMember(const char *pszName, RTVFSOBJTYPE enmType, RTVFSOBJ hVfsObj, char *pszError, size_t cbError) --{ -- Assert(cbError > 0); -- *pszError = '\0'; -- -- int rc; -- if ( enmType == RTVFSOBJTYPE_FILE -- || enmType == RTVFSOBJTYPE_IO_STREAM) -- rc = vboxExtPackValidateMemberFile(pszName, hVfsObj, pszError, cbError); -- else if ( enmType == RTVFSOBJTYPE_DIR -- || enmType == RTVFSOBJTYPE_BASE) -- rc = vboxExtPackValidateMemberDir(pszName, hVfsObj, pszError, cbError); -- else -- rc = vboxExtPackReturnError(VERR_UNEXPECTED_FS_OBJ_TYPE, pszError, cbError, -- "'%s' is not a file or directory (enmType=%d)", pszName, enmType); -- return rc; --} -- -- --/** -- * Rewinds the tarball file handle and creates a gunzip | tar chain that -- * results in a filesystem stream. -- * -- * @returns VBox status code, failures with message. -- * @param hTarballFile The handle to the tarball file. -- * @param pszError Where to store an error message on failure. -- * @param cbError The size of the buffer @a pszError points to. -- * @param phTarFss Where to return the filesystem stream handle. -- * @param phFileManifest Where to return a manifest where the tarball is -- * gettting hashed. The entry will be called -- * "extpack" and be ready when the file system -- * stream is at an end. Optional. -- */ --int VBoxExtPackOpenTarFss(RTFILE hTarballFile, char *pszError, size_t cbError, PRTVFSFSSTREAM phTarFss, PRTMANIFEST phFileManifest) --{ -- Assert(cbError > 0); -- *pszError = '\0'; -- *phTarFss = NIL_RTVFSFSSTREAM; -- -- /* -- * Rewind the file and set up a VFS chain for it. -- */ -- int rc = RTFileSeek(hTarballFile, 0, RTFILE_SEEK_BEGIN, NULL); -- if (RT_FAILURE(rc)) -- return vboxExtPackReturnError(rc, pszError, cbError, "Failed seeking to the start of the tarball: %Rrc", rc); -- -- RTVFSIOSTREAM hTarballIos; -- rc = RTVfsIoStrmFromRTFile(hTarballFile, RTFILE_O_READ | RTFILE_O_DENY_WRITE | RTFILE_O_OPEN, true /*fLeaveOpen*/, -- &hTarballIos); -- if (RT_FAILURE(rc)) -- return vboxExtPackReturnError(rc, pszError, cbError, "RTVfsIoStrmFromRTFile failed: %Rrc", rc); -- -- RTMANIFEST hFileManifest = NIL_RTMANIFEST; -- rc = RTManifestCreate(0 /*fFlags*/, &hFileManifest); -- if (RT_SUCCESS(rc)) -- { -- RTVFSIOSTREAM hPtIos; -- rc = RTManifestEntryAddPassthruIoStream(hFileManifest, hTarballIos, "extpack", RTMANIFEST_ATTR_SHA256, true /*read*/, &hPtIos); -- if (RT_SUCCESS(rc)) -- { -- RTVFSIOSTREAM hGunzipIos; -- rc = RTZipGzipDecompressIoStream(hPtIos, 0 /*fFlags*/, &hGunzipIos); -- if (RT_SUCCESS(rc)) -- { -- RTVFSFSSTREAM hTarFss; -- rc = RTZipTarFsStreamFromIoStream(hGunzipIos, 0 /*fFlags*/, &hTarFss); -- if (RT_SUCCESS(rc)) -- { -- RTVfsIoStrmRelease(hPtIos); -- RTVfsIoStrmRelease(hGunzipIos); -- RTVfsIoStrmRelease(hTarballIos); -- *phTarFss = hTarFss; -- if (phFileManifest) -- *phFileManifest = hFileManifest; -- else -- RTManifestRelease(hFileManifest); -- return VINF_SUCCESS; -- } -- -- vboxExtPackSetError(pszError, cbError, "RTZipTarFsStreamFromIoStream failed: %Rrc", rc); -- RTVfsIoStrmRelease(hGunzipIos); -- } -- else -- vboxExtPackSetError(pszError, cbError, "RTZipGzipDecompressIoStream failed: %Rrc", rc); -- RTVfsIoStrmRelease(hPtIos); -- } -- else -- vboxExtPackSetError(pszError, cbError, "RTManifestEntryAddPassthruIoStream failed: %Rrc", rc); -- RTManifestRelease(hFileManifest); -- } -- else -- vboxExtPackSetError(pszError, cbError, "RTManifestCreate failed: %Rrc", rc); -- -- RTVfsIoStrmRelease(hTarballIos); -- return rc; --} -- -- --/** -- * Validates the extension pack tarball prior to unpacking. -- * -- * Operations performed: -- * - Mandatory files. -- * - Manifest check. -- * - Manifest seal check. -- * - XML check, match name. -- * -- * @returns VBox status code, failures with message. -- * @param hTarballFile The handle to open the @a pszTarball file. -- * @param pszExtPackName The name of the extension pack name. NULL if -- * the name is not fixed. -- * @param pszTarball The name of the tarball in case we have to -- * complain about something. -- * @param pszTarballDigest The SHA-256 digest of the tarball. Empty string -- * if no digest available. -- * @param pszError Where to store an error message on failure. -- * @param cbError The size of the buffer @a pszError points to. -- * @param phValidManifest Where to optionally return the handle to fully -- * validated the manifest for the extension pack. -- * This includes all files. -- * @param phXmlFile Where to optionally return the memorized XML -- * file. -- * @param pStrDigest Where to return the digest of the file. -- * Optional. -- */ --int VBoxExtPackValidateTarball(RTFILE hTarballFile, const char *pszExtPackName, -- const char *pszTarball, const char *pszTarballDigest, -- char *pszError, size_t cbError, -- PRTMANIFEST phValidManifest, PRTVFSFILE phXmlFile, RTCString *pStrDigest) --{ -- /* -- * Clear return values. -- */ -- if (phValidManifest) -- *phValidManifest = NIL_RTMANIFEST; -- if (phXmlFile) -- *phXmlFile = NIL_RTVFSFILE; -- Assert(cbError > 1); -- *pszError = '\0'; -- NOREF(pszTarball); -- -- /* -- * Open the tar.gz filesystem stream and set up an manifest in-memory file. -- */ -- RTMANIFEST hFileManifest; -- RTVFSFSSTREAM hTarFss; -- int rc = VBoxExtPackOpenTarFss(hTarballFile, pszError, cbError, &hTarFss, &hFileManifest); -- if (RT_FAILURE(rc)) -- return rc; -- -- RTMANIFEST hOurManifest; -- rc = RTManifestCreate(0 /*fFlags*/, &hOurManifest); -- if (RT_SUCCESS(rc)) -- { -- /* -- * Process the tarball (would be nice to move this to a function). -- */ -- RTVFSFILE hXmlFile = NIL_RTVFSFILE; -- RTVFSFILE hManifestFile = NIL_RTVFSFILE; -- RTVFSFILE hSignatureFile = NIL_RTVFSFILE; -- for (;;) -- { -- /* -- * Get the next stream object. -- */ -- char *pszName; -- RTVFSOBJ hVfsObj; -- RTVFSOBJTYPE enmType; -- rc = RTVfsFsStrmNext(hTarFss, &pszName, &enmType, &hVfsObj); -- if (RT_FAILURE(rc)) -- { -- if (rc != VERR_EOF) -- vboxExtPackSetError(pszError, cbError, "RTVfsFsStrmNext failed: %Rrc", rc); -- else -- rc = VINF_SUCCESS; -- break; -- } -- const char *pszAdjName = pszName[0] == '.' && pszName[1] == '/' ? &pszName[2] : pszName; -- -- /* -- * Check the type & name validity, performing special tests on -- * standard extension pack member files. -- * -- * N.B. We will always reach the end of the loop before breaking on -- * failure - cleanup reasons. -- */ -- rc = VBoxExtPackValidateMember(pszName, enmType, hVfsObj, pszError, cbError); -- if (RT_SUCCESS(rc)) -- { -- PRTVFSFILE phVfsFile = NULL; -- if (!strcmp(pszAdjName, VBOX_EXTPACK_DESCRIPTION_NAME)) -- phVfsFile = &hXmlFile; -- else if (!strcmp(pszAdjName, VBOX_EXTPACK_MANIFEST_NAME)) -- phVfsFile = &hManifestFile; -- else if (!strcmp(pszAdjName, VBOX_EXTPACK_SIGNATURE_NAME)) -- phVfsFile = &hSignatureFile; -- else if (!strncmp(pszAdjName, VBOX_EXTPACK_LICENSE_NAME_PREFIX, sizeof(VBOX_EXTPACK_LICENSE_NAME_PREFIX) - 1)) -- rc = VBoxExtPackValidateStandardFile(pszAdjName, enmType, &hVfsObj, NULL, pszError, cbError); -- if (phVfsFile) -- rc = VBoxExtPackValidateStandardFile(pszAdjName, enmType, &hVfsObj, phVfsFile, pszError, cbError); -- } -- -- /* -- * Add any I/O stream to the manifest -- */ -- if ( RT_SUCCESS(rc) -- && ( enmType == RTVFSOBJTYPE_FILE -- || enmType == RTVFSOBJTYPE_IO_STREAM)) -- { -- RTVFSIOSTREAM hVfsIos = RTVfsObjToIoStream(hVfsObj); -- rc = RTManifestEntryAddIoStream(hOurManifest, hVfsIos, pszAdjName, RTMANIFEST_ATTR_SIZE | RTMANIFEST_ATTR_SHA256); -- if (RT_FAILURE(rc)) -- vboxExtPackSetError(pszError, cbError, "RTManifestEntryAddIoStream failed on '%s': %Rrc", pszAdjName, rc); -- RTVfsIoStrmRelease(hVfsIos); -- } -- -- /* -- * Clean up and break out on failure. -- */ -- RTVfsObjRelease(hVfsObj); -- RTStrFree(pszName); -- if (RT_FAILURE(rc)) -- break; -- } -- -- /* -- * Check the integrity of the tarball file. -- */ -- if (RT_SUCCESS(rc)) -- { -- RTVfsFsStrmRelease(hTarFss); -- hTarFss = NIL_RTVFSFSSTREAM; -- rc = vboxExtPackVerifyFileDigest(hFileManifest, pszTarballDigest, pStrDigest, pszError, cbError); -- } -- -- /* -- * If we've successfully processed the tarball, verify that the -- * mandatory files are present. -- */ -- if (RT_SUCCESS(rc)) -- { -- if (hXmlFile == NIL_RTVFSFILE) -- rc = vboxExtPackReturnError(VERR_MISSING, pszError, cbError, "Mandator file '%s' is missing", VBOX_EXTPACK_DESCRIPTION_NAME); -- if (hManifestFile == NIL_RTVFSFILE) -- rc = vboxExtPackReturnError(VERR_MISSING, pszError, cbError, "Mandator file '%s' is missing", VBOX_EXTPACK_MANIFEST_NAME); -- if (hSignatureFile == NIL_RTVFSFILE) -- rc = vboxExtPackReturnError(VERR_MISSING, pszError, cbError, "Mandator file '%s' is missing", VBOX_EXTPACK_SIGNATURE_NAME); -- } -- -- /* -- * Check the manifest and it's signature. -- */ -- if (RT_SUCCESS(rc)) -- rc = vboxExtPackVerifyManifestAndSignature(hOurManifest, hManifestFile, hSignatureFile, pszError, cbError); -- -- /* -- * Check the XML. -- */ -- if (RT_SUCCESS(rc)) -- rc = vboxExtPackVerifyXml(hXmlFile, pszExtPackName, pszError, cbError); -- -- /* -- * Returns objects. -- */ -- if (RT_SUCCESS(rc)) -- { -- if (phValidManifest) -- { -- RTManifestRetain(hOurManifest); -- *phValidManifest = hOurManifest; -- } -- if (phXmlFile) -- { -- RTVfsFileRetain(hXmlFile); -- *phXmlFile = hXmlFile; -- } -- } -- -- /* -- * Release our object references. -- */ -- RTManifestRelease(hOurManifest); -- RTVfsFileRelease(hXmlFile); -- RTVfsFileRelease(hManifestFile); -- RTVfsFileRelease(hSignatureFile); -- } -- else -- vboxExtPackSetError(pszError, cbError, "RTManifestCreate failed: %Rrc", rc); -- RTVfsFsStrmRelease(hTarFss); -- RTManifestRelease(hFileManifest); -- -- return rc; --} -- ---- VirtualBox-4.1.18.orig/include/Makefile.kmk 2012-06-20 10:07:49.000000000 -0300 -+++ VirtualBox-4.1.18/include/Makefile.kmk 2012-07-24 21:11:57.007068865 -0300 -@@ -51,7 +51,6 @@ - VBox/vd-cache-plugin.h \ - VBox/vmm/uvm.h \ - VBox/vscsi.h \ -- $(wildcard VBox/ExtPack/*.h ) \ - iprt/alloca.h \ - iprt/tcp.h \ - iprt/localipc.h \ ---- VirtualBox-4.1.18.orig/src/Makefile.kmk 2012-06-20 10:07:57.000000000 -0300 -+++ VirtualBox-4.1.18/src/Makefile.kmk 2012-07-24 22:51:10.206996034 -0300 -@@ -26,14 +26,6 @@ - include $(PATH_SUB_CURRENT)/VBox/Makefile.kmk - include $(PATH_SUB_CURRENT)/libs/Makefile.kmk - --else if defined(VBOX_ONLY_EXTPACKS) -- include $(PATH_SUB_CURRENT)/bldprogs/Makefile.kmk -- include $(PATH_SUB_CURRENT)/VBox/Makefile.kmk -- include $(PATH_SUB_CURRENT)/libs/Makefile.kmk -- ifndef VBOX_ONLY_EXTPACKS_USE_IMPLIBS -- include $(PATH_SUB_CURRENT)/recompiler/Makefile.kmk -- endif -- - else if defined(VBOX_ONLY_TESTSUITE) - include $(PATH_SUB_CURRENT)/libs/Makefile.kmk - include $(PATH_SUB_CURRENT)/VBox/Makefile.kmk ---- VirtualBox-4.1.18.orig/src/VBox/Makefile.kmk 2012-07-24 21:19:55.565641784 -0300 -+++ VirtualBox-4.1.18/src/VBox/Makefile.kmk 2012-07-24 22:12:55.429156962 -0300 -@@ -33,19 +33,6 @@ - include $(PATH_SUB_CURRENT)/HostDrivers/Makefile.kmk - include $(PATH_SUB_CURRENT)/Frontends/Makefile.kmk - --else ifdef VBOX_ONLY_EXTPACKS -- include $(PATH_SUB_CURRENT)/Runtime/Makefile.kmk -- include $(PATH_SUB_CURRENT)/Devices/Makefile.kmk -- include $(PATH_SUB_CURRENT)/HostDrivers/Makefile.kmk -- include $(PATH_SUB_CURRENT)/ExtPacks/Makefile.kmk -- ifdef VBOX_WITH_VRDP -- include $(PATH_SUB_CURRENT)/RDP/Makefile.kmk -- endif -- include $(PATH_SUB_CURRENT)/VMM/Makefile.kmk -- ifndef VBOX_ONLY_EXTPACKS_USE_IMPLIBS -- include $(PATH_SUB_CURRENT)/Disassembler/Makefile.kmk -- endif -- - else ifdef VBOX_ONLY_SDK - include $(PATH_SUB_CURRENT)/Main/Makefile.kmk - ifdef VBOX_WITH_VRDP -@@ -92,9 +79,6 @@ - if1of ($(KBUILD_TARGET_ARCH), amd64 x86) - include $(PATH_SUB_CURRENT)/NetworkServices/Makefile.kmk - endif -- ifndef VBOX_OSE -- include $(PATH_SUB_CURRENT)/ExtPacks/Makefile.kmk -- endif - ifdef VBOX_WITH_INSTALLER - include $(PATH_SUB_CURRENT)/Installer/Makefile.kmk # Keep this last. - endif ---- VirtualBox-4.1.18/src/libs/Makefile.kmk.orig 2012-07-24 21:23:26.938013023 -0300 -+++ VirtualBox-4.1.18/src/libs/Makefile.kmk 2012-07-24 21:43:42.557911752 -0300 -@@ -48,13 +48,6 @@ - include $(PATH_SUB_CURRENT)/kStuff/Makefile.kmk - endif - --# OpenSSL. --if !defined(VBOX_ONLY_SDK) \ -- && ( "$(SDK_VBOX_OPENSSL_INCS)" == "$(SDK_VBOX_OPENSSL_VBOX_DEFAULT_INCS)" \ -- || defined(VBOX_WITH_EXTPACK_PUEL_BUILD)) -- include $(PATH_SUB_CURRENT)/openssl-0.9.8t/Makefile.kmk --endif -- - # libjpeg for VRDP video redirection - if defined(VBOX_WITH_VRDP) && defined(VBOX_WITH_VRDP_VIDEO_CHANNEL) - include $(PATH_SUB_CURRENT)/jpeg-8a/Makefile.kmk ---- VirtualBox-4.1.18.orig/src/VBox/Devices/Makefile.kmk 2012-07-24 23:06:45.916276235 -0300 -+++ VirtualBox-4.1.18/src/VBox/Devices/Makefile.kmk 2012-07-24 23:17:00.202963228 -0300 -@@ -21,9 +21,7 @@ - - # Include sub-makefiles. - include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk --if defined(VBOX_WITH_INTEL_PXE) || defined(VBOX_ONLY_EXTPACKS) -- include $(PATH_SUB_CURRENT)/PC/PXE/Makefile.kmk --else if defined(VBOX_WITH_PXE_ROM) && !defined(VBOX_WITHOUT_ETHERBOOT) -+if defined(VBOX_WITH_PXE_ROM) && !defined(VBOX_WITHOUT_ETHERBOOT) - include $(PATH_SUB_CURRENT)/PC/Etherboot-src/Makefile.kmk - endif - if !defined(VBOX_ONLY_EXTPACKS) # Goes on almost to the end of the file. -@@ -57,9 +55,6 @@ - ifdef VBOX_WITH_USB - VBoxDDU_DEFS += VBOX_WITH_USB IN_USBLIB - VBoxDDU_SDKS.win = WINPSDK W2K3DDK -- if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL) -- VBoxDDU_DEFS += VBOX_WITH_EHCI_IMPL -- endif - ifdef VBOX_WITH_NEW_USB_CODE_ON_DARWIN - VBoxDDU_DEFS.darwin += VBOX_WITH_NEW_USB_CODE_ON_DARWIN - endif -@@ -122,9 +117,6 @@ - VBoxDD_DEFS = VBOX_ACPI - ifdef VBOX_WITH_USB - VBoxDD_DEFS += VBOX_WITH_USB -- if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL) -- VBoxDD_DEFS += VBOX_WITH_EHCI_IMPL -- endif - endif - ifdef VBOX_WITH_VUSB - VBoxDD_DEFS += VBOX_WITH_VUSB -@@ -446,11 +438,6 @@ - endif - ifdef VBOX_WITH_USB - DevicesR3_DEFS += VBOX_WITH_USB -- if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL) -- DevicesR3_DEFS += VBOX_WITH_EHCI_IMPL -- DevicesR3_SOURCES += \ -- USB/DevEHCI.cpp -- endif - endif - if defined(VBOX_WITH_PCI_PASSTHROUGH_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL) - DevicesR3_DEFS += VBOX_WITH_PCI_PASSTHROUGH_IMPL -@@ -607,11 +594,6 @@ - - ifdef VBOX_WITH_USB - VBoxDDGC_DEFS += VBOX_WITH_USB -- if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL) -- VBoxDDGC_DEFS += VBOX_WITH_EHCI_IMPL -- VBoxDDGC_SOURCES += \ -- USB/DevEHCI.cpp -- endif - endif - - ifdef VBOX_WITH_VIDEOHWACCEL -@@ -711,11 +693,6 @@ - endif - ifdef VBOX_WITH_USB - VBoxDDR0_DEFS += VBOX_WITH_USB -- if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL) -- VBoxDDR0_DEFS += VBOX_WITH_EHCI_IMPL -- VBoxDDR0_SOURCES += \ -- USB/DevEHCI.cpp -- endif - endif - - if defined(VBOX_WITH_PCI_PASSTHROUGH_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL) -@@ -1204,49 +1181,5 @@ - - endif # !VBOX_ONLY_EXTPACKS - --if defined(VBOX_WITH_EXTPACK_PUEL) && defined(VBOX_WITH_EXTPACK_PUEL_BUILD) -- # -- # The EHCI (USB 2.0) Extension Pack Modules. -- # -- if defined(VBOX_WITH_USB) -- DLLS += VBoxEhciR3 -- VBoxEhciR3_TEMPLATE = VBoxR3ExtPackPuel -- VBoxEhciR3_SOURCES = USB/DevEHCI.cpp -- -- SYSMODS += VBoxEhciR0 -- VBoxEhciR0_TEMPLATE = VBoxR0ExtPackPuel -- VBoxEhciR0_SOURCES = USB/DevEHCI.cpp -- -- ifdef VBOX_WITH_RAW_MODE -- SYSMODS += VBoxEhciRC -- VBoxEhciRC_TEMPLATE = VBoxRcExtPackPuel -- VBoxEhciRC_SOURCES = USB/DevEHCI.cpp -- endif -- endif -- -- if defined(VBOX_WITH_PCI_PASSTHROUGH) -- DLLS += VBoxPciRawR3 -- VBoxPciRawR3_TEMPLATE = VBoxR3ExtPackPuel -- VBoxPciRawR3_SOURCES = Bus/DevPciRaw.cpp -- -- DLLS += VBoxPciRawDrv -- VBoxPciRawDrv_TEMPLATE = VBoxR3ExtPackPuel -- VBoxPciRawDrv_SOURCES = Bus/DrvPciRaw.cpp -- -- SYSMODS += VBoxPciRawR0 -- VBoxPciRawR0_TEMPLATE = VBoxR0ExtPackPuel -- VBoxPciRawR0_SOURCES = Bus/DevPciRaw.cpp -- -- Bus/DevPciRaw.cpp_INCS = Bus -- endif -- -- # -- # The Intel PXE rom. -- # -- INSTALLS += VBoxExtPackPuelInsRoms -- VBoxExtPackPuelInsRoms_TEMPLATE = VBoxInsExtPackPuel -- VBoxExtPackPuelInsRoms_SOURCES = PC/PXE/PXE-Intel.rom=>PXE-Intel.rom --endif # VBOX_WITH_EXTPACK_PUEL -- - include $(KBUILD_PATH)/subfooter.kmk - ---- VirtualBox-4.1.18.orig/src/VBox/Main/Makefile.kmk 2012-07-24 23:38:25.304126039 -0300 -+++ VirtualBox-4.1.18/src/VBox/Main/Makefile.kmk 2012-07-24 23:38:25.350789964 -0300 -@@ -230,14 +230,12 @@ - $(if $(VBOX_USB_WITH_SYSFS),VBOX_USB_WITH_SYSFS,) \ - $(if $(VBOX_USB_WITH_INOTIFY),VBOX_USB_WITH_INOTIFY,) \ - $(if $(VBOX_WITH_LIVE_MIGRATION),VBOX_WITH_LIVE_MIGRATION,) \ -- $(if $(VBOX_WITH_EXTPACK),VBOX_WITH_EXTPACK,) \ - $(if $(VBOX_WITH_VUSB),VBOX_WITH_VUSB,) \ - $(if $(VBOX_WITH_S3),VBOX_WITH_S3,) \ - $(if $(VBOX_WITH_PCI_PASSTHROUGH),VBOX_WITH_PCI_PASSTHROUGH,) - ifdef VBOX_WITH_USB - VBoxSVC_DEFS += \ - VBOX_WITH_USB \ -- $(if $(VBOX_WITH_EHCI),VBOX_WITH_EHCI,) \ - $(if $(VBOX_WITH_NEW_USB_CODE_ON_DARWIN),VBOX_WITH_NEW_USB_CODE_ON_DARWIN,) - endif - VBoxSVC_DEFS.win += VBOX_COM_OUTOFPROC_MODULE -@@ -290,7 +288,6 @@ - src-all/SharedFolderImpl.cpp \ - src-all/VirtualBoxBase.cpp \ - src-all/VirtualBoxErrorInfoImpl.cpp \ -- $(if $(VBOX_WITH_EXTPACK),src-all/ExtPackManagerImpl.cpp src-all/ExtPackUtil.cpp,) \ - src-server/ApplianceImpl.cpp \ - src-server/ApplianceImplExport.cpp \ - src-server/ApplianceImplImport.cpp \ -@@ -543,8 +540,6 @@ - $(if $(VBOX_WITH_HGSMI),VBOX_WITH_HGSMI,) \ - $(if $(VBOX_WITH_VIDEOHWACCEL),VBOX_WITH_VIDEOHWACCEL,) \ - $(if $(VBOX_WITH_USB),VBOX_WITH_USB,) \ -- $(if-expr defined(VBOX_WITH_EHCI) && defined(VBOX_WITH_USB),VBOX_WITH_EHCI,) \ -- $(if $(VBOX_WITH_EXTPACK),VBOX_WITH_EXTPACK,) \ - $(if $(VBOX_WITH_PCI_PASSTHROUGH),VBOX_WITH_PCI_PASSTHROUGH,) - - VBoxC_DEFS.darwin.x86 = VBOX_WITH_2X_4GB_ADDR_SPACE -@@ -602,7 +597,6 @@ - src-all/SharedFolderImpl.cpp \ - src-all/VirtualBoxBase.cpp \ - src-all/VirtualBoxErrorInfoImpl.cpp \ -- $(if $(VBOX_WITH_EXTPACK),src-all/ExtPackManagerImpl.cpp src-all/ExtPackUtil.cpp,) \ - $(if $(VBOX_WITH_USB_VIDEO),src-client/UsbWebcamInterface.cpp,) \ - $(if $(VBOX_WITH_USB_CARDREADER),src-client/UsbCardReader.cpp,) \ - src-client/AdditionsFacilityImpl.cpp \ -@@ -711,22 +705,6 @@ - endif # !win - - --# --# The VBoxExtPackHelperApp. --# --ifdef VBOX_WITH_EXTPACK -- PROGRAMS += VBoxExtPackHelperApp -- VBoxExtPackHelperApp_TEMPLATE = VBoxR3SetUidToRoot -- VBoxExtPackHelperApp_LDFLAGS.darwin = -framework Security -- VBoxExtPackHelperApp_LDFLAGS.win = /SUBSYSTEM:windows -- VBoxExtPackHelperApp_SOURCES = \ -- src-helper-apps/VBoxExtPackHelperApp.cpp \ -- src-all/ExtPackUtil.cpp -- VBoxExtPackHelperApp_LIBS = \ -- $(LIB_RUNTIME) --endif # VBOX_WITH_EXTPACK -- -- - endif # !VBOX_ONLY_SDK (the ifndef is far above) - - ---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/Makefile.kmk 2012-07-24 23:25:04.575825175 -0300 -+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/Makefile.kmk 2012-07-24 23:25:04.619156084 -0300 -@@ -888,7 +888,6 @@ - $(VBOX_MACOSX_ICON_FILE)=>Resources/virtualbox.icns \ - $(VBOX_BRAND_GUI_VBOX_64PX_PNG)=>Resources/virtualbox.png \ - $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-vbox.icns=>Resources/virtualbox-vbox.icns \ -- $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-vbox-extpack.icns=>Resources/virtualbox-vbox-extpack.icns \ - $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-ovf.icns=>Resources/virtualbox-ovf.icns \ - $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-ova.icns=>Resources/virtualbox-ova.icns \ - $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-vdi.icns=>Resources/virtualbox-vdi.icns \ ---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc 2012-07-24 23:28:17.985011038 -0300 -+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc 2012-07-24 23:28:18.051673913 -0300 -@@ -167,18 +167,6 @@ - <file alias="status_check_32px.png">images/status_check_32px.png</file> - <file alias="status_error_16px.png">images/status_error_16px.png</file> - <file alias="status_error_32px.png">images/status_error_32px.png</file> -- <file alias="extension_pack_16px.png">images/extension_pack_16px.png</file> -- <file alias="extension_pack_disabled_16px.png">images/extension_pack_disabled_16px.png</file> -- <file alias="extension_pack_32px.png">images/extension_pack_32px.png</file> -- <file alias="extension_pack_disabled_32px.png">images/extension_pack_disabled_32px.png</file> -- <file alias="extension_pack_install_16px.png">images/extension_pack_install_16px.png</file> -- <file alias="extension_pack_install_disabled_16px.png">images/extension_pack_install_disabled_16px.png</file> -- <file alias="extension_pack_install_32px.png">images/extension_pack_install_32px.png</file> -- <file alias="extension_pack_install_disabled_32px.png">images/extension_pack_install_disabled_32px.png</file> -- <file alias="extension_pack_uninstall_16px.png">images/extension_pack_uninstall_16px.png</file> -- <file alias="extension_pack_uninstall_disabled_16px.png">images/extension_pack_uninstall_disabled_16px.png</file> -- <file alias="extension_pack_uninstall_32px.png">images/extension_pack_uninstall_32px.png</file> -- <file alias="extension_pack_uninstall_disabled_32px.png">images/extension_pack_uninstall_disabled_32px.png</file> - <file alias="proxy_16px.png">images/proxy_16px.png</file> - <file alias="proxy_disabled_16px.png">images/proxy_disabled_16px.png</file> - <file alias="proxy_32px.png">images/proxy_32px.png</file> ---- VirtualBox-4.1.18.orig/src/VBox/Installer/linux/Makefile.kmk 2012-07-25 00:32:00.780012664 -0300 -+++ VirtualBox-4.1.18/src/VBox/Installer/linux/Makefile.kmk 2012-07-25 00:32:00.806677728 -0300 -@@ -170,11 +170,6 @@ - VBox.sh \ - VBox.png - --ifdef VBOX_WITH_EXTPACK -- VBOX_LNX_STRIP_BIN += \ -- VBoxExtPackHelperApp --endif -- - # Qt4 GUI - ifdef VBOX_WITH_QTGUI - include $(PATH_ROOT)/src/VBox/Frontends/VirtualBox/nls/ApprovedLanguages.kmk -@@ -286,7 +281,7 @@ - - VBOX_MIME_ICONS = \ - $(addprefix $(PATH_ROOT)/src/VBox/Resources/other/,\ -- $(foreach f,ova ovf vbox vbox-extpack vdi vmdk vhd hdd, \ -+ $(foreach f,ova ovf vbox vdi vmdk vhd hdd, \ - $(foreach s,16 20 24 32 48 64 72 96 128 256,\ - virtualbox-$(f)-$(s)px.png=>$(s)x$(s)/virtualbox-$(f).png))) - ---- VirtualBox-4.1.18.orig/src/VBox/Installer/win/Makefile.kmk 2012-07-25 00:34:52.253398525 -0300 -+++ VirtualBox-4.1.18/src/VBox/Installer/win/Makefile.kmk 2012-07-25 00:34:52.300062531 -0300 -@@ -435,7 +435,6 @@ - -E 'VBOX_WITH_DEBUGGER_GUI=$(if-expr defined(VBOX_WITH_DEBUGGER_GUI) && defined(VBOX_WITH_QTGUI),yes,no)' \ - -E 'VBOX_WITH_DOCS_PACKING=$(if $(VBOX_WITH_DOCS_PACKING),yes,no)' \ - -E 'VBOX_WITH_EFIFW_PACKING=$(if $(VBOX_WITH_EFIFW_PACKING),yes,no)' \ -- -E 'VBOX_WITH_EXTPACK=$(if $(VBOX_WITH_EXTPACK),yes,no)' \ - -E 'VBOX_WITH_GUEST_CONTROL=$(if $(VBOX_WITH_GUEST_CONTROL),yes,no)' \ - -E 'VBOX_WITH_GUEST_PROPS=$(if $(VBOX_WITH_GUEST_PROPS),yes,no)' \ - -E 'VBOX_WITH_NETFLT=$(if $(VBOX_WITH_NETFLT),yes,no)' \ ---- VirtualBox-4.1.18.orig/src/VBox/Installer/darwin/Makefile.kmk 2012-07-25 00:36:55.929571374 -0300 -+++ VirtualBox-4.1.18/src/VBox/Installer/darwin/Makefile.kmk 2012-07-25 00:36:55.959569630 -0300 -@@ -629,7 +629,6 @@ - MacOS/VirtualBoxVM \ - MacOS/VBoxNetAdpCtl \ - MacOS/VBoxNetDHCP \ -- MacOS/VBoxExtPackHelperApp \ - MacOS/VBoxBalloonCtrl - ifdef VBOX_WITH_WEBSERVICES - VBOX_DI_VBAPP_PROGS += \ -@@ -659,7 +658,6 @@ - Resources/virtualbox.icns \ - Resources/virtualbox.png \ - Resources/virtualbox-vbox.icns \ -- Resources/virtualbox-vbox-extpack.icns \ - Resources/virtualbox-ovf.icns \ - Resources/virtualbox-ova.icns \ - Resources/virtualbox-vdi.icns \ ---- VirtualBox-4.1.18/src/VBox/Installer/solaris/Makefile.kmk.orig 2012-07-25 00:38:48.476398293 -0300 -+++ VirtualBox-4.1.18/src/VBox/Installer/solaris/Makefile.kmk 2012-07-25 00:38:48.516396159 -0300 -@@ -185,12 +185,12 @@ - - VBOX_MIME_ICONS = \ - $(addprefix $(PATH_ROOT)/src/VBox/Resources/other/,\ -- $(foreach f,ova ovf vbox vbox-extpack vdi vmdk vhd hdd, \ -+ $(foreach f,ova ovf vbox vdi vmdk vhd hdd, \ - $(foreach s,16 20 24 32 48 64 72 96 128 256,\ - virtualbox-$(f)-$(s)px.png=>$(s)x$(s)/mimetypes/virtualbox-$(f).png))) - - SOLARIS_COMMON_ICONS = \ -- $(foreach f,ova ovf vbox vbox-extpack vdi vmdk vhd hdd, \ -+ $(foreach f,ova ovf vbox vdi vmdk vhd hdd, \ - $(foreach s,16 20 24 32 48 64 72 96 128 256,\ - $(s)x$(s)/mimetypes/virtualbox-$(f).png)) - -@@ -210,7 +210,6 @@ - $(if $(VBOX_WITH_VBOXSDL),VBoxSDL,) \ - $(if $(VBOX_WITH_NETADP),VBoxNetAdpCtl,) \ - VBoxNetDHCP \ -- $(if $(VBOX_WITH_EXTPACK),VBoxExtPackHelperApp,) \ - VBoxSVC \ - $(if $(VBOX_WITH_CROGL),VBoxTestOGL,) \ - VBoxXPCOMIPCD \ ---- VirtualBox-4.1.18.orig/src/VBox/Runtime/Makefile.kmk 2012-07-25 00:40:58.745522450 -0300 -+++ VirtualBox-4.1.18/src/VBox/Runtime/Makefile.kmk 2012-07-25 00:40:58.782186960 -0300 -@@ -53,15 +53,6 @@ - # - LIBRARIES += RuntimeR3 RuntimeBldProg - --else ifdef VBOX_ONLY_EXTPACKS_USE_IMPLIBS -- # -- # Build docs only - need just regular R3 runtime. -- # -- LIBRARIES += RuntimeBldProg -- LIBRARIES.solaris += RuntimeR0Stub -- LIBRARIES.win += RuntimeR0Stub RuntimeRCStub -- include $(PATH_SUB_CURRENT)/tools/Makefile.kmk -- - else # !VBOX_ONLY_ADDITIONS && !VBOX_ONLY_TESTSUITE && !VBOX_ONLY_DOCS - - # diff --git a/libre/virtualbox-libre-modules-lts/os_blag.png b/libre/virtualbox-libre-modules-lts/os_blag.png Binary files differdeleted file mode 100755 index 61995ca10..000000000 --- a/libre/virtualbox-libre-modules-lts/os_blag.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_blag_64.png b/libre/virtualbox-libre-modules-lts/os_blag_64.png Binary files differdeleted file mode 100755 index aa4463a97..000000000 --- a/libre/virtualbox-libre-modules-lts/os_blag_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_dragora.png b/libre/virtualbox-libre-modules-lts/os_dragora.png Binary files differdeleted file mode 100755 index d1df45880..000000000 --- a/libre/virtualbox-libre-modules-lts/os_dragora.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_dragora_64.png b/libre/virtualbox-libre-modules-lts/os_dragora_64.png Binary files differdeleted file mode 100755 index 64bcecf20..000000000 --- a/libre/virtualbox-libre-modules-lts/os_dragora_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_dynebolic.png b/libre/virtualbox-libre-modules-lts/os_dynebolic.png Binary files differdeleted file mode 100755 index 67b07d4c0..000000000 --- a/libre/virtualbox-libre-modules-lts/os_dynebolic.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_gnewsense.png b/libre/virtualbox-libre-modules-lts/os_gnewsense.png Binary files differdeleted file mode 100755 index 76d9e38b3..000000000 --- a/libre/virtualbox-libre-modules-lts/os_gnewsense.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_gnewsense_64.png b/libre/virtualbox-libre-modules-lts/os_gnewsense_64.png Binary files differdeleted file mode 100755 index 8859c34e8..000000000 --- a/libre/virtualbox-libre-modules-lts/os_gnewsense_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_gnu.png b/libre/virtualbox-libre-modules-lts/os_gnu.png Binary files differdeleted file mode 100755 index 26c4550f9..000000000 --- a/libre/virtualbox-libre-modules-lts/os_gnu.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_gnu_64.png b/libre/virtualbox-libre-modules-lts/os_gnu_64.png Binary files differdeleted file mode 100755 index 4161634e9..000000000 --- a/libre/virtualbox-libre-modules-lts/os_gnu_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_gnuhurd.png b/libre/virtualbox-libre-modules-lts/os_gnuhurd.png Binary files differdeleted file mode 100755 index 26c4550f9..000000000 --- a/libre/virtualbox-libre-modules-lts/os_gnuhurd.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_gnulinux.png b/libre/virtualbox-libre-modules-lts/os_gnulinux.png Binary files differdeleted file mode 100755 index 26c4550f9..000000000 --- a/libre/virtualbox-libre-modules-lts/os_gnulinux.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_gnulinux_64.png b/libre/virtualbox-libre-modules-lts/os_gnulinux_64.png Binary files differdeleted file mode 100755 index 4161634e9..000000000 --- a/libre/virtualbox-libre-modules-lts/os_gnulinux_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_musix.png b/libre/virtualbox-libre-modules-lts/os_musix.png Binary files differdeleted file mode 100755 index fb7b94577..000000000 --- a/libre/virtualbox-libre-modules-lts/os_musix.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_musix_64.png b/libre/virtualbox-libre-modules-lts/os_musix_64.png Binary files differdeleted file mode 100755 index a1bbbbf3a..000000000 --- a/libre/virtualbox-libre-modules-lts/os_musix_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_os64base.png b/libre/virtualbox-libre-modules-lts/os_os64base.png Binary files differdeleted file mode 100755 index 7aec20314..000000000 --- a/libre/virtualbox-libre-modules-lts/os_os64base.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_os64base.xcf b/libre/virtualbox-libre-modules-lts/os_os64base.xcf Binary files differdeleted file mode 100755 index d8e28e35e..000000000 --- a/libre/virtualbox-libre-modules-lts/os_os64base.xcf +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_osbase.png b/libre/virtualbox-libre-modules-lts/os_osbase.png Binary files differdeleted file mode 100755 index 00f197fca..000000000 --- a/libre/virtualbox-libre-modules-lts/os_osbase.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_osbase.xcf b/libre/virtualbox-libre-modules-lts/os_osbase.xcf Binary files differdeleted file mode 100755 index c4463c857..000000000 --- a/libre/virtualbox-libre-modules-lts/os_osbase.xcf +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_parabola.png b/libre/virtualbox-libre-modules-lts/os_parabola.png Binary files differdeleted file mode 100755 index 757abc484..000000000 --- a/libre/virtualbox-libre-modules-lts/os_parabola.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_parabola_64.png b/libre/virtualbox-libre-modules-lts/os_parabola_64.png Binary files differdeleted file mode 100755 index 5ac7c2767..000000000 --- a/libre/virtualbox-libre-modules-lts/os_parabola_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_trisquel.png b/libre/virtualbox-libre-modules-lts/os_trisquel.png Binary files differdeleted file mode 100755 index c6f0d3d7a..000000000 --- a/libre/virtualbox-libre-modules-lts/os_trisquel.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_trisquel_64.png b/libre/virtualbox-libre-modules-lts/os_trisquel_64.png Binary files differdeleted file mode 100755 index ebca3dd43..000000000 --- a/libre/virtualbox-libre-modules-lts/os_trisquel_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_ututo.png b/libre/virtualbox-libre-modules-lts/os_ututo.png Binary files differdeleted file mode 100755 index e1dffb575..000000000 --- a/libre/virtualbox-libre-modules-lts/os_ututo.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_ututo_64.png b/libre/virtualbox-libre-modules-lts/os_ututo_64.png Binary files differdeleted file mode 100755 index 158468e0a..000000000 --- a/libre/virtualbox-libre-modules-lts/os_ututo_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_venenux.png b/libre/virtualbox-libre-modules-lts/os_venenux.png Binary files differdeleted file mode 100755 index 5e0c1585d..000000000 --- a/libre/virtualbox-libre-modules-lts/os_venenux.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/virtualbox-libre-parabola-modules-lts.install b/libre/virtualbox-libre-modules-lts/virtualbox-libre-guest-modules-lts.install index 54a052390..54a052390 100755..100644 --- a/libre/virtualbox-libre-modules-lts/virtualbox-libre-parabola-modules-lts.install +++ b/libre/virtualbox-libre-modules-lts/virtualbox-libre-guest-modules-lts.install diff --git a/libre/virtualbox-libre-modules-lts/virtualbox-libre-modules-lts.install b/libre/virtualbox-libre-modules-lts/virtualbox-libre-host-modules-lts.install index 5387563a6..4503996e8 100755..100644 --- a/libre/virtualbox-libre-modules-lts/virtualbox-libre-modules-lts.install +++ b/libre/virtualbox-libre-modules-lts/virtualbox-libre-host-modules-lts.install @@ -1,7 +1,7 @@ EXTRAMODULES='extramodules-3.0-LIBRE-LTS' post_install() { -/bin/cat << EOF +cat << EOF ===> You must load vboxdrv module before starting VirtualBox: ===> # modprobe vboxdrv EOF diff --git a/libre/virtualbox-libre-modules/60-vboxguest.rules b/libre/virtualbox-libre-modules/60-vboxguest.rules deleted file mode 100755 index 6285f7249..000000000 --- a/libre/virtualbox-libre-modules/60-vboxguest.rules +++ /dev/null @@ -1,2 +0,0 @@ -ACTION=="add", KERNEL=="vboxguest", SUBSYSTEM=="misc", OWNER="root", MODE="0600" -ACTION=="add", KERNEL=="vboxuser", SUBSYSTEM=="misc", OWNER="root", MODE="0666" diff --git a/libre/virtualbox-libre-modules/LocalConfig.kmk b/libre/virtualbox-libre-modules/LocalConfig.kmk deleted file mode 100755 index af79f90cd..000000000 --- a/libre/virtualbox-libre-modules/LocalConfig.kmk +++ /dev/null @@ -1,19 +0,0 @@ -VBOX_WITH_ADDITION_DRIVERS = -VBOX_WITH_INSTALLER = 1 -VBOX_WITH_LINUX_ADDITIONS = 1 -VBOX_WITH_X11_ADDITIONS = -VBOX_WITH_TESTCASES = -VBOX_WITH_TESTSUITE = -VBOX_WITH_ORIGIN := -VBOX_PATH_APP_PRIVATE_ARCH := /usr/lib/virtualbox -VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH) -VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH) -VBOX_PATH_APP_PRIVATE := /usr/share/virtualbox -VBOX_PATH_APP_DOCS := /usr/share/virtualbox -VBOX_WITH_REGISTRATION_REQUEST = -VBOX_WITH_UPDATE_REQUEST = -VBOX_WITH_VNC := 1 -VBOX_BLD_PYTHON = python2 -VBOX_JAVA_HOME = /usr/lib/jvm/java-6-openjdk -VBOX_GCC_WERR = -VBOX_GCC_WARN = diff --git a/libre/virtualbox-libre-modules/PKGBUILD b/libre/virtualbox-libre-modules/PKGBUILD index 917a14f0c..8d3f61b3a 100755 --- a/libre/virtualbox-libre-modules/PKGBUILD +++ b/libre/virtualbox-libre-modules/PKGBUILD @@ -1,161 +1,71 @@ # $Id$ -#Maintainer: Ionut Biru <ibiru@archlinux.org> -#Maintainer (Parabola): Jorge López <jorginho@lavabit.com> -#Contributor (Parabola): André Silva <emulatorman@lavabit.com> +# Maintainer: Ionut Biru <ibiru@archlinux.org> +# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org> +# Maintainer (Parabola): Jorge López <jorginho@lavabit.com> +# Maintainer (Parabola): André Silva <emulatorman@lavabit.com> pkgbase=virtualbox-libre-modules -pkgname=('virtualbox-libre-modules' 'virtualbox-libre-parabola-modules') -pkgver=4.1.22 -pkgrel=1 +pkgname=('virtualbox-libre-host-modules' 'virtualbox-libre-guest-modules') +pkgver=4.2.0 +pkgrel=2 arch=('i686' 'x86_64') url='http://virtualbox.org' license=('GPL') -makedepends=('libstdc++5' 'bin86' 'dev86' 'iasl' 'libxslt' 'libxml2' 'libpng' 'libidl2' 'xalan-c' 'sdl-libre' 'linux-libre-headers') -[[ $CARCH == "x86_64" ]] && makedepends=("${makedepends[@]}" 'gcc-multilib' 'lib32-glibc') -source=(http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}.tar.bz2 - LocalConfig.kmk 60-vboxguest.rules os_blag_64.png os_blag.png - os_dragora_64.png os_dragora.png os_dynebolic.png os_gnewsense_64.png os_gnewsense.png - os_gnu_64.png os_gnuhurd.png os_gnulinux_64.png os_gnulinux.png os_gnu.png - os_musix_64.png os_musix.png os_parabola_64.png os_parabola.png os_trisquel_64.png - os_trisquel.png os_ututo_64.png os_ututo.png os_venenux.png libre.patch - free-distros.patch) -md5sums=('84c5beeead094ce52d098105897aadbb' - '4c88bd122677a35f68abd76eb01b378b' - 'ed1341881437455d9735875ddf455fbe' - '8538dba8686d7449cb481c9bae9d722a' - '545c925b46f2ac95e5f8ae407fad101a' - 'f6416f509c2e5460e4dc624e0a57f3c1' - 'bbfb59dd517c020a23701b480187a355' - 'efacfdb61918286ea9bc89866b8fd239' - '7c3eb09995e8bafeef414374e44ad4ce' - 'a49ed3ab6bd0fb084de0ab3dd97ae93e' - '6b432b3305ed446125eef052c38355a6' - 'a70022a468bd3e9daf01818d2d74ac3c' - '6b432b3305ed446125eef052c38355a6' - 'a70022a468bd3e9daf01818d2d74ac3c' - 'a70022a468bd3e9daf01818d2d74ac3c' - '380eb2ab6cad3da198094585853c129c' - 'a60bb9a98abcc3c34156f9051d00df9a' - '3a908ef6952bcf987e63ef2fe4e98d24' - '02e87c39c353634cecacf98f1707fa15' - '0cf41a41e7a415d404d5584e047fd450' - '449cde3b58390284b59c5d663de3edc9' - 'c7951fe6888d939f3a7d0dafe477e82b' - '4da8eeb2ece7e475fc7a0d1003da26c6' - '5e4187af59726d71c5be48d0cd816c34' - 'a9e4724b56ddf99bb2e9a8fab8ad43ba' - '1e47d90affabfbf6dbb07d9d42742d6a') - -_extramodules=extramodules-3.5-LIBRE - - - +makedepends=('linux-libre-headers' + "virtualbox-libre-host-source>=$pkgver" + "virtualbox-libre-guest-source>=$pkgver" + 'expac') build() { - _kernver="$(cat /usr/lib/modules/${_extramodules}/version || true)" - - export KERN_DIR=/usr/lib/modules/${_kernver}/build - export KERN_INCL=/usr/src/linux-${_kernver}/include/ - - cd "$srcdir/VirtualBox-${pkgver}" - - patch -Np1 -i "$srcdir/libre.patch" - patch -Np1 -i "$srcdir/free-distros.patch" - - ## Removing Nonfree directories - rm -rv "./include/VBox/ExtPack" - rm -rv "./src/VBox/ExtPacks" - rm -rv "./src/VBox/Main/src-helper-apps" - - ## Removing Oracle VM VirtualBox Extension Pack icons - rm -v "./src/VBox/Resources/darwin/virtualbox-vbox-extpack.icns" - rm -v "./src/VBox/Resources/other/virtualbox-vbox-extpack-"{16px,20px,24px,32px,40px,48px,64px,72px,80px,96px,128px,256px,512px}.png - rm -v "./src/VBox/Resources/win/OSE/virtualbox-vbox-extpack.ico" - rm -v "./src/VBox/Frontends/VirtualBox/images/extension_pack_"{16px,32px,disabled{_16px,_32px},install{_16px,_32px},install_disabled{_16px,_32px},uninstall{_16px,_32px},uninstall_disabled{_16px,_32px}}.png - - ## Adding free distros icons - for i in {gnuhurd,dynebolic,venenux,{gnu{,linux},parabola,gnewsense,blag,dragora,ututo,musix,trisquel}{,_64}}; do - cp -v "$srcdir/os_${i}.png" "./src/VBox/Frontends/VirtualBox/images" - done - - ## Removing non-free OS icons - rm -v "./src/VBox/Frontends/VirtualBox/images/os_"{{{arch,turbo}linux,debian,fedora,gentoo,linux{24,26},macosx,mandriva,{free,net,open}bsd,redhat,solaris,opensuse,oracle{,solaris},ubuntu,win{2k{3,8},7,8,vista,xp},xandros}{,_64},dos,jrockitve,l4,linux{,22,_other},netware,qnx,os2{_other,ecs,warp{3,4,45}},win{2k,31,95,98,_other,me,nt4}}.png - - cp "$srcdir/LocalConfig.kmk" . - - ./configure \ - --with-linux=/usr/src/linux-${_kernver} \ - --disable-java \ - --disable-docs \ - --disable-xpcom \ - --disable-python \ - --disable-sdl-ttf \ - --disable-alsa \ - --disable-pulse \ - --disable-dbus \ - --disable-opengl \ - --build-headless \ - --nofatal - source ./env.sh - kmk all - - make -C "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/src" - make -C "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src" + # current kernel libre version + _kernver=$(expac -Q '%v' linux-libre-headers)-LIBRE + # dkms need modification to be run as user + cp -r /var/lib/dkms . + echo "dkms_tree='$srcdir/dkms'" > dkms.conf + # build host modules + msg2 'Host modules' + dkms --dkmsframework dkms.conf build "vboxhost/$pkgver" -k "$_kernver" + # build guest modules + msg2 'Guest modules' + dkms --dkmsframework dkms.conf build "vboxguest/$pkgver" -k "$_kernver" } -package_virtualbox-libre-parabola-modules(){ - pkgdesc="Additions only for Parabola guests (kernel libre modules)" - license=('GPL') - install=virtualbox-libre-parabola-modules.install - depends=('linux-libre>=3.5' 'linux-libre<3.6') - replaces=('virtualbox-archlinux-modules') - conflicts=('virtualbox-archlinux-modules') - provides=("virtualbox-archlinux-modules=$pkgver") - - source "$srcdir/VirtualBox-${pkgver}/env.sh" - - cd "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src" - - for module in vboxguest.ko vboxsf.ko vboxvideo.ko; do - install -D -m644 ${module} \ - "$pkgdir/usr/lib/modules/${_extramodules}/${module}" - done - - install -D -m 0644 "$srcdir/60-vboxguest.rules" \ - "$pkgdir/usr/lib/udev/rules.d/60-vboxguest.rules" - - find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \; - - sed -i -e "s/EXTRAMODULES='.*'/EXTRAMODULES='${_extramodules}'/" "$startdir/virtualbox-libre-parabola-modules.install" +package_virtualbox-libre-host-modules(){ + pkgdesc='Host kernel libre modules for VirtualBox' + depends=('linux-libre>=3.5' 'linux-libre<3.6') + provides=("virtualbox-host-modules=${pkgver}") + replaces=('virtualbox-host-modules' 'virtualbox-modules' 'virtualbox-libre-modules') + conflicts=('virtualbox-host-modules' 'virtualbox-modules' 'virtualbox-libre-modules') + install=virtualbox-libre-host-modules.install + + _kernver=$(expac -Q '%v' linux-libre-headers)-LIBRE + _extraver=extramodules-${_kernver%.*}-LIBRE + + install -dm755 "$pkgdir/usr/lib/modules/$_extraver" + cd "dkms/vboxhost/$pkgver/$_kernver/$CARCH/module" + install -m644 * "$pkgdir/usr/lib/modules/$_extraver" + find "$pkgdir" -name '*.ko' -exec gzip -9 {} + + sed -ie "s/EXTRAMODULES='.*'/EXTRAMODULES='$_extraver'/" "$startdir/virtualbox-libre-host-modules.install" } -package_virtualbox-libre-modules(){ - pkgdesc="Kernel libre modules for VirtualBox" - license=('GPL') - install=virtualbox-libre-modules.install - depends=('linux-libre>=3.5' 'linux-libre<3.6') - replaces=('virtualbox-modules') - conflicts=('virtualbox-modules') - provides=("virtualbox-modules=$pkgver") - - source "$srcdir/VirtualBox-${pkgver}/env.sh" - - - cd "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/src" - - install -D -m644 vboxdrv.ko \ - "$pkgdir/usr/lib/modules/${_extramodules}/vboxdrv.ko" - - install -D -m644 vboxnetadp.ko \ - "$pkgdir/usr/lib/modules/${_extramodules}/vboxnetadp.ko" - - install -D -m644 vboxnetflt.ko \ - "$pkgdir/usr/lib/modules/${_extramodules}/vboxnetflt.ko" - - install -D -m644 vboxpci.ko \ - "$pkgdir/usr/lib/modules/${_extramodules}/vboxpci.ko" +package_virtualbox-libre-guest-modules(){ + pkgdesc='Guest kernel libre modules for VirtualBox' + license=('GPL') + depends=('linux-libre>=3.5' 'linux-libre<3.6') + provides=("virtualbox-guest-modules=${pkgver}") + replaces=('virtualbox-guest-modules' 'virtualbox-archlinux-modules' 'virtualbox-parabola-modules') + conflicts=('virtualbox-guest-modules' 'virtualbox-archlinux-modules' 'virtualbox-parabola-modules') + install=virtualbox-libre-guest-modules.install + + _kernver=$(expac -Q '%v' linux-libre-headers)-LIBRE + _extraver=extramodules-${_kernver%.*}-LIBRE + + install -dm755 "$pkgdir/usr/lib/modules/$_extraver" + cd "dkms/vboxguest/$pkgver/$_kernver/$CARCH/module" + install -m644 * "$pkgdir/usr/lib/modules/$_extraver" + find "$pkgdir" -name '*.ko' -exec gzip -9 {} + + sed -ie "s/EXTRAMODULES='.*'/EXTRAMODULES='$_extraver'/" "$startdir/virtualbox-libre-host-modules.install" +} - find "${pkgdir}" -name '*.ko' -exec gzip -9 {} + - sed -i -e "s/EXTRAMODULES='.*'/EXTRAMODULES='${_extramodules}'/" "$startdir/virtualbox-libre-modules.install" -} +# vim:set ts=2 sw=2 et: diff --git a/libre/virtualbox-libre-modules/build.sh b/libre/virtualbox-libre-modules/build.sh new file mode 100755 index 000000000..87aefbff0 --- /dev/null +++ b/libre/virtualbox-libre-modules/build.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +if (( $# != 1 )); then + echo "usage: $0 extra" + echo " $0 testing" + exit 1 +fi + +$1-i686-build +linux32 makechrootpkg -I ../../virtualbox/trunk/virtualbox-libre-host-source-*-i686.pkg.tar.xz -r /var/lib/archbuild/$1-i686 +linux32 makechrootpkg -I ../../virtualbox/trunk/virtualbox-libre-guest-source-*-i686.pkg.tar.xz -r /var/lib/archbuild/$1-i686 +linux32 makechrootpkg -r /var/lib/archbuild/$1-i686 + +$1-x86_64-build +makechrootpkg -I ../../virtualbox/trunk/virtualbox-libre-host-source-*-x86_64.pkg.tar.xz -r /var/lib/archbuild/$1-x86_64 +makechrootpkg -I ../../virtualbox/trunk/virtualbox-libre-guest-source-*-x86_64.pkg.tar.xz -r /var/lib/archbuild/$1-x86_64 +makechrootpkg -r /var/lib/archbuild/$1-x86_64 + + +# vim:set ts=2 sw=2 ft=sh et: diff --git a/libre/virtualbox-libre-modules/free-distros.patch b/libre/virtualbox-libre-modules/free-distros.patch deleted file mode 100755 index 47857e05d..000000000 --- a/libre/virtualbox-libre-modules/free-distros.patch +++ /dev/null @@ -1,1383 +0,0 @@ ---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.cpp 2012-07-25 14:51:03.569003667 -0300 -+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.cpp 2012-07-25 14:51:03.652333615 -0300 -@@ -44,94 +44,38 @@ - * first matching string found, will be used. */ - static const osTypePattern gs_OSTypePattern[] = - { -- { QRegExp("DOS", Qt::CaseInsensitive), "DOS" }, - -- /* Windows */ -- { QRegExp("Wi.*98", Qt::CaseInsensitive), "Windows98" }, -- { QRegExp("Wi.*95", Qt::CaseInsensitive), "Windows95" }, -- { QRegExp("Wi.*Me", Qt::CaseInsensitive), "WindowsMe" }, -- { QRegExp("(Wi.*NT)|(NT4)", Qt::CaseInsensitive), "WindowsNT4" }, -- { QRegExp("((Wi.*XP)|(\\bXP\\b)).*64", Qt::CaseInsensitive), "WindowsXP_64" }, -- { QRegExp("(Wi.*XP)|(\\bXP\\b)", Qt::CaseInsensitive), "WindowsXP" }, -- { QRegExp("((Wi.*2003)|(W2K3)).*64", Qt::CaseInsensitive), "Windows2003_64" }, -- { QRegExp("(Wi.*2003)|(W2K3)", Qt::CaseInsensitive), "Windows2003" }, -- { QRegExp("((Wi.*V)|(Vista)).*64", Qt::CaseInsensitive), "WindowsVista_64" }, -- { QRegExp("(Wi.*V)|(Vista)", Qt::CaseInsensitive), "WindowsVista" }, -- { QRegExp("((Wi.*2008)|(W2K8)).*64", Qt::CaseInsensitive), "Windows2008_64" }, -- { QRegExp("(Wi.*2008)|(W2K8)", Qt::CaseInsensitive), "Windows2008" }, -- { QRegExp("(Wi.*2000)|(W2K)", Qt::CaseInsensitive), "Windows2000" }, -- { QRegExp("(Wi.*7.*64)|(W7.*64)", Qt::CaseInsensitive), "Windows7_64" }, -- { QRegExp("(Wi.*7)|(W7)", Qt::CaseInsensitive), "Windows7" }, -- { QRegExp("(Wi.*8.*64)|(W8.*64)", Qt::CaseInsensitive), "Windows8_64" }, -- { QRegExp("(Wi.*8)|(W8)", Qt::CaseInsensitive), "Windows8" }, -- { QRegExp("Wi.*3", Qt::CaseInsensitive), "Windows31" }, -- { QRegExp("Wi", Qt::CaseInsensitive), "WindowsXP" }, -- -- /* Solaris */ -- { QRegExp("((Op.*So)|(os20[01][0-9])|(So.*1[01])|(India)|(Neva)).*64", Qt::CaseInsensitive), "OpenSolaris_64" }, -- { QRegExp("(Op.*So)|(os20[01][0-9])|(So.*1[01])|(India)|(Neva)", Qt::CaseInsensitive), "OpenSolaris" }, -- { QRegExp("So.*64", Qt::CaseInsensitive), "Solaris_64" }, -- { QRegExp("So", Qt::CaseInsensitive), "Solaris" }, -- -- /* OS/2 */ -- { QRegExp("OS[/|!-]{,1}2.*W.*4.?5", Qt::CaseInsensitive), "OS2Warp45" }, -- { QRegExp("OS[/|!-]{,1}2.*W.*4", Qt::CaseInsensitive), "OS2Warp4" }, -- { QRegExp("OS[/|!-]{,1}2.*W", Qt::CaseInsensitive), "OS2Warp3" }, -- { QRegExp("(OS[/|!-]{,1}2.*e)|(eCS.*)", Qt::CaseInsensitive), "OS2eCS" }, -- { QRegExp("OS[/|!-]{,1}2", Qt::CaseInsensitive), "OS2" }, -- -- /* Code names for Linux distributions */ -- { QRegExp("((edgy)|(feisty)|(gutsy)|(hardy)|(intrepid)|(jaunty)|(karmic)|(lucid)|(maverick)|(natty)|(oneiric)|(precise)).*64", Qt::CaseInsensitive), "Ubuntu_64" }, -- { QRegExp("(edgy)|(feisty)|(gutsy)|(hardy)|(intrepid)|(jaunty)|(karmic)|(lucid)|(maverick)|(natty)|(oneiric)|(precise)", Qt::CaseInsensitive), "Ubuntu" }, -- { QRegExp("((sarge)|(etch)|(lenny)|(squeeze)|(wheezy)|(sid)).*64", Qt::CaseInsensitive), "Debian_64" }, -- { QRegExp("(sarge)|(etch)|(lenny)|(squeeze)|(wheezy)|(sid)", Qt::CaseInsensitive), "Debian" }, -- { QRegExp("((moonshine)|(werewolf)|(sulphur)|(cambridge)|(leonidas)|(constantine)|(goddard)|(laughlin)|(lovelock)|(verne)).*64", Qt::CaseInsensitive), "Fedora_64" }, -- { QRegExp("(moonshine)|(werewolf)|(sulphur)|(cambridge)|(leonidas)|(constantine)|(goddard)|(laughlin)|(lovelock)|(verne)", Qt::CaseInsensitive), "Fedora" }, -- -- /* Regular names of Linux distributions */ -- { QRegExp("Arc.*64", Qt::CaseInsensitive), "ArchLinux_64" }, -- { QRegExp("Arc", Qt::CaseInsensitive), "ArchLinux" }, -- { QRegExp("Deb.*64", Qt::CaseInsensitive), "Debian_64" }, -- { QRegExp("Deb", Qt::CaseInsensitive), "Debian" }, -- { QRegExp("((SU)|(Nov)|(SLE)).*64", Qt::CaseInsensitive), "OpenSUSE_64" }, -- { QRegExp("(SU)|(Nov)|(SLE)", Qt::CaseInsensitive), "OpenSUSE" }, -- { QRegExp("Fe.*64", Qt::CaseInsensitive), "Fedora_64" }, -- { QRegExp("Fe", Qt::CaseInsensitive), "Fedora" }, -- { QRegExp("((Gen)|(Sab)).*64", Qt::CaseInsensitive), "Gentoo_64" }, -- { QRegExp("(Gen)|(Sab)", Qt::CaseInsensitive), "Gentoo" }, -- { QRegExp("Man.*64", Qt::CaseInsensitive), "Mandriva_64" }, -- { QRegExp("Man", Qt::CaseInsensitive), "Mandriva" }, -- { QRegExp("((Red)|(rhel)|(cen)).*64", Qt::CaseInsensitive), "RedHat_64" }, -- { QRegExp("(Red)|(rhel)|(cen)", Qt::CaseInsensitive), "RedHat" }, -- { QRegExp("Tur.*64", Qt::CaseInsensitive), "Turbolinux_64" }, -- { QRegExp("Tur", Qt::CaseInsensitive), "Turbolinux" }, -- { QRegExp("Ub.*64", Qt::CaseInsensitive), "Ubuntu_64" }, -- { QRegExp("Ub", Qt::CaseInsensitive), "Ubuntu" }, -- { QRegExp("Xa.*64", Qt::CaseInsensitive), "Xandros_64" }, -- { QRegExp("Xa", Qt::CaseInsensitive), "Xandros" }, -- { QRegExp("((Or)|(oel)).*64", Qt::CaseInsensitive), "Oracle_64" }, -- { QRegExp("(Or)|(oel)", Qt::CaseInsensitive), "Oracle" }, -- { QRegExp("((Li)|(lnx)).*2.?2", Qt::CaseInsensitive), "Linux22" }, -- { QRegExp("((Li)|(lnx)).*2.?4.*64", Qt::CaseInsensitive), "Linux24_64" }, -- { QRegExp("((Li)|(lnx)).*2.?4", Qt::CaseInsensitive), "Linux24" }, -- { QRegExp("((((Li)|(lnx)).*2.?6)|(LFS)).*64", Qt::CaseInsensitive), "Linux26_64" }, -- { QRegExp("(((Li)|(lnx)).*2.?6)|(LFS)", Qt::CaseInsensitive), "Linux26" }, -- { QRegExp("((Li)|(lnx)).*64", Qt::CaseInsensitive), "Linux26_64" }, -- { QRegExp("(Li)|(lnx)", Qt::CaseInsensitive), "Linux26" }, -+ /* Code names for GNU/Linux distributions */ -+ { QRegExp("((Taranis)|(Dagda)|(Brigantia)).*64", Qt::CaseInsensitive), "Trisquel_64" }, -+ { QRegExp("(Taranis)|(Dagda)|(Brigantia)", Qt::CaseInsensitive), "Trisquel" }, -+ { QRegExp("((metad)|(parkes)|(three)).*64", Qt::CaseInsensitive), "gNewSense_64" }, -+ { QRegExp("(deltah)|(metad)|(parkes)|(three)", Qt::CaseInsensitive), "gNewSense" }, -+ { QRegExp("((90k)|(119k)|(140k)|(160k)|(90000)|(119000)|(140000)|(160000)|(Spartakus)).*64", Qt::CaseInsensitive), "Blag_64" }, -+ { QRegExp("(90k)|(119k)|(140k)|(160k)|(90000)|(119000)|(140000)|(160000)|(Spartakus)", Qt::CaseInsensitive), "Blag" }, -+ -+ /* Regular names of GNU/Linux distributions and GNU-Hurd */ -+ { QRegExp("Pa.*64", Qt::CaseInsensitive), "Parabola_64" }, -+ { QRegExp("Pa", Qt::CaseInsensitive), "Parabola" }, -+ { QRegExp("((gNe)|(new)|(Sen)).*64", Qt::CaseInsensitive), "gNewSense_64" }, -+ { QRegExp("(gNe)|(new)|(Sen)", Qt::CaseInsensitive), "gNewSense" }, -+ { QRegExp("Bla.*64", Qt::CaseInsensitive), "Blag_64" }, -+ { QRegExp("Bla", Qt::CaseInsensitive), "Blag" }, -+ { QRegExp("Dra.*64", Qt::CaseInsensitive), "Dragora_64" }, -+ { QRegExp("Dra", Qt::CaseInsensitive), "Dragora" }, -+ { QRegExp("((Utu)|(XS)).*64", Qt::CaseInsensitive), "Ututo_64" }, -+ { QRegExp("(Utu)|(XS)", Qt::CaseInsensitive), "Ututo" }, -+ { QRegExp("Mus.*64", Qt::CaseInsensitive), "Musix_64" }, -+ { QRegExp("Mus", Qt::CaseInsensitive), "Musix" }, -+ { QRegExp("Tri.*64", Qt::CaseInsensitive), "Trisquel_64" }, -+ { QRegExp("Tri", Qt::CaseInsensitive), "Trisquel" }, -+ { QRegExp("Dyn", Qt::CaseInsensitive), "Dynebolic" }, -+ { QRegExp("Ven", Qt::CaseInsensitive), "Venenux" }, -+ { QRegExp("GNU", Qt::CaseInsensitive), "GNU" }, -+ { QRegExp("Hu", Qt::CaseInsensitive), "GNUHurd" }, -+ { QRegExp("((Li)|(lnx)).*64", Qt::CaseInsensitive), "GNULinux_64" }, -+ { QRegExp("(Li)|(lnx)", Qt::CaseInsensitive), "GNULinux" }, - - /* Other */ -- { QRegExp("L4", Qt::CaseInsensitive), "L4" }, -- { QRegExp("((Fr.*B)|(fbsd)).*64", Qt::CaseInsensitive), "FreeBSD_64" }, -- { QRegExp("(Fr.*B)|(fbsd)", Qt::CaseInsensitive), "FreeBSD" }, -- { QRegExp("Op.*B.*64", Qt::CaseInsensitive), "OpenBSD_64" }, -- { QRegExp("Op.*B", Qt::CaseInsensitive), "OpenBSD" }, -- { QRegExp("Ne.*B.*64", Qt::CaseInsensitive), "NetBSD_64" }, -- { QRegExp("Ne.*B", Qt::CaseInsensitive), "NetBSD" }, -- { QRegExp("QN", Qt::CaseInsensitive), "QNX" }, -- { QRegExp("((Mac)|(Tig)|(Leop)|(osx)).*64", Qt::CaseInsensitive), "MacOS_64" }, -- { QRegExp("(Mac)|(Tig)|(Leop)|(osx)", Qt::CaseInsensitive), "MacOS" }, -- { QRegExp("Net", Qt::CaseInsensitive), "Netware" }, -- { QRegExp("Rocki", Qt::CaseInsensitive), "JRockitVE" }, - { QRegExp("Ot", Qt::CaseInsensitive), "Other" }, - }; - ---- VirtualBox-4.1.18.orig/src/VBox/Main/xml/Settings.cpp 2012-07-25 15:14:50.498764160 -0300 -+++ VirtualBox-4.1.18/src/VBox/Main/xml/Settings.cpp 2012-07-25 15:14:50.548761649 -0300 -@@ -3227,40 +3227,18 @@ - } aConvertOSTypes[] = - { - { "unknown", "Other" }, -- { "dos", "DOS" }, -- { "win31", "Windows31" }, -- { "win95", "Windows95" }, -- { "win98", "Windows98" }, -- { "winme", "WindowsMe" }, -- { "winnt4", "WindowsNT4" }, -- { "win2k", "Windows2000" }, -- { "winxp", "WindowsXP" }, -- { "win2k3", "Windows2003" }, -- { "winvista", "WindowsVista" }, -- { "win2k8", "Windows2008" }, -- { "os2warp3", "OS2Warp3" }, -- { "os2warp4", "OS2Warp4" }, -- { "os2warp45", "OS2Warp45" }, -- { "ecs", "OS2eCS" }, -- { "linux22", "Linux22" }, -- { "linux24", "Linux24" }, -- { "linux26", "Linux26" }, -- { "archlinux", "ArchLinux" }, -- { "debian", "Debian" }, -- { "opensuse", "OpenSUSE" }, -- { "fedoracore", "Fedora" }, -- { "gentoo", "Gentoo" }, -- { "mandriva", "Mandriva" }, -- { "redhat", "RedHat" }, -- { "ubuntu", "Ubuntu" }, -- { "xandros", "Xandros" }, -- { "freebsd", "FreeBSD" }, -- { "openbsd", "OpenBSD" }, -- { "netbsd", "NetBSD" }, -- { "netware", "Netware" }, -- { "solaris", "Solaris" }, -- { "opensolaris", "OpenSolaris" }, -- { "l4", "L4" } -+ { "gnu", "GNU" }, -+ { "gnuhurd", "GNUHurd" }, -+ { "gnulinux", "GNULinux" }, -+ { "parabola", "Parabola" }, -+ { "gnewsense", "gNewSense" }, -+ { "blag", "Blag" }, -+ { "dragora", "Dragora" }, -+ { "ututo", "Ututo" }, -+ { "musix", "Musix" }, -+ { "trisquel", "Trisquel" }, -+ { "dynebolic", "Dynebolic" }, -+ { "venenux", "Venenux" }, - }; - - void MachineConfigFile::convertOldOSType_pre1_5(Utf8Str &str) ---- VirtualBox-4.1.18.orig/src/VBox/Main/xml/SettingsConverter.xsl 2012-07-25 15:21:04.553581275 -0300 -+++ VirtualBox-4.1.18/src/VBox/Main/xml/SettingsConverter.xsl 2012-07-25 15:21:04.593579427 -0300 -@@ -729,40 +729,18 @@ - <xsl:attribute name="OSType"> - <xsl:choose> - <xsl:when test="@OSType='unknown'">Other</xsl:when> -- <xsl:when test="@OSType='dos'">DOS</xsl:when> -- <xsl:when test="@OSType='win31'">Windows31</xsl:when> -- <xsl:when test="@OSType='win95'">Windows95</xsl:when> -- <xsl:when test="@OSType='win98'">Windows98</xsl:when> -- <xsl:when test="@OSType='winme'">WindowsMe</xsl:when> -- <xsl:when test="@OSType='winnt4'">WindowsNT4</xsl:when> -- <xsl:when test="@OSType='win2k'">Windows2000</xsl:when> -- <xsl:when test="@OSType='winxp'">WindowsXP</xsl:when> -- <xsl:when test="@OSType='win2k3'">Windows2003</xsl:when> -- <xsl:when test="@OSType='winvista'">WindowsVista</xsl:when> -- <xsl:when test="@OSType='win2k8'">Windows2008</xsl:when> -- <xsl:when test="@OSType='os2warp3'">OS2Warp3</xsl:when> -- <xsl:when test="@OSType='os2warp4'">OS2Warp4</xsl:when> -- <xsl:when test="@OSType='os2warp45'">OS2Warp45</xsl:when> -- <xsl:when test="@OSType='ecs'">OS2eCS</xsl:when> -- <xsl:when test="@OSType='linux22'">Linux22</xsl:when> -- <xsl:when test="@OSType='linux24'">Linux24</xsl:when> -- <xsl:when test="@OSType='linux26'">Linux26</xsl:when> -- <xsl:when test="@OSType='archlinux'">ArchLinux</xsl:when> -- <xsl:when test="@OSType='debian'">Debian</xsl:when> -- <xsl:when test="@OSType='opensuse'">OpenSUSE</xsl:when> -- <xsl:when test="@OSType='fedoracore'">Fedora</xsl:when> -- <xsl:when test="@OSType='gentoo'">Gentoo</xsl:when> -- <xsl:when test="@OSType='mandriva'">Mandriva</xsl:when> -- <xsl:when test="@OSType='redhat'">RedHat</xsl:when> -- <xsl:when test="@OSType='ubuntu'">Ubuntu</xsl:when> -- <xsl:when test="@OSType='xandros'">Xandros</xsl:when> -- <xsl:when test="@OSType='freebsd'">FreeBSD</xsl:when> -- <xsl:when test="@OSType='openbsd'">OpenBSD</xsl:when> -- <xsl:when test="@OSType='netbsd'">NetBSD</xsl:when> -- <xsl:when test="@OSType='netware'">Netware</xsl:when> -- <xsl:when test="@OSType='solaris'">Solaris</xsl:when> -- <xsl:when test="@OSType='opensolaris'">OpenSolaris</xsl:when> -- <xsl:when test="@OSType='l4'">L4</xsl:when> -+ <xsl:when test="@OSType='gnu'">GNU</xsl:when> -+ <xsl:when test="@OSType='gnuhurd'">GNUHurd</xsl:when> -+ <xsl:when test="@OSType='gnulinux'">GNULinux</xsl:when> -+ <xsl:when test="@OSType='parabola'">Parabola</xsl:when> -+ <xsl:when test="@OSType='gnewsense'">gNewSense</xsl:when> -+ <xsl:when test="@OSType='blag'">Blag</xsl:when> -+ <xsl:when test="@OSType='dragora'">Dragora</xsl:when> -+ <xsl:when test="@OSType='ututo'">Ututo</xsl:when> -+ <xsl:when test="@OSType='musix'">Musix</xsl:when> -+ <xsl:when test="@OSType='trisquel'">Trisquel</xsl:when> -+ <xsl:when test="@OSType='dynebolic'">Dynebolic</xsl:when> -+ <xsl:when test="@OSType='venenux'">Venenux</xsl:when> - </xsl:choose> - </xsl:attribute> - <xsl:apply-templates select="@*[name()!='OSType']" mode="v1.5"/> ---- VirtualBox-4.1.18.orig/src/VBox/Main/xml/VirtualBox-settings-common.xsd 2012-07-25 15:04:37.856003691 -0300 -+++ VirtualBox-4.1.18/src/VBox/Main/xml/VirtualBox-settings-common.xsd 2012-07-25 15:04:37.892668156 -0300 -@@ -137,75 +137,27 @@ - <xsd:simpleType name="TGuestOSType"> - <xsd:restriction base="xsd:string"> - <xsd:enumeration value="Other"/> -- <xsd:enumeration value="DOS"/> -- <xsd:enumeration value="Netware"/> -- <xsd:enumeration value="L4"/> -- <xsd:enumeration value="Windows31"/> -- <xsd:enumeration value="Windows95"/> -- <xsd:enumeration value="Windows98"/> -- <xsd:enumeration value="WindowsMe"/> -- <xsd:enumeration value="WindowsNT4"/> -- <xsd:enumeration value="Windows2000"/> -- <xsd:enumeration value="WindowsXP"/> -- <xsd:enumeration value="WindowsXP_64"/> -- <xsd:enumeration value="Windows2003"/> -- <xsd:enumeration value="Windows2003_64"/> -- <xsd:enumeration value="WindowsVista"/> -- <xsd:enumeration value="WindowsVista_64"/> -- <xsd:enumeration value="Windows2008"/> -- <xsd:enumeration value="Windows2008_64"/> -- <xsd:enumeration value="Windows7"/> -- <xsd:enumeration value="Windows7_64"/> -- <xsd:enumeration value="Windows8"/> -- <xsd:enumeration value="Windows8_64"/> -- <xsd:enumeration value="WindowsNT"/> -- <xsd:enumeration value="OS2Warp3"/> -- <xsd:enumeration value="OS2Warp4"/> -- <xsd:enumeration value="OS2Warp45"/> -- <xsd:enumeration value="OS2eCS"/> -- <xsd:enumeration value="OS2"/> -- <xsd:enumeration value="Linux22"/> -- <xsd:enumeration value="Linux24"/> -- <xsd:enumeration value="Linux24_64"/> -- <xsd:enumeration value="Linux26"/> -- <xsd:enumeration value="Linux26_64"/> -- <xsd:enumeration value="ArchLinux"/> -- <xsd:enumeration value="ArchLinux_64"/> -- <xsd:enumeration value="Debian"/> -- <xsd:enumeration value="Debian_64"/> -- <xsd:enumeration value="OpenSUSE"/> -- <xsd:enumeration value="OpenSUSE_64"/> -- <xsd:enumeration value="Fedora"/> -- <xsd:enumeration value="Fedora_64"/> -- <xsd:enumeration value="Gentoo"/> -- <xsd:enumeration value="Gentoo_64"/> -- <xsd:enumeration value="Mandriva"/> -- <xsd:enumeration value="Mandriva_64"/> -- <xsd:enumeration value="RedHat"/> -- <xsd:enumeration value="RedHat_64"/> -- <xsd:enumeration value="Turbolinux"/> -- <xsd:enumeration value="Turbolinux_64"/> -- <xsd:enumeration value="Ubuntu"/> -- <xsd:enumeration value="Ubuntu_64"/> -- <xsd:enumeration value="Xandros"/> -- <xsd:enumeration value="Xandros_64"/> -- <xsd:enumeration value="Oracle"/> -- <xsd:enumeration value="Oracle_64"/> -- <xsd:enumeration value="Linux"/> -- <xsd:enumeration value="FreeBSD"/> -- <xsd:enumeration value="FreeBSD_64"/> -- <xsd:enumeration value="OpenBSD"/> -- <xsd:enumeration value="OpenBSD_64"/> -- <xsd:enumeration value="NetBSD"/> -- <xsd:enumeration value="NetBSD_64"/> -- <xsd:enumeration value="Solaris"/> -- <xsd:enumeration value="Solaris_64"/> -- <xsd:enumeration value="OpenSolaris"/> -- <xsd:enumeration value="OpenSolaris_64"/> -- <xsd:enumeration value="QNX"/> -- <xsd:enumeration value="MacOS"/> -- <xsd:enumeration value="MacOS_64"/> -- <xsd:enumeration value="JRockitVE"/> -+ <xsd:enumeration value="GNU"/> -+ <xsd:enumeration value="GNU_64"/> -+ <xsd:enumeration value="GNUHurd"/> -+ <xsd:enumeration value="GNULinux"/> -+ <xsd:enumeration value="GNULinux_64"/> -+ <xsd:enumeration value="Parabola"/> -+ <xsd:enumeration value="Parabola_64"/> -+ <xsd:enumeration value="gNewSense"/> -+ <xsd:enumeration value="gNewSense_64"/> -+ <xsd:enumeration value="Blag"/> -+ <xsd:enumeration value="Blag_64"/> -+ <xsd:enumeration value="Dragora"/> -+ <xsd:enumeration value="Dragora_64"/> -+ <xsd:enumeration value="Ututo"/> -+ <xsd:enumeration value="Ututo_64"/> -+ <xsd:enumeration value="Musix"/> -+ <xsd:enumeration value="Musix_64"/> -+ <xsd:enumeration value="Trisquel"/> -+ <xsd:enumeration value="Trisquel_64"/> -+ <xsd:enumeration value="Dynebolic"/> -+ <xsd:enumeration value="Venenux"/> - </xsd:restriction> - </xsd:simpleType> - ---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc 2012-07-25 15:40:56.733096866 -0300 -+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc 2012-07-25 15:40:56.796426519 -0300 -@@ -1,75 +1,27 @@ - <!DOCTYPE RCC><RCC version="1.0"> - <qresource prefix="/"> -- <file alias="os_archlinux.png">images/os_archlinux.png</file> -- <file alias="os_archlinux_64.png">images/os_archlinux_64.png</file> -- <file alias="os_debian.png">images/os_debian.png</file> -- <file alias="os_debian_64.png">images/os_debian_64.png</file> -- <file alias="os_dos.png">images/os_dos.png</file> -- <file alias="os_fedora.png">images/os_fedora.png</file> -- <file alias="os_fedora_64.png">images/os_fedora_64.png</file> -- <file alias="os_freebsd.png">images/os_freebsd.png</file> -- <file alias="os_freebsd_64.png">images/os_freebsd_64.png</file> -- <file alias="os_gentoo.png">images/os_gentoo.png</file> -- <file alias="os_gentoo_64.png">images/os_gentoo_64.png</file> -- <file alias="os_jrockitve.png">images/os_jrockitve.png</file> -- <file alias="os_l4.png">images/os_l4.png</file> -- <file alias="os_linux_other.png">images/os_linux_other.png</file> -- <file alias="os_linux22.png">images/os_linux22.png</file> -- <file alias="os_linux24.png">images/os_linux24.png</file> -- <file alias="os_linux24_64.png">images/os_linux24_64.png</file> -- <file alias="os_linux26.png">images/os_linux26.png</file> -- <file alias="os_linux26_64.png">images/os_linux26_64.png</file> -- <file alias="os_mandriva.png">images/os_mandriva.png</file> -- <file alias="os_mandriva_64.png">images/os_mandriva_64.png</file> -- <file alias="os_netbsd.png">images/os_netbsd.png</file> -- <file alias="os_netbsd_64.png">images/os_netbsd_64.png</file> -- <file alias="os_netware.png">images/os_netware.png</file> -- <file alias="os_openbsd.png">images/os_openbsd.png</file> -- <file alias="os_openbsd_64.png">images/os_openbsd_64.png</file> -- <file alias="os_oraclesolaris.png">images/os_oraclesolaris.png</file> -- <file alias="os_oraclesolaris_64.png">images/os_oraclesolaris_64.png</file> -- <file alias="os_opensuse.png">images/os_opensuse.png</file> -- <file alias="os_opensuse_64.png">images/os_opensuse_64.png</file> -- <file alias="os_os2_other.png">images/os_os2_other.png</file> -- <file alias="os_os2ecs.png">images/os_os2ecs.png</file> -- <file alias="os_os2warp3.png">images/os_os2warp3.png</file> -- <file alias="os_os2warp4.png">images/os_os2warp4.png</file> -- <file alias="os_os2warp45.png">images/os_os2warp45.png</file> -+ <file alias="os_parabola.png">images/os_parabola.png</file> -+ <file alias="os_parabola_64.png">images/os_parabola_64.png</file> -+ <file alias="os_gnewsense.png">images/os_gnewsense.png</file> -+ <file alias="os_gnewsense_64.png">images/os_gnewsense_64.png</file> -+ <file alias="os_blag.png">images/os_blag.png</file> -+ <file alias="os_blag_64.png">images/os_blag_64.png</file> -+ <file alias="os_ututo.png">images/os_ututo.png</file> -+ <file alias="os_ututo_64.png">images/os_ututo_64.png</file> -+ <file alias="os_gnu.png">images/os_gnu.png</file> -+ <file alias="os_gnu_64.png">images/os_gnu_64.png</file> -+ <file alias="os_gnuhurd.png">images/os_gnuhurd.png</file> -+ <file alias="os_gnulinux.png">images/os_gnulinux.png</file> -+ <file alias="os_gnulinux_64.png">images/os_gnulinux_64.png</file> -+ <file alias="os_musix.png">images/os_musix.png</file> -+ <file alias="os_musix_64.png">images/os_musix_64.png</file> -+ <file alias="os_dragora.png">images/os_dragora.png</file> -+ <file alias="os_dragora_64.png">images/os_dragora_64.png</file> - <file alias="os_other.png">images/os_other.png</file> -- <file alias="os_qnx.png">images/os_qnx.png</file> -- <file alias="os_redhat.png">images/os_redhat.png</file> -- <file alias="os_redhat_64.png">images/os_redhat_64.png</file> -- <file alias="os_turbolinux.png">images/os_turbolinux.png</file> -- <file alias="os_turbolinux_64.png">images/os_turbolinux_64.png</file> -- <file alias="os_solaris.png">images/os_solaris.png</file> -- <file alias="os_solaris_64.png">images/os_solaris_64.png</file> -- <file alias="os_ubuntu.png">images/os_ubuntu.png</file> -- <file alias="os_ubuntu_64.png">images/os_ubuntu_64.png</file> -- <file alias="os_win_other.png">images/os_win_other.png</file> -- <file alias="os_win2k.png">images/os_win2k.png</file> -- <file alias="os_win2k3.png">images/os_win2k3.png</file> -- <file alias="os_win2k3_64.png">images/os_win2k3_64.png</file> -- <file alias="os_win2k8.png">images/os_win2k8.png</file> -- <file alias="os_win2k8_64.png">images/os_win2k8_64.png</file> -- <file alias="os_win31.png">images/os_win31.png</file> -- <file alias="os_win7.png">images/os_win7.png</file> -- <file alias="os_win7_64.png">images/os_win7_64.png</file> -- <file alias="os_win8.png">images/os_win8.png</file> -- <file alias="os_win8_64.png">images/os_win8_64.png</file> -- <file alias="os_win95.png">images/os_win95.png</file> -- <file alias="os_win98.png">images/os_win98.png</file> -- <file alias="os_winme.png">images/os_winme.png</file> -- <file alias="os_winnt4.png">images/os_winnt4.png</file> -- <file alias="os_winvista.png">images/os_winvista.png</file> -- <file alias="os_winvista_64.png">images/os_winvista_64.png</file> -- <file alias="os_winxp.png">images/os_winxp.png</file> -- <file alias="os_winxp_64.png">images/os_winxp_64.png</file> -- <file alias="os_xandros.png">images/os_xandros.png</file> -- <file alias="os_xandros_64.png">images/os_xandros_64.png</file> -- <file alias="os_oracle.png">images/os_oracle.png</file> -- <file alias="os_oracle_64.png">images/os_oracle_64.png</file> -- <file alias="os_macosx.png">images/os_macosx.png</file> -- <file alias="os_macosx_64.png">images/os_macosx_64.png</file> -+ <file alias="os_dynebolic.png">images/os_dynebolic.png</file> -+ <file alias="os_venenux.png">images/os_venenux.png</file> -+ <file alias="os_trisquel.png">images/os_trisquel.png</file> -+ <file alias="os_trisquel_64.png">images/os_trisquel_64.png</file> - <file alias="hd_16px.png">images/hd_16px.png</file> - <file alias="hd_disabled_16px.png">images/hd_disabled_16px.png</file> - <file alias="hd_32px.png">images/hd_32px.png</file> ---- VirtualBox-4.1.20.orig/src/VBox/Main/src-all/Global.cpp 2012-08-20 11:36:24.000000000 -0300 -+++ VirtualBox-4.1.20/src/VBox/Main/src-all/Global.cpp 2012-08-21 14:22:29.148190849 -0300 -@@ -35,284 +35,90 @@ - VBOXOSTYPE_Unknown, VBOXOSHINT_NONE, - 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows31, "Windows 3.1", -- VBOXOSTYPE_Win31, VBOXOSHINT_NONE, -- 32, 4, 1 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows95, "Windows 95", -- VBOXOSTYPE_Win95, VBOXOSHINT_NONE, -- 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows98, "Windows 98", -- VBOXOSTYPE_Win98, VBOXOSHINT_NONE, -- 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsMe, "Windows Me", -- VBOXOSTYPE_WinMe, VBOXOSHINT_NONE, -- 64, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsNT4, "Windows NT 4", -- VBOXOSTYPE_WinNT4, VBOXOSHINT_NONE, -- 128, 16, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2000, "Windows 2000", -- VBOXOSTYPE_Win2k, VBOXOSHINT_USBTABLET, -- 168, 16, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsXP, "Windows XP", -- VBOXOSTYPE_WinXP, VBOXOSHINT_USBTABLET, -- 192, 16, 10 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsXP_64, "Windows XP (64 bit)", -- VBOXOSTYPE_WinXP_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET, -- 192, 16, 10 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2003, "Windows 2003", -- VBOXOSTYPE_Win2k3, VBOXOSHINT_USBTABLET, -- 256, 16, 20 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2003_64, "Windows 2003 (64 bit)", -- VBOXOSTYPE_Win2k3_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET, -- 256, 16, 20 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsVista, "Windows Vista", -- VBOXOSTYPE_WinVista, VBOXOSHINT_USBTABLET, -- 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsVista_64, "Windows Vista (64 bit)", -- VBOXOSTYPE_WinVista_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET, -- 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2008, "Windows 2008", -- VBOXOSTYPE_Win2k8, VBOXOSHINT_USBTABLET, -- 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2008_64, "Windows 2008 (64 bit)", -- VBOXOSTYPE_Win2k8_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET, -- 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows7, "Windows 7", -- VBOXOSTYPE_Win7, VBOXOSHINT_USBTABLET, -- 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows7_64, "Windows 7 (64 bit)", -- VBOXOSTYPE_Win7_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET, -- 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows8, "Windows 8", -- VBOXOSTYPE_Win8, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_PAE, -- 1024,128, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows8_64, "Windows 8 (64 bit)", -- VBOXOSTYPE_Win8_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET, -- 1536,128, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsNT, "Other Windows", -- VBOXOSTYPE_WinNT, VBOXOSHINT_NONE, -- 512, 16, 20 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux22, "Linux 2.2", -- VBOXOSTYPE_Linux22, VBOXOSHINT_RTCUTC, -- 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux24, "Linux 2.4", -- VBOXOSTYPE_Linux24, VBOXOSHINT_RTCUTC, -- 128, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux24_64, "Linux 2.4 (64 bit)", -- VBOXOSTYPE_Linux24_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC, -- 128, 4, 4 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -+ { "GNU", "GNU", SchemaDefs_OSTypeId_GNU, "GNU", -+ VBOXOSTYPE_GNU, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -+ StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -+ { "GNU", "GNU", SchemaDefs_OSTypeId_GNU_64, "GNU (64 bit)", -+ VBOXOSTYPE_GNU_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -+ StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -+ { "GNU-Hurd", "GNU-Hurd", SchemaDefs_OSTypeId_GNUHurd, "GNU-Hurd", -+ VBOXOSTYPE_GNUHurd, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux26, "Linux 2.6", -- VBOXOSTYPE_Linux26, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_GNULinux, "GNU/Linux", -+ VBOXOSTYPE_GNULinux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux26_64, "Linux 2.6 (64 bit)", -- VBOXOSTYPE_Linux26_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_GNULinux_64, "GNU/Linux (64 bit)", -+ VBOXOSTYPE_GNULinux_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_ArchLinux, "Arch Linux", -- VBOXOSTYPE_ArchLinux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Parabola, "Parabola GNU/Linux-libre", -+ VBOXOSTYPE_Parabola, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_ArchLinux_64, "Arch Linux (64 bit)", -- VBOXOSTYPE_ArchLinux_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Parabola_64, "Parabola GNU/Linux-libre (64 bit)", -+ VBOXOSTYPE_Parabola_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Debian, "Debian", -- VBOXOSTYPE_Debian, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_gNewSense, "gNewSense", -+ VBOXOSTYPE_gNewSense, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Debian_64, "Debian (64 bit)", -- VBOXOSTYPE_Debian_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_gNewSense_64, "gNewSense (64 bit)", -+ VBOXOSTYPE_gNewSense_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97}, -- { "Linux", "Linux", SchemaDefs_OSTypeId_OpenSUSE, "openSUSE", -- VBOXOSTYPE_OpenSUSE, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_OpenSUSE_64, "openSUSE (64 bit)", -- VBOXOSTYPE_OpenSUSE_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Fedora, "Fedora", -- VBOXOSTYPE_FedoraCore, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Blag, "Blag Linux and GNU", -+ VBOXOSTYPE_Blag, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 768, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Fedora_64, "Fedora (64 bit)", -- VBOXOSTYPE_FedoraCore_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Blag_64, "Blag Linux and GNU (64 bit)", -+ VBOXOSTYPE_Blag_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 768, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Gentoo, "Gentoo", -- VBOXOSTYPE_Gentoo, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Dragora, "Dragora", -+ VBOXOSTYPE_Dragora, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Gentoo_64, "Gentoo (64 bit)", -- VBOXOSTYPE_Gentoo_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Dragora_64, "Dragora (64 bit)", -+ VBOXOSTYPE_Dragora_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Mandriva, "Mandriva", -- VBOXOSTYPE_Mandriva, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Mandriva_64, "Mandriva (64 bit)", -- VBOXOSTYPE_Mandriva_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_RedHat, "Red Hat", -- VBOXOSTYPE_RedHat, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE, -- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Ututo, "Ututo XS", -+ VBOXOSTYPE_Ututo, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_RedHat_64, "Red Hat (64 bit)", -- VBOXOSTYPE_RedHat_x64, VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC, -- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Ututo_64, "Ututo XS (64 bit)", -+ VBOXOSTYPE_Ututo_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Turbolinux, "Turbolinux", -- VBOXOSTYPE_Turbolinux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Musix, "Musix", -+ VBOXOSTYPE_Musix, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Turbolinux, "Turbolinux (64 bit)", -- VBOXOSTYPE_Turbolinux_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Musix_64, "Musix (64 bit)", -+ VBOXOSTYPE_Musix_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Ubuntu, "Ubuntu", -- VBOXOSTYPE_Ubuntu, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE | VBOXOSHINT_USBTABLET, -+ StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97}, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Trisquel, "Trisquel", -+ VBOXOSTYPE_Trisquel, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE | VBOXOSHINT_USBTABLET, - 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Ubuntu_64, "Ubuntu (64 bit)", -- VBOXOSTYPE_Ubuntu_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Trisquel_64, "Trisquel (64 bit)", -+ VBOXOSTYPE_Trisquel_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Xandros, "Xandros", -- VBOXOSTYPE_Xandros, VBOXOSHINT_RTCUTC, -- 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Dynebolic, "Dyne:bolic", -+ VBOXOSTYPE_Dynebolic, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Xandros_64, "Xandros (64 bit)", -- VBOXOSTYPE_Xandros_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC, -- 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Venenux, "Venenux", -+ VBOXOSTYPE_Venenux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Oracle, "Oracle", -- VBOXOSTYPE_Oracle, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE, -- 512, 12, 12 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Oracle_64, "Oracle (64 bit)", -- VBOXOSTYPE_Oracle_x64, VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC, -- 512, 12, 12 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux, "Other Linux", -- VBOXOSTYPE_Linux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -- 256, 12, 8 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Solaris", "Solaris", SchemaDefs_OSTypeId_Solaris, "Oracle Solaris 10 5/09 and earlier", -- VBOXOSTYPE_Solaris, VBOXOSHINT_NONE, -- 768, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Solaris", "Solaris", SchemaDefs_OSTypeId_Solaris_64, "Oracle Solaris 10 5/09 and earlier (64 bit)", -- VBOXOSTYPE_Solaris_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC, -- 1536, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Solaris", "Solaris", SchemaDefs_OSTypeId_OpenSolaris, "Oracle Solaris 10 10/09 and later", -- VBOXOSTYPE_OpenSolaris, VBOXOSHINT_USBTABLET, -- 768, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Solaris", "Solaris", SchemaDefs_OSTypeId_OpenSolaris_64, "Oracle Solaris 10 10/09 and later (64 bit)", -- VBOXOSTYPE_OpenSolaris_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET, -- 1536, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA, -- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "BSD", "BSD", SchemaDefs_OSTypeId_FreeBSD, "FreeBSD", -- VBOXOSTYPE_FreeBSD, VBOXOSHINT_NONE, -- 128, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "BSD", "BSD", SchemaDefs_OSTypeId_FreeBSD_64, "FreeBSD (64 bit)", -- VBOXOSTYPE_FreeBSD_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC, -- 128, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "BSD", "BSD", SchemaDefs_OSTypeId_OpenBSD, "OpenBSD", -- VBOXOSTYPE_OpenBSD, VBOXOSHINT_HWVIRTEX, -- 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "BSD", "BSD", SchemaDefs_OSTypeId_OpenBSD_64, "OpenBSD (64 bit)", -- VBOXOSTYPE_OpenBSD_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC, -- 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "BSD", "BSD", SchemaDefs_OSTypeId_NetBSD, "NetBSD", -- VBOXOSTYPE_NetBSD, VBOXOSHINT_NONE, -- 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "BSD", "BSD", SchemaDefs_OSTypeId_NetBSD_64, "NetBSD (64 bit)", -- VBOXOSTYPE_NetBSD_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC, -- 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "OS2", "IBM OS/2", SchemaDefs_OSTypeId_OS2Warp3, "OS/2 Warp 3", -- VBOXOSTYPE_OS2Warp3, VBOXOSHINT_HWVIRTEX, -- 48, 4, 1 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "OS2", "IBM OS/2", SchemaDefs_OSTypeId_OS2Warp4, "OS/2 Warp 4", -- VBOXOSTYPE_OS2Warp4, VBOXOSHINT_HWVIRTEX, -- 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "OS2", "IBM OS/2", SchemaDefs_OSTypeId_OS2Warp45, "OS/2 Warp 4.5", -- VBOXOSTYPE_OS2Warp45, VBOXOSHINT_HWVIRTEX, -- 96, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "OS2", "IBM OS/2", SchemaDefs_OSTypeId_OS2eCS, "eComStation", -- VBOXOSTYPE_ECS, VBOXOSHINT_HWVIRTEX, -- 96, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "OS2", "IBM OS/2", SchemaDefs_OSTypeId_OS2, "Other OS/2", -- VBOXOSTYPE_OS2, VBOXOSHINT_HWVIRTEX, -- 96, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "MacOS", "Mac OS X", SchemaDefs_OSTypeId_MacOS, "Mac OS X Server", -- VBOXOSTYPE_MacOS, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_USBTABLET, -- 1024, 4, 20 * _1G64, NetworkAdapterType_I82543GC, 0, -- StorageControllerType_ICH6, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA, -- ChipsetType_ICH9, AudioControllerType_HDA }, -- { "MacOS", "Mac OS X", SchemaDefs_OSTypeId_MacOS_64, "Mac OS X Server (64 bit)", -- VBOXOSTYPE_MacOS_x64, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE | VBOXOSHINT_64BIT | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_USBTABLET, -- 1024, 4, 20 * _1G64, NetworkAdapterType_I82543GC, 0, -- StorageControllerType_ICH6, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA, -- ChipsetType_ICH9, AudioControllerType_HDA }, -- { "Other", "Other", SchemaDefs_OSTypeId_DOS, "DOS", -- VBOXOSTYPE_DOS, VBOXOSHINT_NONE, -- 32, 4, 500 * _1M, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16 }, -- { "Other", "Other", SchemaDefs_OSTypeId_Netware, "Netware", -- VBOXOSTYPE_Netware, VBOXOSHINT_HWVIRTEX, -- 512, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Other", "Other", SchemaDefs_OSTypeId_L4, "L4", -- VBOXOSTYPE_L4, VBOXOSHINT_NONE, -- 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Other", "Other", SchemaDefs_OSTypeId_QNX, "QNX", -- VBOXOSTYPE_QNX, VBOXOSHINT_HWVIRTEX, -- 512, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Other", "Other", SchemaDefs_OSTypeId_JRockitVE, "JRockitVE", -- VBOXOSTYPE_JRockitVE, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_PAE, -- 1024, 4, 8 * _1G64, NetworkAdapterType_I82545EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_BusLogic, StorageBus_SCSI, ChipsetType_PIIX3, AudioControllerType_AC97 }, - }; - - /** ---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp 2012-07-25 21:44:01.290876720 -0300 -+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp 2012-07-25 22:00:57.819380802 -0300 -@@ -4875,75 +4875,27 @@ - static const char *kOSTypeIcons [][2] = - { - {"Other", ":/os_other.png"}, -- {"DOS", ":/os_dos.png"}, -- {"Netware", ":/os_netware.png"}, -- {"L4", ":/os_l4.png"}, -- {"Windows31", ":/os_win31.png"}, -- {"Windows95", ":/os_win95.png"}, -- {"Windows98", ":/os_win98.png"}, -- {"WindowsMe", ":/os_winme.png"}, -- {"WindowsNT4", ":/os_winnt4.png"}, -- {"Windows2000", ":/os_win2k.png"}, -- {"WindowsXP", ":/os_winxp.png"}, -- {"WindowsXP_64", ":/os_winxp_64.png"}, -- {"Windows2003", ":/os_win2k3.png"}, -- {"Windows2003_64", ":/os_win2k3_64.png"}, -- {"WindowsVista", ":/os_winvista.png"}, -- {"WindowsVista_64", ":/os_winvista_64.png"}, -- {"Windows2008", ":/os_win2k8.png"}, -- {"Windows2008_64", ":/os_win2k8_64.png"}, -- {"Windows7", ":/os_win7.png"}, -- {"Windows7_64", ":/os_win7_64.png"}, -- {"Windows8", ":/os_win8.png"}, -- {"Windows8_64", ":/os_win8_64.png"}, -- {"WindowsNT", ":/os_win_other.png"}, -- {"OS2Warp3", ":/os_os2warp3.png"}, -- {"OS2Warp4", ":/os_os2warp4.png"}, -- {"OS2Warp45", ":/os_os2warp45.png"}, -- {"OS2eCS", ":/os_os2ecs.png"}, -- {"OS2", ":/os_os2_other.png"}, -- {"Linux22", ":/os_linux22.png"}, -- {"Linux24", ":/os_linux24.png"}, -- {"Linux24_64", ":/os_linux24_64.png"}, -- {"Linux26", ":/os_linux26.png"}, -- {"Linux26_64", ":/os_linux26_64.png"}, -- {"ArchLinux", ":/os_archlinux.png"}, -- {"ArchLinux_64", ":/os_archlinux_64.png"}, -- {"Debian", ":/os_debian.png"}, -- {"Debian_64", ":/os_debian_64.png"}, -- {"OpenSUSE", ":/os_opensuse.png"}, -- {"OpenSUSE_64", ":/os_opensuse_64.png"}, -- {"Fedora", ":/os_fedora.png"}, -- {"Fedora_64", ":/os_fedora_64.png"}, -- {"Gentoo", ":/os_gentoo.png"}, -- {"Gentoo_64", ":/os_gentoo_64.png"}, -- {"Mandriva", ":/os_mandriva.png"}, -- {"Mandriva_64", ":/os_mandriva_64.png"}, -- {"RedHat", ":/os_redhat.png"}, -- {"RedHat_64", ":/os_redhat_64.png"}, -- {"Turbolinux", ":/os_turbolinux.png"}, -- {"Turbolinux_64", ":/os_turbolinux_64.png"}, -- {"Ubuntu", ":/os_ubuntu.png"}, -- {"Ubuntu_64", ":/os_ubuntu_64.png"}, -- {"Xandros", ":/os_xandros.png"}, -- {"Xandros_64", ":/os_xandros_64.png"}, -- {"Oracle", ":/os_oracle.png"}, -- {"Oracle_64", ":/os_oracle_64.png"}, -- {"Linux", ":/os_linux_other.png"}, -- {"FreeBSD", ":/os_freebsd.png"}, -- {"FreeBSD_64", ":/os_freebsd_64.png"}, -- {"OpenBSD", ":/os_openbsd.png"}, -- {"OpenBSD_64", ":/os_openbsd_64.png"}, -- {"NetBSD", ":/os_netbsd.png"}, -- {"NetBSD_64", ":/os_netbsd_64.png"}, -- {"Solaris", ":/os_solaris.png"}, -- {"Solaris_64", ":/os_solaris_64.png"}, -- {"OpenSolaris", ":/os_oraclesolaris.png"}, -- {"OpenSolaris_64", ":/os_oraclesolaris_64.png"}, -- {"QNX", ":/os_qnx.png"}, -- {"MacOS", ":/os_macosx.png"}, -- {"MacOS_64", ":/os_macosx_64.png"}, -- {"JRockitVE", ":/os_jrockitve.png"}, -+ {"GNU", ":/os_gnu.png"}, -+ {"GNU_64", ":/os_gnu_64.png"}, -+ {"GNUHurd", ":/os_gnuhurd.png"}, -+ {"GNULinux", ":/os_gnulinux.png"}, -+ {"GNULinux_64", ":/os_gnulinux_64.png"}, -+ {"Parabola", ":/os_parabola.png"}, -+ {"Parabola_64", ":/os_parabola_64.png"}, -+ {"gNewSense", ":/os_gnewsense.png"}, -+ {"gNewSense_64", ":/os_gnewsense_64.png"}, -+ {"Blag", ":/os_blag.png"}, -+ {"Blag_64", ":/os_blag_64.png"}, -+ {"Dragora", ":/os_dragora.png"}, -+ {"Dragora_64", ":/os_dragora_64.png"}, -+ {"Ututo", ":/os_ututo.png"}, -+ {"Ututo_64", ":/os_ututo_64.png"}, -+ {"Musix", ":/os_musix.png"}, -+ {"Musix_64", ":/os_musix_64.png"}, -+ {"Trisquel", ":/os_trisquel.png"}, -+ {"Trisquel_64", ":/os_trisquel_64.png"}, -+ {"Dynebolic", ":/os_dynebolic.png"}, -+ {"Venenux", ":/os_venenux.png"}, - }; - for (uint n = 0; n < SIZEOF_ARRAY (kOSTypeIcons); ++ n) - { ---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorWidget.cpp.orig 2012-06-20 10:16:38.000000000 -0300 -+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorWidget.cpp 2012-07-25 22:07:51.232436783 -0300 -@@ -192,17 +192,10 @@ - if (typeIndex != -1) - mCbType->setCurrentIndex (typeIndex); - } -- /* Or select WinXP item for Windows family as default */ -- else if (familyId == "Windows") -+ /* Or select Parabola GNU/Linux-libre item for GNU/Linux family as default */ -+ else if (familyId == "GNU/Linux") - { -- int xpIndex = mCbType->findData ("WindowsXP", RoleTypeID); -- if (xpIndex != -1) -- mCbType->setCurrentIndex (xpIndex); -- } -- /* Or select Ubuntu item for Linux family as default */ -- else if (familyId == "Linux") -- { -- int ubIndex = mCbType->findData ("Ubuntu", RoleTypeID); -+ int ubIndex = mCbType->findData ("Parabola", RoleTypeID); - if (ubIndex != -1) - mCbType->setCurrentIndex (ubIndex); - } ---- VirtualBox-4.1.18.orig/include/VBox/ostypes.h 2012-06-20 10:07:51.000000000 -0300 -+++ VirtualBox-4.1.18/include/VBox/ostypes.h 2012-07-25 23:20:57.322757456 -0300 -@@ -43,77 +43,27 @@ - typedef enum VBOXOSTYPE - { - VBOXOSTYPE_Unknown = 0, -- VBOXOSTYPE_DOS = 0x10000, -- VBOXOSTYPE_Win31 = 0x15000, -- VBOXOSTYPE_Win9x = 0x20000, -- VBOXOSTYPE_Win95 = 0x21000, -- VBOXOSTYPE_Win98 = 0x22000, -- VBOXOSTYPE_WinMe = 0x23000, -- VBOXOSTYPE_WinNT = 0x30000, -- VBOXOSTYPE_WinNT4 = 0x31000, -- VBOXOSTYPE_Win2k = 0x32000, -- VBOXOSTYPE_WinXP = 0x33000, -- VBOXOSTYPE_WinXP_x64 = 0x33100, -- VBOXOSTYPE_Win2k3 = 0x34000, -- VBOXOSTYPE_Win2k3_x64 = 0x34100, -- VBOXOSTYPE_WinVista = 0x35000, -- VBOXOSTYPE_WinVista_x64 = 0x35100, -- VBOXOSTYPE_Win2k8 = 0x36000, -- VBOXOSTYPE_Win2k8_x64 = 0x36100, -- VBOXOSTYPE_Win7 = 0x37000, -- VBOXOSTYPE_Win7_x64 = 0x37100, -- VBOXOSTYPE_Win8 = 0x38000, -- VBOXOSTYPE_Win8_x64 = 0x38100, -- VBOXOSTYPE_OS2 = 0x40000, -- VBOXOSTYPE_OS2Warp3 = 0x41000, -- VBOXOSTYPE_OS2Warp4 = 0x42000, -- VBOXOSTYPE_OS2Warp45 = 0x43000, -- VBOXOSTYPE_ECS = 0x44000, -- VBOXOSTYPE_Linux = 0x50000, -- VBOXOSTYPE_Linux_x64 = 0x50100, -- VBOXOSTYPE_Linux22 = 0x51000, -- VBOXOSTYPE_Linux24 = 0x52000, -- VBOXOSTYPE_Linux24_x64 = 0x52100, -- VBOXOSTYPE_Linux26 = 0x53000, -- VBOXOSTYPE_Linux26_x64 = 0x53100, -- VBOXOSTYPE_ArchLinux = 0x54000, -- VBOXOSTYPE_ArchLinux_x64 = 0x54100, -- VBOXOSTYPE_Debian = 0x55000, -- VBOXOSTYPE_Debian_x64 = 0x55100, -- VBOXOSTYPE_OpenSUSE = 0x56000, -- VBOXOSTYPE_OpenSUSE_x64 = 0x56100, -- VBOXOSTYPE_FedoraCore = 0x57000, -- VBOXOSTYPE_FedoraCore_x64 = 0x57100, -- VBOXOSTYPE_Gentoo = 0x58000, -- VBOXOSTYPE_Gentoo_x64 = 0x58100, -- VBOXOSTYPE_Mandriva = 0x59000, -- VBOXOSTYPE_Mandriva_x64 = 0x59100, -- VBOXOSTYPE_RedHat = 0x5A000, -- VBOXOSTYPE_RedHat_x64 = 0x5A100, -- VBOXOSTYPE_Turbolinux = 0x5B000, -- VBOXOSTYPE_Turbolinux_x64 = 0x5B100, -- VBOXOSTYPE_Ubuntu = 0x5C000, -- VBOXOSTYPE_Ubuntu_x64 = 0x5C100, -- VBOXOSTYPE_Xandros = 0x5D000, -- VBOXOSTYPE_Xandros_x64 = 0x5D100, -- VBOXOSTYPE_Oracle = 0x5E000, -- VBOXOSTYPE_Oracle_x64 = 0x5E100, -- VBOXOSTYPE_FreeBSD = 0x60000, -- VBOXOSTYPE_FreeBSD_x64 = 0x60100, -- VBOXOSTYPE_OpenBSD = 0x61000, -- VBOXOSTYPE_OpenBSD_x64 = 0x61100, -- VBOXOSTYPE_NetBSD = 0x62000, -- VBOXOSTYPE_NetBSD_x64 = 0x62100, -- VBOXOSTYPE_Netware = 0x70000, -- VBOXOSTYPE_Solaris = 0x80000, -- VBOXOSTYPE_Solaris_x64 = 0x80100, -- VBOXOSTYPE_OpenSolaris = 0x81000, -- VBOXOSTYPE_OpenSolaris_x64 = 0x81100, -- VBOXOSTYPE_L4 = 0x90000, -- VBOXOSTYPE_QNX = 0xA0000, -- VBOXOSTYPE_MacOS = 0xB0000, -- VBOXOSTYPE_MacOS_x64 = 0xB0100, -- VBOXOSTYPE_JRockitVE = 0xC0000, -+ VBOXOSTYPE_GNU = 0x10000, -+ VBOXOSTYPE_GNU_x64 = 0x10100, -+ VBOXOSTYPE_GNUHurd = 0x20000, -+ VBOXOSTYPE_GNULinux = 0x30000, -+ VBOXOSTYPE_GNULinux_x64 = 0x30100, -+ VBOXOSTYPE_Parabola = 0x31000, -+ VBOXOSTYPE_Parabola_x64 = 0x31100, -+ VBOXOSTYPE_gNewSense = 0x32000, -+ VBOXOSTYPE_gNewSense_x64 = 0x32100, -+ VBOXOSTYPE_Blag = 0x33000, -+ VBOXOSTYPE_Blag_x64 = 0x33100, -+ VBOXOSTYPE_Dragora = 0x34000, -+ VBOXOSTYPE_Dragora_x64 = 0x34100, -+ VBOXOSTYPE_Ututo = 0x35000, -+ VBOXOSTYPE_Ututo_x64 = 0x35100, -+ VBOXOSTYPE_Musix = 0x36000, -+ VBOXOSTYPE_Musix_x64 = 0x36100, -+ VBOXOSTYPE_Trisquel = 0x37000, -+ VBOXOSTYPE_Trisquel_x64 = 0x37100, -+ VBOXOSTYPE_Dynebolic = 0x38000, -+ VBOXOSTYPE_Venenux = 0x39000, - /** The bit number which indicates 64-bit or 32-bit. */ - #define VBOXOSTYPE_x64_BIT 8 - /** The mask which indicates 64-bit. */ -@@ -129,16 +79,11 @@ - typedef enum VBOXOSFAMILY - { - VBOXOSFAMILY_Unknown = 0, -- VBOXOSFAMILY_Windows32 = 1, -- VBOXOSFAMILY_Windows64 = 2, -- VBOXOSFAMILY_Linux32 = 3, -- VBOXOSFAMILY_Linux64 = 4, -- VBOXOSFAMILY_FreeBSD32 = 5, -- VBOXOSFAMILY_FreeBSD64 = 6, -- VBOXOSFAMILY_Solaris32 = 7, -- VBOXOSFAMILY_Solaris64 = 8, -- VBOXOSFAMILY_MacOSX32 = 9, -- VBOXOSFAMILY_MacOSX64 = 10, -+ VBOXOSFAMILY_GNU32 = 1, -+ VBOXOSFAMILY_GNU64 = 2, -+ VBOXOSFAMILY_GNUHurd = 3, -+ VBOXOSFAMILY_GNULinux32 = 4, -+ VBOXOSFAMILY_GNULinux64 = 5, - /** The usual 32-bit hack. */ - VBOXOSFAMILY_32BIT_HACK = 0x7fffffff - } VBOXOSFAMILY; ---- VirtualBox-4.1.18.orig/src/VBox/Main/src-server/ApplianceImpl.cpp 2012-06-20 10:17:35.000000000 -0300 -+++ VirtualBox-4.1.18/src/VBox/Main/src-server/ApplianceImpl.cpp 2012-07-26 01:28:50.033551279 -0300 -@@ -49,94 +49,33 @@ - g_osTypes[] = - { - { ovf::CIMOSType_CIMOS_Unknown, SchemaDefs_OSTypeId_Other }, -- { ovf::CIMOSType_CIMOS_OS2, SchemaDefs_OSTypeId_OS2 }, -- { ovf::CIMOSType_CIMOS_OS2, SchemaDefs_OSTypeId_OS2Warp3 }, -- { ovf::CIMOSType_CIMOS_OS2, SchemaDefs_OSTypeId_OS2Warp4 }, -- { ovf::CIMOSType_CIMOS_OS2, SchemaDefs_OSTypeId_OS2Warp45 }, -- { ovf::CIMOSType_CIMOS_MSDOS, SchemaDefs_OSTypeId_DOS }, -- { ovf::CIMOSType_CIMOS_WIN3x, SchemaDefs_OSTypeId_Windows31 }, -- { ovf::CIMOSType_CIMOS_WIN95, SchemaDefs_OSTypeId_Windows95 }, -- { ovf::CIMOSType_CIMOS_WIN98, SchemaDefs_OSTypeId_Windows98 }, -- { ovf::CIMOSType_CIMOS_WINNT, SchemaDefs_OSTypeId_WindowsNT }, -- { ovf::CIMOSType_CIMOS_WINNT, SchemaDefs_OSTypeId_WindowsNT4 }, -- { ovf::CIMOSType_CIMOS_NetWare, SchemaDefs_OSTypeId_Netware }, -- { ovf::CIMOSType_CIMOS_NovellOES, SchemaDefs_OSTypeId_Netware }, -- { ovf::CIMOSType_CIMOS_Solaris, SchemaDefs_OSTypeId_Solaris }, -- { ovf::CIMOSType_CIMOS_SunOS, SchemaDefs_OSTypeId_Solaris }, -- { ovf::CIMOSType_CIMOS_FreeBSD, SchemaDefs_OSTypeId_FreeBSD }, -- { ovf::CIMOSType_CIMOS_NetBSD, SchemaDefs_OSTypeId_NetBSD }, -- { ovf::CIMOSType_CIMOS_QNX, SchemaDefs_OSTypeId_QNX }, -- { ovf::CIMOSType_CIMOS_Windows2000, SchemaDefs_OSTypeId_Windows2000 }, -- { ovf::CIMOSType_CIMOS_WindowsMe, SchemaDefs_OSTypeId_WindowsMe }, -- { ovf::CIMOSType_CIMOS_OpenBSD, SchemaDefs_OSTypeId_OpenBSD }, -- { ovf::CIMOSType_CIMOS_WindowsXP, SchemaDefs_OSTypeId_WindowsXP }, -- { ovf::CIMOSType_CIMOS_WindowsXPEmbedded, SchemaDefs_OSTypeId_WindowsXP }, -- { ovf::CIMOSType_CIMOS_WindowsEmbeddedforPointofService, SchemaDefs_OSTypeId_WindowsXP }, -- { ovf::CIMOSType_CIMOS_MicrosoftWindowsServer2003, SchemaDefs_OSTypeId_Windows2003 }, -- { ovf::CIMOSType_CIMOS_MicrosoftWindowsServer2003_64, SchemaDefs_OSTypeId_Windows2003_64 }, -- { ovf::CIMOSType_CIMOS_WindowsXP_64, SchemaDefs_OSTypeId_WindowsXP_64 }, -- { ovf::CIMOSType_CIMOS_WindowsVista, SchemaDefs_OSTypeId_WindowsVista }, -- { ovf::CIMOSType_CIMOS_WindowsVista_64, SchemaDefs_OSTypeId_WindowsVista_64 }, -- { ovf::CIMOSType_CIMOS_MicrosoftWindowsServer2008, SchemaDefs_OSTypeId_Windows2008 }, -- { ovf::CIMOSType_CIMOS_MicrosoftWindowsServer2008_64, SchemaDefs_OSTypeId_Windows2008_64 }, -- { ovf::CIMOSType_CIMOS_FreeBSD_64, SchemaDefs_OSTypeId_FreeBSD_64 }, -- { ovf::CIMOSType_CIMOS_MACOS, SchemaDefs_OSTypeId_MacOS }, -- { ovf::CIMOSType_CIMOS_MACOS, SchemaDefs_OSTypeId_MacOS_64 }, // there is no CIM 64-bit type for this -- -- // Linuxes -- { ovf::CIMOSType_CIMOS_RedHatEnterpriseLinux, SchemaDefs_OSTypeId_RedHat }, -- { ovf::CIMOSType_CIMOS_RedHatEnterpriseLinux_64, SchemaDefs_OSTypeId_RedHat_64 }, -- { ovf::CIMOSType_CIMOS_Solaris_64, SchemaDefs_OSTypeId_Solaris_64 }, -- { ovf::CIMOSType_CIMOS_SUSE, SchemaDefs_OSTypeId_OpenSUSE }, -- { ovf::CIMOSType_CIMOS_SLES, SchemaDefs_OSTypeId_OpenSUSE }, -- { ovf::CIMOSType_CIMOS_NovellLinuxDesktop, SchemaDefs_OSTypeId_OpenSUSE }, -- { ovf::CIMOSType_CIMOS_SUSE_64, SchemaDefs_OSTypeId_OpenSUSE_64 }, -- { ovf::CIMOSType_CIMOS_SLES_64, SchemaDefs_OSTypeId_OpenSUSE_64 }, -- { ovf::CIMOSType_CIMOS_LINUX, SchemaDefs_OSTypeId_Linux }, -- { ovf::CIMOSType_CIMOS_LINUX, SchemaDefs_OSTypeId_Linux22 }, -- { ovf::CIMOSType_CIMOS_SunJavaDesktopSystem, SchemaDefs_OSTypeId_Linux }, -- { ovf::CIMOSType_CIMOS_TurboLinux, SchemaDefs_OSTypeId_Turbolinux }, -- { ovf::CIMOSType_CIMOS_TurboLinux_64, SchemaDefs_OSTypeId_Turbolinux_64 }, -- { ovf::CIMOSType_CIMOS_Mandriva, SchemaDefs_OSTypeId_Mandriva }, -- { ovf::CIMOSType_CIMOS_Mandriva_64, SchemaDefs_OSTypeId_Mandriva_64 }, -- { ovf::CIMOSType_CIMOS_Ubuntu, SchemaDefs_OSTypeId_Ubuntu }, -- { ovf::CIMOSType_CIMOS_Ubuntu_64, SchemaDefs_OSTypeId_Ubuntu_64 }, -- { ovf::CIMOSType_CIMOS_Debian, SchemaDefs_OSTypeId_Debian }, -- { ovf::CIMOSType_CIMOS_Debian_64, SchemaDefs_OSTypeId_Debian_64 }, -- { ovf::CIMOSType_CIMOS_Linux_2_4_x, SchemaDefs_OSTypeId_Linux24 }, -- { ovf::CIMOSType_CIMOS_Linux_2_4_x_64, SchemaDefs_OSTypeId_Linux24_64 }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x, SchemaDefs_OSTypeId_Linux26 }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, SchemaDefs_OSTypeId_Linux26_64 }, -- { ovf::CIMOSType_CIMOS_Linux_64, SchemaDefs_OSTypeId_Linux26_64 }, -- -- // types that we have support for but CIM doesn't -- { ovf::CIMOSType_CIMOS_Linux_2_6_x, SchemaDefs_OSTypeId_ArchLinux }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, SchemaDefs_OSTypeId_ArchLinux_64 }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x, SchemaDefs_OSTypeId_Fedora }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, SchemaDefs_OSTypeId_Fedora_64 }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x, SchemaDefs_OSTypeId_Gentoo }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, SchemaDefs_OSTypeId_Gentoo_64 }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x, SchemaDefs_OSTypeId_Xandros }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, SchemaDefs_OSTypeId_Xandros_64 }, -- { ovf::CIMOSType_CIMOS_Solaris, SchemaDefs_OSTypeId_OpenSolaris }, -- { ovf::CIMOSType_CIMOS_Solaris_64, SchemaDefs_OSTypeId_OpenSolaris_64 }, -- -- // types added with CIM 2.25.0 follow: -- { ovf::CIMOSType_CIMOS_WindowsServer2008R2, SchemaDefs_OSTypeId_Windows2008 }, // duplicate, see above --// { ovf::CIMOSType_CIMOS_VMwareESXi = 104, // we can't run ESX in a VM -- { ovf::CIMOSType_CIMOS_Windows7, SchemaDefs_OSTypeId_Windows7 }, -- { ovf::CIMOSType_CIMOS_Windows7, SchemaDefs_OSTypeId_Windows7_64 }, // there is no CIM 64-bit type for this -- { ovf::CIMOSType_CIMOS_CentOS, SchemaDefs_OSTypeId_RedHat }, -- { ovf::CIMOSType_CIMOS_CentOS_64, SchemaDefs_OSTypeId_RedHat_64 }, -- { ovf::CIMOSType_CIMOS_OracleEnterpriseLinux, SchemaDefs_OSTypeId_Oracle }, -- { ovf::CIMOSType_CIMOS_OracleEnterpriseLinux_64, SchemaDefs_OSTypeId_Oracle_64 }, -- { ovf::CIMOSType_CIMOS_eComStation, SchemaDefs_OSTypeId_OS2eCS } -- -- // there are no CIM types for these, so these turn to "other" on export: -- // SchemaDefs_OSTypeId_OpenBSD -- // SchemaDefs_OSTypeId_OpenBSD_64 -- // SchemaDefs_OSTypeId_NetBSD -- // SchemaDefs_OSTypeId_NetBSD_64 -+ -+ // Custom OS -+ { ovf::CIMOSType_CIMOS_GNU, SchemaDefs_OSTypeId_GNU }, -+ { ovf::CIMOSType_CIMOS_GNU_64, SchemaDefs_OSTypeId_GNU_64 }, -+ { ovf::CIMOSType_CIMOS_GNUHurd, SchemaDefs_OSTypeId_GNUHurd }, -+ { ovf::CIMOSType_CIMOS_GNULinux, SchemaDefs_OSTypeId_GNULinux }, -+ { ovf::CIMOSType_CIMOS_GNULinux_64, SchemaDefs_OSTypeId_GNULinux_64 }, -+ -+ // GNU/Linux free distros -+ { ovf::CIMOSType_CIMOS_gNewSense, SchemaDefs_OSTypeId_gNewSense }, -+ { ovf::CIMOSType_CIMOS_gNewSense_64, SchemaDefs_OSTypeId_gNewSense_64 }, -+ { ovf::CIMOSType_CIMOS_Dragora, SchemaDefs_OSTypeId_Dragora }, -+ { ovf::CIMOSType_CIMOS_Dragora_64, SchemaDefs_OSTypeId_Dragora_64 }, -+ { ovf::CIMOSType_CIMOS_Musix, SchemaDefs_OSTypeId_Musix }, -+ { ovf::CIMOSType_CIMOS_Musix_64, SchemaDefs_OSTypeId_Musix_64 }, -+ { ovf::CIMOSType_CIMOS_Trisquel, SchemaDefs_OSTypeId_Trisquel }, -+ { ovf::CIMOSType_CIMOS_Trisquel_64, SchemaDefs_OSTypeId_Trisquel_64 }, -+ { ovf::CIMOSType_CIMOS_Dynebolic, SchemaDefs_OSTypeId_Dynebolic }, -+ { ovf::CIMOSType_CIMOS_Venenux, SchemaDefs_OSTypeId_Venenux }, -+ -+ // GNU/Linux free distros that we have support for but CIM doesn't -+ { ovf::CIMOSType_CIMOS_GNULinux, SchemaDefs_OSTypeId_Parabola }, -+ { ovf::CIMOSType_CIMOS_GNULinux_64, SchemaDefs_OSTypeId_Parabola_64 }, -+ { ovf::CIMOSType_CIMOS_GNULinux, SchemaDefs_OSTypeId_Blag }, -+ { ovf::CIMOSType_CIMOS_GNULinux_64, SchemaDefs_OSTypeId_Blag_64 }, -+ { ovf::CIMOSType_CIMOS_GNULinux, SchemaDefs_OSTypeId_Ututo }, -+ { ovf::CIMOSType_CIMOS_GNULinux_64, SchemaDefs_OSTypeId_Ututo_64 }, - - }; - -@@ -150,53 +89,34 @@ - /* These are the 32-Bit ones. They are sorted by priority. */ - static const osTypePattern g_osTypesPattern[] = - { -- {"Windows NT", SchemaDefs_OSTypeId_WindowsNT4}, -- {"Windows XP", SchemaDefs_OSTypeId_WindowsXP}, -- {"Windows 2000", SchemaDefs_OSTypeId_Windows2000}, -- {"Windows 2003", SchemaDefs_OSTypeId_Windows2003}, -- {"Windows Vista", SchemaDefs_OSTypeId_WindowsVista}, -- {"Windows 2008", SchemaDefs_OSTypeId_Windows2008}, -- {"SUSE", SchemaDefs_OSTypeId_OpenSUSE}, -- {"Novell", SchemaDefs_OSTypeId_OpenSUSE}, -- {"Red Hat", SchemaDefs_OSTypeId_RedHat}, -- {"Mandriva", SchemaDefs_OSTypeId_Mandriva}, -- {"Ubuntu", SchemaDefs_OSTypeId_Ubuntu}, -- {"Debian", SchemaDefs_OSTypeId_Debian}, -- {"QNX", SchemaDefs_OSTypeId_QNX}, -- {"Linux 2.4", SchemaDefs_OSTypeId_Linux24}, -- {"Linux 2.6", SchemaDefs_OSTypeId_Linux26}, -- {"Linux", SchemaDefs_OSTypeId_Linux}, -- {"OpenSolaris", SchemaDefs_OSTypeId_OpenSolaris}, -- {"Solaris", SchemaDefs_OSTypeId_OpenSolaris}, -- {"FreeBSD", SchemaDefs_OSTypeId_FreeBSD}, -- {"NetBSD", SchemaDefs_OSTypeId_NetBSD}, -- {"Windows 95", SchemaDefs_OSTypeId_Windows95}, -- {"Windows 98", SchemaDefs_OSTypeId_Windows98}, -- {"Windows Me", SchemaDefs_OSTypeId_WindowsMe}, -- {"Windows 3.", SchemaDefs_OSTypeId_Windows31}, -- {"DOS", SchemaDefs_OSTypeId_DOS}, -- {"OS2", SchemaDefs_OSTypeId_OS2} -+ -+ {"Parabola GNU/Linux-libre", SchemaDefs_OSTypeId_Parabola}, -+ {"gNewSense", SchemaDefs_OSTypeId_gNewSense}, -+ {"Blag Linux and GNU", SchemaDefs_OSTypeId_Blag}, -+ {"Dragora", SchemaDefs_OSTypeId_Dragora}, -+ {"Ututo XS", SchemaDefs_OSTypeId_Ututo}, -+ {"Musix", SchemaDefs_OSTypeId_Musix}, -+ {"Trisquel", SchemaDefs_OSTypeId_Trisquel}, -+ {"Dyne:bolic", SchemaDefs_OSTypeId_Dynebolic}, -+ {"Venenux", SchemaDefs_OSTypeId_Venenux}, -+ {"GNU", SchemaDefs_OSTypeId_GNU}, -+ {"GNU-Hurd", SchemaDefs_OSTypeId_GNUHurd}, -+ {"GNU/Linux", SchemaDefs_OSTypeId_GNULinux}, -+ - }; - - /* These are the 64-Bit ones. They are sorted by priority. */ - static const osTypePattern g_osTypesPattern64[] = - { -- {"Windows XP", SchemaDefs_OSTypeId_WindowsXP_64}, -- {"Windows 2003", SchemaDefs_OSTypeId_Windows2003_64}, -- {"Windows Vista", SchemaDefs_OSTypeId_WindowsVista_64}, -- {"Windows 2008", SchemaDefs_OSTypeId_Windows2008_64}, -- {"SUSE", SchemaDefs_OSTypeId_OpenSUSE_64}, -- {"Novell", SchemaDefs_OSTypeId_OpenSUSE_64}, -- {"Red Hat", SchemaDefs_OSTypeId_RedHat_64}, -- {"Mandriva", SchemaDefs_OSTypeId_Mandriva_64}, -- {"Ubuntu", SchemaDefs_OSTypeId_Ubuntu_64}, -- {"Debian", SchemaDefs_OSTypeId_Debian_64}, -- {"Linux 2.4", SchemaDefs_OSTypeId_Linux24_64}, -- {"Linux 2.6", SchemaDefs_OSTypeId_Linux26_64}, -- {"Linux", SchemaDefs_OSTypeId_Linux26_64}, -- {"OpenSolaris", SchemaDefs_OSTypeId_OpenSolaris_64}, -- {"Solaris", SchemaDefs_OSTypeId_OpenSolaris_64}, -- {"FreeBSD", SchemaDefs_OSTypeId_FreeBSD_64}, -+ {"Parabola GNU/Linux-libre", SchemaDefs_OSTypeId_Parabola_64}, -+ {"gNewSense", SchemaDefs_OSTypeId_gNewSense_64}, -+ {"Blag Linux and GNU", SchemaDefs_OSTypeId_Blag_64}, -+ {"Dragora", SchemaDefs_OSTypeId_Dragora_64}, -+ {"Ututo XS", SchemaDefs_OSTypeId_Ututo_64}, -+ {"Musix", SchemaDefs_OSTypeId_Musix_64}, -+ {"Trisquel", SchemaDefs_OSTypeId_Trisquel_64}, -+ {"GNU", SchemaDefs_OSTypeId_GNU_64}, -+ {"GNU/Linux", SchemaDefs_OSTypeId_GNULinux_64}, - }; - - /** ---- VirtualBox-4.1.18.orig/src/VBox/Main/include/ovfreader.h 2012-06-20 10:17:34.000000000 -0300 -+++ VirtualBox-4.1.18/src/VBox/Main/include/ovfreader.h 2012-07-26 03:51:21.807619186 -0300 -@@ -34,119 +34,24 @@ - - enum CIMOSType_T - { -- CIMOSType_CIMOS_Unknown = 0, -- CIMOSType_CIMOS_Other = 1, -- CIMOSType_CIMOS_MACOS = 2, -- CIMOSType_CIMOS_ATTUNIX = 3, -- CIMOSType_CIMOS_DGUX = 4, -- CIMOSType_CIMOS_DECNT = 5, -- CIMOSType_CIMOS_Tru64UNIX = 6, -- CIMOSType_CIMOS_OpenVMS = 7, -- CIMOSType_CIMOS_HPUX = 8, -- CIMOSType_CIMOS_AIX = 9, -- CIMOSType_CIMOS_MVS = 10, -- CIMOSType_CIMOS_OS400 = 11, -- CIMOSType_CIMOS_OS2 = 12, -- CIMOSType_CIMOS_JavaVM = 13, -- CIMOSType_CIMOS_MSDOS = 14, -- CIMOSType_CIMOS_WIN3x = 15, -- CIMOSType_CIMOS_WIN95 = 16, -- CIMOSType_CIMOS_WIN98 = 17, -- CIMOSType_CIMOS_WINNT = 18, -- CIMOSType_CIMOS_WINCE = 19, -- CIMOSType_CIMOS_NCR3000 = 20, -- CIMOSType_CIMOS_NetWare = 21, -- CIMOSType_CIMOS_OSF = 22, -- CIMOSType_CIMOS_DCOS = 23, -- CIMOSType_CIMOS_ReliantUNIX = 24, -- CIMOSType_CIMOS_SCOUnixWare = 25, -- CIMOSType_CIMOS_SCOOpenServer = 26, -- CIMOSType_CIMOS_Sequent = 27, -- CIMOSType_CIMOS_IRIX = 28, -- CIMOSType_CIMOS_Solaris = 29, -- CIMOSType_CIMOS_SunOS = 30, -- CIMOSType_CIMOS_U6000 = 31, -- CIMOSType_CIMOS_ASERIES = 32, -- CIMOSType_CIMOS_HPNonStopOS = 33, -- CIMOSType_CIMOS_HPNonStopOSS = 34, -- CIMOSType_CIMOS_BS2000 = 35, -- CIMOSType_CIMOS_LINUX = 36, -- CIMOSType_CIMOS_Lynx = 37, -- CIMOSType_CIMOS_XENIX = 38, -- CIMOSType_CIMOS_VM = 39, -- CIMOSType_CIMOS_InteractiveUNIX = 40, -- CIMOSType_CIMOS_BSDUNIX = 41, -- CIMOSType_CIMOS_FreeBSD = 42, -- CIMOSType_CIMOS_NetBSD = 43, -- CIMOSType_CIMOS_GNUHurd = 44, -- CIMOSType_CIMOS_OS9 = 45, -- CIMOSType_CIMOS_MACHKernel = 46, -- CIMOSType_CIMOS_Inferno = 47, -- CIMOSType_CIMOS_QNX = 48, -- CIMOSType_CIMOS_EPOC = 49, -- CIMOSType_CIMOS_IxWorks = 50, -- CIMOSType_CIMOS_VxWorks = 51, -- CIMOSType_CIMOS_MiNT = 52, -- CIMOSType_CIMOS_BeOS = 53, -- CIMOSType_CIMOS_HPMPE = 54, -- CIMOSType_CIMOS_NextStep = 55, -- CIMOSType_CIMOS_PalmPilot = 56, -- CIMOSType_CIMOS_Rhapsody = 57, -- CIMOSType_CIMOS_Windows2000 = 58, -- CIMOSType_CIMOS_Dedicated = 59, -- CIMOSType_CIMOS_OS390 = 60, -- CIMOSType_CIMOS_VSE = 61, -- CIMOSType_CIMOS_TPF = 62, -- CIMOSType_CIMOS_WindowsMe = 63, -- CIMOSType_CIMOS_CalderaOpenUNIX = 64, -- CIMOSType_CIMOS_OpenBSD = 65, -- CIMOSType_CIMOS_NotApplicable = 66, -- CIMOSType_CIMOS_WindowsXP = 67, -- CIMOSType_CIMOS_zOS = 68, -- CIMOSType_CIMOS_MicrosoftWindowsServer2003 = 69, -- CIMOSType_CIMOS_MicrosoftWindowsServer2003_64 = 70, -- CIMOSType_CIMOS_WindowsXP_64 = 71, -- CIMOSType_CIMOS_WindowsXPEmbedded = 72, -- CIMOSType_CIMOS_WindowsVista = 73, -- CIMOSType_CIMOS_WindowsVista_64 = 74, -- CIMOSType_CIMOS_WindowsEmbeddedforPointofService = 75, -- CIMOSType_CIMOS_MicrosoftWindowsServer2008 = 76, -- CIMOSType_CIMOS_MicrosoftWindowsServer2008_64 = 77, -- CIMOSType_CIMOS_FreeBSD_64 = 78, -- CIMOSType_CIMOS_RedHatEnterpriseLinux = 79, -- CIMOSType_CIMOS_RedHatEnterpriseLinux_64 = 80, -- CIMOSType_CIMOS_Solaris_64 = 81, -- CIMOSType_CIMOS_SUSE = 82, -- CIMOSType_CIMOS_SUSE_64 = 83, -- CIMOSType_CIMOS_SLES = 84, -- CIMOSType_CIMOS_SLES_64 = 85, -- CIMOSType_CIMOS_NovellOES = 86, -- CIMOSType_CIMOS_NovellLinuxDesktop = 87, -- CIMOSType_CIMOS_SunJavaDesktopSystem = 88, -- CIMOSType_CIMOS_Mandriva = 89, -- CIMOSType_CIMOS_Mandriva_64 = 90, -- CIMOSType_CIMOS_TurboLinux = 91, -- CIMOSType_CIMOS_TurboLinux_64 = 92, -- CIMOSType_CIMOS_Ubuntu = 93, -- CIMOSType_CIMOS_Ubuntu_64 = 94, -- CIMOSType_CIMOS_Debian = 95, -- CIMOSType_CIMOS_Debian_64 = 96, -- CIMOSType_CIMOS_Linux_2_4_x = 97, -- CIMOSType_CIMOS_Linux_2_4_x_64 = 98, -- CIMOSType_CIMOS_Linux_2_6_x = 99, -- CIMOSType_CIMOS_Linux_2_6_x_64 = 100, -- CIMOSType_CIMOS_Linux_64 = 101, -- CIMOSType_CIMOS_Other_64 = 102, -- // types added with CIM 2.25.0 follow: -- CIMOSType_CIMOS_WindowsServer2008R2 = 103, -- CIMOSType_CIMOS_VMwareESXi = 104, -- CIMOSType_CIMOS_Windows7 = 105, -- CIMOSType_CIMOS_CentOS = 106, -- CIMOSType_CIMOS_CentOS_64 = 107, -- CIMOSType_CIMOS_OracleEnterpriseLinux = 108, -- CIMOSType_CIMOS_OracleEnterpriseLinux_64 = 109, -- CIMOSType_CIMOS_eComStation = 110 -- // no new types added with CIM 2.26.0 -+ CIMOSType_CIMOS_Unknown = 0, -+ CIMOSType_CIMOS_Other = 1, -+ CIMOSType_CIMOS_Other_64 = 2, -+ CIMOSType_CIMOS_gNewSense = 3, -+ CIMOSType_CIMOS_gNewSense_64 = 4, -+ CIMOSType_CIMOS_Dragora = 5, -+ CIMOSType_CIMOS_Dragora_64 = 6, -+ CIMOSType_CIMOS_Musix = 7, -+ CIMOSType_CIMOS_Musix_64 = 8, -+ CIMOSType_CIMOS_Trisquel = 9, -+ CIMOSType_CIMOS_Trisquel_64 = 10, -+ CIMOSType_CIMOS_Dynebolic = 11, -+ CIMOSType_CIMOS_Venenux = 12, -+ CIMOSType_CIMOS_GNU = 13, -+ CIMOSType_CIMOS_GNU_64 = 14, -+ CIMOSType_CIMOS_GNUHurd = 15, -+ CIMOSType_CIMOS_GNULinux = 16, -+ CIMOSType_CIMOS_GNULinux_64 = 17 - }; - - ---- VirtualBox-4.1.18.orig/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c 2012-06-20 10:09:01.000000000 -0300 -+++ VirtualBox-4.1.18/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c 2012-07-26 15:32:55.309812685 -0300 -@@ -622,16 +622,16 @@ - * Call the common device extension initializer. - */ - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0) && defined(RT_ARCH_X86) -- VBOXOSTYPE enmOSType = VBOXOSTYPE_Linux26; -+ VBOXOSTYPE enmOSType = VBOXOSTYPE_GNULinux; - #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0) && defined(RT_ARCH_AMD64) -- VBOXOSTYPE enmOSType = VBOXOSTYPE_Linux26_x64; -+ VBOXOSTYPE enmOSType = VBOXOSTYPE_GNULinux_x64; - #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0) && defined(RT_ARCH_X86) -- VBOXOSTYPE enmOSType = VBOXOSTYPE_Linux24; -+ VBOXOSTYPE enmOSType = VBOXOSTYPE_GNULinux; - #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0) && defined(RT_ARCH_AMD64) -- VBOXOSTYPE enmOSType = VBOXOSTYPE_Linux24_x64; -+ VBOXOSTYPE enmOSType = VBOXOSTYPE_GNULinux_x64; - #else - # warning "huh? which arch + version is this?" -- VBOXOSTYPE enmOsType = VBOXOSTYPE_Linux; -+ VBOXOSTYPE enmOsType = VBOXOSTYPE_GNULinux; - #endif - rc = VBoxGuestInitDevExt(&g_DevExt, - g_IOPortBase, diff --git a/libre/virtualbox-libre-modules/libre.patch b/libre/virtualbox-libre-modules/libre.patch deleted file mode 100755 index e51d0c0a7..000000000 --- a/libre/virtualbox-libre-modules/libre.patch +++ /dev/null @@ -1,5765 +0,0 @@ ---- VirtualBox-4.1.18.orig/Config.kmk 2012-07-24 16:38:43.981310996 -0300 -+++ VirtualBox-4.1.18/Config.kmk 2012-07-24 16:38:44.001309865 -0300 -@@ -56,9 +56,6 @@ - PROPS_SYSMODS_ACCUMULATE_L += INTERMEDIATES - PROPS_MISCBINS_ACCUMULATE_L += INTERMEDIATES - --# Misc names used bye the install paths below. --VBOX_PUEL_MANGLED_NAME := Oracle_VM_VirtualBox_Extension_Pack -- - # Install paths - ## @todo This will change after 4.1 is branched off! - # What is now 'bin' and 'lib' will be moved down under 'staged/', except on -@@ -125,9 +122,6 @@ - endif - - INST_DOC = doc/ --INST_EXTPACK = $(INST_BIN)ExtensionPacks/ --INST_EXTPACK_CERTS = $(INST_BIN)ExtPackCertificates/ --INST_EXTPACK_PUEL = $(INST_EXTPACK)$(VBOX_PUEL_MANGLED_NAME)/ - INST_PACKAGES = packages/ - - VBOX_PATH_SDK = $(patsubst %/,%,$(PATH_STAGE)/$(INST_SDK)) -@@ -136,7 +130,6 @@ - VBOX_PATH_ADDITIONS = $(patsubst %/,%,$(PATH_STAGE)/$(INST_ADDITIONS)) - VBOX_PATH_ADDITIONS_ISO = $(patsubst %/,%,$(PATH_STAGE)/$(INST_ADDITIONS_ISO)) - VBOX_PATH_ADDITIONS_LIB = $(patsubst %/,%,$(PATH_STAGE)/$(INST_ADDITIONS_LIB)) --VBOX_PATH_EXTPACK_PUEL= $(patsubst %/,%,$(PATH_STAGE)/$(INST_EXTPACK_PUEL)) - VBOX_PATH_PACKAGES = $(patsubst %/,%,$(PATH_STAGE)/$(INST_PACKAGES)) - - -@@ -208,7 +201,6 @@ - export VBOX_ADDITIONS_SH_MODE = release - export VBOX_DOCUMENTATION_SH_MODE = release - export VBOX_EFI_SH_MODE = release -- export VBOX_EXTPACKS_SH_MODE = release - endif - - # Some info on the vendor -@@ -361,8 +353,6 @@ - VBOX_WITH_USB = 1 - # Enable the USB 1.1 controller plus virtual USB HID devices. - VBOX_WITH_VUSB = 1 --# Enable the USB 2.0 controller. --VBOX_WITH_EHCI = 1 - # Enable the ISCSI feature. - VBOX_WITH_ISCSI = 1 - # Enable INIP support in the ISCSI feature. -@@ -430,9 +420,6 @@ - ifdef VBOX_WITH_USB - VBOX_WITH_VUSB = 1 - endif --ifdef VBOX_WITH_EHCI -- VBOX_WITH_EHCI_IMPL = 1 --endif - ifdef VBOX_WITH_PCI_PASSTHROUGH - VBOX_WITH_PCI_PASSTHROUGH_IMPL = 1 - endif -@@ -591,15 +578,6 @@ - ## @} - - --## @name Extension pack --## @{ --# Enables the extension pack feature. --VBOX_WITH_EXTPACK = 1 --# Enables separating code into the Oracle VM VirtualBox Extension Pack, dubbed PUEL. --VBOX_WITH_EXTPACK_PUEL = 1 --# Enables building+packing the Oracle VM VirtualBox Extension Pack, includes VBOX_WITH_EXTPACK_PUEL --VBOX_WITH_EXTPACK_PUEL_BUILD = 1 --## @} - - ## @name Misc - ## @{ -@@ -777,14 +755,6 @@ - # Skip stuff. - # - --ifdef VBOX_ONLY_EXTPACKS -- # Clear some VBOX_WITH_XXX variables instead of adding ifdefs all over the place. -- VBOX_WITH_DEBUGGER = -- VBOX_WITH_ADDITIONS = -- VBOX_WITH_VBOXDRV = -- VBOX_WITH_TESTCASES = --endif -- - # VBOX_QUICK can be used by core developers to speed to the build - ifdef VBOX_QUICK - # undefine variables by assigning blank. -@@ -848,7 +818,6 @@ - VBOX_WITH_TESTSUITE= - VBOX_WITH_QTGUI= - VBOX_WITH_USB= -- VBOX_WITH_EHCI= - VBOX_WITH_DOCS= - VBOX_WITH_PDM_ASYNC_COMPLETION= - VBOX_WITH_KCHMVIEWER= -@@ -870,7 +839,6 @@ - VBOX_WITH_CROGL= - VBOX_WITH_DEBUGGER= - VBOX_WITH_DOCS= -- VBOX_WITH_EHCI= - VBOX_WITH_HARDENING= - VBOX_WITH_HEADLESS= - VBOX_WITH_HGCM= -@@ -952,9 +920,6 @@ - # - ifdef VBOX_OSE - VBOX_WITH_VRDP= -- VBOX_WITH_EHCI_IMPL= -- VBOX_WITH_EXTPACK_PUEL= -- VBOX_WITH_EXTPACK_PUEL_BUILD= - VBOX_WITH_PCI_PASSTHROUGH_IMPL= - VBOX_WITH_OS2_ADDITIONS_BIN= - VBOX_WITH_SECURELABEL= -@@ -1082,10 +1047,6 @@ - VBOX_WITH_KCHMVIEWER= - endif - --ifdef VBOX_WITH_EXTPACK_PUEL_BUILD -- VBOX_WITH_EXTPACK_PUEL = 1 --endif -- - # - # Mark OSE builds clearly, helps figuring out limitations more easily. - # -@@ -1679,9 +1640,6 @@ - # biossums (set BIOS checksums) - VBOX_BIOSSUMS ?= $(PATH_OBJ)/biossums/biossums$(HOSTSUFF_EXE) - --# RTManifest (extension pack manifest utility) --VBOX_RTMANIFEST ?= $(PATH_OBJ)/bldRTManifest/bldRTManifest$(HOSTSUFF_EXE) -- - # filesplitter (splits java files) - VBOX_FILESPLIT ?= $(PATH_OBJ)/filesplitter/filesplitter$(HOSTSUFF_EXE) - -@@ -2461,13 +2419,6 @@ - SDK_VBOX_OPENSSL2_LIBS = $(NO_SUCH_VARIABLE) - endif - --SDK_VBoxOpenSslExtPack = Internal use only. --SDK_VBoxOpenSslExtPack_INCS = $(SDK_VBOX_OPENSSL_VBOX_DEFAULT_INCS) --SDK_VBoxOpenSslExtPack_ORDERDEPS = $(crypto-headers_1_TARGET) --SDK_VBoxOpenSslExtPack_LIBS = \ -- $(PATH_STAGE_LIB)/VBoxExtPack-libssl$(VBOX_SUFF_LIB) \ -- $(PATH_STAGE_LIB)/VBoxExtPack-libcrypto$(VBOX_SUFF_LIB) -- - SDK_VBOX_BLD_OPENSSL = . - SDK_VBOX_BLD_OPENSSL_EXTENDS = VBOX_OPENSSL - SDK_VBOX_BLD_OPENSSL_LIBS ?= \ -@@ -3817,100 +3768,6 @@ - endif - TEMPLATE_VBOXMAINCLIENTDLL_LDFLAGS.darwin = $(filter-out -bind_at_load,$(TEMPLATE_VBOXMAINCLIENTEXE_LDFLAGS.darwin)) - -- -- --# --# Templates used for building the extension packs. --# --ifdef VBOX_WITH_EXTPACK -- # Base templates (native or portable). -- TEMPLATE_VBoxR3ExtPack = For the ring-3 context extension pack modules. -- if 1 # Native for now. -- TEMPLATE_VBoxR3ExtPack_EXTENDS = VBOXR3DLLNOXCPT -- TEMPLATE_VBoxR3ExtPack_DEFS = $(TEMPLATE_VBOXR3DLLNOXCPT_DEFS) VBOX_IN_EXTPACK VBOX_IN_EXTPACK_R3 -- else -- TEMPLATE_VBoxR3ExtPack_EXTENDS = VBOXNOCRTGCC -- TEMPLATE_VBoxR3ExtPack_DEFS = $(TEMPLATE_VBOXNOCRTGCC_DEFS) VBOX_IN_EXTPACK VBOX_IN_EXTPACK_R3 IPRT_NO_CRT IN_RING3 -- TEMPLATE_VBoxR3ExtPack_INCS = $(PATH_ROOT)/include/iprt/nocrt $(TEMPLATE_VBOXR3DLLNOXCPT_INCS) -- endif -- ifneq ($(KBUILD_TARGET),win) -- TEMPLATE_VBoxR3ExtPack_CXXFLAGS = $(TEMPLATE_VBOXR3DLLNOXCPT_CXXFLAGS) -fno-rtti -- endif -- TEMPLATE_VBoxR3ExtPack_INST = $(INST_EXTPACK)YouShallOverrideThis/ -- ifeq ($(KBUILD_TARGET),linux) -- TEMPLATE_VBoxR3ExtPack_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)' '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)', $(TEMPLATE_VBOXR3DLLNOXCPT_LDFLAGS)) -- else -- if !defined(VBOX_WITH_RUNPATH) && defined(VBOX_WITH_RELATIVE_RUNPATH) -- TEMPLATE_VBoxR3ExtPack_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)/../../..' $(filter-out '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)', $(TEMPLATE_VBOXR3DLLNOXCPT_LDFLAGS)) -- endif -- endif -- ifdef VBOX_ONLY_EXTPACKS_USE_IMPLIBS -- if1of ($(KBUILD_TARGET), win os2) -- TEMPLATE_VBoxR3ExtPack_LIBS = \ -- $(TEMPLATE_LIBS_VBOXR3) \ -- $(PATH_STAGE_LIB)/VMMR3Imp$(VBOX_SUFF_LIB) \ -- $(PATH_STAGE_LIB)/VBoxRTImp$(VBOX_SUFF_LIB) -- else -- TEMPLATE_VBoxR3ExtPack_LIBS = \ -- $(TEMPLATE_LIBS_VBOXR3) \ -- $(PATH_STAGE_LIB)/VMMR3Imp$(VBOX_SUFF_DLL) \ -- $(PATH_STAGE_LIB)/VBoxRTImp$(VBOX_SUFF_DLL) -- endif -- else -- TEMPLATE_VBoxR3ExtPack_LIBS = \ -- $(TEMPLATE_LIBS_VBOXR3) \ -- $(LIB_RUNTIME) \ -- $(LIB_VMM) -- endif -- -- TEMPLATE_VBoxR0ExtPack = For the ring-0 context extension pack modules. -- TEMPLATE_VBoxR0ExtPack_EXTENDS = VBoxR0 -- TEMPLATE_VBoxR0ExtPack_EXTENDS_BY = appending -- TEMPLATE_VBoxR0ExtPack_INST = $(INST_EXTPACK)YouShallOverrideThis/ -- TEMPLATE_VBoxR0ExtPack_DEFS = VBOX_IN_EXTPACK VBOX_IN_EXTPACK_R0 -- if1of ($(VBOX_LDR_FMT), pe lx) -- TEMPLATE_VBoxR0ExtPack_LIBS = \ -- $(PATH_STAGE_LIB)/VMMR0Imp$(VBOX_SUFF_LIB) \ -- $(PATH_STAGE_LIB)/SUPR0$(VBOX_SUFF_LIB) -- endif -- -- TEMPLATE_VBoxRcExtPack = For the raw-mode context extension pack modules. -- TEMPLATE_VBoxRcExtPack_EXTENDS = VBoxRc -- TEMPLATE_VBoxRcExtPack_EXTENDS_BY = appending -- TEMPLATE_VBoxRcExtPack_SYSSUFF = .rc -- TEMPLATE_VBoxRcExtPack_INST = $(INST_EXTPACK)YouShallOverrideThis/ -- TEMPLATE_VBoxRcExtPack_DEFS = VBOX_IN_EXTPACK VBOX_IN_EXTPACK_RC -- if1of ($(VBOX_LDR_FMT32), pe lx) -- TEMPLATE_VBoxRcExtPack_LIBS = \ -- $(PATH_STAGE_LIB)/VMMRCBuiltin$(VBOX_SUFF_LIB) \ -- $(PATH_STAGE_LIB)/VMMRCImp$(VBOX_SUFF_LIB) -- endif -- -- TEMPLATE_VBoxInsExtPack = For the install targets of an extension pack. -- TEMPLATE_VBoxInsExtPack_MODE = 0644 -- TEMPLATE_VBoxInsExtPack_INST = $(INST_EXTPACK)YouShallOverrideThis/ -- -- # For each individual extension pack -- ifdef VBOX_WITH_EXTPACK_PUEL -- TEMPLATE_VBoxR3ExtPackPuel = For the ring-3 context modules in the PUEL extension pack. -- TEMPLATE_VBoxR3ExtPackPuel_EXTENDS = VBoxR3ExtPack -- TEMPLATE_VBoxR3ExtPackPuel_INST = $(INST_EXTPACK_PUEL)$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)/ -- -- TEMPLATE_VBoxR0ExtPackPuel = For the ring-0 context modules in the PUEL extension pack. -- TEMPLATE_VBoxR0ExtPackPuel_EXTENDS = VBoxR0ExtPack -- TEMPLATE_VBoxR0ExtPackPuel_INST = $(INST_EXTPACK_PUEL)$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)/ -- -- TEMPLATE_VBoxRcExtPackPuel = For the raw-mode context modules in the PUEL extension pack. -- TEMPLATE_VBoxRcExtPackPuel_EXTENDS = VBoxRcExtPack -- TEMPLATE_VBoxRcExtPackPuel_INST = $(INST_EXTPACK_PUEL)$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)/ -- -- TEMPLATE_VBoxInsExtPackPuel = For the install targets of an extension pack. -- TEMPLATE_VBoxInsExtPackPuel_EXTENDS = VBoxR0ExtPack -- TEMPLATE_VBoxInsExtPackPuel_INST = $(INST_EXTPACK_PUEL) --endif --endif # VBOX_WITH_EXTPACK -- -- - # - # Qt 4 - # Qt 4 ---- VirtualBox-4.1.18.orig/Makefile.kmk 2012-07-24 17:16:47.078929150 -0300 -+++ VirtualBox-4.1.18/Makefile.kmk 2012-07-24 17:16:47.125592981 -0300 -@@ -446,7 +446,6 @@ - include/VBox \ - include/VBox/vmm \ - include/VBox/com \ -- include/VBox/ExtPack \ - include/VBox/HostServices \ - include/VBox/GuestHost \ - include/VBox/HGSMI \ -@@ -862,191 +861,6 @@ - additions-build-linux.x86.combined \ - additions-packing - -- --# --# Build the extension packs, all of them. --# --# This is tailored (hardcoded) for the extension pack build box. --# --# The fetching must be done in serial fashion, while the building should be --# more flexible wrt to -jN. --# --extpacks-fetch: -- + $(KMK) -C tools fetch VBOX_ONLY_EXTPACKS=1 -- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=darwin BUILD_TARGET_ARCH=amd64 BUILD_TARGET=darwin VBOX_ONLY_EXTPACKS=1 -- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=darwin BUILD_TARGET_ARCH=x86 BUILD_TARGET=darwin VBOX_ONLY_EXTPACKS=1 --# + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=freebsd BUILD_TARGET_ARCH=amd64 BUILD_TARGET=freebsd VBOX_ONLY_EXTPACKS=1 --# + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=freebsd BUILD_TARGET_ARCH=x86 BUILD_TARGET=freebsd VBOX_ONLY_EXTPACKS=1 -- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=linux BUILD_TARGET_ARCH=amd64 BUILD_TARGET=linux VBOX_ONLY_EXTPACKS=1 -- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=linux BUILD_TARGET_ARCH=x86 BUILD_TARGET=linux VBOX_ONLY_EXTPACKS=1 --# + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=os2 BUILD_TARGET_ARCH=x86 BUILD_TARGET=os2 VBOX_ONLY_EXTPACKS=1 -- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=solaris BUILD_TARGET_ARCH=amd64 BUILD_TARGET=solaris VBOX_ONLY_EXTPACKS=1 -- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=solaris BUILD_TARGET_ARCH=x86 BUILD_TARGET=solaris VBOX_ONLY_EXTPACKS=1 -- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=win BUILD_TARGET_ARCH=amd64 BUILD_TARGET=win VBOX_ONLY_EXTPACKS=1 -- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=win BUILD_TARGET_ARCH=x86 BUILD_TARGET=win VBOX_ONLY_EXTPACKS=1 -- -- --extpacks-build: \ -- extpacks-build-win.amd64 \ -- extpacks-build-win.x86 \ -- extpacks-build-solaris.amd64 \ -- extpacks-build-solaris.x86 \ -- extpacks-build-os2.x86 \ -- extpacks-build-linux.amd64 \ -- extpacks-build-linux.x86 \ -- extpacks-build-darwin.amd64 \ -- extpacks-build-darwin.x86 \ -- extpacks-build-freebsd.amd64 \ -- extpacks-build-freebsd.x86 -- --VBOX_EXTPACKS_BUILD.amd64 = VBOX_ONLY_EXTPACKS=1 \ -- KBUILD_TYPE=$(KBUILD_TYPE) BUILD_TYPE=$(KBUILD_TYPE) \ -- KBUILD_TARGET_ARCH=amd64 BUILD_TARGET_ARCH=amd64 \ -- VBOX_SVN_REV=$(VBOX_SVN_REV) -- --VBOX_EXTPACKS_BUILD.x86 = VBOX_ONLY_EXTPACKS=1 \ -- KBUILD_TYPE=$(KBUILD_TYPE) BUILD_TYPE=$(KBUILD_TYPE) \ -- KBUILD_TARGET_ARCH=x86 BUILD_TARGET_ARCH=x86 \ -- VBOX_SVN_REV=$(VBOX_SVN_REV) -- --# Automatically determine the extpack build subdir name. Used for figuring out --# directory names inside the extension pack building VMs. --VBOX_EXTPACKS_BUILD_SUBDIRNAME := $(lastword $(subst /, ,$(PATH_ROOT))) -- --# When building in parallel on a Windows host, make sure we finish the host --# bit before kicking off any UNIX guest or we'll run into file sharing issues. --ifeq ($(KBUILD_TARGET),win) --VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST = extpacks-build-win.x86 extpacks-build-win.amd64 --else --VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST = --endif -- --extpacks-build-win.amd64: --ifeq ($(KBUILD_TARGET),win) -- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) --else -- $(call MSG_L1,Building Windows/amd64 extension packs) -- $(VBOX_KMK_TIME) ssh vbox@192.168.27.6 " echo $@ && cd e:/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_EXTPACKS_BUILD.amd64) all" --endif -- --extpacks-build-win.x86: --ifeq ($(KBUILD_TARGET),win) -- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) --else -- $(call MSG_L1,Building Windows/x86 extension packs) -- $(VBOX_KMK_TIME) ssh vbox@192.168.27.16 " echo $@ && cd e:/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_EXTPACKS_BUILD.x86) all" --endif -- --ifeq ($(KBUILD_TARGET),solaris) --extpacks-build-solaris.amd64: -- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) -- --extpacks-build-solaris.x86: extpacks-build-solaris.amd64 -- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) VBOX_WITH_COMBINED_SOLARIS_GUEST_PACKAGE=1 all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) -- --else --# Serialize 32-bit and 64-bit ASSUMING the same VM builds both. --extpacks-build-solaris.rsync-into-vm: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) -- $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,solaris,*) . 192.168.27.4:/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) -- --extpacks-build-solaris.build-it: extpacks-build-solaris.rsync-into-vm -- $(call MSG_L1,Building Solaris/amd64 extension packs) -- $(VBOX_KMK_TIME) ssh vbox@192.168.27.4 " echo $@/amd64 && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all" -- $(call MSG_L1,Building Solaris/x86 extension packs) -- $(VBOX_KMK_TIME) ssh vbox@192.168.27.4 " echo $@/x86 && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all" -- --extpacks-build-solaris.rsync-out-of-vm: extpacks-build-solaris.build-it -- $(VBOX_KMK_TIME) rsync -a --delete 192.168.27.4:/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/solaris.x86 out/ -- $(VBOX_KMK_TIME) rsync -a --delete 192.168.27.4:/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/solaris.amd64 out/ -- --.NOTPARALLEL: extpacks-build-solaris.rsync-out-of-vm extpacks-build-solaris.rsync-into-vm --.PHONY: extpacks-build-solaris.rsync-out-of-vm extpacks-build-solaris.rsync-into-vm extpacks-build-solaris.build-it -- --extpacks-build-solaris.amd64: extpacks-build-solaris.rsync-out-of-vm --extpacks-build-solaris.x86: extpacks-build-solaris.rsync-out-of-vm --endif -- --extpacks-build-os2.x86: --#ifeq ($(KBUILD_TARGET),os2) --# + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) --#else --# $(VBOX_KMK_TIME) ssh vbox@192.168.27.3 " cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) " --#endif -- --extpacks-build-linux.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) --ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),linux.amd64) -- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) --else -- $(call MSG_L1,Building Linux/amd64 extension packs) -- $(VBOX_KMK_TIME) ssh vbox@192.168.27.12 " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all" --endif -- --extpacks-build-linux.x86: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) --ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),linux.x86) -- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) --else -- $(call MSG_L1,Building Linux/x86 extension packs) -- $(VBOX_KMK_TIME) ssh vbox@192.168.27.11 " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all" --endif -- --extpacks-build-freebsd.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) --#ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),freebsd.amd64) --# + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) --#else --# $(call MSG_L1,Building FreeBSD/amd64 extension packs) --# $(VBOX_KMK_TIME) ssh vbox@192.168.27.17 " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all" --#endif -- --extpacks-build-freebsd.x86: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) --#ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),freebsd.x86) --# + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) --#else --# $(call MSG_L1,Building FreeBSD/x86 extension packs) --# $(VBOX_KMK_TIME) ssh vbox@192.168.27.7 " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all" --#endif -- --extpacks-build-darwin.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) --ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.amd64) -- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) --else -- $(call MSG_L1,Building Darwin/amd64 extension packs) -- $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,darwin,amd64) . 192.168.27.15:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) -- $(VBOX_KMK_TIME) ssh vbox@192.168.27.15 " echo $@ && cd /Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all" -- $(VBOX_KMK_TIME) rsync -am -v --delete 192.168.27.15:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/darwin.amd64 out/ --endif -- --extpacks-build-darwin.x86: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) --ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.x86) -- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) --else -- $(call MSG_L1,Building Darwin/x86 extension packs) -- $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,darwin,x86) . 192.168.27.5:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) -- $(VBOX_KMK_TIME) ssh vbox@192.168.27.5 " echo $@ && cd /Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all" -- $(VBOX_KMK_TIME) rsync -am -v --delete 192.168.27.5:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/darwin.x86 out/ --endif -- -- --extpacks-packing: -- + $(KMK) VBOX_ONLY_EXTPACKS=1 \ -- VBOX_WITH_EXTPACK_OS_ARCHS="darwin.amd64 darwin.x86 linux.amd64 linux.x86 solaris.amd64 solaris.x86 win.amd64 win.x86" \ -- packing --# +++ freebsd.amd64 freebsd.x86 os2.x86 ^^^ -- --.PHONY: \ -- extpacks-build-win.x86 \ -- extpacks-build-win.amd64 \ -- extpacks-build-solaris.amd64 \ -- extpacks-build-solaris.x86 \ -- extpacks-build-os2.x86 \ -- extpacks-build-linux.amd64 \ -- extpacks-build-linux.x86 \ -- extpacks-build-freebsd.amd64 \ -- extpacks-build-freebsd.x86 \ -- extpacks-build-darwin.amd64 \ -- extpacks-build-darwin.x86 \ -- extpacks-packing -- -- - # - # Build the test suite, all of it. - # ---- VirtualBox-4.1.18.orig/src/VBox/Devices/build/VBoxDD.cpp 2012-06-20 10:15:51.000000000 -0300 -+++ VirtualBox-4.1.18/src/VBox/Devices/build/VBoxDD.cpp 2012-07-24 16:18:03.964493454 -0300 -@@ -132,11 +132,6 @@ - if (RT_FAILURE(rc)) - return rc; - #endif --#ifdef VBOX_WITH_EHCI_IMPL -- rc = pCallbacks->pfnRegister(pCallbacks, &g_DeviceEHCI); -- if (RT_FAILURE(rc)) -- return rc; --#endif - #ifdef VBOX_ACPI - rc = pCallbacks->pfnRegister(pCallbacks, &g_DeviceACPI); - if (RT_FAILURE(rc)) ---- VirtualBox-4.1.18.orig/src/VBox/Devices/build/VBoxDD.h 2012-06-20 10:15:51.000000000 -0300 -+++ VirtualBox-4.1.18/src/VBox/Devices/build/VBoxDD.h 2012-07-24 16:20:35.939205389 -0300 -@@ -62,7 +62,6 @@ - extern const PDMDEVREG g_DeviceICH6_HDA; - extern const PDMDEVREG g_DeviceAudioSniffer; - extern const PDMDEVREG g_DeviceOHCI; --extern const PDMDEVREG g_DeviceEHCI; - extern const PDMDEVREG g_DeviceACPI; - extern const PDMDEVREG g_DeviceDMA; - extern const PDMDEVREG g_DeviceFloppyController; ---- VirtualBox-4.1.18.orig/src/VBox/Main/include/ExtPackManagerImpl.h 2012-06-20 10:17:33.000000000 -0300 -+++ /dev/null 2012-07-24 14:48:18.638572110 -0300 -@@ -1,245 +0,0 @@ --/* $Id: ExtPackManagerImpl.h $ */ --/** @file -- * VirtualBox Main - interface for Extension Packs, VBoxSVC & VBoxC. -- */ -- --/* -- * Copyright (C) 2010 Oracle Corporation -- * -- * This file is part of VirtualBox Open Source Edition (OSE), as -- * available from http://www.virtualbox.org. This file is free software; -- * you can redistribute it and/or modify it under the terms of the GNU -- * General Public License (GPL) as published by the Free Software -- * Foundation, in version 2 as it comes in the "COPYING" file of the -- * VirtualBox OSE distribution. VirtualBox OSE is distributed in the -- * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. -- */ -- --#ifndef ____H_EXTPACKMANAGERIMPL --#define ____H_EXTPACKMANAGERIMPL -- --#include "VirtualBoxBase.h" --#include <VBox/ExtPack/ExtPack.h> --#include <iprt/fs.h> -- --/** -- * An extension pack file. -- */ --class ATL_NO_VTABLE ExtPackFile : -- public VirtualBoxBase, -- VBOX_SCRIPTABLE_IMPL(IExtPackFile) --{ --public: -- /** @name COM and internal init/term/mapping cruft. -- * @{ */ -- VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT(ExtPackFile, IExtPackFile) -- DECLARE_NOT_AGGREGATABLE(ExtPackFile) -- DECLARE_PROTECT_FINAL_CONSTRUCT() -- BEGIN_COM_MAP(ExtPackFile) -- VBOX_DEFAULT_INTERFACE_ENTRIES(IExtPackFile) -- COM_INTERFACE_ENTRY(IExtPackBase) -- END_COM_MAP() -- DECLARE_EMPTY_CTOR_DTOR(ExtPackFile) -- -- HRESULT FinalConstruct(); -- void FinalRelease(); -- HRESULT initWithFile(const char *a_pszFile, const char *a_pszDigest, class ExtPackManager *a_pExtPackMgr, VirtualBox *a_pVirtualBox); -- void uninit(); -- RTMEMEF_NEW_AND_DELETE_OPERATORS(); -- /** @} */ -- -- /** @name IExtPackBase interfaces -- * @{ */ -- STDMETHOD(COMGETTER(Name))(BSTR *a_pbstrName); -- STDMETHOD(COMGETTER(Description))(BSTR *a_pbstrDescription); -- STDMETHOD(COMGETTER(Version))(BSTR *a_pbstrVersion); -- STDMETHOD(COMGETTER(Revision))(ULONG *a_puRevision); -- STDMETHOD(COMGETTER(VRDEModule))(BSTR *a_pbstrVrdeModule); -- STDMETHOD(COMGETTER(PlugIns))(ComSafeArrayOut(IExtPackPlugIn *, a_paPlugIns)); -- STDMETHOD(COMGETTER(Usable))(BOOL *a_pfUsable); -- STDMETHOD(COMGETTER(WhyUnusable))(BSTR *a_pbstrWhy); -- STDMETHOD(COMGETTER(ShowLicense))(BOOL *a_pfShowIt); -- STDMETHOD(COMGETTER(License))(BSTR *a_pbstrHtmlLicense); -- STDMETHOD(QueryLicense)(IN_BSTR a_bstrPreferredLocale, IN_BSTR a_bstrPreferredLanguage, -- IN_BSTR a_bstrFormat, BSTR *a_pbstrLicense); -- /** @} */ -- -- /** @name IExtPackFile interfaces -- * @{ */ -- STDMETHOD(COMGETTER(FilePath))(BSTR *a_pbstrPath); -- STDMETHOD(Install)(BOOL a_fReplace, IN_BSTR a_bstrDisplayInfo, IProgress **a_ppProgress); -- /** @} */ -- --private: -- /** @name Misc init helpers -- * @{ */ -- HRESULT initFailed(const char *a_pszWhyFmt, ...); -- /** @} */ -- --private: -- struct Data; -- /** Pointer to the private instance. */ -- Data *m; -- -- friend class ExtPackManager; --}; -- -- --/** -- * An installed extension pack. -- */ --class ATL_NO_VTABLE ExtPack : -- public VirtualBoxBase, -- VBOX_SCRIPTABLE_IMPL(IExtPack) --{ --public: -- /** @name COM and internal init/term/mapping cruft. -- * @{ */ -- VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT(ExtPack, IExtPack) -- DECLARE_NOT_AGGREGATABLE(ExtPack) -- DECLARE_PROTECT_FINAL_CONSTRUCT() -- BEGIN_COM_MAP(ExtPack) -- VBOX_DEFAULT_INTERFACE_ENTRIES(IExtPack) -- COM_INTERFACE_ENTRY(IExtPackBase) -- END_COM_MAP() -- DECLARE_EMPTY_CTOR_DTOR(ExtPack) -- -- HRESULT FinalConstruct(); -- void FinalRelease(); -- HRESULT initWithDir(VBOXEXTPACKCTX a_enmContext, const char *a_pszName, const char *a_pszDir); -- void uninit(); -- RTMEMEF_NEW_AND_DELETE_OPERATORS(); -- /** @} */ -- -- /** @name IExtPackBase interfaces -- * @{ */ -- STDMETHOD(COMGETTER(Name))(BSTR *a_pbstrName); -- STDMETHOD(COMGETTER(Description))(BSTR *a_pbstrDescription); -- STDMETHOD(COMGETTER(Version))(BSTR *a_pbstrVersion); -- STDMETHOD(COMGETTER(Revision))(ULONG *a_puRevision); -- STDMETHOD(COMGETTER(VRDEModule))(BSTR *a_pbstrVrdeModule); -- STDMETHOD(COMGETTER(PlugIns))(ComSafeArrayOut(IExtPackPlugIn *, a_paPlugIns)); -- STDMETHOD(COMGETTER(Usable))(BOOL *a_pfUsable); -- STDMETHOD(COMGETTER(WhyUnusable))(BSTR *a_pbstrWhy); -- STDMETHOD(COMGETTER(ShowLicense))(BOOL *a_pfShowIt); -- STDMETHOD(COMGETTER(License))(BSTR *a_pbstrHtmlLicense); -- STDMETHOD(QueryLicense)(IN_BSTR a_bstrPreferredLocale, IN_BSTR a_bstrPreferredLanguage, -- IN_BSTR a_bstrFormat, BSTR *a_pbstrLicense); -- /** @} */ -- -- /** @name IExtPack interfaces -- * @{ */ -- STDMETHOD(QueryObject)(IN_BSTR a_bstrObjectId, IUnknown **a_ppUnknown); -- /** @} */ -- -- /** @name Internal interfaces used by ExtPackManager. -- * @{ */ -- bool callInstalledHook(IVirtualBox *a_pVirtualBox, AutoWriteLock *a_pLock, PRTERRINFO pErrInfo); -- HRESULT callUninstallHookAndClose(IVirtualBox *a_pVirtualBox, bool a_fForcedRemoval); -- bool callVirtualBoxReadyHook(IVirtualBox *a_pVirtualBox, AutoWriteLock *a_pLock); -- bool callConsoleReadyHook(IConsole *a_pConsole, AutoWriteLock *a_pLock); -- bool callVmCreatedHook(IVirtualBox *a_pVirtualBox, IMachine *a_pMachine, AutoWriteLock *a_pLock); -- bool callVmConfigureVmmHook(IConsole *a_pConsole, PVM a_pVM, AutoWriteLock *a_pLock, int *a_pvrc); -- bool callVmPowerOnHook(IConsole *a_pConsole, PVM a_pVM, AutoWriteLock *a_pLock, int *a_pvrc); -- bool callVmPowerOffHook(IConsole *a_pConsole, PVM a_pVM, AutoWriteLock *a_pLock); -- HRESULT checkVrde(void); -- HRESULT getVrdpLibraryName(Utf8Str *a_pstrVrdeLibrary); -- bool wantsToBeDefaultVrde(void) const; -- HRESULT refresh(bool *pfCanDelete); -- /** @} */ -- --protected: -- /** @name Internal helper methods. -- * @{ */ -- void probeAndLoad(void); -- bool findModule(const char *a_pszName, const char *a_pszExt, VBOXEXTPACKMODKIND a_enmKind, -- Utf8Str *a_ppStrFound, bool *a_pfNative, PRTFSOBJINFO a_pObjInfo) const; -- static bool objinfoIsEqual(PCRTFSOBJINFO pObjInfo1, PCRTFSOBJINFO pObjInfo2); -- /** @} */ -- -- /** @name Extension Pack Helpers -- * @{ */ -- static DECLCALLBACK(int) hlpFindModule(PCVBOXEXTPACKHLP pHlp, const char *pszName, const char *pszExt, -- VBOXEXTPACKMODKIND enmKind, char *pszFound, size_t cbFound, bool *pfNative); -- static DECLCALLBACK(int) hlpGetFilePath(PCVBOXEXTPACKHLP pHlp, const char *pszFilename, char *pszPath, size_t cbPath); -- static DECLCALLBACK(VBOXEXTPACKCTX) hlpGetContext(PCVBOXEXTPACKHLP pHlp); -- static DECLCALLBACK(int) hlpReservedN(PCVBOXEXTPACKHLP pHlp); -- /** @} */ -- --private: -- struct Data; -- /** Pointer to the private instance. */ -- Data *m; -- -- friend class ExtPackManager; --}; -- -- --/** -- * Extension pack manager. -- */ --class ATL_NO_VTABLE ExtPackManager : -- public VirtualBoxBase, -- VBOX_SCRIPTABLE_IMPL(IExtPackManager) --{ -- /** @name COM and internal init/term/mapping cruft. -- * @{ */ -- VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT(ExtPackManager, IExtPackManager) -- DECLARE_NOT_AGGREGATABLE(ExtPackManager) -- DECLARE_PROTECT_FINAL_CONSTRUCT() -- BEGIN_COM_MAP(ExtPackManager) -- VBOX_DEFAULT_INTERFACE_ENTRIES(IExtPackManager) -- END_COM_MAP() -- DECLARE_EMPTY_CTOR_DTOR(ExtPackManager) -- -- HRESULT FinalConstruct(); -- void FinalRelease(); -- HRESULT initExtPackManager(VirtualBox *a_pVirtualBox, VBOXEXTPACKCTX a_enmContext); -- void uninit(); -- RTMEMEF_NEW_AND_DELETE_OPERATORS(); -- /** @} */ -- -- /** @name IExtPack interfaces -- * @{ */ -- STDMETHOD(COMGETTER(InstalledExtPacks))(ComSafeArrayOut(IExtPack *, a_paExtPacks)); -- STDMETHOD(Find)(IN_BSTR a_bstrName, IExtPack **a_pExtPack); -- STDMETHOD(OpenExtPackFile)(IN_BSTR a_bstrTarball, IExtPackFile **a_ppExtPackFile); -- STDMETHOD(Uninstall)(IN_BSTR a_bstrName, BOOL a_fForcedRemoval, IN_BSTR a_bstrDisplayInfo, IProgress **a_ppProgress); -- STDMETHOD(Cleanup)(void); -- STDMETHOD(QueryAllPlugInsForFrontend)(IN_BSTR a_bstrFrontend, ComSafeArrayOut(BSTR, a_pabstrPlugInModules)); -- STDMETHOD(IsExtPackUsable(IN_BSTR a_bstrExtPack, BOOL *aUsable)); -- /** @} */ -- -- /** @name Internal interfaces used by other Main classes. -- * @{ */ -- static DECLCALLBACK(int) doInstallThreadProc(RTTHREAD hThread, void *pvJob); -- HRESULT doInstall(ExtPackFile *a_pExtPackFile, bool a_fReplace, Utf8Str const *a_pstrDisplayInfo); -- static DECLCALLBACK(int) doUninstallThreadProc(RTTHREAD hThread, void *pvJob); -- HRESULT doUninstall(const Utf8Str *a_pstrName, bool a_fForcedRemoval, const Utf8Str *a_pstrDisplayInfo); -- void callAllVirtualBoxReadyHooks(void); -- void callAllConsoleReadyHooks(IConsole *a_pConsole); -- void callAllVmCreatedHooks(IMachine *a_pMachine); -- int callAllVmConfigureVmmHooks(IConsole *a_pConsole, PVM a_pVM); -- int callAllVmPowerOnHooks(IConsole *a_pConsole, PVM a_pVM); -- void callAllVmPowerOffHooks(IConsole *a_pConsole, PVM a_pVM); -- HRESULT checkVrdeExtPack(Utf8Str const *a_pstrExtPack); -- int getVrdeLibraryPathForExtPack(Utf8Str const *a_pstrExtPack, Utf8Str *a_pstrVrdeLibrary); -- HRESULT getDefaultVrdeExtPack(Utf8Str *a_pstrExtPack); -- bool isExtPackUsable(const char *a_pszExtPack); -- void dumpAllToReleaseLog(void); -- /** @} */ -- --private: -- HRESULT runSetUidToRootHelper(Utf8Str const *a_pstrDisplayInfo, const char *a_pszCommand, ...); -- ExtPack *findExtPack(const char *a_pszName); -- void removeExtPack(const char *a_pszName); -- HRESULT refreshExtPack(const char *a_pszName, bool a_fUnsuableIsError, ExtPack **a_ppExtPack); -- --private: -- struct Data; -- /** Pointer to the private instance. */ -- Data *m; --}; -- --#endif --/* vi: set tabstop=4 shiftwidth=4 expandtab: */ ---- VirtualBox-4.1.18.orig/src/VBox/Main/include/ExtPackUtil.h 2012-06-20 10:17:33.000000000 -0300 -+++ /dev/null 2012-07-24 14:48:18.638572110 -0300 -@@ -1,137 +0,0 @@ --/* $Id: ExtPackUtil.h $ */ --/** @file -- * VirtualBox Main - Extension Pack Utilities and definitions, VBoxC, VBoxSVC, ++. -- */ -- --/* -- * Copyright (C) 2010 Oracle Corporation -- * -- * This file is part of VirtualBox Open Source Edition (OSE), as -- * available from http://www.virtualbox.org. This file is free software; -- * you can redistribute it and/or modify it under the terms of the GNU -- * General Public License (GPL) as published by the Free Software -- * Foundation, in version 2 as it comes in the "COPYING" file of the -- * VirtualBox OSE distribution. VirtualBox OSE is distributed in the -- * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. -- */ -- --#ifndef ____H_EXTPACKUTIL --#define ____H_EXTPACKUTIL -- --#include <iprt/cpp/ministring.h> --#include <iprt/fs.h> --#include <iprt/vfs.h> -- -- --/** @name VBOX_EXTPACK_DESCRIPTION_NAME -- * The name of the description file in an extension pack. */ --#define VBOX_EXTPACK_DESCRIPTION_NAME "ExtPack.xml" --/** @name VBOX_EXTPACK_DESCRIPTION_NAME -- * The name of the manifest file in an extension pack. */ --#define VBOX_EXTPACK_MANIFEST_NAME "ExtPack.manifest" --/** @name VBOX_EXTPACK_SIGNATURE_NAME -- * The name of the signature file in an extension pack. */ --#define VBOX_EXTPACK_SIGNATURE_NAME "ExtPack.signature" --/** @name VBOX_EXTPACK_LICENSE_NAME_PREFIX -- * The name prefix of a license file in an extension pack. There can be -- * several license files in a pack, the variations being on locale, language -- * and format (HTML, RTF, plain text). All extension packages shall include -- * a */ --#define VBOX_EXTPACK_LICENSE_NAME_PREFIX "ExtPack-license" --/** @name VBOX_EXTPACK_SUFFIX -- * The suffix of a extension pack tarball. */ --#define VBOX_EXTPACK_SUFFIX ".vbox-extpack" -- --/** The minimum length (strlen) of a extension pack name. */ --#define VBOX_EXTPACK_NAME_MIN_LEN 3 --/** The max length (strlen) of a extension pack name. */ --#define VBOX_EXTPACK_NAME_MAX_LEN 64 -- --/** The architecture-dependent application data subdirectory where the -- * extension packs are installed. Relative to RTPathAppPrivateArch. */ --#define VBOX_EXTPACK_INSTALL_DIR "ExtensionPacks" --/** The architecture-independent application data subdirectory where the -- * certificates are installed. Relative to RTPathAppPrivateNoArch. */ --#define VBOX_EXTPACK_CERT_DIR "ExtPackCertificates" -- --/** The maximum entry name length. -- * Play short and safe. */ --#define VBOX_EXTPACK_MAX_MEMBER_NAME_LENGTH 128 -- -- --/** -- * Plug-in descriptor. -- */ --typedef struct VBOXEXTPACKPLUGINDESC --{ -- /** The name. */ -- RTCString strName; -- /** The module name. */ -- RTCString strModule; -- /** The description. */ -- RTCString strDescription; -- /** The frontend or component which it plugs into. */ -- RTCString strFrontend; --} VBOXEXTPACKPLUGINDESC; --/** Pointer to a plug-in descriptor. */ --typedef VBOXEXTPACKPLUGINDESC *PVBOXEXTPACKPLUGINDESC; -- --/** -- * Extension pack descriptor -- * -- * This is the internal representation of the ExtPack.xml. -- */ --typedef struct VBOXEXTPACKDESC --{ -- /** The name. */ -- RTCString strName; -- /** The description. */ -- RTCString strDescription; -- /** The version string. */ -- RTCString strVersion; -- /** The edition string. */ -- RTCString strEdition; -- /** The internal revision number. */ -- uint32_t uRevision; -- /** The name of the main module. */ -- RTCString strMainModule; -- /** The name of the VRDE module, empty if none. */ -- RTCString strVrdeModule; -- /** The number of plug-in descriptors. */ -- uint32_t cPlugIns; -- /** Pointer to an array of plug-in descriptors. */ -- PVBOXEXTPACKPLUGINDESC paPlugIns; -- /** Whether to show the license prior to installation. */ -- bool fShowLicense; --} VBOXEXTPACKDESC; -- --/** Pointer to a extension pack descriptor. */ --typedef VBOXEXTPACKDESC *PVBOXEXTPACKDESC; --/** Pointer to a const extension pack descriptor. */ --typedef VBOXEXTPACKDESC const *PCVBOXEXTPACKDESC; -- -- --void VBoxExtPackInitDesc(PVBOXEXTPACKDESC a_pExtPackDesc); --RTCString *VBoxExtPackLoadDesc(const char *a_pszDir, PVBOXEXTPACKDESC a_pExtPackDesc, PRTFSOBJINFO a_pObjInfo); --RTCString *VBoxExtPackLoadDescFromVfsFile(RTVFSFILE hVfsFile, PVBOXEXTPACKDESC a_pExtPackDesc, PRTFSOBJINFO a_pObjInfo); --RTCString *VBoxExtPackExtractNameFromTarballPath(const char *pszTarball); --void VBoxExtPackFreeDesc(PVBOXEXTPACKDESC a_pExtPackDesc); --bool VBoxExtPackIsValidName(const char *pszName); --bool VBoxExtPackIsValidMangledName(const char *pszMangledName, size_t cchMax = RTSTR_MAX); --RTCString *VBoxExtPackMangleName(const char *pszName); --RTCString *VBoxExtPackUnmangleName(const char *pszMangledName, size_t cbMax); --int VBoxExtPackCalcDir(char *pszExtPackDir, size_t cbExtPackDir, const char *pszParentDir, const char *pszName); --bool VBoxExtPackIsValidVersionString(const char *pszVersion); --bool VBoxExtPackIsValidEditionString(const char *pszEdition); --bool VBoxExtPackIsValidModuleString(const char *pszModule); -- --int VBoxExtPackValidateMember(const char *pszName, RTVFSOBJTYPE enmType, RTVFSOBJ hVfsObj, char *pszError, size_t cbError); --int VBoxExtPackOpenTarFss(RTFILE hTarballFile, char *pszError, size_t cbError, PRTVFSFSSTREAM phTarFss, PRTMANIFEST phFileManifest); --int VBoxExtPackValidateTarball(RTFILE hTarballFile, const char *pszExtPackName, -- const char *pszTarball, const char *pszTarballDigest, -- char *pszError, size_t cbError, -- PRTMANIFEST phValidManifest, PRTVFSFILE phXmlFile, RTCString *pStrDigest); -- -- --#endif -- ---- VirtualBox-4.1.18.orig/src/VBox/Main/src-all/ExtPackManagerImpl.cpp 2012-06-20 10:17:34.000000000 -0300 -+++ /dev/null 2012-07-24 14:48:18.638572110 -0300 -@@ -1,3126 +0,0 @@ --/* $Id: ExtPackManagerImpl.cpp $ */ --/** @file -- * VirtualBox Main - interface for Extension Packs, VBoxSVC & VBoxC. -- */ -- --/* -- * Copyright (C) 2010 Oracle Corporation -- * -- * This file is part of VirtualBox Open Source Edition (OSE), as -- * available from http://www.virtualbox.org. This file is free software; -- * you can redistribute it and/or modify it under the terms of the GNU -- * General Public License (GPL) as published by the Free Software -- * Foundation, in version 2 as it comes in the "COPYING" file of the -- * VirtualBox OSE distribution. VirtualBox OSE is distributed in the -- * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. -- */ -- -- --/******************************************************************************* --* Header Files * --*******************************************************************************/ --#include "ExtPackManagerImpl.h" --#include "ExtPackUtil.h" -- --#include <iprt/buildconfig.h> --#include <iprt/ctype.h> --#include <iprt/dir.h> --#include <iprt/env.h> --#include <iprt/file.h> --#include <iprt/ldr.h> --#include <iprt/manifest.h> --#include <iprt/param.h> --#include <iprt/path.h> --#include <iprt/pipe.h> --#include <iprt/process.h> --#include <iprt/string.h> -- --#include <VBox/com/array.h> --#include <VBox/com/ErrorInfo.h> --#include <VBox/err.h> --#include <VBox/log.h> --#include <VBox/sup.h> --#include <VBox/version.h> --#include "AutoCaller.h" --#include "Global.h" --#include "ProgressImpl.h" --#include "SystemPropertiesImpl.h" --#include "VirtualBoxImpl.h" -- -- --/******************************************************************************* --* Defined Constants And Macros * --*******************************************************************************/ --/** @name VBOX_EXTPACK_HELPER_NAME -- * The name of the utility application we employ to install and uninstall the -- * extension packs. This is a set-uid-to-root binary on unixy platforms, which -- * is why it has to be a separate application. -- */ --#if defined(RT_OS_WINDOWS) || defined(RT_OS_OS2) --# define VBOX_EXTPACK_HELPER_NAME "VBoxExtPackHelperApp.exe" --#else --# define VBOX_EXTPACK_HELPER_NAME "VBoxExtPackHelperApp" --#endif -- -- --/******************************************************************************* --* Structures and Typedefs * --*******************************************************************************/ --struct ExtPackBaseData --{ --public: -- /** The extension pack descriptor (loaded from the XML, mostly). */ -- VBOXEXTPACKDESC Desc; -- /** The file system object info of the XML file. -- * This is for detecting changes and save time in refresh(). */ -- RTFSOBJINFO ObjInfoDesc; -- /** Whether it's usable or not. */ -- bool fUsable; -- /** Why it is unusable. */ -- Utf8Str strWhyUnusable; --}; -- --/** -- * Private extension pack data. -- */ --struct ExtPackFile::Data : public ExtPackBaseData --{ --public: -- /** The path to the tarball. */ -- Utf8Str strExtPackFile; -- /** The SHA-256 hash of the file (as string). */ -- Utf8Str strDigest; -- /** The file handle of the extension pack file. */ -- RTFILE hExtPackFile; -- /** Our manifest for the tarball. */ -- RTMANIFEST hOurManifest; -- /** Pointer to the extension pack manager. */ -- ComObjPtr<ExtPackManager> ptrExtPackMgr; -- /** Pointer to the VirtualBox object so we can create a progress object. */ -- VirtualBox *pVirtualBox; -- -- RTMEMEF_NEW_AND_DELETE_OPERATORS(); --}; -- --/** -- * Private extension pack data. -- */ --struct ExtPack::Data : public ExtPackBaseData --{ --public: -- /** Where the extension pack is located. */ -- Utf8Str strExtPackPath; -- /** The file system object info of the extension pack directory. -- * This is for detecting changes and save time in refresh(). */ -- RTFSOBJINFO ObjInfoExtPack; -- /** The full path to the main module. */ -- Utf8Str strMainModPath; -- /** The file system object info of the main module. -- * This is used to determin whether to bother try reload it. */ -- RTFSOBJINFO ObjInfoMainMod; -- /** The module handle of the main extension pack module. */ -- RTLDRMOD hMainMod; -- -- /** The helper callbacks for the extension pack. */ -- VBOXEXTPACKHLP Hlp; -- /** Pointer back to the extension pack object (for Hlp methods). */ -- ExtPack *pThis; -- /** The extension pack registration structure. */ -- PCVBOXEXTPACKREG pReg; -- /** The current context. */ -- VBOXEXTPACKCTX enmContext; -- /** Set if we've made the pfnVirtualBoxReady or pfnConsoleReady call. */ -- bool fMadeReadyCall; -- -- RTMEMEF_NEW_AND_DELETE_OPERATORS(); --}; -- --/** List of extension packs. */ --typedef std::list< ComObjPtr<ExtPack> > ExtPackList; -- --/** -- * Private extension pack manager data. -- */ --struct ExtPackManager::Data --{ -- /** The directory where the extension packs are installed. */ -- Utf8Str strBaseDir; -- /** The directory where the certificates this installation recognizes are -- * stored. */ -- Utf8Str strCertificatDirPath; -- /** The list of installed extension packs. */ -- ExtPackList llInstalledExtPacks; -- /** Pointer to the VirtualBox object, our parent. */ -- VirtualBox *pVirtualBox; -- /** The current context. */ -- VBOXEXTPACKCTX enmContext; --#if !defined(RT_OS_WINDOWS) && !defined(RT_OS_DARWIN) -- /** File handle for the VBoxVMM libary which we slurp because ExtPacks depend on it. */ -- RTLDRMOD hVBoxVMM; --#endif -- -- RTMEMEF_NEW_AND_DELETE_OPERATORS(); --}; -- --/** -- * Extension pack installation job. -- */ --typedef struct EXTPACKINSTALLJOB --{ -- /** Smart pointer to the extension pack file. */ -- ComPtr<ExtPackFile> ptrExtPackFile; -- /** The replace argument. */ -- bool fReplace; -- /** The display info argument. */ -- Utf8Str strDisplayInfo; -- /** Smart pointer to the extension manager. */ -- ComPtr<ExtPackManager> ptrExtPackMgr; -- /** Smart pointer to the progress object for this job. */ -- ComObjPtr<Progress> ptrProgress; --} EXTPACKINSTALLJOB; --/** Pointer to an extension pack installation job. */ --typedef EXTPACKINSTALLJOB *PEXTPACKINSTALLJOB; -- --/** -- * Extension pack uninstallation job. -- */ --typedef struct EXTPACKUNINSTALLJOB --{ -- /** Smart pointer to the extension manager. */ -- ComPtr<ExtPackManager> ptrExtPackMgr; -- /** The name of the extension pack. */ -- Utf8Str strName; -- /** The replace argument. */ -- bool fForcedRemoval; -- /** The display info argument. */ -- Utf8Str strDisplayInfo; -- /** Smart pointer to the progress object for this job. */ -- ComObjPtr<Progress> ptrProgress; --} EXTPACKUNINSTALLJOB; --/** Pointer to an extension pack uninstallation job. */ --typedef EXTPACKUNINSTALLJOB *PEXTPACKUNINSTALLJOB; -- -- --DEFINE_EMPTY_CTOR_DTOR(ExtPackFile) -- --/** -- * Called by ComObjPtr::createObject when creating the object. -- * -- * Just initialize the basic object state, do the rest in initWithDir(). -- * -- * @returns S_OK. -- */ --HRESULT ExtPackFile::FinalConstruct() --{ -- m = NULL; -- return BaseFinalConstruct(); --} -- --/** -- * Initializes the extension pack by reading its file. -- * -- * @returns COM status code. -- * @param a_pszFile The path to the extension pack file. -- * @param a_pszDigest The SHA-256 digest of the file. Or an empty string. -- * @param a_pExtPackMgr Pointer to the extension pack manager. -- * @param a_pVirtualBox Pointer to the VirtualBox object. -- */ --HRESULT ExtPackFile::initWithFile(const char *a_pszFile, const char *a_pszDigest, ExtPackManager *a_pExtPackMgr, VirtualBox *a_pVirtualBox) --{ -- AutoInitSpan autoInitSpan(this); -- AssertReturn(autoInitSpan.isOk(), E_FAIL); -- -- /* -- * Allocate + initialize our private data. -- */ -- m = new ExtPackFile::Data; -- VBoxExtPackInitDesc(&m->Desc); -- RT_ZERO(m->ObjInfoDesc); -- m->fUsable = false; -- m->strWhyUnusable = tr("ExtPack::init failed"); -- m->strExtPackFile = a_pszFile; -- m->strDigest = a_pszDigest; -- m->hExtPackFile = NIL_RTFILE; -- m->hOurManifest = NIL_RTMANIFEST; -- m->ptrExtPackMgr = a_pExtPackMgr; -- m->pVirtualBox = a_pVirtualBox; -- -- RTCString *pstrTarName = VBoxExtPackExtractNameFromTarballPath(a_pszFile); -- if (pstrTarName) -- { -- m->Desc.strName = *pstrTarName; -- delete pstrTarName; -- pstrTarName = NULL; -- } -- -- autoInitSpan.setSucceeded(); -- -- /* -- * Try open the extension pack and check that it is a regular file. -- */ -- int vrc = RTFileOpen(&m->hExtPackFile, a_pszFile, -- RTFILE_O_READ | RTFILE_O_DENY_WRITE | RTFILE_O_OPEN); -- if (RT_FAILURE(vrc)) -- { -- if (vrc == VERR_FILE_NOT_FOUND || vrc == VERR_PATH_NOT_FOUND) -- return initFailed(tr("'%s' file not found"), a_pszFile); -- return initFailed(tr("RTFileOpen('%s',,) failed with %Rrc"), a_pszFile, vrc); -- } -- -- RTFSOBJINFO ObjInfo; -- vrc = RTFileQueryInfo(m->hExtPackFile, &ObjInfo, RTFSOBJATTRADD_UNIX); -- if (RT_FAILURE(vrc)) -- return initFailed(tr("RTFileQueryInfo failed with %Rrc on '%s'"), vrc, a_pszFile); -- if (!RTFS_IS_FILE(ObjInfo.Attr.fMode)) -- return initFailed(tr("Not a regular file: %s"), a_pszFile); -- -- /* -- * Validate the tarball and extract the XML file. -- */ -- char szError[8192]; -- RTVFSFILE hXmlFile; -- vrc = VBoxExtPackValidateTarball(m->hExtPackFile, NULL /*pszExtPackName*/, a_pszFile, a_pszDigest, -- szError, sizeof(szError), &m->hOurManifest, &hXmlFile, &m->strDigest); -- if (RT_FAILURE(vrc)) -- return initFailed(tr("%s"), szError); -- -- /* -- * Parse the XML. -- */ -- RTCString strSavedName(m->Desc.strName); -- RTCString *pStrLoadErr = VBoxExtPackLoadDescFromVfsFile(hXmlFile, &m->Desc, &m->ObjInfoDesc); -- RTVfsFileRelease(hXmlFile); -- if (pStrLoadErr != NULL) -- { -- m->strWhyUnusable.printf(tr("Failed to the xml file: %s"), pStrLoadErr->c_str()); -- m->Desc.strName = strSavedName; -- delete pStrLoadErr; -- return S_OK; -- } -- -- /* -- * Match the tarball name with the name from the XML. -- */ -- /** @todo drop this restriction after the old install interface is -- * dropped. */ -- if (!strSavedName.equalsIgnoreCase(m->Desc.strName)) -- return initFailed(tr("Extension pack name mismatch between the downloaded file and the XML inside it (xml='%s' file='%s')"), -- m->Desc.strName.c_str(), strSavedName.c_str()); -- -- m->fUsable = true; -- m->strWhyUnusable.setNull(); -- return S_OK; --} -- --/** -- * Protected helper that formats the strWhyUnusable value. -- * -- * @returns S_OK -- * @param a_pszWhyFmt Why it failed, format string. -- * @param ... The format arguments. -- */ --HRESULT ExtPackFile::initFailed(const char *a_pszWhyFmt, ...) --{ -- va_list va; -- va_start(va, a_pszWhyFmt); -- m->strWhyUnusable.printfV(a_pszWhyFmt, va); -- va_end(va); -- return S_OK; --} -- --/** -- * COM cruft. -- */ --void ExtPackFile::FinalRelease() --{ -- uninit(); -- BaseFinalRelease(); --} -- --/** -- * Do the actual cleanup. -- */ --void ExtPackFile::uninit() --{ -- /* Enclose the state transition Ready->InUninit->NotReady */ -- AutoUninitSpan autoUninitSpan(this); -- if (!autoUninitSpan.uninitDone() && m != NULL) -- { -- VBoxExtPackFreeDesc(&m->Desc); -- RTFileClose(m->hExtPackFile); -- m->hExtPackFile = NIL_RTFILE; -- RTManifestRelease(m->hOurManifest); -- m->hOurManifest = NIL_RTMANIFEST; -- -- delete m; -- m = NULL; -- } --} -- --STDMETHODIMP ExtPackFile::COMGETTER(Name)(BSTR *a_pbstrName) --{ -- CheckComArgOutPointerValid(a_pbstrName); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- Bstr str(m->Desc.strName); -- str.cloneTo(a_pbstrName); -- } -- return hrc; --} -- --STDMETHODIMP ExtPackFile::COMGETTER(Description)(BSTR *a_pbstrDescription) --{ -- CheckComArgOutPointerValid(a_pbstrDescription); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- Bstr str(m->Desc.strDescription); -- str.cloneTo(a_pbstrDescription); -- } -- return hrc; --} -- --STDMETHODIMP ExtPackFile::COMGETTER(Version)(BSTR *a_pbstrVersion) --{ -- CheckComArgOutPointerValid(a_pbstrVersion); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- /* HACK ALERT: This is for easing backporting to 4.1. The edition stuff -- will be changed into a separate */ -- if (m->Desc.strEdition.isEmpty()) -- { -- Bstr str(m->Desc.strVersion); -- str.cloneTo(a_pbstrVersion); -- } -- else -- { -- RTCString strHack(m->Desc.strVersion); -- strHack.append('-'); -- strHack.append(m->Desc.strEdition); -- -- Bstr str(strHack); -- str.cloneTo(a_pbstrVersion); -- } -- } -- return hrc; --} -- --STDMETHODIMP ExtPackFile::COMGETTER(Revision)(ULONG *a_puRevision) --{ -- CheckComArgOutPointerValid(a_puRevision); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- *a_puRevision = m->Desc.uRevision; -- return hrc; --} -- --STDMETHODIMP ExtPackFile::COMGETTER(VRDEModule)(BSTR *a_pbstrVrdeModule) --{ -- CheckComArgOutPointerValid(a_pbstrVrdeModule); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- Bstr str(m->Desc.strVrdeModule); -- str.cloneTo(a_pbstrVrdeModule); -- } -- return hrc; --} -- --STDMETHODIMP ExtPackFile::COMGETTER(PlugIns)(ComSafeArrayOut(IExtPackPlugIn *, a_paPlugIns)) --{ -- /** @todo implement plug-ins. */ --#ifdef VBOX_WITH_XPCOM -- NOREF(a_paPlugIns); -- NOREF(a_paPlugInsSize); --#endif -- ReturnComNotImplemented(); --} -- --STDMETHODIMP ExtPackFile::COMGETTER(Usable)(BOOL *a_pfUsable) --{ -- CheckComArgOutPointerValid(a_pfUsable); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- *a_pfUsable = m->fUsable; -- return hrc; --} -- --STDMETHODIMP ExtPackFile::COMGETTER(WhyUnusable)(BSTR *a_pbstrWhy) --{ -- CheckComArgOutPointerValid(a_pbstrWhy); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- m->strWhyUnusable.cloneTo(a_pbstrWhy); -- return hrc; --} -- --STDMETHODIMP ExtPackFile::COMGETTER(ShowLicense)(BOOL *a_pfShowIt) --{ -- CheckComArgOutPointerValid(a_pfShowIt); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- *a_pfShowIt = m->Desc.fShowLicense; -- return hrc; --} -- --STDMETHODIMP ExtPackFile::COMGETTER(License)(BSTR *a_pbstrHtmlLicense) --{ -- Bstr bstrHtml("html"); -- return QueryLicense(Bstr::Empty.raw(), Bstr::Empty.raw(), bstrHtml.raw(), a_pbstrHtmlLicense); --} -- --/* Same as ExtPack::QueryLicense, should really explore the subject of base classes here... */ --STDMETHODIMP ExtPackFile::QueryLicense(IN_BSTR a_bstrPreferredLocale, IN_BSTR a_bstrPreferredLanguage, IN_BSTR a_bstrFormat, -- BSTR *a_pbstrLicense) --{ -- /* -- * Validate input. -- */ -- CheckComArgOutPointerValid(a_pbstrLicense); -- CheckComArgNotNull(a_bstrPreferredLocale); -- CheckComArgNotNull(a_bstrPreferredLanguage); -- CheckComArgNotNull(a_bstrFormat); -- -- Utf8Str strPreferredLocale(a_bstrPreferredLocale); -- if (strPreferredLocale.length() != 2 && strPreferredLocale.length() != 0) -- return setError(E_FAIL, tr("The preferred locale is a two character string or empty.")); -- -- Utf8Str strPreferredLanguage(a_bstrPreferredLanguage); -- if (strPreferredLanguage.length() != 2 && strPreferredLanguage.length() != 0) -- return setError(E_FAIL, tr("The preferred lanuage is a two character string or empty.")); -- -- Utf8Str strFormat(a_bstrFormat); -- if ( !strFormat.equals("html") -- && !strFormat.equals("rtf") -- && !strFormat.equals("txt")) -- return setError(E_FAIL, tr("The license format can only have the values 'html', 'rtf' and 'txt'.")); -- -- /* -- * Combine the options to form a file name before locking down anything. -- */ -- char szName[sizeof(VBOX_EXTPACK_LICENSE_NAME_PREFIX "-de_DE.html") + 2]; -- if (strPreferredLocale.isNotEmpty() && strPreferredLanguage.isNotEmpty()) -- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX "-%s_%s.%s", -- strPreferredLocale.c_str(), strPreferredLanguage.c_str(), strFormat.c_str()); -- else if (strPreferredLocale.isNotEmpty()) -- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX "-%s.%s", strPreferredLocale.c_str(), strFormat.c_str()); -- else if (strPreferredLanguage.isNotEmpty()) -- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX "-_%s.%s", strPreferredLocale.c_str(), strFormat.c_str()); -- else -- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX ".%s", strFormat.c_str()); -- -- /* -- * Lock the extension pack. We need a write lock here as there must not be -- * concurrent accesses to the tar file handle. -- */ -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- -- /* -- * Do not permit this query on a pack that isn't considered usable (could -- * be marked so because of bad license files). -- */ -- if (!m->fUsable) -- hrc = setError(E_FAIL, tr("%s"), m->strWhyUnusable.c_str()); -- else -- { -- /* -- * Look it up in the manifest before scanning the tarball for it -- */ -- if (RTManifestEntryExists(m->hOurManifest, szName)) -- { -- RTVFSFSSTREAM hTarFss; -- char szError[8192]; -- int vrc = VBoxExtPackOpenTarFss(m->hExtPackFile, szError, sizeof(szError), &hTarFss, NULL); -- if (RT_SUCCESS(vrc)) -- { -- for (;;) -- { -- /* Get the first/next. */ -- char *pszName; -- RTVFSOBJ hVfsObj; -- RTVFSOBJTYPE enmType; -- vrc = RTVfsFsStrmNext(hTarFss, &pszName, &enmType, &hVfsObj); -- if (RT_FAILURE(vrc)) -- { -- if (vrc != VERR_EOF) -- hrc = setError(VBOX_E_IPRT_ERROR, tr("RTVfsFsStrmNext failed: %Rrc"), vrc); -- else -- hrc = setError(E_UNEXPECTED, tr("'%s' was found in the manifest but not in the tarball"), szName); -- break; -- } -- -- /* Is this it? */ -- const char *pszAdjName = pszName[0] == '.' && pszName[1] == '/' ? &pszName[2] : pszName; -- if ( !strcmp(pszAdjName, szName) -- && ( enmType == RTVFSOBJTYPE_IO_STREAM -- || enmType == RTVFSOBJTYPE_FILE)) -- { -- RTVFSIOSTREAM hVfsIos = RTVfsObjToIoStream(hVfsObj); -- RTVfsObjRelease(hVfsObj); -- RTStrFree(pszName); -- -- /* Load the file into memory. */ -- RTFSOBJINFO ObjInfo; -- vrc = RTVfsIoStrmQueryInfo(hVfsIos, &ObjInfo, RTFSOBJATTRADD_NOTHING); -- if (RT_SUCCESS(vrc)) -- { -- size_t cbFile = (size_t)ObjInfo.cbObject; -- void *pvFile = RTMemAllocZ(cbFile + 1); -- if (pvFile) -- { -- vrc = RTVfsIoStrmRead(hVfsIos, pvFile, cbFile, true /*fBlocking*/, NULL); -- if (RT_SUCCESS(vrc)) -- { -- /* try translate it into a string we can return. */ -- Bstr bstrLicense((const char *)pvFile, cbFile); -- if (bstrLicense.isNotEmpty()) -- { -- bstrLicense.detachTo(a_pbstrLicense); -- hrc = S_OK; -- } -- else -- hrc = setError(VBOX_E_IPRT_ERROR, -- tr("The license file '%s' is empty or contains invalid UTF-8 encoding"), -- szName); -- } -- else -- hrc = setError(VBOX_E_IPRT_ERROR, tr("Failed to read '%s': %Rrc"), szName, vrc); -- RTMemFree(pvFile); -- } -- else -- hrc = setError(E_OUTOFMEMORY, tr("Failed to allocate %zu bytes for '%s'"), cbFile, szName); -- } -- else -- hrc = setError(VBOX_E_IPRT_ERROR, tr("RTVfsIoStrmQueryInfo on '%s': %Rrc"), szName, vrc); -- RTVfsIoStrmRelease(hVfsIos); -- break; -- } -- -- /* Release current. */ -- RTVfsObjRelease(hVfsObj); -- RTStrFree(pszName); -- } -- RTVfsFsStrmRelease(hTarFss); -- } -- else -- hrc = setError(VBOX_E_OBJECT_NOT_FOUND, tr("%s"), szError); -- } -- else -- hrc = setError(VBOX_E_OBJECT_NOT_FOUND, tr("The license file '%s' was not found in '%s'"), -- szName, m->strExtPackFile.c_str()); -- } -- } -- return hrc; --} -- --STDMETHODIMP ExtPackFile::COMGETTER(FilePath)(BSTR *a_pbstrPath) --{ -- CheckComArgOutPointerValid(a_pbstrPath); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- m->strExtPackFile.cloneTo(a_pbstrPath); -- return hrc; --} -- --STDMETHODIMP ExtPackFile::Install(BOOL a_fReplace, IN_BSTR a_bstrDisplayInfo, IProgress **a_ppProgress) --{ -- if (a_ppProgress) -- *a_ppProgress = NULL; -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- if (m->fUsable) -- { -- PEXTPACKINSTALLJOB pJob = NULL; -- try -- { -- pJob = new EXTPACKINSTALLJOB; -- pJob->ptrExtPackFile = this; -- pJob->fReplace = a_fReplace != FALSE; -- pJob->strDisplayInfo = a_bstrDisplayInfo; -- pJob->ptrExtPackMgr = m->ptrExtPackMgr; -- hrc = pJob->ptrProgress.createObject(); -- if (SUCCEEDED(hrc)) -- { -- Bstr bstrDescription = tr("Installing extension pack"); -- hrc = pJob->ptrProgress->init( --#ifndef VBOX_COM_INPROC -- m->pVirtualBox, --#endif -- static_cast<IExtPackFile *>(this), -- bstrDescription.raw(), -- FALSE /*aCancelable*/, -- NULL /*aId*/); -- } -- if (SUCCEEDED(hrc)) -- { -- ComPtr<Progress> ptrProgress = pJob->ptrProgress; -- int vrc = RTThreadCreate(NULL /*phThread*/, ExtPackManager::doInstallThreadProc, pJob, 0, -- RTTHREADTYPE_DEFAULT, 0 /*fFlags*/, "ExtPackInst"); -- if (RT_SUCCESS(vrc)) -- { -- pJob = NULL; /* the thread deletes it */ -- ptrProgress.queryInterfaceTo(a_ppProgress); -- } -- else -- hrc = setError(VBOX_E_IPRT_ERROR, tr("RTThreadCreate failed with %Rrc"), vrc); -- } -- } -- catch (std::bad_alloc) -- { -- hrc = E_OUTOFMEMORY; -- } -- if (pJob) -- delete pJob; -- } -- else -- hrc = setError(E_FAIL, "%s", m->strWhyUnusable.c_str()); -- } -- return hrc; --} -- -- -- -- -- --DEFINE_EMPTY_CTOR_DTOR(ExtPack) -- --/** -- * Called by ComObjPtr::createObject when creating the object. -- * -- * Just initialize the basic object state, do the rest in initWithDir(). -- * -- * @returns S_OK. -- */ --HRESULT ExtPack::FinalConstruct() --{ -- m = NULL; -- return S_OK; --} -- --/** -- * Initializes the extension pack by reading its file. -- * -- * @returns COM status code. -- * @param a_enmContext The context we're in. -- * @param a_pszName The name of the extension pack. This is also the -- * name of the subdirector under @a a_pszParentDir -- * where the extension pack is installed. -- * @param a_pszDir The extension pack directory name. -- */ --HRESULT ExtPack::initWithDir(VBOXEXTPACKCTX a_enmContext, const char *a_pszName, const char *a_pszDir) --{ -- AutoInitSpan autoInitSpan(this); -- AssertReturn(autoInitSpan.isOk(), E_FAIL); -- -- static const VBOXEXTPACKHLP s_HlpTmpl = -- { -- /* u32Version = */ VBOXEXTPACKHLP_VERSION, -- /* uVBoxFullVersion = */ VBOX_FULL_VERSION, -- /* uVBoxVersionRevision = */ 0, -- /* u32Padding = */ 0, -- /* pszVBoxVersion = */ "", -- /* pfnFindModule = */ ExtPack::hlpFindModule, -- /* pfnGetFilePath = */ ExtPack::hlpGetFilePath, -- /* pfnGetContext = */ ExtPack::hlpGetContext, -- /* pfnReserved1 = */ ExtPack::hlpReservedN, -- /* pfnReserved2 = */ ExtPack::hlpReservedN, -- /* pfnReserved3 = */ ExtPack::hlpReservedN, -- /* pfnReserved4 = */ ExtPack::hlpReservedN, -- /* pfnReserved5 = */ ExtPack::hlpReservedN, -- /* pfnReserved6 = */ ExtPack::hlpReservedN, -- /* pfnReserved7 = */ ExtPack::hlpReservedN, -- /* pfnReserved8 = */ ExtPack::hlpReservedN, -- /* pfnReserved9 = */ ExtPack::hlpReservedN, -- /* u32EndMarker = */ VBOXEXTPACKHLP_VERSION -- }; -- -- /* -- * Allocate + initialize our private data. -- */ -- m = new Data; -- VBoxExtPackInitDesc(&m->Desc); -- m->Desc.strName = a_pszName; -- RT_ZERO(m->ObjInfoDesc); -- m->fUsable = false; -- m->strWhyUnusable = tr("ExtPack::init failed"); -- m->strExtPackPath = a_pszDir; -- RT_ZERO(m->ObjInfoExtPack); -- m->strMainModPath.setNull(); -- RT_ZERO(m->ObjInfoMainMod); -- m->hMainMod = NIL_RTLDRMOD; -- m->Hlp = s_HlpTmpl; -- m->Hlp.pszVBoxVersion = RTBldCfgVersion(); -- m->Hlp.uVBoxInternalRevision = RTBldCfgRevision(); -- m->pThis = this; -- m->pReg = NULL; -- m->enmContext = a_enmContext; -- m->fMadeReadyCall = false; -- -- /* -- * Probe the extension pack (this code is shared with refresh()). -- */ -- probeAndLoad(); -- -- autoInitSpan.setSucceeded(); -- return S_OK; --} -- --/** -- * COM cruft. -- */ --void ExtPack::FinalRelease() --{ -- uninit(); --} -- --/** -- * Do the actual cleanup. -- */ --void ExtPack::uninit() --{ -- /* Enclose the state transition Ready->InUninit->NotReady */ -- AutoUninitSpan autoUninitSpan(this); -- if (!autoUninitSpan.uninitDone() && m != NULL) -- { -- if (m->hMainMod != NIL_RTLDRMOD) -- { -- AssertPtr(m->pReg); -- if (m->pReg->pfnUnload != NULL) -- m->pReg->pfnUnload(m->pReg); -- -- RTLdrClose(m->hMainMod); -- m->hMainMod = NIL_RTLDRMOD; -- m->pReg = NULL; -- } -- -- VBoxExtPackFreeDesc(&m->Desc); -- -- delete m; -- m = NULL; -- } --} -- -- --/** -- * Calls the installed hook. -- * -- * @returns true if we left the lock, false if we didn't. -- * @param a_pVirtualBox The VirtualBox interface. -- * @param a_pLock The write lock held by the caller. -- * @param pErrInfo Where to return error information. -- */ --bool ExtPack::callInstalledHook(IVirtualBox *a_pVirtualBox, AutoWriteLock *a_pLock, PRTERRINFO pErrInfo) --{ -- if ( m != NULL -- && m->hMainMod != NIL_RTLDRMOD) -- { -- if (m->pReg->pfnInstalled) -- { -- ComPtr<ExtPack> ptrSelfRef = this; -- a_pLock->release(); -- pErrInfo->rc = m->pReg->pfnInstalled(m->pReg, a_pVirtualBox, pErrInfo); -- a_pLock->acquire(); -- return true; -- } -- } -- pErrInfo->rc = VINF_SUCCESS; -- return false; --} -- --/** -- * Calls the uninstall hook and closes the module. -- * -- * @returns S_OK or COM error status with error information. -- * @param a_pVirtualBox The VirtualBox interface. -- * @param a_fForcedRemoval When set, we'll ignore complaints from the -- * uninstall hook. -- * @remarks The caller holds the manager's write lock, not released. -- */ --HRESULT ExtPack::callUninstallHookAndClose(IVirtualBox *a_pVirtualBox, bool a_fForcedRemoval) --{ -- HRESULT hrc = S_OK; -- -- if ( m != NULL -- && m->hMainMod != NIL_RTLDRMOD) -- { -- if (m->pReg->pfnUninstall && !a_fForcedRemoval) -- { -- int vrc = m->pReg->pfnUninstall(m->pReg, a_pVirtualBox); -- if (RT_FAILURE(vrc)) -- { -- LogRel(("ExtPack pfnUninstall returned %Rrc for %s\n", vrc, m->Desc.strName.c_str())); -- if (!a_fForcedRemoval) -- hrc = setError(E_FAIL, tr("pfnUninstall returned %Rrc"), vrc); -- } -- } -- if (SUCCEEDED(hrc)) -- { -- RTLdrClose(m->hMainMod); -- m->hMainMod = NIL_RTLDRMOD; -- m->pReg = NULL; -- } -- } -- -- return hrc; --} -- --/** -- * Calls the pfnVirtualBoxReady hook. -- * -- * @returns true if we left the lock, false if we didn't. -- * @param a_pVirtualBox The VirtualBox interface. -- * @param a_pLock The write lock held by the caller. -- */ --bool ExtPack::callVirtualBoxReadyHook(IVirtualBox *a_pVirtualBox, AutoWriteLock *a_pLock) --{ -- if ( m != NULL -- && m->fUsable -- && !m->fMadeReadyCall) -- { -- m->fMadeReadyCall = true; -- if (m->pReg->pfnVirtualBoxReady) -- { -- ComPtr<ExtPack> ptrSelfRef = this; -- a_pLock->release(); -- m->pReg->pfnVirtualBoxReady(m->pReg, a_pVirtualBox); -- a_pLock->acquire(); -- return true; -- } -- } -- return false; --} -- --/** -- * Calls the pfnConsoleReady hook. -- * -- * @returns true if we left the lock, false if we didn't. -- * @param a_pConsole The Console interface. -- * @param a_pLock The write lock held by the caller. -- */ --bool ExtPack::callConsoleReadyHook(IConsole *a_pConsole, AutoWriteLock *a_pLock) --{ -- if ( m != NULL -- && m->fUsable -- && !m->fMadeReadyCall) -- { -- m->fMadeReadyCall = true; -- if (m->pReg->pfnConsoleReady) -- { -- ComPtr<ExtPack> ptrSelfRef = this; -- a_pLock->release(); -- m->pReg->pfnConsoleReady(m->pReg, a_pConsole); -- a_pLock->acquire(); -- return true; -- } -- } -- return false; --} -- --/** -- * Calls the pfnVMCreate hook. -- * -- * @returns true if we left the lock, false if we didn't. -- * @param a_pVirtualBox The VirtualBox interface. -- * @param a_pMachine The machine interface of the new VM. -- * @param a_pLock The write lock held by the caller. -- */ --bool ExtPack::callVmCreatedHook(IVirtualBox *a_pVirtualBox, IMachine *a_pMachine, AutoWriteLock *a_pLock) --{ -- if ( m != NULL -- && m->fUsable) -- { -- if (m->pReg->pfnVMCreated) -- { -- ComPtr<ExtPack> ptrSelfRef = this; -- a_pLock->release(); -- m->pReg->pfnVMCreated(m->pReg, a_pVirtualBox, a_pMachine); -- a_pLock->acquire(); -- return true; -- } -- } -- return false; --} -- --/** -- * Calls the pfnVMConfigureVMM hook. -- * -- * @returns true if we left the lock, false if we didn't. -- * @param a_pConsole The console interface. -- * @param a_pVM The VM handle. -- * @param a_pLock The write lock held by the caller. -- * @param a_pvrc Where to return the status code of the -- * callback. This is always set. LogRel is -- * called on if a failure status is returned. -- */ --bool ExtPack::callVmConfigureVmmHook(IConsole *a_pConsole, PVM a_pVM, AutoWriteLock *a_pLock, int *a_pvrc) --{ -- *a_pvrc = VINF_SUCCESS; -- if ( m != NULL -- && m->fUsable) -- { -- if (m->pReg->pfnVMConfigureVMM) -- { -- ComPtr<ExtPack> ptrSelfRef = this; -- a_pLock->release(); -- int vrc = m->pReg->pfnVMConfigureVMM(m->pReg, a_pConsole, a_pVM); -- *a_pvrc = vrc; -- a_pLock->acquire(); -- if (RT_FAILURE(vrc)) -- LogRel(("ExtPack pfnVMConfigureVMM returned %Rrc for %s\n", vrc, m->Desc.strName.c_str())); -- return true; -- } -- } -- return false; --} -- --/** -- * Calls the pfnVMPowerOn hook. -- * -- * @returns true if we left the lock, false if we didn't. -- * @param a_pConsole The console interface. -- * @param a_pVM The VM handle. -- * @param a_pLock The write lock held by the caller. -- * @param a_pvrc Where to return the status code of the -- * callback. This is always set. LogRel is -- * called on if a failure status is returned. -- */ --bool ExtPack::callVmPowerOnHook(IConsole *a_pConsole, PVM a_pVM, AutoWriteLock *a_pLock, int *a_pvrc) --{ -- *a_pvrc = VINF_SUCCESS; -- if ( m != NULL -- && m->fUsable) -- { -- if (m->pReg->pfnVMPowerOn) -- { -- ComPtr<ExtPack> ptrSelfRef = this; -- a_pLock->release(); -- int vrc = m->pReg->pfnVMPowerOn(m->pReg, a_pConsole, a_pVM); -- *a_pvrc = vrc; -- a_pLock->acquire(); -- if (RT_FAILURE(vrc)) -- LogRel(("ExtPack pfnVMPowerOn returned %Rrc for %s\n", vrc, m->Desc.strName.c_str())); -- return true; -- } -- } -- return false; --} -- --/** -- * Calls the pfnVMPowerOff hook. -- * -- * @returns true if we left the lock, false if we didn't. -- * @param a_pConsole The console interface. -- * @param a_pVM The VM handle. -- * @param a_pLock The write lock held by the caller. -- */ --bool ExtPack::callVmPowerOffHook(IConsole *a_pConsole, PVM a_pVM, AutoWriteLock *a_pLock) --{ -- if ( m != NULL -- && m->fUsable) -- { -- if (m->pReg->pfnVMPowerOff) -- { -- ComPtr<ExtPack> ptrSelfRef = this; -- a_pLock->release(); -- m->pReg->pfnVMPowerOff(m->pReg, a_pConsole, a_pVM); -- a_pLock->acquire(); -- return true; -- } -- } -- return false; --} -- --/** -- * Check if the extension pack is usable and has an VRDE module. -- * -- * @returns S_OK or COM error status with error information. -- * -- * @remarks Caller holds the extension manager lock for reading, no locking -- * necessary. -- */ --HRESULT ExtPack::checkVrde(void) --{ -- HRESULT hrc; -- if ( m != NULL -- && m->fUsable) -- { -- if (m->Desc.strVrdeModule.isNotEmpty()) -- hrc = S_OK; -- else -- hrc = setError(E_FAIL, tr("The extension pack '%s' does not include a VRDE module"), m->Desc.strName.c_str()); -- } -- else -- hrc = setError(E_FAIL, tr("%s"), m->strWhyUnusable.c_str()); -- return hrc; --} -- --/** -- * Same as checkVrde(), except that it also resolves the path to the module. -- * -- * @returns S_OK or COM error status with error information. -- * @param a_pstrVrdeLibrary Where to return the path on success. -- * -- * @remarks Caller holds the extension manager lock for reading, no locking -- * necessary. -- */ --HRESULT ExtPack::getVrdpLibraryName(Utf8Str *a_pstrVrdeLibrary) --{ -- HRESULT hrc = checkVrde(); -- if (SUCCEEDED(hrc)) -- { -- if (findModule(m->Desc.strVrdeModule.c_str(), NULL, VBOXEXTPACKMODKIND_R3, -- a_pstrVrdeLibrary, NULL /*a_pfNative*/, NULL /*a_pObjInfo*/)) -- hrc = S_OK; -- else -- hrc = setError(E_FAIL, tr("Failed to locate the VRDE module '%s' in extension pack '%s'"), -- m->Desc.strVrdeModule.c_str(), m->Desc.strName.c_str()); -- } -- return hrc; --} -- --/** -- * Check if this extension pack wishes to be the default VRDE provider. -- * -- * @returns @c true if it wants to and it is in a usable state, otherwise -- * @c false. -- * -- * @remarks Caller holds the extension manager lock for reading, no locking -- * necessary. -- */ --bool ExtPack::wantsToBeDefaultVrde(void) const --{ -- return m->fUsable -- && m->Desc.strVrdeModule.isNotEmpty(); --} -- --/** -- * Refreshes the extension pack state. -- * -- * This is called by the manager so that the on disk changes are picked up. -- * -- * @returns S_OK or COM error status with error information. -- * -- * @param a_pfCanDelete Optional can-delete-this-object output indicator. -- * -- * @remarks Caller holds the extension manager lock for writing. -- * @remarks Only called in VBoxSVC. -- */ --HRESULT ExtPack::refresh(bool *a_pfCanDelete) --{ -- if (a_pfCanDelete) -- *a_pfCanDelete = false; -- -- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS); /* for the COMGETTERs */ -- -- /* -- * Has the module been deleted? -- */ -- RTFSOBJINFO ObjInfoExtPack; -- int vrc = RTPathQueryInfoEx(m->strExtPackPath.c_str(), &ObjInfoExtPack, RTFSOBJATTRADD_UNIX, RTPATH_F_ON_LINK); -- if ( RT_FAILURE(vrc) -- || !RTFS_IS_DIRECTORY(ObjInfoExtPack.Attr.fMode)) -- { -- if (a_pfCanDelete) -- *a_pfCanDelete = true; -- return S_OK; -- } -- -- /* -- * We've got a directory, so try query file system object info for the -- * files we are interested in as well. -- */ -- RTFSOBJINFO ObjInfoDesc; -- char szDescFilePath[RTPATH_MAX]; -- vrc = RTPathJoin(szDescFilePath, sizeof(szDescFilePath), m->strExtPackPath.c_str(), VBOX_EXTPACK_DESCRIPTION_NAME); -- if (RT_SUCCESS(vrc)) -- vrc = RTPathQueryInfoEx(szDescFilePath, &ObjInfoDesc, RTFSOBJATTRADD_UNIX, RTPATH_F_ON_LINK); -- if (RT_FAILURE(vrc)) -- RT_ZERO(ObjInfoDesc); -- -- RTFSOBJINFO ObjInfoMainMod; -- if (m->strMainModPath.isNotEmpty()) -- vrc = RTPathQueryInfoEx(m->strMainModPath.c_str(), &ObjInfoMainMod, RTFSOBJATTRADD_UNIX, RTPATH_F_ON_LINK); -- if (m->strMainModPath.isEmpty() || RT_FAILURE(vrc)) -- RT_ZERO(ObjInfoMainMod); -- -- /* -- * If we have a usable module already, just verify that things haven't -- * changed since we loaded it. -- */ -- if (m->fUsable) -- { -- if (m->hMainMod == NIL_RTLDRMOD) -- probeAndLoad(); -- else if ( !objinfoIsEqual(&ObjInfoDesc, &m->ObjInfoDesc) -- || !objinfoIsEqual(&ObjInfoMainMod, &m->ObjInfoMainMod) -- || !objinfoIsEqual(&ObjInfoExtPack, &m->ObjInfoExtPack) ) -- { -- /** @todo not important, so it can wait. */ -- } -- } -- /* -- * Ok, it is currently not usable. If anything has changed since last time -- * reprobe the extension pack. -- */ -- else if ( !objinfoIsEqual(&ObjInfoDesc, &m->ObjInfoDesc) -- || !objinfoIsEqual(&ObjInfoMainMod, &m->ObjInfoMainMod) -- || !objinfoIsEqual(&ObjInfoExtPack, &m->ObjInfoExtPack) ) -- probeAndLoad(); -- -- return S_OK; --} -- --/** -- * Probes the extension pack, loading the main dll and calling its registration -- * entry point. -- * -- * This updates the state accordingly, the strWhyUnusable and fUnusable members -- * being the most important ones. -- */ --void ExtPack::probeAndLoad(void) --{ -- m->fUsable = false; -- m->fMadeReadyCall = false; -- -- /* -- * Query the file system info for the extension pack directory. This and -- * all other file system info we save is for the benefit of refresh(). -- */ -- int vrc = RTPathQueryInfoEx(m->strExtPackPath.c_str(), &m->ObjInfoExtPack, RTFSOBJATTRADD_UNIX, RTPATH_F_ON_LINK); -- if (RT_FAILURE(vrc)) -- { -- m->strWhyUnusable.printf(tr("RTPathQueryInfoEx on '%s' failed: %Rrc"), m->strExtPackPath.c_str(), vrc); -- return; -- } -- if (!RTFS_IS_DIRECTORY(m->ObjInfoExtPack.Attr.fMode)) -- { -- if (RTFS_IS_SYMLINK(m->ObjInfoExtPack.Attr.fMode)) -- m->strWhyUnusable.printf(tr("'%s' is a symbolic link, this is not allowed"), m->strExtPackPath.c_str(), vrc); -- else if (RTFS_IS_FILE(m->ObjInfoExtPack.Attr.fMode)) -- m->strWhyUnusable.printf(tr("'%s' is a symbolic file, not a directory"), m->strExtPackPath.c_str(), vrc); -- else -- m->strWhyUnusable.printf(tr("'%s' is not a directory (fMode=%#x)"), m->strExtPackPath.c_str(), m->ObjInfoExtPack.Attr.fMode); -- return; -- } -- -- RTERRINFOSTATIC ErrInfo; -- RTErrInfoInitStatic(&ErrInfo); -- vrc = SUPR3HardenedVerifyDir(m->strExtPackPath.c_str(), true /*fRecursive*/, true /*fCheckFiles*/, &ErrInfo.Core); -- if (RT_FAILURE(vrc)) -- { -- m->strWhyUnusable.printf(tr("%s (rc=%Rrc)"), ErrInfo.Core.pszMsg, vrc); -- return; -- } -- -- /* -- * Read the description file. -- */ -- RTCString strSavedName(m->Desc.strName); -- RTCString *pStrLoadErr = VBoxExtPackLoadDesc(m->strExtPackPath.c_str(), &m->Desc, &m->ObjInfoDesc); -- if (pStrLoadErr != NULL) -- { -- m->strWhyUnusable.printf(tr("Failed to load '%s/%s': %s"), -- m->strExtPackPath.c_str(), VBOX_EXTPACK_DESCRIPTION_NAME, pStrLoadErr->c_str()); -- m->Desc.strName = strSavedName; -- delete pStrLoadErr; -- return; -- } -- -- /* -- * Make sure the XML name and directory matches. -- */ -- if (!m->Desc.strName.equalsIgnoreCase(strSavedName)) -- { -- m->strWhyUnusable.printf(tr("The description name ('%s') and directory name ('%s') does not match"), -- m->Desc.strName.c_str(), strSavedName.c_str()); -- m->Desc.strName = strSavedName; -- return; -- } -- -- /* -- * Load the main DLL and call the predefined entry point. -- */ -- bool fIsNative; -- if (!findModule(m->Desc.strMainModule.c_str(), NULL /* default extension */, VBOXEXTPACKMODKIND_R3, -- &m->strMainModPath, &fIsNative, &m->ObjInfoMainMod)) -- { -- m->strWhyUnusable.printf(tr("Failed to locate the main module ('%s')"), m->Desc.strMainModule.c_str()); -- return; -- } -- -- vrc = SUPR3HardenedVerifyPlugIn(m->strMainModPath.c_str(), &ErrInfo.Core); -- if (RT_FAILURE(vrc)) -- { -- m->strWhyUnusable.printf(tr("%s"), ErrInfo.Core.pszMsg); -- return; -- } -- -- if (fIsNative) -- { -- vrc = SUPR3HardenedLdrLoadPlugIn(m->strMainModPath.c_str(), &m->hMainMod, &ErrInfo.Core); -- if (RT_FAILURE(vrc)) -- { -- m->hMainMod = NIL_RTLDRMOD; -- m->strWhyUnusable.printf(tr("Failed to load the main module ('%s'): %Rrc - %s"), -- m->strMainModPath.c_str(), vrc, ErrInfo.Core.pszMsg); -- return; -- } -- } -- else -- { -- m->strWhyUnusable.printf(tr("Only native main modules are currently supported")); -- return; -- } -- -- /* -- * Resolve the predefined entry point. -- */ -- PFNVBOXEXTPACKREGISTER pfnRegistration; -- vrc = RTLdrGetSymbol(m->hMainMod, VBOX_EXTPACK_MAIN_MOD_ENTRY_POINT, (void **)&pfnRegistration); -- if (RT_SUCCESS(vrc)) -- { -- RTErrInfoClear(&ErrInfo.Core); -- vrc = pfnRegistration(&m->Hlp, &m->pReg, &ErrInfo.Core); -- if ( RT_SUCCESS(vrc) -- && !RTErrInfoIsSet(&ErrInfo.Core) -- && VALID_PTR(m->pReg)) -- { -- if ( VBOXEXTPACK_IS_MAJOR_VER_EQUAL(m->pReg->u32Version, VBOXEXTPACKREG_VERSION) -- && m->pReg->u32EndMarker == m->pReg->u32Version) -- { -- if ( (!m->pReg->pfnInstalled || RT_VALID_PTR(m->pReg->pfnInstalled)) -- && (!m->pReg->pfnUninstall || RT_VALID_PTR(m->pReg->pfnUninstall)) -- && (!m->pReg->pfnVirtualBoxReady || RT_VALID_PTR(m->pReg->pfnVirtualBoxReady)) -- && (!m->pReg->pfnConsoleReady || RT_VALID_PTR(m->pReg->pfnConsoleReady)) -- && (!m->pReg->pfnUnload || RT_VALID_PTR(m->pReg->pfnUnload)) -- && (!m->pReg->pfnVMCreated || RT_VALID_PTR(m->pReg->pfnVMCreated)) -- && (!m->pReg->pfnVMConfigureVMM || RT_VALID_PTR(m->pReg->pfnVMConfigureVMM)) -- && (!m->pReg->pfnVMPowerOn || RT_VALID_PTR(m->pReg->pfnVMPowerOn)) -- && (!m->pReg->pfnVMPowerOff || RT_VALID_PTR(m->pReg->pfnVMPowerOff)) -- && (!m->pReg->pfnQueryObject || RT_VALID_PTR(m->pReg->pfnQueryObject)) -- ) -- { -- /* -- * We're good! -- */ -- m->fUsable = true; -- m->strWhyUnusable.setNull(); -- return; -- } -- -- m->strWhyUnusable = tr("The registration structure contains on or more invalid function pointers"); -- } -- else -- m->strWhyUnusable.printf(tr("Unsupported registration structure version %u.%u"), -- RT_HIWORD(m->pReg->u32Version), RT_LOWORD(m->pReg->u32Version)); -- } -- else -- m->strWhyUnusable.printf(tr("%s returned %Rrc, pReg=%p ErrInfo='%s'"), -- VBOX_EXTPACK_MAIN_MOD_ENTRY_POINT, vrc, m->pReg, ErrInfo.Core.pszMsg); -- m->pReg = NULL; -- } -- else -- m->strWhyUnusable.printf(tr("Failed to resolve exported symbol '%s' in the main module: %Rrc"), -- VBOX_EXTPACK_MAIN_MOD_ENTRY_POINT, vrc); -- -- RTLdrClose(m->hMainMod); -- m->hMainMod = NIL_RTLDRMOD; --} -- --/** -- * Finds a module. -- * -- * @returns true if found, false if not. -- * @param a_pszName The module base name (no extension). -- * @param a_pszExt The extension. If NULL we use default -- * extensions. -- * @param a_enmKind The kind of module to locate. -- * @param a_pStrFound Where to return the path to the module we've -- * found. -- * @param a_pfNative Where to return whether this is a native module -- * or an agnostic one. Optional. -- * @param a_pObjInfo Where to return the file system object info for -- * the module. Optional. -- */ --bool ExtPack::findModule(const char *a_pszName, const char *a_pszExt, VBOXEXTPACKMODKIND a_enmKind, -- Utf8Str *a_pStrFound, bool *a_pfNative, PRTFSOBJINFO a_pObjInfo) const --{ -- /* -- * Try the native path first. -- */ -- char szPath[RTPATH_MAX]; -- int vrc = RTPathJoin(szPath, sizeof(szPath), m->strExtPackPath.c_str(), RTBldCfgTargetDotArch()); -- AssertLogRelRCReturn(vrc, false); -- vrc = RTPathAppend(szPath, sizeof(szPath), a_pszName); -- AssertLogRelRCReturn(vrc, false); -- if (!a_pszExt) -- { -- const char *pszDefExt; -- switch (a_enmKind) -- { -- case VBOXEXTPACKMODKIND_RC: pszDefExt = ".rc"; break; -- case VBOXEXTPACKMODKIND_R0: pszDefExt = ".r0"; break; -- case VBOXEXTPACKMODKIND_R3: pszDefExt = RTLdrGetSuff(); break; -- default: -- AssertFailedReturn(false); -- } -- vrc = RTStrCat(szPath, sizeof(szPath), pszDefExt); -- AssertLogRelRCReturn(vrc, false); -- } -- -- RTFSOBJINFO ObjInfo; -- if (!a_pObjInfo) -- a_pObjInfo = &ObjInfo; -- vrc = RTPathQueryInfo(szPath, a_pObjInfo, RTFSOBJATTRADD_UNIX); -- if (RT_SUCCESS(vrc) && RTFS_IS_FILE(a_pObjInfo->Attr.fMode)) -- { -- if (a_pfNative) -- *a_pfNative = true; -- *a_pStrFound = szPath; -- return true; -- } -- -- /* -- * Try the platform agnostic modules. -- */ -- /* gcc.x86/module.rel */ -- char szSubDir[32]; -- RTStrPrintf(szSubDir, sizeof(szSubDir), "%s.%s", RTBldCfgCompiler(), RTBldCfgTargetArch()); -- vrc = RTPathJoin(szPath, sizeof(szPath), m->strExtPackPath.c_str(), szSubDir); -- AssertLogRelRCReturn(vrc, false); -- vrc = RTPathAppend(szPath, sizeof(szPath), a_pszName); -- AssertLogRelRCReturn(vrc, false); -- if (!a_pszExt) -- { -- vrc = RTStrCat(szPath, sizeof(szPath), ".rel"); -- AssertLogRelRCReturn(vrc, false); -- } -- vrc = RTPathQueryInfo(szPath, a_pObjInfo, RTFSOBJATTRADD_UNIX); -- if (RT_SUCCESS(vrc) && RTFS_IS_FILE(a_pObjInfo->Attr.fMode)) -- { -- if (a_pfNative) -- *a_pfNative = false; -- *a_pStrFound = szPath; -- return true; -- } -- -- /* x86/module.rel */ -- vrc = RTPathJoin(szPath, sizeof(szPath), m->strExtPackPath.c_str(), RTBldCfgTargetArch()); -- AssertLogRelRCReturn(vrc, false); -- vrc = RTPathAppend(szPath, sizeof(szPath), a_pszName); -- AssertLogRelRCReturn(vrc, false); -- if (!a_pszExt) -- { -- vrc = RTStrCat(szPath, sizeof(szPath), ".rel"); -- AssertLogRelRCReturn(vrc, false); -- } -- vrc = RTPathQueryInfo(szPath, a_pObjInfo, RTFSOBJATTRADD_UNIX); -- if (RT_SUCCESS(vrc) && RTFS_IS_FILE(a_pObjInfo->Attr.fMode)) -- { -- if (a_pfNative) -- *a_pfNative = false; -- *a_pStrFound = szPath; -- return true; -- } -- -- return false; --} -- --/** -- * Compares two file system object info structures. -- * -- * @returns true if equal, false if not. -- * @param pObjInfo1 The first. -- * @param pObjInfo2 The second. -- * @todo IPRT should do this, really. -- */ --/* static */ bool ExtPack::objinfoIsEqual(PCRTFSOBJINFO pObjInfo1, PCRTFSOBJINFO pObjInfo2) --{ -- if (!RTTimeSpecIsEqual(&pObjInfo1->ModificationTime, &pObjInfo2->ModificationTime)) -- return false; -- if (!RTTimeSpecIsEqual(&pObjInfo1->ChangeTime, &pObjInfo2->ChangeTime)) -- return false; -- if (!RTTimeSpecIsEqual(&pObjInfo1->BirthTime, &pObjInfo2->BirthTime)) -- return false; -- if (pObjInfo1->cbObject != pObjInfo2->cbObject) -- return false; -- if (pObjInfo1->Attr.fMode != pObjInfo2->Attr.fMode) -- return false; -- if (pObjInfo1->Attr.enmAdditional == pObjInfo2->Attr.enmAdditional) -- { -- switch (pObjInfo1->Attr.enmAdditional) -- { -- case RTFSOBJATTRADD_UNIX: -- if (pObjInfo1->Attr.u.Unix.uid != pObjInfo2->Attr.u.Unix.uid) -- return false; -- if (pObjInfo1->Attr.u.Unix.gid != pObjInfo2->Attr.u.Unix.gid) -- return false; -- if (pObjInfo1->Attr.u.Unix.INodeIdDevice != pObjInfo2->Attr.u.Unix.INodeIdDevice) -- return false; -- if (pObjInfo1->Attr.u.Unix.INodeId != pObjInfo2->Attr.u.Unix.INodeId) -- return false; -- if (pObjInfo1->Attr.u.Unix.GenerationId != pObjInfo2->Attr.u.Unix.GenerationId) -- return false; -- break; -- default: -- break; -- } -- } -- return true; --} -- -- --/** -- * @interface_method_impl{VBOXEXTPACKHLP,pfnFindModule} -- */ --/*static*/ DECLCALLBACK(int) --ExtPack::hlpFindModule(PCVBOXEXTPACKHLP pHlp, const char *pszName, const char *pszExt, VBOXEXTPACKMODKIND enmKind, -- char *pszFound, size_t cbFound, bool *pfNative) --{ -- /* -- * Validate the input and get our bearings. -- */ -- AssertPtrReturn(pszName, VERR_INVALID_POINTER); -- AssertPtrNullReturn(pszExt, VERR_INVALID_POINTER); -- AssertPtrReturn(pszFound, VERR_INVALID_POINTER); -- AssertPtrNullReturn(pfNative, VERR_INVALID_POINTER); -- AssertReturn(enmKind > VBOXEXTPACKMODKIND_INVALID && enmKind < VBOXEXTPACKMODKIND_END, VERR_INVALID_PARAMETER); -- -- AssertPtrReturn(pHlp, VERR_INVALID_POINTER); -- AssertReturn(pHlp->u32Version == VBOXEXTPACKHLP_VERSION, VERR_INVALID_POINTER); -- ExtPack::Data *m = RT_FROM_CPP_MEMBER(pHlp, Data, Hlp); -- AssertPtrReturn(m, VERR_INVALID_POINTER); -- ExtPack *pThis = m->pThis; -- AssertPtrReturn(pThis, VERR_INVALID_POINTER); -- -- /* -- * This is just a wrapper around findModule. -- */ -- Utf8Str strFound; -- if (pThis->findModule(pszName, pszExt, enmKind, &strFound, pfNative, NULL)) -- return RTStrCopy(pszFound, cbFound, strFound.c_str()); -- return VERR_FILE_NOT_FOUND; --} -- --/*static*/ DECLCALLBACK(int) --ExtPack::hlpGetFilePath(PCVBOXEXTPACKHLP pHlp, const char *pszFilename, char *pszPath, size_t cbPath) --{ -- /* -- * Validate the input and get our bearings. -- */ -- AssertPtrReturn(pszFilename, VERR_INVALID_POINTER); -- AssertPtrReturn(pszPath, VERR_INVALID_POINTER); -- AssertReturn(cbPath > 0, VERR_BUFFER_OVERFLOW); -- -- AssertPtrReturn(pHlp, VERR_INVALID_POINTER); -- AssertReturn(pHlp->u32Version == VBOXEXTPACKHLP_VERSION, VERR_INVALID_POINTER); -- ExtPack::Data *m = RT_FROM_CPP_MEMBER(pHlp, Data, Hlp); -- AssertPtrReturn(m, VERR_INVALID_POINTER); -- ExtPack *pThis = m->pThis; -- AssertPtrReturn(pThis, VERR_INVALID_POINTER); -- -- /* -- * This is a simple RTPathJoin, no checking if things exists or anything. -- */ -- int vrc = RTPathJoin(pszPath, cbPath, pThis->m->strExtPackPath.c_str(), pszFilename); -- if (RT_FAILURE(vrc)) -- RT_BZERO(pszPath, cbPath); -- return vrc; --} -- --/*static*/ DECLCALLBACK(VBOXEXTPACKCTX) --ExtPack::hlpGetContext(PCVBOXEXTPACKHLP pHlp) --{ -- /* -- * Validate the input and get our bearings. -- */ -- AssertPtrReturn(pHlp, VBOXEXTPACKCTX_INVALID); -- AssertReturn(pHlp->u32Version == VBOXEXTPACKHLP_VERSION, VBOXEXTPACKCTX_INVALID); -- ExtPack::Data *m = RT_FROM_CPP_MEMBER(pHlp, Data, Hlp); -- AssertPtrReturn(m, VBOXEXTPACKCTX_INVALID); -- ExtPack *pThis = m->pThis; -- AssertPtrReturn(pThis, VBOXEXTPACKCTX_INVALID); -- -- return pThis->m->enmContext; --} -- --/*static*/ DECLCALLBACK(int) --ExtPack::hlpReservedN(PCVBOXEXTPACKHLP pHlp) --{ -- /* -- * Validate the input and get our bearings. -- */ -- AssertPtrReturn(pHlp, VERR_INVALID_POINTER); -- AssertReturn(pHlp->u32Version == VBOXEXTPACKHLP_VERSION, VERR_INVALID_POINTER); -- ExtPack::Data *m = RT_FROM_CPP_MEMBER(pHlp, Data, Hlp); -- AssertPtrReturn(m, VERR_INVALID_POINTER); -- ExtPack *pThis = m->pThis; -- AssertPtrReturn(pThis, VERR_INVALID_POINTER); -- -- return VERR_NOT_IMPLEMENTED; --} -- -- -- -- -- --STDMETHODIMP ExtPack::COMGETTER(Name)(BSTR *a_pbstrName) --{ -- CheckComArgOutPointerValid(a_pbstrName); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- Bstr str(m->Desc.strName); -- str.cloneTo(a_pbstrName); -- } -- return hrc; --} -- --STDMETHODIMP ExtPack::COMGETTER(Description)(BSTR *a_pbstrDescription) --{ -- CheckComArgOutPointerValid(a_pbstrDescription); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- Bstr str(m->Desc.strDescription); -- str.cloneTo(a_pbstrDescription); -- } -- return hrc; --} -- --STDMETHODIMP ExtPack::COMGETTER(Version)(BSTR *a_pbstrVersion) --{ -- CheckComArgOutPointerValid(a_pbstrVersion); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- /* HACK ALERT: This is for easing backporting to 4.1. The edition stuff -- will be changed into a separate */ -- if (m->Desc.strEdition.isEmpty()) -- { -- Bstr str(m->Desc.strVersion); -- str.cloneTo(a_pbstrVersion); -- } -- else -- { -- RTCString strHack(m->Desc.strVersion); -- strHack.append('-'); -- strHack.append(m->Desc.strEdition); -- -- Bstr str(strHack); -- str.cloneTo(a_pbstrVersion); -- } -- } -- return hrc; --} -- --STDMETHODIMP ExtPack::COMGETTER(Revision)(ULONG *a_puRevision) --{ -- CheckComArgOutPointerValid(a_puRevision); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- *a_puRevision = m->Desc.uRevision; -- return hrc; --} -- --STDMETHODIMP ExtPack::COMGETTER(VRDEModule)(BSTR *a_pbstrVrdeModule) --{ -- CheckComArgOutPointerValid(a_pbstrVrdeModule); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- Bstr str(m->Desc.strVrdeModule); -- str.cloneTo(a_pbstrVrdeModule); -- } -- return hrc; --} -- --STDMETHODIMP ExtPack::COMGETTER(PlugIns)(ComSafeArrayOut(IExtPackPlugIn *, a_paPlugIns)) --{ -- /** @todo implement plug-ins. */ --#ifdef VBOX_WITH_XPCOM -- NOREF(a_paPlugIns); -- NOREF(a_paPlugInsSize); --#endif -- ReturnComNotImplemented(); --} -- --STDMETHODIMP ExtPack::COMGETTER(Usable)(BOOL *a_pfUsable) --{ -- CheckComArgOutPointerValid(a_pfUsable); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- *a_pfUsable = m->fUsable; -- return hrc; --} -- --STDMETHODIMP ExtPack::COMGETTER(WhyUnusable)(BSTR *a_pbstrWhy) --{ -- CheckComArgOutPointerValid(a_pbstrWhy); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- m->strWhyUnusable.cloneTo(a_pbstrWhy); -- return hrc; --} -- --STDMETHODIMP ExtPack::COMGETTER(ShowLicense)(BOOL *a_pfShowIt) --{ -- CheckComArgOutPointerValid(a_pfShowIt); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- *a_pfShowIt = m->Desc.fShowLicense; -- return hrc; --} -- --STDMETHODIMP ExtPack::COMGETTER(License)(BSTR *a_pbstrHtmlLicense) --{ -- Bstr bstrHtml("html"); -- return QueryLicense(Bstr::Empty.raw(), Bstr::Empty.raw(), bstrHtml.raw(), a_pbstrHtmlLicense); --} -- --STDMETHODIMP ExtPack::QueryLicense(IN_BSTR a_bstrPreferredLocale, IN_BSTR a_bstrPreferredLanguage, IN_BSTR a_bstrFormat, -- BSTR *a_pbstrLicense) --{ -- /* -- * Validate input. -- */ -- CheckComArgOutPointerValid(a_pbstrLicense); -- CheckComArgNotNull(a_bstrPreferredLocale); -- CheckComArgNotNull(a_bstrPreferredLanguage); -- CheckComArgNotNull(a_bstrFormat); -- -- Utf8Str strPreferredLocale(a_bstrPreferredLocale); -- if (strPreferredLocale.length() != 2 && strPreferredLocale.length() != 0) -- return setError(E_FAIL, tr("The preferred locale is a two character string or empty.")); -- -- Utf8Str strPreferredLanguage(a_bstrPreferredLanguage); -- if (strPreferredLanguage.length() != 2 && strPreferredLanguage.length() != 0) -- return setError(E_FAIL, tr("The preferred lanuage is a two character string or empty.")); -- -- Utf8Str strFormat(a_bstrFormat); -- if ( !strFormat.equals("html") -- && !strFormat.equals("rtf") -- && !strFormat.equals("txt")) -- return setError(E_FAIL, tr("The license format can only have the values 'html', 'rtf' and 'txt'.")); -- -- /* -- * Combine the options to form a file name before locking down anything. -- */ -- char szName[sizeof(VBOX_EXTPACK_LICENSE_NAME_PREFIX "-de_DE.html") + 2]; -- if (strPreferredLocale.isNotEmpty() && strPreferredLanguage.isNotEmpty()) -- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX "-%s_%s.%s", -- strPreferredLocale.c_str(), strPreferredLanguage.c_str(), strFormat.c_str()); -- else if (strPreferredLocale.isNotEmpty()) -- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX "-%s.%s", strPreferredLocale.c_str(), strFormat.c_str()); -- else if (strPreferredLanguage.isNotEmpty()) -- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX "-_%s.%s", strPreferredLocale.c_str(), strFormat.c_str()); -- else -- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX ".%s", strFormat.c_str()); -- -- /* -- * Effectuate the query. -- */ -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS); /* paranoia */ -- -- if (!m->fUsable) -- hrc = setError(E_FAIL, tr("%s"), m->strWhyUnusable.c_str()); -- else -- { -- char szPath[RTPATH_MAX]; -- int vrc = RTPathJoin(szPath, sizeof(szPath), m->strExtPackPath.c_str(), szName); -- if (RT_SUCCESS(vrc)) -- { -- void *pvFile; -- size_t cbFile; -- vrc = RTFileReadAllEx(szPath, 0, RTFOFF_MAX, RTFILE_RDALL_O_DENY_READ, &pvFile, &cbFile); -- if (RT_SUCCESS(vrc)) -- { -- Bstr bstrLicense((const char *)pvFile, cbFile); -- if (bstrLicense.isNotEmpty()) -- { -- bstrLicense.detachTo(a_pbstrLicense); -- hrc = S_OK; -- } -- else -- hrc = setError(VBOX_E_IPRT_ERROR, tr("The license file '%s' is empty or contains invalid UTF-8 encoding"), -- szPath); -- RTFileReadAllFree(pvFile, cbFile); -- } -- else if (vrc == VERR_FILE_NOT_FOUND || vrc == VERR_PATH_NOT_FOUND) -- hrc = setError(VBOX_E_OBJECT_NOT_FOUND, tr("The license file '%s' was not found in extension pack '%s'"), -- szName, m->Desc.strName.c_str()); -- else -- hrc = setError(VBOX_E_FILE_ERROR, tr("Failed to open the license file '%s': %Rrc"), szPath, vrc); -- } -- else -- hrc = setError(VBOX_E_IPRT_ERROR, tr("RTPathJoin failed: %Rrc"), vrc); -- } -- } -- return hrc; --} -- -- --STDMETHODIMP ExtPack::QueryObject(IN_BSTR a_bstrObjectId, IUnknown **a_ppUnknown) --{ -- com::Guid ObjectId; -- CheckComArgGuid(a_bstrObjectId, ObjectId); -- CheckComArgOutPointerValid(a_ppUnknown); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- if ( m->pReg -- && m->pReg->pfnQueryObject) -- { -- void *pvUnknown = m->pReg->pfnQueryObject(m->pReg, ObjectId.raw()); -- if (pvUnknown) -- *a_ppUnknown = (IUnknown *)pvUnknown; -- else -- hrc = E_NOINTERFACE; -- } -- else -- hrc = E_NOINTERFACE; -- } -- return hrc; --} -- -- -- -- --DEFINE_EMPTY_CTOR_DTOR(ExtPackManager) -- --/** -- * Called by ComObjPtr::createObject when creating the object. -- * -- * Just initialize the basic object state, do the rest in init(). -- * -- * @returns S_OK. -- */ --HRESULT ExtPackManager::FinalConstruct() --{ -- m = NULL; -- return S_OK; --} -- --/** -- * Initializes the extension pack manager. -- * -- * @returns COM status code. -- * @param a_pVirtualBox Pointer to the VirtualBox object. -- * @param a_enmContext The context we're in. -- */ --HRESULT ExtPackManager::initExtPackManager(VirtualBox *a_pVirtualBox, VBOXEXTPACKCTX a_enmContext) --{ -- AutoInitSpan autoInitSpan(this); -- AssertReturn(autoInitSpan.isOk(), E_FAIL); -- -- /* -- * Figure some stuff out before creating the instance data. -- */ -- char szBaseDir[RTPATH_MAX]; -- int rc = RTPathAppPrivateArchTop(szBaseDir, sizeof(szBaseDir)); -- AssertLogRelRCReturn(rc, E_FAIL); -- rc = RTPathAppend(szBaseDir, sizeof(szBaseDir), VBOX_EXTPACK_INSTALL_DIR); -- AssertLogRelRCReturn(rc, E_FAIL); -- -- char szCertificatDir[RTPATH_MAX]; -- rc = RTPathAppPrivateNoArch(szCertificatDir, sizeof(szCertificatDir)); -- AssertLogRelRCReturn(rc, E_FAIL); -- rc = RTPathAppend(szCertificatDir, sizeof(szCertificatDir), VBOX_EXTPACK_CERT_DIR); -- AssertLogRelRCReturn(rc, E_FAIL); -- -- /* -- * Allocate and initialize the instance data. -- */ -- m = new Data; -- m->strBaseDir = szBaseDir; -- m->strCertificatDirPath = szCertificatDir; -- m->pVirtualBox = a_pVirtualBox; -- m->enmContext = a_enmContext; -- -- /* -- * Slurp in VBoxVMM which is used by VBoxPuelMain. -- */ --#if !defined(RT_OS_WINDOWS) && !defined(RT_OS_DARWIN) -- if (a_enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON) -- { -- int vrc = SUPR3HardenedLdrLoadAppPriv("VBoxVMM", &m->hVBoxVMM, RTLDRLOAD_FLAGS_GLOBAL, NULL); -- if (RT_FAILURE(vrc)) -- m->hVBoxVMM = NIL_RTLDRMOD; -- /* cleanup in ::uninit()? */ -- } --#endif -- -- /* -- * Go looking for extensions. The RTDirOpen may fail if nothing has been -- * installed yet, or if root is paranoid and has revoked our access to them. -- * -- * We ASSUME that there are no files, directories or stuff in the directory -- * that exceed the max name length in RTDIRENTRYEX. -- */ -- HRESULT hrc = S_OK; -- PRTDIR pDir; -- int vrc = RTDirOpen(&pDir, szBaseDir); -- if (RT_SUCCESS(vrc)) -- { -- for (;;) -- { -- RTDIRENTRYEX Entry; -- vrc = RTDirReadEx(pDir, &Entry, NULL /*pcbDirEntry*/, RTFSOBJATTRADD_NOTHING, RTPATH_F_ON_LINK); -- if (RT_FAILURE(vrc)) -- { -- AssertLogRelMsg(vrc == VERR_NO_MORE_FILES, ("%Rrc\n", vrc)); -- break; -- } -- if ( RTFS_IS_DIRECTORY(Entry.Info.Attr.fMode) -- && strcmp(Entry.szName, ".") != 0 -- && strcmp(Entry.szName, "..") != 0 -- && VBoxExtPackIsValidMangledName(Entry.szName) ) -- { -- /* -- * All directories are extensions, the shall be nothing but -- * extensions in this subdirectory. -- */ -- char szExtPackDir[RTPATH_MAX]; -- vrc = RTPathJoin(szExtPackDir, sizeof(szExtPackDir), m->strBaseDir.c_str(), Entry.szName); -- AssertLogRelRC(vrc); -- if (RT_SUCCESS(vrc)) -- { -- RTCString *pstrName = VBoxExtPackUnmangleName(Entry.szName, RTSTR_MAX); -- AssertLogRel(pstrName); -- if (pstrName) -- { -- ComObjPtr<ExtPack> NewExtPack; -- HRESULT hrc2 = NewExtPack.createObject(); -- if (SUCCEEDED(hrc2)) -- hrc2 = NewExtPack->initWithDir(a_enmContext, pstrName->c_str(), szExtPackDir); -- delete pstrName; -- if (SUCCEEDED(hrc2)) -- m->llInstalledExtPacks.push_back(NewExtPack); -- else if (SUCCEEDED(rc)) -- hrc = hrc2; -- } -- else -- hrc = E_UNEXPECTED; -- } -- else -- hrc = E_UNEXPECTED; -- } -- } -- RTDirClose(pDir); -- } -- /* else: ignore, the directory probably does not exist or something. */ -- -- if (SUCCEEDED(hrc)) -- autoInitSpan.setSucceeded(); -- return hrc; --} -- --/** -- * COM cruft. -- */ --void ExtPackManager::FinalRelease() --{ -- uninit(); --} -- --/** -- * Do the actual cleanup. -- */ --void ExtPackManager::uninit() --{ -- /* Enclose the state transition Ready->InUninit->NotReady */ -- AutoUninitSpan autoUninitSpan(this); -- if (!autoUninitSpan.uninitDone() && m != NULL) -- { -- delete m; -- m = NULL; -- } --} -- -- --STDMETHODIMP ExtPackManager::COMGETTER(InstalledExtPacks)(ComSafeArrayOut(IExtPack *, a_paExtPacks)) --{ -- CheckComArgOutSafeArrayPointerValid(a_paExtPacks); -- Assert(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- -- SafeIfaceArray<IExtPack> SaExtPacks(m->llInstalledExtPacks); -- SaExtPacks.detachTo(ComSafeArrayOutArg(a_paExtPacks)); -- } -- -- return hrc; --} -- --STDMETHODIMP ExtPackManager::Find(IN_BSTR a_bstrName, IExtPack **a_pExtPack) --{ -- CheckComArgNotNull(a_bstrName); -- CheckComArgOutPointerValid(a_pExtPack); -- Utf8Str strName(a_bstrName); -- Assert(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- -- ComPtr<ExtPack> ptrExtPack = findExtPack(strName.c_str()); -- if (!ptrExtPack.isNull()) -- ptrExtPack.queryInterfaceTo(a_pExtPack); -- else -- hrc = VBOX_E_OBJECT_NOT_FOUND; -- } -- -- return hrc; --} -- --STDMETHODIMP ExtPackManager::OpenExtPackFile(IN_BSTR a_bstrTarballAndDigest, IExtPackFile **a_ppExtPackFile) --{ -- CheckComArgNotNull(a_bstrTarballAndDigest); -- CheckComArgOutPointerValid(a_ppExtPackFile); -- AssertReturn(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON, E_UNEXPECTED); -- -- /* The API can optionally take a ::SHA-256=<hex-digest> attribute at the -- end of the file name. This is just a temporary measure for -- backporting, in 4.2 we'll add another parameter to the method. */ -- Utf8Str strTarball; -- Utf8Str strDigest; -- Utf8Str strTarballAndDigest(a_bstrTarballAndDigest); -- size_t offSha256 = strTarballAndDigest.find("::SHA-256="); -- if (offSha256 == Utf8Str::npos) -- strTarball = strTarballAndDigest; -- else -- { -- strTarball = strTarballAndDigest.substr(0, offSha256); -- strDigest = strTarballAndDigest.substr(offSha256 + sizeof("::SHA-256=") - 1); -- } -- -- ComObjPtr<ExtPackFile> NewExtPackFile; -- HRESULT hrc = NewExtPackFile.createObject(); -- if (SUCCEEDED(hrc)) -- hrc = NewExtPackFile->initWithFile(strTarball.c_str(), strDigest.c_str(), this, m->pVirtualBox); -- if (SUCCEEDED(hrc)) -- NewExtPackFile.queryInterfaceTo(a_ppExtPackFile); -- -- return hrc; --} -- --STDMETHODIMP ExtPackManager::Uninstall(IN_BSTR a_bstrName, BOOL a_fForcedRemoval, IN_BSTR a_bstrDisplayInfo, -- IProgress **a_ppProgress) --{ -- CheckComArgNotNull(a_bstrName); -- if (a_ppProgress) -- *a_ppProgress = NULL; -- Assert(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- PEXTPACKUNINSTALLJOB pJob = NULL; -- try -- { -- pJob = new EXTPACKUNINSTALLJOB; -- pJob->ptrExtPackMgr = this; -- pJob->strName = a_bstrName; -- pJob->fForcedRemoval = a_fForcedRemoval != FALSE; -- pJob->strDisplayInfo = a_bstrDisplayInfo; -- hrc = pJob->ptrProgress.createObject(); -- if (SUCCEEDED(hrc)) -- { -- Bstr bstrDescription = tr("Uninstalling extension pack"); -- hrc = pJob->ptrProgress->init( --#ifndef VBOX_COM_INPROC -- m->pVirtualBox, --#endif -- static_cast<IExtPackManager *>(this), -- bstrDescription.raw(), -- FALSE /*aCancelable*/, -- NULL /*aId*/); -- } -- if (SUCCEEDED(hrc)) -- { -- ComPtr<Progress> ptrProgress = pJob->ptrProgress; -- int vrc = RTThreadCreate(NULL /*phThread*/, ExtPackManager::doUninstallThreadProc, pJob, 0, -- RTTHREADTYPE_DEFAULT, 0 /*fFlags*/, "ExtPackUninst"); -- if (RT_SUCCESS(vrc)) -- { -- pJob = NULL; /* the thread deletes it */ -- ptrProgress.queryInterfaceTo(a_ppProgress); -- } -- else -- hrc = setError(VBOX_E_IPRT_ERROR, tr("RTThreadCreate failed with %Rrc"), vrc); -- } -- } -- catch (std::bad_alloc) -- { -- hrc = E_OUTOFMEMORY; -- } -- if (pJob) -- delete pJob; -- } -- -- return hrc; --} -- --STDMETHODIMP ExtPackManager::Cleanup(void) --{ -- Assert(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- /* -- * Run the set-uid-to-root binary that performs the cleanup. -- * -- * Take the write lock to prevent conflicts with other calls to this -- * VBoxSVC instance. -- */ -- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- hrc = runSetUidToRootHelper(NULL, -- "cleanup", -- "--base-dir", m->strBaseDir.c_str(), -- (const char *)NULL); -- } -- -- return hrc; --} -- --STDMETHODIMP ExtPackManager::QueryAllPlugInsForFrontend(IN_BSTR a_bstrFrontend, ComSafeArrayOut(BSTR, a_pabstrPlugInModules)) --{ -- CheckComArgNotNull(a_bstrFrontend); -- Utf8Str strName(a_bstrFrontend); -- CheckComArgOutSafeArrayPointerValid(a_pabstrPlugInModules); -- Assert(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- com::SafeArray<BSTR> saPaths((size_t)0); -- /** @todo implement plug-ins */ -- saPaths.detachTo(ComSafeArrayOutArg(a_pabstrPlugInModules)); -- } -- return hrc; --} -- --STDMETHODIMP ExtPackManager::IsExtPackUsable(IN_BSTR a_bstrExtPack, BOOL *aUsable) --{ -- CheckComArgNotNull(a_bstrExtPack); -- Utf8Str strExtPack(a_bstrExtPack); -- *aUsable = isExtPackUsable(strExtPack.c_str()); -- return S_OK; --} -- --/** -- * Finds the success indicator string in the stderr output ofr hte helper app. -- * -- * @returns Pointer to the indicator. -- * @param psz The stderr output string. Can be NULL. -- * @param cch The size of the string. -- */ --static char *findSuccessIndicator(char *psz, size_t cch) --{ -- static const char s_szSuccessInd[] = "rcExit=RTEXITCODE_SUCCESS"; -- Assert(!cch || strlen(psz) == cch); -- if (cch < sizeof(s_szSuccessInd) - 1) -- return NULL; -- char *pszInd = &psz[cch - sizeof(s_szSuccessInd) + 1]; -- if (strcmp(s_szSuccessInd, pszInd)) -- return NULL; -- return pszInd; --} -- --/** -- * Runs the helper application that does the privileged operations. -- * -- * @returns S_OK or a failure status with error information set. -- * @param a_pstrDisplayInfo Platform specific display info hacks. -- * @param a_pszCommand The command to execute. -- * @param ... The argument strings that goes along with the -- * command. Maximum is about 16. Terminated by a -- * NULL. -- */ --HRESULT ExtPackManager::runSetUidToRootHelper(Utf8Str const *a_pstrDisplayInfo, const char *a_pszCommand, ...) --{ -- /* -- * Calculate the path to the helper application. -- */ -- char szExecName[RTPATH_MAX]; -- int vrc = RTPathAppPrivateArch(szExecName, sizeof(szExecName)); -- AssertLogRelRCReturn(vrc, E_UNEXPECTED); -- -- vrc = RTPathAppend(szExecName, sizeof(szExecName), VBOX_EXTPACK_HELPER_NAME); -- AssertLogRelRCReturn(vrc, E_UNEXPECTED); -- -- /* -- * Convert the variable argument list to a RTProcCreate argument vector. -- */ -- const char *apszArgs[20]; -- unsigned cArgs = 0; -- -- LogRel(("ExtPack: Executing '%s'", szExecName)); -- apszArgs[cArgs++] = &szExecName[0]; -- -- if ( a_pstrDisplayInfo -- && a_pstrDisplayInfo->isNotEmpty()) -- { -- LogRel((" '--display-info-hack' '%s'", a_pstrDisplayInfo->c_str())); -- apszArgs[cArgs++] = "--display-info-hack"; -- apszArgs[cArgs++] = a_pstrDisplayInfo->c_str(); -- } -- -- LogRel(("'%s'", a_pszCommand)); -- apszArgs[cArgs++] = a_pszCommand; -- -- va_list va; -- va_start(va, a_pszCommand); -- const char *pszLastArg; -- for (;;) -- { -- AssertReturn(cArgs < RT_ELEMENTS(apszArgs) - 1, E_UNEXPECTED); -- pszLastArg = va_arg(va, const char *); -- if (!pszLastArg) -- break; -- LogRel((" '%s'", pszLastArg)); -- apszArgs[cArgs++] = pszLastArg; -- }; -- va_end(va); -- -- LogRel(("\n")); -- apszArgs[cArgs] = NULL; -- -- /* -- * Create a PIPE which we attach to stderr so that we can read the error -- * message on failure and report it back to the caller. -- */ -- RTPIPE hPipeR; -- RTHANDLE hStdErrPipe; -- hStdErrPipe.enmType = RTHANDLETYPE_PIPE; -- vrc = RTPipeCreate(&hPipeR, &hStdErrPipe.u.hPipe, RTPIPE_C_INHERIT_WRITE); -- AssertLogRelRCReturn(vrc, E_UNEXPECTED); -- -- /* -- * Spawn the process. -- */ -- HRESULT hrc; -- RTPROCESS hProcess; -- vrc = RTProcCreateEx(szExecName, -- apszArgs, -- RTENV_DEFAULT, -- 0 /*fFlags*/, -- NULL /*phStdIn*/, -- NULL /*phStdOut*/, -- &hStdErrPipe, -- NULL /*pszAsUser*/, -- NULL /*pszPassword*/, -- &hProcess); -- if (RT_SUCCESS(vrc)) -- { -- vrc = RTPipeClose(hStdErrPipe.u.hPipe); -- hStdErrPipe.u.hPipe = NIL_RTPIPE; -- -- /* -- * Read the pipe output until the process completes. -- */ -- RTPROCSTATUS ProcStatus = { -42, RTPROCEXITREASON_ABEND }; -- size_t cbStdErrBuf = 0; -- size_t offStdErrBuf = 0; -- char *pszStdErrBuf = NULL; -- do -- { -- /* -- * Service the pipe. Block waiting for output or the pipe breaking -- * when the process terminates. -- */ -- if (hPipeR != NIL_RTPIPE) -- { -- char achBuf[1024]; -- size_t cbRead; -- vrc = RTPipeReadBlocking(hPipeR, achBuf, sizeof(achBuf), &cbRead); -- if (RT_SUCCESS(vrc)) -- { -- /* grow the buffer? */ -- size_t cbBufReq = offStdErrBuf + cbRead + 1; -- if ( cbBufReq > cbStdErrBuf -- && cbBufReq < _256K) -- { -- size_t cbNew = RT_ALIGN_Z(cbBufReq, 16); // 1024 -- void *pvNew = RTMemRealloc(pszStdErrBuf, cbNew); -- if (pvNew) -- { -- pszStdErrBuf = (char *)pvNew; -- cbStdErrBuf = cbNew; -- } -- } -- -- /* append if we've got room. */ -- if (cbBufReq <= cbStdErrBuf) -- { -- memcpy(&pszStdErrBuf[offStdErrBuf], achBuf, cbRead); -- offStdErrBuf = offStdErrBuf + cbRead; -- pszStdErrBuf[offStdErrBuf] = '\0'; -- } -- } -- else -- { -- AssertLogRelMsg(vrc == VERR_BROKEN_PIPE, ("%Rrc\n", vrc)); -- RTPipeClose(hPipeR); -- hPipeR = NIL_RTPIPE; -- } -- } -- -- /* -- * Service the process. Block if we have no pipe. -- */ -- if (hProcess != NIL_RTPROCESS) -- { -- vrc = RTProcWait(hProcess, -- hPipeR == NIL_RTPIPE ? RTPROCWAIT_FLAGS_BLOCK : RTPROCWAIT_FLAGS_NOBLOCK, -- &ProcStatus); -- if (RT_SUCCESS(vrc)) -- hProcess = NIL_RTPROCESS; -- else -- AssertLogRelMsgStmt(vrc == VERR_PROCESS_RUNNING, ("%Rrc\n", vrc), hProcess = NIL_RTPROCESS); -- } -- } while ( hPipeR != NIL_RTPIPE -- || hProcess != NIL_RTPROCESS); -- -- LogRel(("ExtPack: enmReason=%d iStatus=%d stderr='%s'\n", -- ProcStatus.enmReason, ProcStatus.iStatus, offStdErrBuf ? pszStdErrBuf : "")); -- -- /* -- * Look for rcExit=RTEXITCODE_SUCCESS at the end of the error output, -- * cut it as it is only there to attest the success. -- */ -- if (offStdErrBuf > 0) -- { -- RTStrStripR(pszStdErrBuf); -- offStdErrBuf = strlen(pszStdErrBuf); -- } -- -- char *pszSuccessInd = findSuccessIndicator(pszStdErrBuf, offStdErrBuf); -- if (pszSuccessInd) -- { -- *pszSuccessInd = '\0'; -- offStdErrBuf = pszSuccessInd - pszStdErrBuf; -- } -- else if ( ProcStatus.enmReason == RTPROCEXITREASON_NORMAL -- && ProcStatus.iStatus == 0) -- ProcStatus.iStatus = offStdErrBuf ? 667 : 666; -- -- /* -- * Compose the status code and, on failure, error message. -- */ -- if ( ProcStatus.enmReason == RTPROCEXITREASON_NORMAL -- && ProcStatus.iStatus == 0) -- hrc = S_OK; -- else if (ProcStatus.enmReason == RTPROCEXITREASON_NORMAL) -- { -- AssertMsg(ProcStatus.iStatus != 0, ("%s\n", pszStdErrBuf)); -- hrc = setError(E_FAIL, tr("The installer failed with exit code %d: %s"), -- ProcStatus.iStatus, offStdErrBuf ? pszStdErrBuf : ""); -- } -- else if (ProcStatus.enmReason == RTPROCEXITREASON_SIGNAL) -- hrc = setError(E_UNEXPECTED, tr("The installer was killed by signal #d (stderr: %s)"), -- ProcStatus.iStatus, offStdErrBuf ? pszStdErrBuf : ""); -- else if (ProcStatus.enmReason == RTPROCEXITREASON_ABEND) -- hrc = setError(E_UNEXPECTED, tr("The installer aborted abnormally (stderr: %s)"), -- offStdErrBuf ? pszStdErrBuf : ""); -- else -- hrc = setError(E_UNEXPECTED, tr("internal error: enmReason=%d iStatus=%d stderr='%s'"), -- ProcStatus.enmReason, ProcStatus.iStatus, offStdErrBuf ? pszStdErrBuf : ""); -- -- RTMemFree(pszStdErrBuf); -- } -- else -- hrc = setError(VBOX_E_IPRT_ERROR, tr("Failed to launch the helper application '%s' (%Rrc)"), szExecName, vrc); -- -- RTPipeClose(hPipeR); -- RTPipeClose(hStdErrPipe.u.hPipe); -- -- return hrc; --} -- --/** -- * Finds an installed extension pack. -- * -- * @returns Pointer to the extension pack if found, NULL if not. (No reference -- * counting problem here since the caller must be holding the lock.) -- * @param a_pszName The name of the extension pack. -- */ --ExtPack *ExtPackManager::findExtPack(const char *a_pszName) --{ -- size_t cchName = strlen(a_pszName); -- -- for (ExtPackList::iterator it = m->llInstalledExtPacks.begin(); -- it != m->llInstalledExtPacks.end(); -- it++) -- { -- ExtPack::Data *pExtPackData = (*it)->m; -- if ( pExtPackData -- && pExtPackData->Desc.strName.length() == cchName -- && pExtPackData->Desc.strName.equalsIgnoreCase(a_pszName)) -- return (*it); -- } -- return NULL; --} -- --/** -- * Removes an installed extension pack from the internal list. -- * -- * The package is expected to exist! -- * -- * @param a_pszName The name of the extension pack. -- */ --void ExtPackManager::removeExtPack(const char *a_pszName) --{ -- size_t cchName = strlen(a_pszName); -- -- for (ExtPackList::iterator it = m->llInstalledExtPacks.begin(); -- it != m->llInstalledExtPacks.end(); -- it++) -- { -- ExtPack::Data *pExtPackData = (*it)->m; -- if ( pExtPackData -- && pExtPackData->Desc.strName.length() == cchName -- && pExtPackData->Desc.strName.equalsIgnoreCase(a_pszName)) -- { -- m->llInstalledExtPacks.erase(it); -- return; -- } -- } -- AssertMsgFailed(("%s\n", a_pszName)); --} -- --/** -- * Refreshes the specified extension pack. -- * -- * This may remove the extension pack from the list, so any non-smart pointers -- * to the extension pack object may become invalid. -- * -- * @returns S_OK and *a_ppExtPack on success, COM status code and error -- * message on failure. Note that *a_ppExtPack can be NULL. -- * -- * @param a_pszName The extension to update.. -- * @param a_fUnusableIsError If @c true, report an unusable extension pack -- * as an error. -- * @param a_ppExtPack Where to store the pointer to the extension -- * pack of it is still around after the refresh. -- * This is optional. -- * -- * @remarks Caller holds the extension manager lock. -- * @remarks Only called in VBoxSVC. -- */ --HRESULT ExtPackManager::refreshExtPack(const char *a_pszName, bool a_fUnusableIsError, ExtPack **a_ppExtPack) --{ -- Assert(m->pVirtualBox != NULL); /* Only called from VBoxSVC. */ -- -- HRESULT hrc; -- ExtPack *pExtPack = findExtPack(a_pszName); -- if (pExtPack) -- { -- /* -- * Refresh existing object. -- */ -- bool fCanDelete; -- hrc = pExtPack->refresh(&fCanDelete); -- if (SUCCEEDED(hrc)) -- { -- if (fCanDelete) -- { -- removeExtPack(a_pszName); -- pExtPack = NULL; -- } -- } -- } -- else -- { -- /* -- * Do this check here, otherwise VBoxExtPackCalcDir() will fail with a strange -- * error. -- */ -- bool fValid = VBoxExtPackIsValidName(a_pszName); -- if (!fValid) -- return setError(E_FAIL, "Invalid extension pack name specified"); -- -- /* -- * Does the dir exist? Make some special effort to deal with case -- * sensitivie file systems (a_pszName is case insensitive and mangled). -- */ -- char szDir[RTPATH_MAX]; -- int vrc = VBoxExtPackCalcDir(szDir, sizeof(szDir), m->strBaseDir.c_str(), a_pszName); -- AssertLogRelRCReturn(vrc, E_FAIL); -- -- RTDIRENTRYEX Entry; -- RTFSOBJINFO ObjInfo; -- vrc = RTPathQueryInfoEx(szDir, &ObjInfo, RTFSOBJATTRADD_NOTHING, RTPATH_F_ON_LINK); -- bool fExists = RT_SUCCESS(vrc) && RTFS_IS_DIRECTORY(ObjInfo.Attr.fMode); -- if (!fExists) -- { -- PRTDIR pDir; -- vrc = RTDirOpen(&pDir, m->strBaseDir.c_str()); -- if (RT_SUCCESS(vrc)) -- { -- const char *pszMangledName = RTPathFilename(szDir); -- for (;;) -- { -- vrc = RTDirReadEx(pDir, &Entry, NULL /*pcbDirEntry*/, RTFSOBJATTRADD_NOTHING, RTPATH_F_ON_LINK); -- if (RT_FAILURE(vrc)) -- { -- AssertLogRelMsg(vrc == VERR_NO_MORE_FILES, ("%Rrc\n", vrc)); -- break; -- } -- if ( RTFS_IS_DIRECTORY(Entry.Info.Attr.fMode) -- && !RTStrICmp(Entry.szName, pszMangledName)) -- { -- /* -- * The installed extension pack has a uses different case. -- * Update the name and directory variables. -- */ -- vrc = RTPathJoin(szDir, sizeof(szDir), m->strBaseDir.c_str(), Entry.szName); /* not really necessary */ -- AssertLogRelRCReturnStmt(vrc, RTDirClose(pDir), E_UNEXPECTED); -- a_pszName = Entry.szName; -- fExists = true; -- break; -- } -- } -- RTDirClose(pDir); -- } -- } -- if (fExists) -- { -- /* -- * We've got something, create a new extension pack object for it. -- */ -- ComObjPtr<ExtPack> ptrNewExtPack; -- hrc = ptrNewExtPack.createObject(); -- if (SUCCEEDED(hrc)) -- hrc = ptrNewExtPack->initWithDir(m->enmContext, a_pszName, szDir); -- if (SUCCEEDED(hrc)) -- { -- m->llInstalledExtPacks.push_back(ptrNewExtPack); -- if (ptrNewExtPack->m->fUsable) -- LogRel(("ExtPackManager: Found extension pack '%s'.\n", a_pszName)); -- else -- LogRel(("ExtPackManager: Found bad extension pack '%s': %s\n", -- a_pszName, ptrNewExtPack->m->strWhyUnusable.c_str() )); -- pExtPack = ptrNewExtPack; -- } -- } -- else -- hrc = S_OK; -- } -- -- /* -- * Report error if not usable, if that is desired. -- */ -- if ( SUCCEEDED(hrc) -- && pExtPack -- && a_fUnusableIsError -- && !pExtPack->m->fUsable) -- hrc = setError(E_FAIL, "%s", pExtPack->m->strWhyUnusable.c_str()); -- -- if (a_ppExtPack) -- *a_ppExtPack = pExtPack; -- return hrc; --} -- --/** -- * Thread wrapper around doInstall. -- * -- * @returns VINF_SUCCESS (ignored) -- * @param hThread The thread handle (ignored). -- * @param pvJob The job structure. -- */ --/*static*/ DECLCALLBACK(int) ExtPackManager::doInstallThreadProc(RTTHREAD hThread, void *pvJob) --{ -- PEXTPACKINSTALLJOB pJob = (PEXTPACKINSTALLJOB)pvJob; -- HRESULT hrc = pJob->ptrExtPackMgr->doInstall(pJob->ptrExtPackFile, pJob->fReplace, &pJob->strDisplayInfo); -- pJob->ptrProgress->notifyComplete(hrc); -- delete pJob; -- -- NOREF(hThread); -- return VINF_SUCCESS; --} -- --/** -- * Worker for IExtPackFile::Install. -- * -- * Called on a worker thread via doInstallThreadProc. -- * -- * @returns COM status code. -- * @param a_pExtPackFile The extension pack file, caller checks that -- * it's usable. -- * @param a_fReplace Whether to replace any existing extpack or just -- * fail. -- * @param a_pstrDisplayInfo Host specific display information hacks. -- * @param a_ppProgress Where to return a progress object some day. Can -- * be NULL. -- */ --HRESULT ExtPackManager::doInstall(ExtPackFile *a_pExtPackFile, bool a_fReplace, Utf8Str const *a_pstrDisplayInfo) --{ -- AssertReturn(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON, E_UNEXPECTED); -- RTCString const * const pStrName = &a_pExtPackFile->m->Desc.strName; -- RTCString const * const pStrTarball = &a_pExtPackFile->m->strExtPackFile; -- RTCString const * const pStrTarballDigest = &a_pExtPackFile->m->strDigest; -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- -- /* -- * Refresh the data we have on the extension pack as it -- * may be made stale by direct meddling or some other user. -- */ -- ExtPack *pExtPack; -- hrc = refreshExtPack(pStrName->c_str(), false /*a_fUnusableIsError*/, &pExtPack); -- if (SUCCEEDED(hrc)) -- { -- if (pExtPack && a_fReplace) -- hrc = pExtPack->callUninstallHookAndClose(m->pVirtualBox, false /*a_ForcedRemoval*/); -- else if (pExtPack) -- hrc = setError(E_FAIL, -- tr("Extension pack '%s' is already installed." -- " In case of a reinstallation, please uninstall it first"), -- pStrName->c_str()); -- } -- if (SUCCEEDED(hrc)) -- { -- /* -- * Run the privileged helper binary that performs the actual -- * installation. Then create an object for the packet (we do this -- * even on failure, to be on the safe side). -- */ -- hrc = runSetUidToRootHelper(a_pstrDisplayInfo, -- "install", -- "--base-dir", m->strBaseDir.c_str(), -- "--cert-dir", m->strCertificatDirPath.c_str(), -- "--name", pStrName->c_str(), -- "--tarball", pStrTarball->c_str(), -- "--sha-256", pStrTarballDigest->c_str(), -- pExtPack ? "--replace" : (const char *)NULL, -- (const char *)NULL); -- if (SUCCEEDED(hrc)) -- { -- hrc = refreshExtPack(pStrName->c_str(), true /*a_fUnusableIsError*/, &pExtPack); -- if (SUCCEEDED(hrc) && pExtPack) -- { -- RTERRINFOSTATIC ErrInfo; -- RTErrInfoInitStatic(&ErrInfo); -- pExtPack->callInstalledHook(m->pVirtualBox, &autoLock, &ErrInfo.Core); -- if (RT_SUCCESS(ErrInfo.Core.rc)) -- LogRel(("ExtPackManager: Successfully installed extension pack '%s'.\n", pStrName->c_str())); -- else -- { -- LogRel(("ExtPackManager: Installated hook for '%s' failed: %Rrc - %s\n", -- pStrName->c_str(), ErrInfo.Core.rc, ErrInfo.Core.pszMsg)); -- -- /* -- * Uninstall the extpack if the error indicates that. -- */ -- if (ErrInfo.Core.rc == VERR_EXTPACK_UNSUPPORTED_HOST_UNINSTALL) -- runSetUidToRootHelper(a_pstrDisplayInfo, -- "uninstall", -- "--base-dir", m->strBaseDir.c_str(), -- "--name", pStrName->c_str(), -- "--forced", -- (const char *)NULL); -- hrc = setError(E_FAIL, tr("The installation hook failed: %Rrc - %s"), -- ErrInfo.Core.rc, ErrInfo.Core.pszMsg); -- } -- } -- else if (SUCCEEDED(hrc)) -- hrc = setError(E_FAIL, tr("Installing extension pack '%s' failed under mysterious circumstances"), -- pStrName->c_str()); -- } -- else -- { -- ErrorInfoKeeper Eik; -- refreshExtPack(pStrName->c_str(), false /*a_fUnusableIsError*/, NULL); -- } -- } -- -- /* -- * Do VirtualBoxReady callbacks now for any freshly installed -- * extension pack (old ones will not be called). -- */ -- if (m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON) -- { -- autoLock.release(); -- callAllVirtualBoxReadyHooks(); -- } -- } -- -- return hrc; --} -- --/** -- * Thread wrapper around doUninstall. -- * -- * @returns VINF_SUCCESS (ignored) -- * @param hThread The thread handle (ignored). -- * @param pvJob The job structure. -- */ --/*static*/ DECLCALLBACK(int) ExtPackManager::doUninstallThreadProc(RTTHREAD hThread, void *pvJob) --{ -- PEXTPACKUNINSTALLJOB pJob = (PEXTPACKUNINSTALLJOB)pvJob; -- HRESULT hrc = pJob->ptrExtPackMgr->doUninstall(&pJob->strName, pJob->fForcedRemoval, &pJob->strDisplayInfo); -- pJob->ptrProgress->notifyComplete(hrc); -- delete pJob; -- -- NOREF(hThread); -- return VINF_SUCCESS; --} -- --/** -- * Worker for IExtPackManager::Uninstall. -- * -- * Called on a worker thread via doUninstallThreadProc. -- * -- * @returns COM status code. -- * @param a_pstrName The name of the extension pack to uninstall. -- * @param a_fForcedRemoval Whether to be skip and ignore certain bits of -- * the extpack feedback. To deal with misbehaving -- * extension pack hooks. -- * @param a_pstrDisplayInfo Host specific display information hacks. -- */ --HRESULT ExtPackManager::doUninstall(Utf8Str const *a_pstrName, bool a_fForcedRemoval, Utf8Str const *a_pstrDisplayInfo) --{ -- Assert(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- -- /* -- * Refresh the data we have on the extension pack as it may be made -- * stale by direct meddling or some other user. -- */ -- ExtPack *pExtPack; -- hrc = refreshExtPack(a_pstrName->c_str(), false /*a_fUnusableIsError*/, &pExtPack); -- if (SUCCEEDED(hrc)) -- { -- if (!pExtPack) -- { -- LogRel(("ExtPackManager: Extension pack '%s' is not installed, so nothing to uninstall.\n", a_pstrName->c_str())); -- hrc = S_OK; /* nothing to uninstall */ -- } -- else -- { -- /* -- * Call the uninstall hook and unload the main dll. -- */ -- hrc = pExtPack->callUninstallHookAndClose(m->pVirtualBox, a_fForcedRemoval); -- if (SUCCEEDED(hrc)) -- { -- /* -- * Run the set-uid-to-root binary that performs the -- * uninstallation. Then refresh the object. -- * -- * This refresh is theorically subject to races, but it's of -- * the don't-do-that variety. -- */ -- const char *pszForcedOpt = a_fForcedRemoval ? "--forced" : NULL; -- hrc = runSetUidToRootHelper(a_pstrDisplayInfo, -- "uninstall", -- "--base-dir", m->strBaseDir.c_str(), -- "--name", a_pstrName->c_str(), -- pszForcedOpt, /* Last as it may be NULL. */ -- (const char *)NULL); -- if (SUCCEEDED(hrc)) -- { -- hrc = refreshExtPack(a_pstrName->c_str(), false /*a_fUnusableIsError*/, &pExtPack); -- if (SUCCEEDED(hrc)) -- { -- if (!pExtPack) -- LogRel(("ExtPackManager: Successfully uninstalled extension pack '%s'.\n", a_pstrName->c_str())); -- else -- hrc = setError(E_FAIL, -- tr("Uninstall extension pack '%s' failed under mysterious circumstances"), -- a_pstrName->c_str()); -- } -- } -- else -- { -- ErrorInfoKeeper Eik; -- refreshExtPack(a_pstrName->c_str(), false /*a_fUnusableIsError*/, NULL); -- } -- } -- } -- } -- -- /* -- * Do VirtualBoxReady callbacks now for any freshly installed -- * extension pack (old ones will not be called). -- */ -- if (m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON) -- { -- autoLock.release(); -- callAllVirtualBoxReadyHooks(); -- } -- } -- -- return hrc; --} -- -- --/** -- * Calls the pfnVirtualBoxReady hook for all working extension packs. -- * -- * @remarks The caller must not hold any locks. -- */ --void ExtPackManager::callAllVirtualBoxReadyHooks(void) --{ -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (FAILED(hrc)) -- return; -- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- ComPtr<ExtPackManager> ptrSelfRef = this; -- -- for (ExtPackList::iterator it = m->llInstalledExtPacks.begin(); -- it != m->llInstalledExtPacks.end(); -- /* advancing below */) -- { -- if ((*it)->callVirtualBoxReadyHook(m->pVirtualBox, &autoLock)) -- it = m->llInstalledExtPacks.begin(); -- else -- it++; -- } --} -- --/** -- * Calls the pfnConsoleReady hook for all working extension packs. -- * -- * @param a_pConsole The console interface. -- * @remarks The caller must not hold any locks. -- */ --void ExtPackManager::callAllConsoleReadyHooks(IConsole *a_pConsole) --{ -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (FAILED(hrc)) -- return; -- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- ComPtr<ExtPackManager> ptrSelfRef = this; -- -- for (ExtPackList::iterator it = m->llInstalledExtPacks.begin(); -- it != m->llInstalledExtPacks.end(); -- /* advancing below */) -- { -- if ((*it)->callConsoleReadyHook(a_pConsole, &autoLock)) -- it = m->llInstalledExtPacks.begin(); -- else -- it++; -- } --} -- --/** -- * Calls the pfnVMCreated hook for all working extension packs. -- * -- * @param a_pMachine The machine interface of the new VM. -- */ --void ExtPackManager::callAllVmCreatedHooks(IMachine *a_pMachine) --{ -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (FAILED(hrc)) -- return; -- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- ComPtr<ExtPackManager> ptrSelfRef = this; /* paranoia */ -- ExtPackList llExtPacks = m->llInstalledExtPacks; -- -- for (ExtPackList::iterator it = llExtPacks.begin(); it != llExtPacks.end(); it++) -- (*it)->callVmCreatedHook(m->pVirtualBox, a_pMachine, &autoLock); --} -- --/** -- * Calls the pfnVMConfigureVMM hook for all working extension packs. -- * -- * @returns VBox status code. Stops on the first failure, expecting the caller -- * to signal this to the caller of the CFGM constructor. -- * @param a_pConsole The console interface for the VM. -- * @param a_pVM The VM handle. -- */ --int ExtPackManager::callAllVmConfigureVmmHooks(IConsole *a_pConsole, PVM a_pVM) --{ -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (FAILED(hrc)) -- return Global::vboxStatusCodeFromCOM(hrc); -- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- ComPtr<ExtPackManager> ptrSelfRef = this; /* paranoia */ -- ExtPackList llExtPacks = m->llInstalledExtPacks; -- -- for (ExtPackList::iterator it = llExtPacks.begin(); it != llExtPacks.end(); it++) -- { -- int vrc; -- (*it)->callVmConfigureVmmHook(a_pConsole, a_pVM, &autoLock, &vrc); -- if (RT_FAILURE(vrc)) -- return vrc; -- } -- -- return VINF_SUCCESS; --} -- --/** -- * Calls the pfnVMPowerOn hook for all working extension packs. -- * -- * @returns VBox status code. Stops on the first failure, expecting the caller -- * to not power on the VM. -- * @param a_pConsole The console interface for the VM. -- * @param a_pVM The VM handle. -- */ --int ExtPackManager::callAllVmPowerOnHooks(IConsole *a_pConsole, PVM a_pVM) --{ -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (FAILED(hrc)) -- return Global::vboxStatusCodeFromCOM(hrc); -- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- ComPtr<ExtPackManager> ptrSelfRef = this; /* paranoia */ -- ExtPackList llExtPacks = m->llInstalledExtPacks; -- -- for (ExtPackList::iterator it = llExtPacks.begin(); it != llExtPacks.end(); it++) -- { -- int vrc; -- (*it)->callVmPowerOnHook(a_pConsole, a_pVM, &autoLock, &vrc); -- if (RT_FAILURE(vrc)) -- return vrc; -- } -- -- return VINF_SUCCESS; --} -- --/** -- * Calls the pfnVMPowerOff hook for all working extension packs. -- * -- * @param a_pConsole The console interface for the VM. -- * @param a_pVM The VM handle. Can be NULL. -- */ --void ExtPackManager::callAllVmPowerOffHooks(IConsole *a_pConsole, PVM a_pVM) --{ -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (FAILED(hrc)) -- return; -- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- ComPtr<ExtPackManager> ptrSelfRef = this; /* paranoia */ -- ExtPackList llExtPacks = m->llInstalledExtPacks; -- -- for (ExtPackList::iterator it = llExtPacks.begin(); it != llExtPacks.end(); it++) -- (*it)->callVmPowerOffHook(a_pConsole, a_pVM, &autoLock); --} -- -- --/** -- * Checks that the specified extension pack contains a VRDE module and that it -- * is shipshape. -- * -- * @returns S_OK if ok, appropriate failure status code with details. -- * @param a_pstrExtPack The name of the extension pack. -- */ --HRESULT ExtPackManager::checkVrdeExtPack(Utf8Str const *a_pstrExtPack) --{ -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- -- ExtPack *pExtPack = findExtPack(a_pstrExtPack->c_str()); -- if (pExtPack) -- hrc = pExtPack->checkVrde(); -- else -- hrc = setError(VBOX_E_OBJECT_NOT_FOUND, tr("No extension pack by the name '%s' was found"), a_pstrExtPack->c_str()); -- } -- -- return hrc; --} -- --/** -- * Gets the full path to the VRDE library of the specified extension pack. -- * -- * This will do extacly the same as checkVrdeExtPack and then resolve the -- * library path. -- * -- * @returns S_OK if a path is returned, COM error status and message return if -- * not. -- * @param a_pstrExtPack The extension pack. -- * @param a_pstrVrdeLibrary Where to return the path. -- */ --int ExtPackManager::getVrdeLibraryPathForExtPack(Utf8Str const *a_pstrExtPack, Utf8Str *a_pstrVrdeLibrary) --{ -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- -- ExtPack *pExtPack = findExtPack(a_pstrExtPack->c_str()); -- if (pExtPack) -- hrc = pExtPack->getVrdpLibraryName(a_pstrVrdeLibrary); -- else -- hrc = setError(VBOX_E_OBJECT_NOT_FOUND, tr("No extension pack by the name '%s' was found"), a_pstrExtPack->c_str()); -- } -- -- return hrc; --} -- --/** -- * Gets the name of the default VRDE extension pack. -- * -- * @returns S_OK or some COM error status on red tape failure. -- * @param a_pstrExtPack Where to return the extension pack name. Returns -- * empty if no extension pack wishes to be the default -- * VRDP provider. -- */ --HRESULT ExtPackManager::getDefaultVrdeExtPack(Utf8Str *a_pstrExtPack) --{ -- a_pstrExtPack->setNull(); -- -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (SUCCEEDED(hrc)) -- { -- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- -- for (ExtPackList::iterator it = m->llInstalledExtPacks.begin(); -- it != m->llInstalledExtPacks.end(); -- it++) -- { -- if ((*it)->wantsToBeDefaultVrde()) -- { -- *a_pstrExtPack = (*it)->m->Desc.strName; -- break; -- } -- } -- } -- return hrc; --} -- --/** -- * Checks if an extension pack is (present and) usable. -- * -- * @returns @c true if it is, otherwise @c false. -- * @param a_pszExtPack The name of the extension pack. -- */ --bool ExtPackManager::isExtPackUsable(const char *a_pszExtPack) --{ -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (FAILED(hrc)) -- return false; -- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- -- ExtPack *pExtPack = findExtPack(a_pszExtPack); -- return pExtPack != NULL -- && pExtPack->m->fUsable; --} -- --/** -- * Dumps all extension packs to the release log. -- */ --void ExtPackManager::dumpAllToReleaseLog(void) --{ -- AutoCaller autoCaller(this); -- HRESULT hrc = autoCaller.rc(); -- if (FAILED(hrc)) -- return; -- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS); -- -- LogRel(("Installed Extension Packs:\n")); -- for (ExtPackList::iterator it = m->llInstalledExtPacks.begin(); -- it != m->llInstalledExtPacks.end(); -- it++) -- { -- ExtPack::Data *pExtPackData = (*it)->m; -- if (pExtPackData) -- { -- if (pExtPackData->fUsable) -- LogRel((" %s (Version: %s r%u%s%s; VRDE Module: %s)\n", -- pExtPackData->Desc.strName.c_str(), -- pExtPackData->Desc.strVersion.c_str(), -- pExtPackData->Desc.uRevision, -- pExtPackData->Desc.strEdition.isEmpty() ? "" : " ", -- pExtPackData->Desc.strEdition.c_str(), -- pExtPackData->Desc.strVrdeModule.c_str() )); -- else -- LogRel((" %s (Version: %s r%u%s%s; VRDE Module: %s unusable because of '%s')\n", -- pExtPackData->Desc.strName.c_str(), -- pExtPackData->Desc.strVersion.c_str(), -- pExtPackData->Desc.uRevision, -- pExtPackData->Desc.strEdition.isEmpty() ? "" : " ", -- pExtPackData->Desc.strEdition.c_str(), -- pExtPackData->Desc.strVrdeModule.c_str(), -- pExtPackData->strWhyUnusable.c_str() )); -- } -- else -- LogRel((" pExtPackData is NULL\n")); -- } -- -- if (!m->llInstalledExtPacks.size()) -- LogRel((" None installed!\n")); --} -- --/* vi: set tabstop=4 shiftwidth=4 expandtab: */ ---- VirtualBox-4.1.18.orig/src/VBox/Main/src-all/ExtPackUtil.cpp 2012-06-20 10:17:34.000000000 -0300 -+++ /dev/null 2012-07-24 14:48:18.638572110 -0300 -@@ -1,1385 +0,0 @@ --/* $Id: ExtPackUtil.cpp $ */ --/** @file -- * VirtualBox Main - Extension Pack Utilities and definitions, VBoxC, VBoxSVC, ++. -- */ -- --/* -- * Copyright (C) 2010-2012 Oracle Corporation -- * -- * This file is part of VirtualBox Open Source Edition (OSE), as -- * available from http://www.virtualbox.org. This file is free software; -- * you can redistribute it and/or modify it under the terms of the GNU -- * General Public License (GPL) as published by the Free Software -- * Foundation, in version 2 as it comes in the "COPYING" file of the -- * VirtualBox OSE distribution. VirtualBox OSE is distributed in the -- * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. -- */ -- -- --/******************************************************************************* --* Header Files * --*******************************************************************************/ --#include "../include/ExtPackUtil.h" -- --#include <iprt/ctype.h> --#include <iprt/dir.h> --#include <iprt/file.h> --#include <iprt/manifest.h> --#include <iprt/param.h> --#include <iprt/path.h> --#include <iprt/sha.h> --#include <iprt/string.h> --#include <iprt/vfs.h> --#include <iprt/tar.h> --#include <iprt/zip.h> --#include <iprt/cpp/xml.h> -- --#include <VBox/log.h> -- -- --/** -- * Worker for VBoxExtPackLoadDesc that loads the plug-in descriptors. -- * -- * @returns Same as VBoxExtPackLoadDesc. -- * @param pVBoxExtPackElm -- * @param pcPlugIns Where to return the number of plug-ins in the -- * array. -- * @param paPlugIns Where to return the plug-in descriptor array. -- * (RTMemFree it even on failure) -- */ --static RTCString * --vboxExtPackLoadPlugInDescs(const xml::ElementNode *pVBoxExtPackElm, -- uint32_t *pcPlugIns, PVBOXEXTPACKPLUGINDESC *paPlugIns) --{ -- *pcPlugIns = 0; -- *paPlugIns = NULL; -- -- /** @todo plug-ins */ -- NOREF(pVBoxExtPackElm); -- -- return NULL; --} -- --/** -- * Clears the extension pack descriptor. -- * -- * @param a_pExtPackDesc The descriptor to clear. -- */ --static void vboxExtPackClearDesc(PVBOXEXTPACKDESC a_pExtPackDesc) --{ -- a_pExtPackDesc->strName.setNull(); -- a_pExtPackDesc->strDescription.setNull(); -- a_pExtPackDesc->strVersion.setNull(); -- a_pExtPackDesc->strEdition.setNull(); -- a_pExtPackDesc->uRevision = 0; -- a_pExtPackDesc->strMainModule.setNull(); -- a_pExtPackDesc->strVrdeModule.setNull(); -- a_pExtPackDesc->cPlugIns = 0; -- a_pExtPackDesc->paPlugIns = NULL; -- a_pExtPackDesc->fShowLicense = false; --} -- --/** -- * Initializes an extension pack descriptor so that it's safe to call free on -- * it whatever happens later on. -- * -- * @param a_pExtPackDesc The descirptor to initialize. -- */ --void VBoxExtPackInitDesc(PVBOXEXTPACKDESC a_pExtPackDesc) --{ -- vboxExtPackClearDesc(a_pExtPackDesc); --} -- -- --/** -- * Load the extension pack descriptor from an XML document. -- * -- * @returns NULL on success, pointer to an error message on failure (caller -- * deletes it). -- * @param a_pDoc Pointer to the the XML document. -- * @param a_pExtPackDesc Where to store the extension pack descriptor. -- */ --static RTCString *vboxExtPackLoadDescFromDoc(xml::Document *a_pDoc, PVBOXEXTPACKDESC a_pExtPackDesc) --{ -- /* -- * Get the main element and check its version. -- */ -- const xml::ElementNode *pVBoxExtPackElm = a_pDoc->getRootElement(); -- if ( !pVBoxExtPackElm -- || strcmp(pVBoxExtPackElm->getName(), "VirtualBoxExtensionPack") != 0) -- return new RTCString("No VirtualBoxExtensionPack element"); -- -- RTCString strFormatVersion; -- if (!pVBoxExtPackElm->getAttributeValue("version", strFormatVersion)) -- return new RTCString("Missing format version"); -- if (!strFormatVersion.equals("1.0")) -- return &(new RTCString("Unsupported format version: "))->append(strFormatVersion); -- -- /* -- * Read and validate mandatory bits. -- */ -- const xml::ElementNode *pNameElm = pVBoxExtPackElm->findChildElement("Name"); -- if (!pNameElm) -- return new RTCString("The 'Name' element is missing"); -- const char *pszName = pNameElm->getValue(); -- if (!VBoxExtPackIsValidName(pszName)) -- return &(new RTCString("Invalid name: "))->append(pszName); -- -- const xml::ElementNode *pDescElm = pVBoxExtPackElm->findChildElement("Description"); -- if (!pDescElm) -- return new RTCString("The 'Description' element is missing"); -- const char *pszDesc = pDescElm->getValue(); -- if (!pszDesc || *pszDesc == '\0') -- return new RTCString("The 'Description' element is empty"); -- if (strpbrk(pszDesc, "\n\r\t\v\b") != NULL) -- return new RTCString("The 'Description' must not contain control characters"); -- -- const xml::ElementNode *pVersionElm = pVBoxExtPackElm->findChildElement("Version"); -- if (!pVersionElm) -- return new RTCString("The 'Version' element is missing"); -- const char *pszVersion = pVersionElm->getValue(); -- if (!pszVersion || *pszVersion == '\0') -- return new RTCString("The 'Version' element is empty"); -- if (!VBoxExtPackIsValidVersionString(pszVersion)) -- return &(new RTCString("Invalid version string: "))->append(pszVersion); -- -- uint32_t uRevision; -- if (!pVersionElm->getAttributeValue("revision", uRevision)) -- uRevision = 0; -- -- const char *pszEdition; -- if (!pVersionElm->getAttributeValue("edition", pszEdition)) -- pszEdition = ""; -- if (!VBoxExtPackIsValidEditionString(pszEdition)) -- return &(new RTCString("Invalid edition string: "))->append(pszEdition); -- -- const xml::ElementNode *pMainModuleElm = pVBoxExtPackElm->findChildElement("MainModule"); -- if (!pMainModuleElm) -- return new RTCString("The 'MainModule' element is missing"); -- const char *pszMainModule = pMainModuleElm->getValue(); -- if (!pszMainModule || *pszMainModule == '\0') -- return new RTCString("The 'MainModule' element is empty"); -- if (!VBoxExtPackIsValidModuleString(pszMainModule)) -- return &(new RTCString("Invalid main module string: "))->append(pszMainModule); -- -- /* -- * The VRDE module, optional. -- * Accept both none and empty as tokens of no VRDE module. -- */ -- const char *pszVrdeModule = NULL; -- const xml::ElementNode *pVrdeModuleElm = pVBoxExtPackElm->findChildElement("VRDEModule"); -- if (pVrdeModuleElm) -- { -- pszVrdeModule = pVrdeModuleElm->getValue(); -- if (!pszVrdeModule || *pszVrdeModule == '\0') -- pszVrdeModule = NULL; -- else if (!VBoxExtPackIsValidModuleString(pszVrdeModule)) -- return &(new RTCString("Invalid VRDE module string: "))->append(pszVrdeModule); -- } -- -- /* -- * Whether to show the license, optional. (presense is enough here) -- */ -- const xml::ElementNode *pShowLicenseElm = pVBoxExtPackElm->findChildElement("ShowLicense"); -- bool fShowLicense = pShowLicenseElm != NULL; -- -- /* -- * Parse plug-in descriptions (last because of the manual memory management). -- */ -- uint32_t cPlugIns = 0; -- PVBOXEXTPACKPLUGINDESC paPlugIns = NULL; -- RTCString *pstrRet = vboxExtPackLoadPlugInDescs(pVBoxExtPackElm, &cPlugIns, &paPlugIns); -- if (pstrRet) -- { -- RTMemFree(paPlugIns); -- return pstrRet; -- } -- -- /* -- * Everything seems fine, fill in the return values and return successfully. -- */ -- a_pExtPackDesc->strName = pszName; -- a_pExtPackDesc->strDescription = pszDesc; -- a_pExtPackDesc->strVersion = pszVersion; -- a_pExtPackDesc->strEdition = pszEdition; -- a_pExtPackDesc->uRevision = uRevision; -- a_pExtPackDesc->strMainModule = pszMainModule; -- a_pExtPackDesc->strVrdeModule = pszVrdeModule; -- a_pExtPackDesc->cPlugIns = cPlugIns; -- a_pExtPackDesc->paPlugIns = paPlugIns; -- a_pExtPackDesc->fShowLicense = fShowLicense; -- -- return NULL; --} -- --/** -- * Reads the extension pack descriptor. -- * -- * @returns NULL on success, pointer to an error message on failure (caller -- * deletes it). -- * @param a_pszDir The directory containing the description file. -- * @param a_pExtPackDesc Where to store the extension pack descriptor. -- * @param a_pObjInfo Where to store the object info for the file (unix -- * attribs). Optional. -- */ --RTCString *VBoxExtPackLoadDesc(const char *a_pszDir, PVBOXEXTPACKDESC a_pExtPackDesc, PRTFSOBJINFO a_pObjInfo) --{ -- vboxExtPackClearDesc(a_pExtPackDesc); -- -- /* -- * Validate, open and parse the XML file. -- */ -- char szFilePath[RTPATH_MAX]; -- int vrc = RTPathJoin(szFilePath, sizeof(szFilePath), a_pszDir, VBOX_EXTPACK_DESCRIPTION_NAME); -- if (RT_FAILURE(vrc)) -- return new RTCString("RTPathJoin failed with %Rrc", vrc); -- -- RTFSOBJINFO ObjInfo; -- vrc = RTPathQueryInfoEx(szFilePath, &ObjInfo, RTFSOBJATTRADD_UNIX, RTPATH_F_ON_LINK); -- if (RT_FAILURE(vrc)) -- return &(new RTCString())->printf("RTPathQueryInfoEx failed with %Rrc", vrc); -- if (a_pObjInfo) -- *a_pObjInfo = ObjInfo; -- if (!RTFS_IS_FILE(ObjInfo.Attr.fMode)) -- { -- if (RTFS_IS_SYMLINK(ObjInfo.Attr.fMode)) -- return new RTCString("The XML file is symlinked, that is not allowed"); -- return &(new RTCString)->printf("The XML file is not a file (fMode=%#x)", ObjInfo.Attr.fMode); -- } -- -- xml::Document Doc; -- { -- xml::XmlFileParser Parser; -- try -- { -- Parser.read(szFilePath, Doc); -- } -- catch (xml::XmlError Err) -- { -- return new RTCString(Err.what()); -- } -- } -- -- /* -- * Hand the xml doc over to the common code. -- */ -- return vboxExtPackLoadDescFromDoc(&Doc, a_pExtPackDesc); --} -- --/** -- * Reads the extension pack descriptor. -- * -- * @returns NULL on success, pointer to an error message on failure (caller -- * deletes it). -- * @param a_pszDir The directory containing the description file. -- * @param a_pExtPackDesc Where to store the extension pack descriptor. -- * @param a_pObjInfo Where to store the object info for the file (unix -- * attribs). Optional. -- */ --RTCString *VBoxExtPackLoadDescFromVfsFile(RTVFSFILE hVfsFile, PVBOXEXTPACKDESC a_pExtPackDesc, PRTFSOBJINFO a_pObjInfo) --{ -- vboxExtPackClearDesc(a_pExtPackDesc); -- -- /* -- * Query the object info. -- */ -- RTFSOBJINFO ObjInfo; -- int rc = RTVfsFileQueryInfo(hVfsFile, &ObjInfo, RTFSOBJATTRADD_UNIX); -- if (RT_FAILURE(rc)) -- return &(new RTCString)->printf("RTVfsFileQueryInfo failed: %Rrc", rc); -- if (a_pObjInfo) -- *a_pObjInfo = ObjInfo; -- -- /* -- * The simple approach, read the whole thing into memory and pass this to -- * the XML parser. -- */ -- -- /* Check the file size. */ -- if (ObjInfo.cbObject > _1M || ObjInfo.cbObject < 0) -- return &(new RTCString)->printf("The XML file is too large (%'RU64 bytes)", ObjInfo.cbObject); -- size_t const cbFile = (size_t)ObjInfo.cbObject; -- -- /* Rewind to the start of the file. */ -- rc = RTVfsFileSeek(hVfsFile, 0, RTFILE_SEEK_BEGIN, NULL); -- if (RT_FAILURE(rc)) -- return &(new RTCString)->printf("RTVfsFileSeek(,0,BEGIN) failed: %Rrc", rc); -- -- /* Allocate memory and read the file content into it. */ -- void *pvFile = RTMemTmpAlloc(cbFile); -- if (!pvFile) -- return &(new RTCString)->printf("RTMemTmpAlloc(%zu) failed", cbFile); -- -- RTCString *pstrErr = NULL; -- rc = RTVfsFileRead(hVfsFile, pvFile, cbFile, NULL); -- if (RT_FAILURE(rc)) -- pstrErr = &(new RTCString)->printf("RTVfsFileRead failed: %Rrc", rc); -- -- /* -- * Parse the file. -- */ -- xml::Document Doc; -- if (RT_SUCCESS(rc)) -- { -- xml::XmlMemParser Parser; -- RTCString strFileName = VBOX_EXTPACK_DESCRIPTION_NAME; -- try -- { -- Parser.read(pvFile, cbFile, strFileName, Doc); -- } -- catch (xml::XmlError Err) -- { -- pstrErr = new RTCString(Err.what()); -- rc = VERR_PARSE_ERROR; -- } -- } -- RTMemTmpFree(pvFile); -- -- /* -- * Hand the xml doc over to the common code. -- */ -- if (RT_SUCCESS(rc)) -- pstrErr = vboxExtPackLoadDescFromDoc(&Doc, a_pExtPackDesc); -- -- return pstrErr; --} -- --/** -- * Frees all resources associated with a extension pack descriptor. -- * -- * @param a_pExtPackDesc The extension pack descriptor which members -- * should be freed. -- */ --void VBoxExtPackFreeDesc(PVBOXEXTPACKDESC a_pExtPackDesc) --{ -- if (!a_pExtPackDesc) -- return; -- -- a_pExtPackDesc->strName.setNull(); -- a_pExtPackDesc->strDescription.setNull(); -- a_pExtPackDesc->strVersion.setNull(); -- a_pExtPackDesc->strEdition.setNull(); -- a_pExtPackDesc->uRevision = 0; -- a_pExtPackDesc->strMainModule.setNull(); -- a_pExtPackDesc->strVrdeModule.setNull(); -- a_pExtPackDesc->cPlugIns = 0; -- RTMemFree(a_pExtPackDesc->paPlugIns); -- a_pExtPackDesc->paPlugIns = NULL; -- a_pExtPackDesc->fShowLicense = false; --} -- --/** -- * Extract the extension pack name from the tarball path. -- * -- * @returns String containing the name on success, the caller must delete it. -- * NULL if no valid name was found or if we ran out of memory. -- * @param pszTarball The path to the tarball. -- */ --RTCString *VBoxExtPackExtractNameFromTarballPath(const char *pszTarball) --{ -- /* -- * Skip ahead to the filename part and count the number of characters -- * that matches the criteria for a mangled extension pack name. -- */ -- const char *pszSrc = RTPathFilename(pszTarball); -- if (!pszSrc) -- return NULL; -- -- size_t off = 0; -- while (RT_C_IS_ALNUM(pszSrc[off]) || pszSrc[off] == '_') -- off++; -- -- /* -- * Check min and max name limits. -- */ -- if ( off > VBOX_EXTPACK_NAME_MAX_LEN -- || off < VBOX_EXTPACK_NAME_MIN_LEN) -- return NULL; -- -- /* -- * Return the unmangled name. -- */ -- return VBoxExtPackUnmangleName(pszSrc, off); --} -- --/** -- * Validates the extension pack name. -- * -- * @returns true if valid, false if not. -- * @param pszName The name to validate. -- * @sa VBoxExtPackExtractNameFromTarballPath -- */ --bool VBoxExtPackIsValidName(const char *pszName) --{ -- if (!pszName) -- return false; -- -- /* -- * Check the characters making up the name, only english alphabet -- * characters, decimal digits and spaces are allowed. -- */ -- size_t off = 0; -- while (pszName[off]) -- { -- if (!RT_C_IS_ALNUM(pszName[off]) && pszName[off] != ' ') -- return false; -- off++; -- } -- -- /* -- * Check min and max name limits. -- */ -- if ( off > VBOX_EXTPACK_NAME_MAX_LEN -- || off < VBOX_EXTPACK_NAME_MIN_LEN) -- return false; -- -- return true; --} -- --/** -- * Checks if an alledged manged extension pack name. -- * -- * @returns true if valid, false if not. -- * @param pszMangledName The mangled name to validate. -- * @param cchMax The max number of chars to test. -- * @sa VBoxExtPackMangleName -- */ --bool VBoxExtPackIsValidMangledName(const char *pszMangledName, size_t cchMax /*= RTSTR_MAX*/) --{ -- if (!pszMangledName) -- return false; -- -- /* -- * Check the characters making up the name, only english alphabet -- * characters, decimal digits and underscores (=space) are allowed. -- */ -- size_t off = 0; -- while (off < cchMax && pszMangledName[off]) -- { -- if (!RT_C_IS_ALNUM(pszMangledName[off]) && pszMangledName[off] != '_') -- return false; -- off++; -- } -- -- /* -- * Check min and max name limits. -- */ -- if ( off > VBOX_EXTPACK_NAME_MAX_LEN -- || off < VBOX_EXTPACK_NAME_MIN_LEN) -- return false; -- -- return true; --} -- --/** -- * Mangle an extension pack name so it can be used by a directory or file name. -- * -- * @returns String containing the mangled name on success, the caller must -- * delete it. NULL on failure. -- * @param pszName The unmangled name. -- * @sa VBoxExtPackUnmangleName, VBoxExtPackIsValidMangledName -- */ --RTCString *VBoxExtPackMangleName(const char *pszName) --{ -- AssertReturn(VBoxExtPackIsValidName(pszName), NULL); -- -- char szTmp[VBOX_EXTPACK_NAME_MAX_LEN + 1]; -- size_t off = 0; -- char ch; -- while ((ch = pszName[off]) != '\0') -- { -- if (ch == ' ') -- ch = '_'; -- szTmp[off++] = ch; -- } -- szTmp[off] = '\0'; -- Assert(VBoxExtPackIsValidMangledName(szTmp)); -- -- return new RTCString(szTmp, off); --} -- --/** -- * Unmangle an extension pack name (reverses VBoxExtPackMangleName). -- * -- * @returns String containing the mangled name on success, the caller must -- * delete it. NULL on failure. -- * @param pszMangledName The mangled name. -- * @param cchMax The max name length. RTSTR_MAX is fine. -- * @sa VBoxExtPackMangleName, VBoxExtPackIsValidMangledName -- */ --RTCString *VBoxExtPackUnmangleName(const char *pszMangledName, size_t cchMax) --{ -- AssertReturn(VBoxExtPackIsValidMangledName(pszMangledName, cchMax), NULL); -- -- char szTmp[VBOX_EXTPACK_NAME_MAX_LEN + 1]; -- size_t off = 0; -- char ch; -- while ( off < cchMax -- && (ch = pszMangledName[off]) != '\0') -- { -- if (ch == '_') -- ch = ' '; -- else -- AssertReturn(RT_C_IS_ALNUM(ch) || ch == ' ', NULL); -- szTmp[off++] = ch; -- } -- szTmp[off] = '\0'; -- AssertReturn(VBoxExtPackIsValidName(szTmp), NULL); -- -- return new RTCString(szTmp, off); --} -- --/** -- * Constructs the extension pack directory path. -- * -- * A combination of RTPathJoin and VBoxExtPackMangleName. -- * -- * @returns IPRT status code like RTPathJoin. -- * @param pszExtPackDir Where to return the directory path. -- * @param cbExtPackDir The size of the return buffer. -- * @param pszParentDir The parent directory (".../Extensions"). -- * @param pszName The extension pack name, unmangled. -- */ --int VBoxExtPackCalcDir(char *pszExtPackDir, size_t cbExtPackDir, const char *pszParentDir, const char *pszName) --{ -- AssertReturn(VBoxExtPackIsValidName(pszName), VERR_INTERNAL_ERROR_5); -- -- RTCString *pstrMangledName = VBoxExtPackMangleName(pszName); -- if (!pstrMangledName) -- return VERR_INTERNAL_ERROR_4; -- -- int vrc = RTPathJoin(pszExtPackDir, cbExtPackDir, pszParentDir, pstrMangledName->c_str()); -- delete pstrMangledName; -- -- return vrc; --} -- -- --/** -- * Validates the extension pack version string. -- * -- * @returns true if valid, false if not. -- * @param pszVersion The version string to validate. -- */ --bool VBoxExtPackIsValidVersionString(const char *pszVersion) --{ -- if (!pszVersion || *pszVersion == '\0') -- return false; -- -- /* 1.x.y.z... */ -- for (;;) -- { -- if (!RT_C_IS_DIGIT(*pszVersion)) -- return false; -- do -- pszVersion++; -- while (RT_C_IS_DIGIT(*pszVersion)); -- if (*pszVersion != '.') -- break; -- pszVersion++; -- } -- -- /* upper case string + numbers indicating the build type */ -- if (*pszVersion == '-' || *pszVersion == '_') -- { -- /** @todo Should probably restrict this to known build types (alpha, -- * beta, rc, ++). */ -- do -- pszVersion++; -- while ( RT_C_IS_DIGIT(*pszVersion) -- || RT_C_IS_UPPER(*pszVersion) -- || *pszVersion == '-' -- || *pszVersion == '_'); -- } -- -- return *pszVersion == '\0'; --} -- --/** -- * Validates the extension pack edition string. -- * -- * @returns true if valid, false if not. -- * @param pszEdition The edition string to validate. -- */ --bool VBoxExtPackIsValidEditionString(const char *pszEdition) --{ -- if (*pszEdition) -- { -- if (!RT_C_IS_UPPER(*pszEdition)) -- return false; -- -- do -- pszEdition++; -- while ( RT_C_IS_UPPER(*pszEdition) -- || RT_C_IS_DIGIT(*pszEdition) -- || *pszEdition == '-' -- || *pszEdition == '_'); -- } -- return *pszEdition == '\0'; --} -- --/** -- * Validates an extension pack module string. -- * -- * @returns true if valid, false if not. -- * @param pszModule The module string to validate. -- */ --bool VBoxExtPackIsValidModuleString(const char *pszModule) --{ -- if (!pszModule || *pszModule == '\0') -- return false; -- -- /* Restricted charset, no extensions (dots). */ -- while ( RT_C_IS_ALNUM(*pszModule) -- || *pszModule == '-' -- || *pszModule == '_') -- pszModule++; -- -- return *pszModule == '\0'; --} -- --/** -- * RTStrPrintfv wrapper. -- * -- * @returns @a rc -- * @param rc The status code to return. -- * @param pszError The error buffer. -- * @param cbError The size of the buffer. -- * @param pszFormat The error message format string. -- * @param ... Format arguments. -- */ --static int vboxExtPackReturnError(int rc, char *pszError, size_t cbError, const char *pszFormat, ...) --{ -- va_list va; -- va_start(va, pszFormat); -- RTStrPrintfV(pszError, cbError, pszFormat, va); -- va_end(va); -- return rc; --} -- --/** -- * RTStrPrintfv wrapper. -- * -- * @param pszError The error buffer. -- * @param cbError The size of the buffer. -- * @param pszFormat The error message format string. -- * @param ... Format arguments. -- */ --static void vboxExtPackSetError(char *pszError, size_t cbError, const char *pszFormat, ...) --{ -- va_list va; -- va_start(va, pszFormat); -- RTStrPrintfV(pszError, cbError, pszFormat, va); -- va_end(va); --} -- --/** -- * Verifies the manifest and its signature. -- * -- * @returns VBox status code, failures with message. -- * @param hManifestFile The xml from the extension pack. -- * @param pszExtPackName The expected extension pack name. This can be -- * NULL, in which we don't have any expectations. -- * @param pszError Where to store an error message on failure. -- * @param cbError The size of the buffer @a pszError points to. -- */ --static int vboxExtPackVerifyXml(RTVFSFILE hXmlFile, const char *pszExtPackName, char *pszError, size_t cbError) --{ -- /* -- * Load the XML. -- */ -- VBOXEXTPACKDESC ExtPackDesc; -- RTCString *pstrErr = VBoxExtPackLoadDescFromVfsFile(hXmlFile, &ExtPackDesc, NULL); -- if (pstrErr) -- { -- RTStrCopy(pszError, cbError, pstrErr->c_str()); -- delete pstrErr; -- return VERR_PARSE_ERROR; -- } -- -- /* -- * Check the name. -- */ -- /** @todo drop this restriction after the old install interface is -- * dropped. */ -- int rc = VINF_SUCCESS; -- if ( pszExtPackName -- && !ExtPackDesc.strName.equalsIgnoreCase(pszExtPackName)) -- rc = vboxExtPackReturnError(VERR_NOT_EQUAL, pszError, cbError, -- "The name of the downloaded file and the name stored inside the extension pack does not match" -- " (xml='%s' file='%s')", ExtPackDesc.strName.c_str(), pszExtPackName); -- return rc; --} -- --/** -- * Verifies the manifest and its signature. -- * -- * @returns VBox status code, failures with message. -- * @param hOurManifest The manifest we compiled. -- * @param hManifestFile The manifest file in the extension pack. -- * @param hSignatureFile The manifest signature file. -- * @param pszError Where to store an error message on failure. -- * @param cbError The size of the buffer @a pszError points to. -- */ --static int vboxExtPackVerifyManifestAndSignature(RTMANIFEST hOurManifest, RTVFSFILE hManifestFile, RTVFSFILE hSignatureFile, -- char *pszError, size_t cbError) --{ -- /* -- * Read the manifest from the extension pack. -- */ -- int rc = RTVfsFileSeek(hManifestFile, 0, RTFILE_SEEK_BEGIN, NULL); -- if (RT_FAILURE(rc)) -- return vboxExtPackReturnError(rc, pszError, cbError, "RTVfsFileSeek failed: %Rrc", rc); -- -- RTMANIFEST hTheirManifest; -- rc = RTManifestCreate(0 /*fFlags*/, &hTheirManifest); -- if (RT_FAILURE(rc)) -- return vboxExtPackReturnError(rc, pszError, cbError, "RTManifestCreate failed: %Rrc", rc); -- -- RTVFSIOSTREAM hVfsIos = RTVfsFileToIoStream(hManifestFile); -- rc = RTManifestReadStandard(hTheirManifest, hVfsIos); -- RTVfsIoStrmRelease(hVfsIos); -- if (RT_SUCCESS(rc)) -- { -- /* -- * Compare the manifests. -- */ -- static const char *s_apszIgnoreEntries[] = -- { -- VBOX_EXTPACK_MANIFEST_NAME, -- VBOX_EXTPACK_SIGNATURE_NAME, -- "./" VBOX_EXTPACK_MANIFEST_NAME, -- "./" VBOX_EXTPACK_SIGNATURE_NAME, -- NULL -- }; -- char szError[RTPATH_MAX]; -- rc = RTManifestEqualsEx(hOurManifest, hTheirManifest, &s_apszIgnoreEntries[0], NULL, -- RTMANIFEST_EQUALS_IGN_MISSING_ATTRS /*fFlags*/, -- szError, sizeof(szError)); -- if (RT_SUCCESS(rc)) -- { -- /* -- * Validate the manifest file signature. -- */ -- /** @todo implement signature stuff */ -- NOREF(hSignatureFile); -- -- } -- else if (rc == VERR_NOT_EQUAL && szError[0]) -- vboxExtPackSetError(pszError, cbError, "Manifest mismatch: %s", szError); -- else -- vboxExtPackSetError(pszError, cbError, "RTManifestEqualsEx failed: %Rrc", rc); --#if 0 -- RTVFSIOSTREAM hVfsIosStdOut = NIL_RTVFSIOSTREAM; -- RTVfsIoStrmFromStdHandle(RTHANDLESTD_OUTPUT, RTFILE_O_WRITE, true, &hVfsIosStdOut); -- RTVfsIoStrmWrite(hVfsIosStdOut, "Our:\n", sizeof("Our:\n") - 1, true, NULL); -- RTManifestWriteStandard(hOurManifest, hVfsIosStdOut); -- RTVfsIoStrmWrite(hVfsIosStdOut, "Their:\n", sizeof("Their:\n") - 1, true, NULL); -- RTManifestWriteStandard(hTheirManifest, hVfsIosStdOut); --#endif -- } -- else -- vboxExtPackSetError(pszError, cbError, "Error parsing '%s': %Rrc", VBOX_EXTPACK_MANIFEST_NAME, rc); -- -- RTManifestRelease(hTheirManifest); -- return rc; --} -- -- --/** -- * Verifies the file digest (if specified) and returns the SHA-256 of the file. -- * -- * @returns -- * @param hFileManifest Manifest containing a SHA-256 digest of the file -- * that was calculated as the file was processed. -- * @param pszFileDigest SHA-256 digest of the file. -- * @param pStrDigest Where to return the SHA-256 digest. Optional. -- * @param pszError Where to write an error message on failure. -- * @param cbError The size of the @a pszError buffer. -- */ --static int vboxExtPackVerifyFileDigest(RTMANIFEST hFileManifest, const char *pszFileDigest, -- RTCString *pStrDigest, char *pszError, size_t cbError) --{ -- /* -- * Extract the SHA-256 entry for the extpack file. -- */ -- char szCalculatedDigest[RTSHA256_DIGEST_LEN + 1]; -- int rc = RTManifestEntryQueryAttr(hFileManifest, "extpack", NULL /*no name*/, RTMANIFEST_ATTR_SHA256, -- szCalculatedDigest, sizeof(szCalculatedDigest), NULL); -- if (RT_SUCCESS(rc)) -- { -- /* -- * Convert the two strings to binary form before comparing. -- * We convert the calculated hash even if we don't have anything to -- * compare with, just to validate it. -- */ -- uint8_t abCalculatedHash[RTSHA256_HASH_SIZE]; -- rc = RTSha256FromString(szCalculatedDigest, abCalculatedHash); -- if (RT_SUCCESS(rc)) -- { -- if ( pszFileDigest -- && *pszFileDigest != '\0') -- { -- uint8_t abFileHash[RTSHA256_HASH_SIZE]; -- rc = RTSha256FromString(pszFileDigest, abFileHash); -- if (RT_SUCCESS(rc)) -- { -- if (memcmp(abFileHash, abCalculatedHash, sizeof(abFileHash))) -- { -- vboxExtPackSetError(pszError, cbError, "The extension pack file has changed (SHA-256 mismatch)"); -- rc = VERR_NOT_EQUAL; -- } -- } -- else -- vboxExtPackSetError(pszError, cbError, "Bad SHA-256 '%s': %Rrc", szCalculatedDigest, rc); -- } -- -- /* -- * Set the output hash on success. -- */ -- if (pStrDigest && RT_SUCCESS(rc)) -- { -- try -- { -- *pStrDigest = szCalculatedDigest; -- } -- catch (std::bad_alloc) -- { -- rc = VERR_NO_MEMORY; -- } -- } -- } -- else -- vboxExtPackSetError(pszError, cbError, "Bad SHA-256 '%s': %Rrc", szCalculatedDigest, rc); -- } -- else -- vboxExtPackSetError(pszError, cbError, "RTManifestEntryGetAttr: %Rrc", rc); -- return rc; --} -- -- -- --/** -- * Validates a standard file. -- * -- * Generally all files are -- * -- * @returns VBox status code, failure message in @a pszError. -- * @param pszAdjName The adjusted member name. -- * @param enmType The VFS object type. -- * @param phVfsObj The pointer to the VFS object handle variable. -- * This is both input and output. -- * @param phVfsFile Where to store the handle to the memorized -- * file. This is NULL for license files. -- * @param pszError Where to write an error message on failure. -- * @param cbError The size of the @a pszError buffer. -- */ --static int VBoxExtPackValidateStandardFile(const char *pszAdjName, RTVFSOBJTYPE enmType, -- PRTVFSOBJ phVfsObj, PRTVFSFILE phVfsFile, char *pszError, size_t cbError) --{ -- int rc; -- -- /* -- * Make sure it's a file and that it isn't too large. -- */ -- if (phVfsFile && *phVfsFile != NIL_RTVFSFILE) -- rc = vboxExtPackReturnError(VERR_DUPLICATE, pszError, cbError, -- "There can only be one '%s'", pszAdjName); -- else if (enmType != RTVFSOBJTYPE_IO_STREAM && enmType != RTVFSOBJTYPE_FILE) -- rc = vboxExtPackReturnError(VERR_NOT_A_FILE, pszError, cbError, -- "Standard member '%s' is not a file", pszAdjName); -- else -- { -- RTFSOBJINFO ObjInfo; -- rc = RTVfsObjQueryInfo(*phVfsObj, &ObjInfo, RTFSOBJATTRADD_NOTHING); -- if (RT_SUCCESS(rc)) -- { -- if (!RTFS_IS_FILE(ObjInfo.Attr.fMode)) -- rc = vboxExtPackReturnError(VERR_NOT_A_FILE, pszError, cbError, -- "Standard member '%s' is not a file", pszAdjName); -- else if (ObjInfo.cbObject >= _1M) -- rc = vboxExtPackReturnError(VERR_OUT_OF_RANGE, pszError, cbError, -- "Standard member '%s' is too large: %'RU64 bytes (max 1 MB)", -- pszAdjName, (uint64_t)ObjInfo.cbObject); -- else -- { -- /* -- * Make an in memory copy of the stream and check that the file -- * is UTF-8 clean. -- */ -- RTVFSIOSTREAM hVfsIos = RTVfsObjToIoStream(*phVfsObj); -- RTVFSFILE hVfsFile; -- rc = RTVfsMemorizeIoStreamAsFile(hVfsIos, RTFILE_O_READ, &hVfsFile); -- if (RT_SUCCESS(rc)) -- { -- rc = RTVfsIoStrmValidateUtf8Encoding(hVfsIos, -- RTVFS_VALIDATE_UTF8_BY_RTC_3629 | RTVFS_VALIDATE_UTF8_NO_NULL, -- NULL); -- if (RT_SUCCESS(rc)) -- { -- /* -- * Replace *phVfsObj with the memorized file. -- */ -- rc = RTVfsFileSeek(hVfsFile, 0, RTFILE_SEEK_BEGIN, NULL); -- if (RT_SUCCESS(rc)) -- { -- RTVfsObjRelease(*phVfsObj); -- *phVfsObj = RTVfsObjFromFile(hVfsFile); -- } -- else -- vboxExtPackSetError(pszError, cbError, "RTVfsFileSeek failed on '%s': %Rrc", pszAdjName, rc); -- } -- -- if (phVfsFile && RT_SUCCESS(rc)) -- *phVfsFile = hVfsFile; -- else -- RTVfsFileRelease(hVfsFile); -- } -- else -- vboxExtPackSetError(pszError, cbError, "RTVfsMemorizeIoStreamAsFile failed on '%s': %Rrc", pszAdjName, rc); -- RTVfsIoStrmRelease(hVfsIos); -- } -- } -- else -- vboxExtPackSetError(pszError, cbError, "RTVfsObjQueryInfo failed on '%s': %Rrc", pszAdjName, rc); -- } -- return rc; --} -- -- --/** -- * Validates a name in an extension pack. -- * -- * We restrict the charset to try make sure the extension pack can be unpacked -- * on all file systems. -- * -- * @returns VBox status code, failures with message. -- * @param pszName The name to validate. -- * @param pszError Where to store an error message on failure. -- * @param cbError The size of the buffer @a pszError points to. -- */ --static int vboxExtPackValidateMemberName(const char *pszName, char *pszError, size_t cbError) --{ -- if (RTPathStartsWithRoot(pszName)) -- return vboxExtPackReturnError(VERR_PATH_IS_NOT_RELATIVE, pszError, cbError, "'%s': starts with root spec", pszName); -- -- const char *pszErr = NULL; -- const char *psz = pszName; -- int ch; -- while ((ch = *psz) != '\0') -- { -- /* Character set restrictions. */ -- if (ch < 0 || ch >= 128) -- { -- pszErr = "Only 7-bit ASCII allowed"; -- break; -- } -- if (ch <= 31 || ch == 127) -- { -- pszErr = "No control characters are not allowed"; -- break; -- } -- if (ch == '\\') -- { -- pszErr = "Only backward slashes are not allowed"; -- break; -- } -- if (strchr("'\":;*?|[]<>(){}", ch)) -- { -- pszErr = "The characters ', \", :, ;, *, ?, |, [, ], <, >, (, ), { and } are not allowed"; -- break; -- } -- -- /* Take the simple way out and ban all ".." sequences. */ -- if ( ch == '.' -- && psz[1] == '.') -- { -- pszErr = "Double dot sequence are not allowed"; -- break; -- } -- -- /* Keep the tree shallow or the hardening checks will fail. */ -- if (psz - pszName > VBOX_EXTPACK_MAX_MEMBER_NAME_LENGTH) -- { -- pszErr = "Too long"; -- break; -- } -- -- /* advance */ -- psz++; -- } -- -- if (pszErr) -- return vboxExtPackReturnError(VERR_INVALID_NAME, pszError, cbError, -- "Bad member name '%s' (pos %zu): %s", pszName, (size_t)(psz - pszName), pszErr); -- return RTEXITCODE_SUCCESS; --} -- -- --/** -- * Validates a file in an extension pack. -- * -- * @returns VBox status code, failures with message. -- * @param pszName The name of the file. -- * @param hVfsObj The VFS object. -- * @param pszError Where to store an error message on failure. -- * @param cbError The size of the buffer @a pszError points to. -- */ --static int vboxExtPackValidateMemberFile(const char *pszName, RTVFSOBJ hVfsObj, char *pszError, size_t cbError) --{ -- int rc = vboxExtPackValidateMemberName(pszName, pszError, cbError); -- if (RT_SUCCESS(rc)) -- { -- RTFSOBJINFO ObjInfo; -- rc = RTVfsObjQueryInfo(hVfsObj, &ObjInfo, RTFSOBJATTRADD_NOTHING); -- if (RT_SUCCESS(rc)) -- { -- if (ObjInfo.cbObject >= 9*_1G64) -- rc = vboxExtPackReturnError(VERR_OUT_OF_RANGE, pszError, cbError, -- "'%s': too large (%'RU64 bytes)", -- pszName, (uint64_t)ObjInfo.cbObject); -- if (!RTFS_IS_FILE(ObjInfo.Attr.fMode)) -- rc = vboxExtPackReturnError(VERR_NOT_A_FILE, pszError, cbError, -- "The alleged file '%s' has a mode mask stating otherwise (%RTfmode)", -- pszName, ObjInfo.Attr.fMode); -- } -- else -- vboxExtPackSetError(pszError, cbError, "RTVfsObjQueryInfo failed on '%s': %Rrc", pszName, rc); -- } -- return rc; --} -- -- --/** -- * Validates a directory in an extension pack. -- * -- * @returns VBox status code, failures with message. -- * @param pszName The name of the directory. -- * @param hVfsObj The VFS object. -- * @param pszError Where to store an error message on failure. -- * @param cbError The size of the buffer @a pszError points to. -- */ --static int vboxExtPackValidateMemberDir(const char *pszName, RTVFSOBJ hVfsObj, char *pszError, size_t cbError) --{ -- int rc = vboxExtPackValidateMemberName(pszName, pszError, cbError); -- if (RT_SUCCESS(rc)) -- { -- RTFSOBJINFO ObjInfo; -- rc = RTVfsObjQueryInfo(hVfsObj, &ObjInfo, RTFSOBJATTRADD_NOTHING); -- if (RT_SUCCESS(rc)) -- { -- if (!RTFS_IS_DIRECTORY(ObjInfo.Attr.fMode)) -- rc = vboxExtPackReturnError(VERR_NOT_A_DIRECTORY, pszError, cbError, -- "The alleged directory '%s' has a mode mask saying differently (%RTfmode)", -- pszName, ObjInfo.Attr.fMode); -- } -- else -- vboxExtPackSetError(pszError, cbError, "RTVfsObjQueryInfo failed on '%s': %Rrc", pszName, rc); -- } -- return rc; --} -- --/** -- * Validates a member of an extension pack. -- * -- * @returns VBox status code, failures with message. -- * @param pszName The name of the directory. -- * @param enmType The object type. -- * @param hVfsObj The VFS object. -- * @param pszError Where to store an error message on failure. -- * @param cbError The size of the buffer @a pszError points to. -- */ --int VBoxExtPackValidateMember(const char *pszName, RTVFSOBJTYPE enmType, RTVFSOBJ hVfsObj, char *pszError, size_t cbError) --{ -- Assert(cbError > 0); -- *pszError = '\0'; -- -- int rc; -- if ( enmType == RTVFSOBJTYPE_FILE -- || enmType == RTVFSOBJTYPE_IO_STREAM) -- rc = vboxExtPackValidateMemberFile(pszName, hVfsObj, pszError, cbError); -- else if ( enmType == RTVFSOBJTYPE_DIR -- || enmType == RTVFSOBJTYPE_BASE) -- rc = vboxExtPackValidateMemberDir(pszName, hVfsObj, pszError, cbError); -- else -- rc = vboxExtPackReturnError(VERR_UNEXPECTED_FS_OBJ_TYPE, pszError, cbError, -- "'%s' is not a file or directory (enmType=%d)", pszName, enmType); -- return rc; --} -- -- --/** -- * Rewinds the tarball file handle and creates a gunzip | tar chain that -- * results in a filesystem stream. -- * -- * @returns VBox status code, failures with message. -- * @param hTarballFile The handle to the tarball file. -- * @param pszError Where to store an error message on failure. -- * @param cbError The size of the buffer @a pszError points to. -- * @param phTarFss Where to return the filesystem stream handle. -- * @param phFileManifest Where to return a manifest where the tarball is -- * gettting hashed. The entry will be called -- * "extpack" and be ready when the file system -- * stream is at an end. Optional. -- */ --int VBoxExtPackOpenTarFss(RTFILE hTarballFile, char *pszError, size_t cbError, PRTVFSFSSTREAM phTarFss, PRTMANIFEST phFileManifest) --{ -- Assert(cbError > 0); -- *pszError = '\0'; -- *phTarFss = NIL_RTVFSFSSTREAM; -- -- /* -- * Rewind the file and set up a VFS chain for it. -- */ -- int rc = RTFileSeek(hTarballFile, 0, RTFILE_SEEK_BEGIN, NULL); -- if (RT_FAILURE(rc)) -- return vboxExtPackReturnError(rc, pszError, cbError, "Failed seeking to the start of the tarball: %Rrc", rc); -- -- RTVFSIOSTREAM hTarballIos; -- rc = RTVfsIoStrmFromRTFile(hTarballFile, RTFILE_O_READ | RTFILE_O_DENY_WRITE | RTFILE_O_OPEN, true /*fLeaveOpen*/, -- &hTarballIos); -- if (RT_FAILURE(rc)) -- return vboxExtPackReturnError(rc, pszError, cbError, "RTVfsIoStrmFromRTFile failed: %Rrc", rc); -- -- RTMANIFEST hFileManifest = NIL_RTMANIFEST; -- rc = RTManifestCreate(0 /*fFlags*/, &hFileManifest); -- if (RT_SUCCESS(rc)) -- { -- RTVFSIOSTREAM hPtIos; -- rc = RTManifestEntryAddPassthruIoStream(hFileManifest, hTarballIos, "extpack", RTMANIFEST_ATTR_SHA256, true /*read*/, &hPtIos); -- if (RT_SUCCESS(rc)) -- { -- RTVFSIOSTREAM hGunzipIos; -- rc = RTZipGzipDecompressIoStream(hPtIos, 0 /*fFlags*/, &hGunzipIos); -- if (RT_SUCCESS(rc)) -- { -- RTVFSFSSTREAM hTarFss; -- rc = RTZipTarFsStreamFromIoStream(hGunzipIos, 0 /*fFlags*/, &hTarFss); -- if (RT_SUCCESS(rc)) -- { -- RTVfsIoStrmRelease(hPtIos); -- RTVfsIoStrmRelease(hGunzipIos); -- RTVfsIoStrmRelease(hTarballIos); -- *phTarFss = hTarFss; -- if (phFileManifest) -- *phFileManifest = hFileManifest; -- else -- RTManifestRelease(hFileManifest); -- return VINF_SUCCESS; -- } -- -- vboxExtPackSetError(pszError, cbError, "RTZipTarFsStreamFromIoStream failed: %Rrc", rc); -- RTVfsIoStrmRelease(hGunzipIos); -- } -- else -- vboxExtPackSetError(pszError, cbError, "RTZipGzipDecompressIoStream failed: %Rrc", rc); -- RTVfsIoStrmRelease(hPtIos); -- } -- else -- vboxExtPackSetError(pszError, cbError, "RTManifestEntryAddPassthruIoStream failed: %Rrc", rc); -- RTManifestRelease(hFileManifest); -- } -- else -- vboxExtPackSetError(pszError, cbError, "RTManifestCreate failed: %Rrc", rc); -- -- RTVfsIoStrmRelease(hTarballIos); -- return rc; --} -- -- --/** -- * Validates the extension pack tarball prior to unpacking. -- * -- * Operations performed: -- * - Mandatory files. -- * - Manifest check. -- * - Manifest seal check. -- * - XML check, match name. -- * -- * @returns VBox status code, failures with message. -- * @param hTarballFile The handle to open the @a pszTarball file. -- * @param pszExtPackName The name of the extension pack name. NULL if -- * the name is not fixed. -- * @param pszTarball The name of the tarball in case we have to -- * complain about something. -- * @param pszTarballDigest The SHA-256 digest of the tarball. Empty string -- * if no digest available. -- * @param pszError Where to store an error message on failure. -- * @param cbError The size of the buffer @a pszError points to. -- * @param phValidManifest Where to optionally return the handle to fully -- * validated the manifest for the extension pack. -- * This includes all files. -- * @param phXmlFile Where to optionally return the memorized XML -- * file. -- * @param pStrDigest Where to return the digest of the file. -- * Optional. -- */ --int VBoxExtPackValidateTarball(RTFILE hTarballFile, const char *pszExtPackName, -- const char *pszTarball, const char *pszTarballDigest, -- char *pszError, size_t cbError, -- PRTMANIFEST phValidManifest, PRTVFSFILE phXmlFile, RTCString *pStrDigest) --{ -- /* -- * Clear return values. -- */ -- if (phValidManifest) -- *phValidManifest = NIL_RTMANIFEST; -- if (phXmlFile) -- *phXmlFile = NIL_RTVFSFILE; -- Assert(cbError > 1); -- *pszError = '\0'; -- NOREF(pszTarball); -- -- /* -- * Open the tar.gz filesystem stream and set up an manifest in-memory file. -- */ -- RTMANIFEST hFileManifest; -- RTVFSFSSTREAM hTarFss; -- int rc = VBoxExtPackOpenTarFss(hTarballFile, pszError, cbError, &hTarFss, &hFileManifest); -- if (RT_FAILURE(rc)) -- return rc; -- -- RTMANIFEST hOurManifest; -- rc = RTManifestCreate(0 /*fFlags*/, &hOurManifest); -- if (RT_SUCCESS(rc)) -- { -- /* -- * Process the tarball (would be nice to move this to a function). -- */ -- RTVFSFILE hXmlFile = NIL_RTVFSFILE; -- RTVFSFILE hManifestFile = NIL_RTVFSFILE; -- RTVFSFILE hSignatureFile = NIL_RTVFSFILE; -- for (;;) -- { -- /* -- * Get the next stream object. -- */ -- char *pszName; -- RTVFSOBJ hVfsObj; -- RTVFSOBJTYPE enmType; -- rc = RTVfsFsStrmNext(hTarFss, &pszName, &enmType, &hVfsObj); -- if (RT_FAILURE(rc)) -- { -- if (rc != VERR_EOF) -- vboxExtPackSetError(pszError, cbError, "RTVfsFsStrmNext failed: %Rrc", rc); -- else -- rc = VINF_SUCCESS; -- break; -- } -- const char *pszAdjName = pszName[0] == '.' && pszName[1] == '/' ? &pszName[2] : pszName; -- -- /* -- * Check the type & name validity, performing special tests on -- * standard extension pack member files. -- * -- * N.B. We will always reach the end of the loop before breaking on -- * failure - cleanup reasons. -- */ -- rc = VBoxExtPackValidateMember(pszName, enmType, hVfsObj, pszError, cbError); -- if (RT_SUCCESS(rc)) -- { -- PRTVFSFILE phVfsFile = NULL; -- if (!strcmp(pszAdjName, VBOX_EXTPACK_DESCRIPTION_NAME)) -- phVfsFile = &hXmlFile; -- else if (!strcmp(pszAdjName, VBOX_EXTPACK_MANIFEST_NAME)) -- phVfsFile = &hManifestFile; -- else if (!strcmp(pszAdjName, VBOX_EXTPACK_SIGNATURE_NAME)) -- phVfsFile = &hSignatureFile; -- else if (!strncmp(pszAdjName, VBOX_EXTPACK_LICENSE_NAME_PREFIX, sizeof(VBOX_EXTPACK_LICENSE_NAME_PREFIX) - 1)) -- rc = VBoxExtPackValidateStandardFile(pszAdjName, enmType, &hVfsObj, NULL, pszError, cbError); -- if (phVfsFile) -- rc = VBoxExtPackValidateStandardFile(pszAdjName, enmType, &hVfsObj, phVfsFile, pszError, cbError); -- } -- -- /* -- * Add any I/O stream to the manifest -- */ -- if ( RT_SUCCESS(rc) -- && ( enmType == RTVFSOBJTYPE_FILE -- || enmType == RTVFSOBJTYPE_IO_STREAM)) -- { -- RTVFSIOSTREAM hVfsIos = RTVfsObjToIoStream(hVfsObj); -- rc = RTManifestEntryAddIoStream(hOurManifest, hVfsIos, pszAdjName, RTMANIFEST_ATTR_SIZE | RTMANIFEST_ATTR_SHA256); -- if (RT_FAILURE(rc)) -- vboxExtPackSetError(pszError, cbError, "RTManifestEntryAddIoStream failed on '%s': %Rrc", pszAdjName, rc); -- RTVfsIoStrmRelease(hVfsIos); -- } -- -- /* -- * Clean up and break out on failure. -- */ -- RTVfsObjRelease(hVfsObj); -- RTStrFree(pszName); -- if (RT_FAILURE(rc)) -- break; -- } -- -- /* -- * Check the integrity of the tarball file. -- */ -- if (RT_SUCCESS(rc)) -- { -- RTVfsFsStrmRelease(hTarFss); -- hTarFss = NIL_RTVFSFSSTREAM; -- rc = vboxExtPackVerifyFileDigest(hFileManifest, pszTarballDigest, pStrDigest, pszError, cbError); -- } -- -- /* -- * If we've successfully processed the tarball, verify that the -- * mandatory files are present. -- */ -- if (RT_SUCCESS(rc)) -- { -- if (hXmlFile == NIL_RTVFSFILE) -- rc = vboxExtPackReturnError(VERR_MISSING, pszError, cbError, "Mandator file '%s' is missing", VBOX_EXTPACK_DESCRIPTION_NAME); -- if (hManifestFile == NIL_RTVFSFILE) -- rc = vboxExtPackReturnError(VERR_MISSING, pszError, cbError, "Mandator file '%s' is missing", VBOX_EXTPACK_MANIFEST_NAME); -- if (hSignatureFile == NIL_RTVFSFILE) -- rc = vboxExtPackReturnError(VERR_MISSING, pszError, cbError, "Mandator file '%s' is missing", VBOX_EXTPACK_SIGNATURE_NAME); -- } -- -- /* -- * Check the manifest and it's signature. -- */ -- if (RT_SUCCESS(rc)) -- rc = vboxExtPackVerifyManifestAndSignature(hOurManifest, hManifestFile, hSignatureFile, pszError, cbError); -- -- /* -- * Check the XML. -- */ -- if (RT_SUCCESS(rc)) -- rc = vboxExtPackVerifyXml(hXmlFile, pszExtPackName, pszError, cbError); -- -- /* -- * Returns objects. -- */ -- if (RT_SUCCESS(rc)) -- { -- if (phValidManifest) -- { -- RTManifestRetain(hOurManifest); -- *phValidManifest = hOurManifest; -- } -- if (phXmlFile) -- { -- RTVfsFileRetain(hXmlFile); -- *phXmlFile = hXmlFile; -- } -- } -- -- /* -- * Release our object references. -- */ -- RTManifestRelease(hOurManifest); -- RTVfsFileRelease(hXmlFile); -- RTVfsFileRelease(hManifestFile); -- RTVfsFileRelease(hSignatureFile); -- } -- else -- vboxExtPackSetError(pszError, cbError, "RTManifestCreate failed: %Rrc", rc); -- RTVfsFsStrmRelease(hTarFss); -- RTManifestRelease(hFileManifest); -- -- return rc; --} -- ---- VirtualBox-4.1.18.orig/include/Makefile.kmk 2012-06-20 10:07:49.000000000 -0300 -+++ VirtualBox-4.1.18/include/Makefile.kmk 2012-07-24 21:11:57.007068865 -0300 -@@ -51,7 +51,6 @@ - VBox/vd-cache-plugin.h \ - VBox/vmm/uvm.h \ - VBox/vscsi.h \ -- $(wildcard VBox/ExtPack/*.h ) \ - iprt/alloca.h \ - iprt/tcp.h \ - iprt/localipc.h \ ---- VirtualBox-4.1.18.orig/src/Makefile.kmk 2012-06-20 10:07:57.000000000 -0300 -+++ VirtualBox-4.1.18/src/Makefile.kmk 2012-07-24 22:51:10.206996034 -0300 -@@ -26,14 +26,6 @@ - include $(PATH_SUB_CURRENT)/VBox/Makefile.kmk - include $(PATH_SUB_CURRENT)/libs/Makefile.kmk - --else if defined(VBOX_ONLY_EXTPACKS) -- include $(PATH_SUB_CURRENT)/bldprogs/Makefile.kmk -- include $(PATH_SUB_CURRENT)/VBox/Makefile.kmk -- include $(PATH_SUB_CURRENT)/libs/Makefile.kmk -- ifndef VBOX_ONLY_EXTPACKS_USE_IMPLIBS -- include $(PATH_SUB_CURRENT)/recompiler/Makefile.kmk -- endif -- - else if defined(VBOX_ONLY_TESTSUITE) - include $(PATH_SUB_CURRENT)/libs/Makefile.kmk - include $(PATH_SUB_CURRENT)/VBox/Makefile.kmk ---- VirtualBox-4.1.18.orig/src/VBox/Makefile.kmk 2012-07-24 21:19:55.565641784 -0300 -+++ VirtualBox-4.1.18/src/VBox/Makefile.kmk 2012-07-24 22:12:55.429156962 -0300 -@@ -33,19 +33,6 @@ - include $(PATH_SUB_CURRENT)/HostDrivers/Makefile.kmk - include $(PATH_SUB_CURRENT)/Frontends/Makefile.kmk - --else ifdef VBOX_ONLY_EXTPACKS -- include $(PATH_SUB_CURRENT)/Runtime/Makefile.kmk -- include $(PATH_SUB_CURRENT)/Devices/Makefile.kmk -- include $(PATH_SUB_CURRENT)/HostDrivers/Makefile.kmk -- include $(PATH_SUB_CURRENT)/ExtPacks/Makefile.kmk -- ifdef VBOX_WITH_VRDP -- include $(PATH_SUB_CURRENT)/RDP/Makefile.kmk -- endif -- include $(PATH_SUB_CURRENT)/VMM/Makefile.kmk -- ifndef VBOX_ONLY_EXTPACKS_USE_IMPLIBS -- include $(PATH_SUB_CURRENT)/Disassembler/Makefile.kmk -- endif -- - else ifdef VBOX_ONLY_SDK - include $(PATH_SUB_CURRENT)/Main/Makefile.kmk - ifdef VBOX_WITH_VRDP -@@ -92,9 +79,6 @@ - if1of ($(KBUILD_TARGET_ARCH), amd64 x86) - include $(PATH_SUB_CURRENT)/NetworkServices/Makefile.kmk - endif -- ifndef VBOX_OSE -- include $(PATH_SUB_CURRENT)/ExtPacks/Makefile.kmk -- endif - ifdef VBOX_WITH_INSTALLER - include $(PATH_SUB_CURRENT)/Installer/Makefile.kmk # Keep this last. - endif ---- VirtualBox-4.1.18/src/libs/Makefile.kmk.orig 2012-07-24 21:23:26.938013023 -0300 -+++ VirtualBox-4.1.18/src/libs/Makefile.kmk 2012-07-24 21:43:42.557911752 -0300 -@@ -48,13 +48,6 @@ - include $(PATH_SUB_CURRENT)/kStuff/Makefile.kmk - endif - --# OpenSSL. --if !defined(VBOX_ONLY_SDK) \ -- && ( "$(SDK_VBOX_OPENSSL_INCS)" == "$(SDK_VBOX_OPENSSL_VBOX_DEFAULT_INCS)" \ -- || defined(VBOX_WITH_EXTPACK_PUEL_BUILD)) -- include $(PATH_SUB_CURRENT)/openssl-0.9.8t/Makefile.kmk --endif -- - # libjpeg for VRDP video redirection - if defined(VBOX_WITH_VRDP) && defined(VBOX_WITH_VRDP_VIDEO_CHANNEL) - include $(PATH_SUB_CURRENT)/jpeg-8a/Makefile.kmk ---- VirtualBox-4.1.18.orig/src/VBox/Devices/Makefile.kmk 2012-07-24 23:06:45.916276235 -0300 -+++ VirtualBox-4.1.18/src/VBox/Devices/Makefile.kmk 2012-07-24 23:17:00.202963228 -0300 -@@ -21,9 +21,7 @@ - - # Include sub-makefiles. - include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk --if defined(VBOX_WITH_INTEL_PXE) || defined(VBOX_ONLY_EXTPACKS) -- include $(PATH_SUB_CURRENT)/PC/PXE/Makefile.kmk --else if defined(VBOX_WITH_PXE_ROM) && !defined(VBOX_WITHOUT_ETHERBOOT) -+if defined(VBOX_WITH_PXE_ROM) && !defined(VBOX_WITHOUT_ETHERBOOT) - include $(PATH_SUB_CURRENT)/PC/Etherboot-src/Makefile.kmk - endif - if !defined(VBOX_ONLY_EXTPACKS) # Goes on almost to the end of the file. -@@ -57,9 +55,6 @@ - ifdef VBOX_WITH_USB - VBoxDDU_DEFS += VBOX_WITH_USB IN_USBLIB - VBoxDDU_SDKS.win = WINPSDK W2K3DDK -- if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL) -- VBoxDDU_DEFS += VBOX_WITH_EHCI_IMPL -- endif - ifdef VBOX_WITH_NEW_USB_CODE_ON_DARWIN - VBoxDDU_DEFS.darwin += VBOX_WITH_NEW_USB_CODE_ON_DARWIN - endif -@@ -122,9 +117,6 @@ - VBoxDD_DEFS = VBOX_ACPI - ifdef VBOX_WITH_USB - VBoxDD_DEFS += VBOX_WITH_USB -- if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL) -- VBoxDD_DEFS += VBOX_WITH_EHCI_IMPL -- endif - endif - ifdef VBOX_WITH_VUSB - VBoxDD_DEFS += VBOX_WITH_VUSB -@@ -446,11 +438,6 @@ - endif - ifdef VBOX_WITH_USB - DevicesR3_DEFS += VBOX_WITH_USB -- if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL) -- DevicesR3_DEFS += VBOX_WITH_EHCI_IMPL -- DevicesR3_SOURCES += \ -- USB/DevEHCI.cpp -- endif - endif - if defined(VBOX_WITH_PCI_PASSTHROUGH_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL) - DevicesR3_DEFS += VBOX_WITH_PCI_PASSTHROUGH_IMPL -@@ -607,11 +594,6 @@ - - ifdef VBOX_WITH_USB - VBoxDDGC_DEFS += VBOX_WITH_USB -- if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL) -- VBoxDDGC_DEFS += VBOX_WITH_EHCI_IMPL -- VBoxDDGC_SOURCES += \ -- USB/DevEHCI.cpp -- endif - endif - - ifdef VBOX_WITH_VIDEOHWACCEL -@@ -711,11 +693,6 @@ - endif - ifdef VBOX_WITH_USB - VBoxDDR0_DEFS += VBOX_WITH_USB -- if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL) -- VBoxDDR0_DEFS += VBOX_WITH_EHCI_IMPL -- VBoxDDR0_SOURCES += \ -- USB/DevEHCI.cpp -- endif - endif - - if defined(VBOX_WITH_PCI_PASSTHROUGH_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL) -@@ -1204,49 +1181,5 @@ - - endif # !VBOX_ONLY_EXTPACKS - --if defined(VBOX_WITH_EXTPACK_PUEL) && defined(VBOX_WITH_EXTPACK_PUEL_BUILD) -- # -- # The EHCI (USB 2.0) Extension Pack Modules. -- # -- if defined(VBOX_WITH_USB) -- DLLS += VBoxEhciR3 -- VBoxEhciR3_TEMPLATE = VBoxR3ExtPackPuel -- VBoxEhciR3_SOURCES = USB/DevEHCI.cpp -- -- SYSMODS += VBoxEhciR0 -- VBoxEhciR0_TEMPLATE = VBoxR0ExtPackPuel -- VBoxEhciR0_SOURCES = USB/DevEHCI.cpp -- -- ifdef VBOX_WITH_RAW_MODE -- SYSMODS += VBoxEhciRC -- VBoxEhciRC_TEMPLATE = VBoxRcExtPackPuel -- VBoxEhciRC_SOURCES = USB/DevEHCI.cpp -- endif -- endif -- -- if defined(VBOX_WITH_PCI_PASSTHROUGH) -- DLLS += VBoxPciRawR3 -- VBoxPciRawR3_TEMPLATE = VBoxR3ExtPackPuel -- VBoxPciRawR3_SOURCES = Bus/DevPciRaw.cpp -- -- DLLS += VBoxPciRawDrv -- VBoxPciRawDrv_TEMPLATE = VBoxR3ExtPackPuel -- VBoxPciRawDrv_SOURCES = Bus/DrvPciRaw.cpp -- -- SYSMODS += VBoxPciRawR0 -- VBoxPciRawR0_TEMPLATE = VBoxR0ExtPackPuel -- VBoxPciRawR0_SOURCES = Bus/DevPciRaw.cpp -- -- Bus/DevPciRaw.cpp_INCS = Bus -- endif -- -- # -- # The Intel PXE rom. -- # -- INSTALLS += VBoxExtPackPuelInsRoms -- VBoxExtPackPuelInsRoms_TEMPLATE = VBoxInsExtPackPuel -- VBoxExtPackPuelInsRoms_SOURCES = PC/PXE/PXE-Intel.rom=>PXE-Intel.rom --endif # VBOX_WITH_EXTPACK_PUEL -- - include $(KBUILD_PATH)/subfooter.kmk - ---- VirtualBox-4.1.18.orig/src/VBox/Main/Makefile.kmk 2012-07-24 23:38:25.304126039 -0300 -+++ VirtualBox-4.1.18/src/VBox/Main/Makefile.kmk 2012-07-24 23:38:25.350789964 -0300 -@@ -230,14 +230,12 @@ - $(if $(VBOX_USB_WITH_SYSFS),VBOX_USB_WITH_SYSFS,) \ - $(if $(VBOX_USB_WITH_INOTIFY),VBOX_USB_WITH_INOTIFY,) \ - $(if $(VBOX_WITH_LIVE_MIGRATION),VBOX_WITH_LIVE_MIGRATION,) \ -- $(if $(VBOX_WITH_EXTPACK),VBOX_WITH_EXTPACK,) \ - $(if $(VBOX_WITH_VUSB),VBOX_WITH_VUSB,) \ - $(if $(VBOX_WITH_S3),VBOX_WITH_S3,) \ - $(if $(VBOX_WITH_PCI_PASSTHROUGH),VBOX_WITH_PCI_PASSTHROUGH,) - ifdef VBOX_WITH_USB - VBoxSVC_DEFS += \ - VBOX_WITH_USB \ -- $(if $(VBOX_WITH_EHCI),VBOX_WITH_EHCI,) \ - $(if $(VBOX_WITH_NEW_USB_CODE_ON_DARWIN),VBOX_WITH_NEW_USB_CODE_ON_DARWIN,) - endif - VBoxSVC_DEFS.win += VBOX_COM_OUTOFPROC_MODULE -@@ -290,7 +288,6 @@ - src-all/SharedFolderImpl.cpp \ - src-all/VirtualBoxBase.cpp \ - src-all/VirtualBoxErrorInfoImpl.cpp \ -- $(if $(VBOX_WITH_EXTPACK),src-all/ExtPackManagerImpl.cpp src-all/ExtPackUtil.cpp,) \ - src-server/ApplianceImpl.cpp \ - src-server/ApplianceImplExport.cpp \ - src-server/ApplianceImplImport.cpp \ -@@ -543,8 +540,6 @@ - $(if $(VBOX_WITH_HGSMI),VBOX_WITH_HGSMI,) \ - $(if $(VBOX_WITH_VIDEOHWACCEL),VBOX_WITH_VIDEOHWACCEL,) \ - $(if $(VBOX_WITH_USB),VBOX_WITH_USB,) \ -- $(if-expr defined(VBOX_WITH_EHCI) && defined(VBOX_WITH_USB),VBOX_WITH_EHCI,) \ -- $(if $(VBOX_WITH_EXTPACK),VBOX_WITH_EXTPACK,) \ - $(if $(VBOX_WITH_PCI_PASSTHROUGH),VBOX_WITH_PCI_PASSTHROUGH,) - - VBoxC_DEFS.darwin.x86 = VBOX_WITH_2X_4GB_ADDR_SPACE -@@ -602,7 +597,6 @@ - src-all/SharedFolderImpl.cpp \ - src-all/VirtualBoxBase.cpp \ - src-all/VirtualBoxErrorInfoImpl.cpp \ -- $(if $(VBOX_WITH_EXTPACK),src-all/ExtPackManagerImpl.cpp src-all/ExtPackUtil.cpp,) \ - $(if $(VBOX_WITH_USB_VIDEO),src-client/UsbWebcamInterface.cpp,) \ - $(if $(VBOX_WITH_USB_CARDREADER),src-client/UsbCardReader.cpp,) \ - src-client/AdditionsFacilityImpl.cpp \ -@@ -711,22 +705,6 @@ - endif # !win - - --# --# The VBoxExtPackHelperApp. --# --ifdef VBOX_WITH_EXTPACK -- PROGRAMS += VBoxExtPackHelperApp -- VBoxExtPackHelperApp_TEMPLATE = VBoxR3SetUidToRoot -- VBoxExtPackHelperApp_LDFLAGS.darwin = -framework Security -- VBoxExtPackHelperApp_LDFLAGS.win = /SUBSYSTEM:windows -- VBoxExtPackHelperApp_SOURCES = \ -- src-helper-apps/VBoxExtPackHelperApp.cpp \ -- src-all/ExtPackUtil.cpp -- VBoxExtPackHelperApp_LIBS = \ -- $(LIB_RUNTIME) --endif # VBOX_WITH_EXTPACK -- -- - endif # !VBOX_ONLY_SDK (the ifndef is far above) - - ---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/Makefile.kmk 2012-07-24 23:25:04.575825175 -0300 -+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/Makefile.kmk 2012-07-24 23:25:04.619156084 -0300 -@@ -888,7 +888,6 @@ - $(VBOX_MACOSX_ICON_FILE)=>Resources/virtualbox.icns \ - $(VBOX_BRAND_GUI_VBOX_64PX_PNG)=>Resources/virtualbox.png \ - $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-vbox.icns=>Resources/virtualbox-vbox.icns \ -- $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-vbox-extpack.icns=>Resources/virtualbox-vbox-extpack.icns \ - $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-ovf.icns=>Resources/virtualbox-ovf.icns \ - $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-ova.icns=>Resources/virtualbox-ova.icns \ - $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-vdi.icns=>Resources/virtualbox-vdi.icns \ ---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc 2012-07-24 23:28:17.985011038 -0300 -+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc 2012-07-24 23:28:18.051673913 -0300 -@@ -167,18 +167,6 @@ - <file alias="status_check_32px.png">images/status_check_32px.png</file> - <file alias="status_error_16px.png">images/status_error_16px.png</file> - <file alias="status_error_32px.png">images/status_error_32px.png</file> -- <file alias="extension_pack_16px.png">images/extension_pack_16px.png</file> -- <file alias="extension_pack_disabled_16px.png">images/extension_pack_disabled_16px.png</file> -- <file alias="extension_pack_32px.png">images/extension_pack_32px.png</file> -- <file alias="extension_pack_disabled_32px.png">images/extension_pack_disabled_32px.png</file> -- <file alias="extension_pack_install_16px.png">images/extension_pack_install_16px.png</file> -- <file alias="extension_pack_install_disabled_16px.png">images/extension_pack_install_disabled_16px.png</file> -- <file alias="extension_pack_install_32px.png">images/extension_pack_install_32px.png</file> -- <file alias="extension_pack_install_disabled_32px.png">images/extension_pack_install_disabled_32px.png</file> -- <file alias="extension_pack_uninstall_16px.png">images/extension_pack_uninstall_16px.png</file> -- <file alias="extension_pack_uninstall_disabled_16px.png">images/extension_pack_uninstall_disabled_16px.png</file> -- <file alias="extension_pack_uninstall_32px.png">images/extension_pack_uninstall_32px.png</file> -- <file alias="extension_pack_uninstall_disabled_32px.png">images/extension_pack_uninstall_disabled_32px.png</file> - <file alias="proxy_16px.png">images/proxy_16px.png</file> - <file alias="proxy_disabled_16px.png">images/proxy_disabled_16px.png</file> - <file alias="proxy_32px.png">images/proxy_32px.png</file> ---- VirtualBox-4.1.18.orig/src/VBox/Installer/linux/Makefile.kmk 2012-07-25 00:32:00.780012664 -0300 -+++ VirtualBox-4.1.18/src/VBox/Installer/linux/Makefile.kmk 2012-07-25 00:32:00.806677728 -0300 -@@ -170,11 +170,6 @@ - VBox.sh \ - VBox.png - --ifdef VBOX_WITH_EXTPACK -- VBOX_LNX_STRIP_BIN += \ -- VBoxExtPackHelperApp --endif -- - # Qt4 GUI - ifdef VBOX_WITH_QTGUI - include $(PATH_ROOT)/src/VBox/Frontends/VirtualBox/nls/ApprovedLanguages.kmk -@@ -286,7 +281,7 @@ - - VBOX_MIME_ICONS = \ - $(addprefix $(PATH_ROOT)/src/VBox/Resources/other/,\ -- $(foreach f,ova ovf vbox vbox-extpack vdi vmdk vhd hdd, \ -+ $(foreach f,ova ovf vbox vdi vmdk vhd hdd, \ - $(foreach s,16 20 24 32 48 64 72 96 128 256,\ - virtualbox-$(f)-$(s)px.png=>$(s)x$(s)/virtualbox-$(f).png))) - ---- VirtualBox-4.1.18.orig/src/VBox/Installer/win/Makefile.kmk 2012-07-25 00:34:52.253398525 -0300 -+++ VirtualBox-4.1.18/src/VBox/Installer/win/Makefile.kmk 2012-07-25 00:34:52.300062531 -0300 -@@ -435,7 +435,6 @@ - -E 'VBOX_WITH_DEBUGGER_GUI=$(if-expr defined(VBOX_WITH_DEBUGGER_GUI) && defined(VBOX_WITH_QTGUI),yes,no)' \ - -E 'VBOX_WITH_DOCS_PACKING=$(if $(VBOX_WITH_DOCS_PACKING),yes,no)' \ - -E 'VBOX_WITH_EFIFW_PACKING=$(if $(VBOX_WITH_EFIFW_PACKING),yes,no)' \ -- -E 'VBOX_WITH_EXTPACK=$(if $(VBOX_WITH_EXTPACK),yes,no)' \ - -E 'VBOX_WITH_GUEST_CONTROL=$(if $(VBOX_WITH_GUEST_CONTROL),yes,no)' \ - -E 'VBOX_WITH_GUEST_PROPS=$(if $(VBOX_WITH_GUEST_PROPS),yes,no)' \ - -E 'VBOX_WITH_NETFLT=$(if $(VBOX_WITH_NETFLT),yes,no)' \ ---- VirtualBox-4.1.18.orig/src/VBox/Installer/darwin/Makefile.kmk 2012-07-25 00:36:55.929571374 -0300 -+++ VirtualBox-4.1.18/src/VBox/Installer/darwin/Makefile.kmk 2012-07-25 00:36:55.959569630 -0300 -@@ -629,7 +629,6 @@ - MacOS/VirtualBoxVM \ - MacOS/VBoxNetAdpCtl \ - MacOS/VBoxNetDHCP \ -- MacOS/VBoxExtPackHelperApp \ - MacOS/VBoxBalloonCtrl - ifdef VBOX_WITH_WEBSERVICES - VBOX_DI_VBAPP_PROGS += \ -@@ -659,7 +658,6 @@ - Resources/virtualbox.icns \ - Resources/virtualbox.png \ - Resources/virtualbox-vbox.icns \ -- Resources/virtualbox-vbox-extpack.icns \ - Resources/virtualbox-ovf.icns \ - Resources/virtualbox-ova.icns \ - Resources/virtualbox-vdi.icns \ ---- VirtualBox-4.1.18/src/VBox/Installer/solaris/Makefile.kmk.orig 2012-07-25 00:38:48.476398293 -0300 -+++ VirtualBox-4.1.18/src/VBox/Installer/solaris/Makefile.kmk 2012-07-25 00:38:48.516396159 -0300 -@@ -185,12 +185,12 @@ - - VBOX_MIME_ICONS = \ - $(addprefix $(PATH_ROOT)/src/VBox/Resources/other/,\ -- $(foreach f,ova ovf vbox vbox-extpack vdi vmdk vhd hdd, \ -+ $(foreach f,ova ovf vbox vdi vmdk vhd hdd, \ - $(foreach s,16 20 24 32 48 64 72 96 128 256,\ - virtualbox-$(f)-$(s)px.png=>$(s)x$(s)/mimetypes/virtualbox-$(f).png))) - - SOLARIS_COMMON_ICONS = \ -- $(foreach f,ova ovf vbox vbox-extpack vdi vmdk vhd hdd, \ -+ $(foreach f,ova ovf vbox vdi vmdk vhd hdd, \ - $(foreach s,16 20 24 32 48 64 72 96 128 256,\ - $(s)x$(s)/mimetypes/virtualbox-$(f).png)) - -@@ -210,7 +210,6 @@ - $(if $(VBOX_WITH_VBOXSDL),VBoxSDL,) \ - $(if $(VBOX_WITH_NETADP),VBoxNetAdpCtl,) \ - VBoxNetDHCP \ -- $(if $(VBOX_WITH_EXTPACK),VBoxExtPackHelperApp,) \ - VBoxSVC \ - $(if $(VBOX_WITH_CROGL),VBoxTestOGL,) \ - VBoxXPCOMIPCD \ ---- VirtualBox-4.1.18.orig/src/VBox/Runtime/Makefile.kmk 2012-07-25 00:40:58.745522450 -0300 -+++ VirtualBox-4.1.18/src/VBox/Runtime/Makefile.kmk 2012-07-25 00:40:58.782186960 -0300 -@@ -53,15 +53,6 @@ - # - LIBRARIES += RuntimeR3 RuntimeBldProg - --else ifdef VBOX_ONLY_EXTPACKS_USE_IMPLIBS -- # -- # Build docs only - need just regular R3 runtime. -- # -- LIBRARIES += RuntimeBldProg -- LIBRARIES.solaris += RuntimeR0Stub -- LIBRARIES.win += RuntimeR0Stub RuntimeRCStub -- include $(PATH_SUB_CURRENT)/tools/Makefile.kmk -- - else # !VBOX_ONLY_ADDITIONS && !VBOX_ONLY_TESTSUITE && !VBOX_ONLY_DOCS - - # diff --git a/libre/virtualbox-libre-modules/linux34.patch b/libre/virtualbox-libre-modules/linux34.patch deleted file mode 100755 index 05ec78557..000000000 --- a/libre/virtualbox-libre-modules/linux34.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Nur VirtualBox-4.1.14.orig/Config.kmk VirtualBox-4.1.14/Config.kmk ---- VirtualBox-4.1.14.orig/Config.kmk 2012-04-26 16:56:21.000000000 +0000 -+++ VirtualBox-4.1.14/Config.kmk 2012-05-21 14:35:22.348398884 +0000 -@@ -2856,7 +2856,7 @@ - TEMPLATE_VBOXR0DRV_CFLAGS.amd64 = -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow \ - -fno-reorder-blocks -ffreestanding -fno-asynchronous-unwind-tables -funit-at-a-time \ - -Wno-sign-compare -Wdeclaration-after-statement --TEMPLATE_VBOXR0DRV_CXXFLAGS = $(filter-out -Wstrict-prototypes -Wno-pointer-sign -ffreestanding -Wdeclaration-after-statement -Werror-implicit-function-declaration,$(TEMPLATE_VBOXR0DRV_CFLAGS) $(TEMPLATE_VBOXR0DRV_CFLAGS.$(KBUILD_TARGET_ARCH))) -fno-exceptions -fno-rtti -+TEMPLATE_VBOXR0DRV_CXXFLAGS = $(filter-out -Wstrict-prototypes -Wno-pointer-sign -ffreestanding -Wdeclaration-after-statement -Werror-implicit-function-declaration,$(TEMPLATE_VBOXR0DRV_CFLAGS) $(TEMPLATE_VBOXR0DRV_CFLAGS.$(KBUILD_TARGET_ARCH))) -fno-exceptions -fno-rtti -fpermissive - ifndef VBOX_LINUX_VERSION_2_4 - # 2.6 - TEMPLATE_VBOXR0DRV_SYSSUFF = .ko diff --git a/libre/virtualbox-libre-modules/os_blag.png b/libre/virtualbox-libre-modules/os_blag.png Binary files differdeleted file mode 100755 index 61995ca10..000000000 --- a/libre/virtualbox-libre-modules/os_blag.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_blag_64.png b/libre/virtualbox-libre-modules/os_blag_64.png Binary files differdeleted file mode 100755 index aa4463a97..000000000 --- a/libre/virtualbox-libre-modules/os_blag_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_dragora.png b/libre/virtualbox-libre-modules/os_dragora.png Binary files differdeleted file mode 100755 index d1df45880..000000000 --- a/libre/virtualbox-libre-modules/os_dragora.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_dragora_64.png b/libre/virtualbox-libre-modules/os_dragora_64.png Binary files differdeleted file mode 100755 index 64bcecf20..000000000 --- a/libre/virtualbox-libre-modules/os_dragora_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_dynebolic.png b/libre/virtualbox-libre-modules/os_dynebolic.png Binary files differdeleted file mode 100755 index 67b07d4c0..000000000 --- a/libre/virtualbox-libre-modules/os_dynebolic.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_gnewsense.png b/libre/virtualbox-libre-modules/os_gnewsense.png Binary files differdeleted file mode 100755 index 76d9e38b3..000000000 --- a/libre/virtualbox-libre-modules/os_gnewsense.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_gnewsense_64.png b/libre/virtualbox-libre-modules/os_gnewsense_64.png Binary files differdeleted file mode 100755 index 8859c34e8..000000000 --- a/libre/virtualbox-libre-modules/os_gnewsense_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_gnu.png b/libre/virtualbox-libre-modules/os_gnu.png Binary files differdeleted file mode 100755 index 26c4550f9..000000000 --- a/libre/virtualbox-libre-modules/os_gnu.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_gnu_64.png b/libre/virtualbox-libre-modules/os_gnu_64.png Binary files differdeleted file mode 100755 index 4161634e9..000000000 --- a/libre/virtualbox-libre-modules/os_gnu_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_gnuhurd.png b/libre/virtualbox-libre-modules/os_gnuhurd.png Binary files differdeleted file mode 100755 index 26c4550f9..000000000 --- a/libre/virtualbox-libre-modules/os_gnuhurd.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_gnulinux.png b/libre/virtualbox-libre-modules/os_gnulinux.png Binary files differdeleted file mode 100755 index 26c4550f9..000000000 --- a/libre/virtualbox-libre-modules/os_gnulinux.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_gnulinux_64.png b/libre/virtualbox-libre-modules/os_gnulinux_64.png Binary files differdeleted file mode 100755 index 4161634e9..000000000 --- a/libre/virtualbox-libre-modules/os_gnulinux_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_musix.png b/libre/virtualbox-libre-modules/os_musix.png Binary files differdeleted file mode 100755 index fb7b94577..000000000 --- a/libre/virtualbox-libre-modules/os_musix.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_musix_64.png b/libre/virtualbox-libre-modules/os_musix_64.png Binary files differdeleted file mode 100755 index a1bbbbf3a..000000000 --- a/libre/virtualbox-libre-modules/os_musix_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_os64base.png b/libre/virtualbox-libre-modules/os_os64base.png Binary files differdeleted file mode 100755 index 7aec20314..000000000 --- a/libre/virtualbox-libre-modules/os_os64base.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_os64base.xcf b/libre/virtualbox-libre-modules/os_os64base.xcf Binary files differdeleted file mode 100755 index d8e28e35e..000000000 --- a/libre/virtualbox-libre-modules/os_os64base.xcf +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_osbase.png b/libre/virtualbox-libre-modules/os_osbase.png Binary files differdeleted file mode 100755 index 00f197fca..000000000 --- a/libre/virtualbox-libre-modules/os_osbase.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_osbase.xcf b/libre/virtualbox-libre-modules/os_osbase.xcf Binary files differdeleted file mode 100755 index c4463c857..000000000 --- a/libre/virtualbox-libre-modules/os_osbase.xcf +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_parabola.png b/libre/virtualbox-libre-modules/os_parabola.png Binary files differdeleted file mode 100755 index 757abc484..000000000 --- a/libre/virtualbox-libre-modules/os_parabola.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_parabola_64.png b/libre/virtualbox-libre-modules/os_parabola_64.png Binary files differdeleted file mode 100755 index 5ac7c2767..000000000 --- a/libre/virtualbox-libre-modules/os_parabola_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_trisquel.png b/libre/virtualbox-libre-modules/os_trisquel.png Binary files differdeleted file mode 100755 index c6f0d3d7a..000000000 --- a/libre/virtualbox-libre-modules/os_trisquel.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_trisquel_64.png b/libre/virtualbox-libre-modules/os_trisquel_64.png Binary files differdeleted file mode 100755 index ebca3dd43..000000000 --- a/libre/virtualbox-libre-modules/os_trisquel_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_ututo.png b/libre/virtualbox-libre-modules/os_ututo.png Binary files differdeleted file mode 100755 index e1dffb575..000000000 --- a/libre/virtualbox-libre-modules/os_ututo.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_ututo_64.png b/libre/virtualbox-libre-modules/os_ututo_64.png Binary files differdeleted file mode 100755 index 158468e0a..000000000 --- a/libre/virtualbox-libre-modules/os_ututo_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_venenux.png b/libre/virtualbox-libre-modules/os_venenux.png Binary files differdeleted file mode 100755 index 5e0c1585d..000000000 --- a/libre/virtualbox-libre-modules/os_venenux.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/virtualbox-libre-parabola-modules.install b/libre/virtualbox-libre-modules/virtualbox-libre-guest-modules.install index c3419c991..c3419c991 100755 --- a/libre/virtualbox-libre-modules/virtualbox-libre-parabola-modules.install +++ b/libre/virtualbox-libre-modules/virtualbox-libre-guest-modules.install diff --git a/libre/virtualbox-libre-modules/virtualbox-libre-modules.install b/libre/virtualbox-libre-modules/virtualbox-libre-host-modules.install index 3f2a12a3f..8605cf20a 100755 --- a/libre/virtualbox-libre-modules/virtualbox-libre-modules.install +++ b/libre/virtualbox-libre-modules/virtualbox-libre-host-modules.install @@ -1,5 +1,5 @@ post_install() { -/bin/cat << EOF +cat << EOF ===> You must load vboxdrv module before starting VirtualBox: ===> # modprobe vboxdrv EOF diff --git a/libre/virtualbox-libre/PKGBUILD b/libre/virtualbox-libre/PKGBUILD index ceff911bc..27e15f01f 100755 --- a/libre/virtualbox-libre/PKGBUILD +++ b/libre/virtualbox-libre/PKGBUILD @@ -1,32 +1,68 @@ # $Id$ # Maintainer: Ionut Biru <ibiru@archlinux.org> +# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org> # Maintainer (Parabola): Nicolas Reynolds <fauno@kiwwwi.com.ar> # Maintainer (Parabola): Jorge López <jorginho@lavabit.com> # Maintainer (Parabola): André Silva <emulatorman@lavabit.com> # Maintainer (Parabola): Márcio Silva <coadde@lavabit.com> + pkgbase=virtualbox-libre pkgname=('virtualbox-libre' - 'virtualbox-libre-parabola-additions' 'virtualbox-libre-sdk' - 'virtualbox-libre-source' - 'virtualbox-libre-parabola-source') -pkgver=4.1.22 -pkgrel=1.3 + 'virtualbox-libre-host-source' + 'virtualbox-libre-guest-additions' + 'virtualbox-libre-guest-source') +pkgver=4.2.0 +pkgrel=2 arch=('i686' 'x86_64') url='http://virtualbox.org' license=('GPL' 'custom') makedepends=('libstdc++5' 'bin86' 'dev86' 'iasl' 'libxslt' 'libxml2' 'libxcursor' 'qt' 'libidl2' 'sdl_ttf' 'alsa-lib' 'libpulse' 'libxtst' -'xalan-c' 'sdl-libre' 'libxmu' 'curl' 'python2' 'linux-libre-headers' 'mesa' 'libxrandr' 'libxinerama' 'libvncserver' 'jdk7-openjdk' 'gsoap' 'vde2') +'xalan-c' 'sdl-libre' 'libxmu' 'curl' 'python2' 'linux-libre-headers' 'mesa' 'libxrandr' 'libxinerama' 'libvncserver' 'jdk7-openjdk' 'gsoap' 'vde2' 'cdrkit') #'xorg-server-devel' 'xf86driproto' 'libxcomposite') [[ $CARCH == "x86_64" ]] && makedepends=("${makedepends[@]}" 'gcc-multilib' 'lib32-glibc') source=(http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}.tar.bz2 - 10-vboxdrv.rules vboxdrv-reference.patch LocalConfig.kmk ipv6_vnc.patch + 10-vboxdrv.rules vboxdrv-reference.patch LocalConfig.kmk change_default_driver_dir.patch vboxservice.conf vboxservice.rc vboxservice.service vboxweb.conf vboxweb.rc vboxweb.service os_blag_64.png os_blag.png os_dragora_64.png os_dragora.png os_dynebolic.png os_gnewsense_64.png os_gnewsense.png os_gnu_64.png os_gnuhurd.png os_gnulinux_64.png os_gnulinux.png os_gnu.png os_musix_64.png os_musix.png os_parabola_64.png os_parabola.png os_trisquel_64.png os_trisquel.png os_ututo_64.png os_ututo.png os_venenux.png libre.patch free-distros.patch) +md5sums=('691b4134983ce7d89b9fb683305cb647' + '5f85710e0b8606de967716ded7b2d351' + 'aa0c090e33aab3e2853b679cc52cba2a' + '58d6e5bb4b4c1c6f3f0b3daa6aaeed03' + '97e193f050574dd272a38e5ee5ebe62b' + '3c08ad30b89add47d3f45121200a5360' + '7d9823507206de9b8528a72af2f18d74' + '07c5f6d86c4b7839d719c8ee0c53653b' + '7e9483b1069a54f181546083ac7e5469' + 'c159d683ba1947290fc2ad2c64194150' + 'bc9efed88e0469cd7fc460d5a5cd7b4b' + '8538dba8686d7449cb481c9bae9d722a' + '545c925b46f2ac95e5f8ae407fad101a' + 'f6416f509c2e5460e4dc624e0a57f3c1' + 'bbfb59dd517c020a23701b480187a355' + 'efacfdb61918286ea9bc89866b8fd239' + '7c3eb09995e8bafeef414374e44ad4ce' + 'a49ed3ab6bd0fb084de0ab3dd97ae93e' + '6b432b3305ed446125eef052c38355a6' + 'a70022a468bd3e9daf01818d2d74ac3c' + '6b432b3305ed446125eef052c38355a6' + 'a70022a468bd3e9daf01818d2d74ac3c' + 'a70022a468bd3e9daf01818d2d74ac3c' + '380eb2ab6cad3da198094585853c129c' + 'a60bb9a98abcc3c34156f9051d00df9a' + '3a908ef6952bcf987e63ef2fe4e98d24' + '02e87c39c353634cecacf98f1707fa15' + '0cf41a41e7a415d404d5584e047fd450' + '449cde3b58390284b59c5d663de3edc9' + 'c7951fe6888d939f3a7d0dafe477e82b' + '4da8eeb2ece7e475fc7a0d1003da26c6' + '5e4187af59726d71c5be48d0cd816c34' + '67cc4c8611890038eb3e4114ae899525' + '71df5e3eebe07e683782b264dadf65e7') _extramodules=extramodules-3.5-LIBRE _kernver="$(cat /usr/lib/modules/${_extramodules}/version)" || true @@ -60,11 +96,14 @@ build() { cp "$srcdir/LocalConfig.kmk" . + # fake makeself binary to compile without nofatal + ln -s /bin/echo makeself + export PATH="$CWD:$PATH" + ./configure --disable-docs \ --enable-webservice \ --enable-vde \ --enable-vnc \ - --nofatal \ --with-linux=/usr/src/linux-${_kernver} source ./env.sh kmk all @@ -77,11 +116,11 @@ build() { package_virtualbox-libre() { pkgdesc="Powerful x86 virtualization for enterprise as well as home use (without non-free distros and others OS presets for the VM creation wizard; Oracle VM VirtualBox Extension Pack support removed)" - depends=('virtualbox-libre-modules' 'libxml2' 'libxcursor' 'libxinerama' 'sdl-libre' 'libxmu' 'curl' 'libvncserver' 'libpng') + depends=('virtualbox-libre-host-modules' 'libxml2' 'libxcursor' 'libxinerama' 'sdl-libre' 'libxmu' 'curl' 'libvncserver' 'libpng') optdepends=('qt: for VirtualBox GUI' 'vde2: Virtual Distributed Ethernet support' 'virtualbox-libre-sdk: developer kit' - 'virtualbox-libre-source: host kernel libre source modules for non-stock kernels' + 'virtualbox-libre-host-source: host kernel libre source modules for non-stock kernels' 'net-tools: for host-only or bridged networking') backup=('etc/vbox/vbox.cfg' 'etc/conf.d/vboxweb') @@ -160,24 +199,8 @@ package_virtualbox-libre() { } -package_virtualbox-libre-source() { - pkgdesc="VirtualBox kernel libre modules source" - depends=(dkms gcc make) - replaces=('virtualbox-source') - conflicts=('virtualbox-source') - provides=("virtualbox-source=$pkgver" 'virtualbox-libre-modules') - optdepends=('linux-libre-headers' - 'linux-libre-lts-headers') - install=virtualbox-libre-source.install - - install -dm755 "$pkgdir/var/lib/dkms/vboxhost/$pkgver" - source "VirtualBox-$pkgver/env.sh" - cd "VirtualBox-$pkgver/out/linux.$BUILD_PLATFORM_ARCH/release/bin" - cp -r src "$pkgdir/var/lib/dkms/vboxhost/$pkgver/source" -} - package_virtualbox-libre-sdk() { - pkgdesc="VirtualBox Software Developer Kit (SDK)" + pkgdesc='VirtualBox Software Developer Kit (SDK)' depends=('python2') replaces=('virtualbox-sdk') conflicts=('virtualbox-sdk') @@ -197,14 +220,46 @@ package_virtualbox-libre-sdk() { mv sdk "$pkgdir/usr/lib/virtualbox" } -package_virtualbox-libre-parabola-additions(){ - pkgdesc="Additions only for Parabola guests (userspace tools)" - depends=('virtualbox-libre-parabola-modules' 'gcc-libs' 'libxmu' 'xorg-xrandr' 'libxfixes') - replaces=('virtualbox-archlinux-additions' 'virtualbox-guest-additions') - conflicts=('virtualbox-archlinux-additions' 'virtualbox-guest-additions') - provides=("virtualbox-archlinux-additions=${pkgver}") +package_virtualbox-libre-host-source() { + pkgdesc='VirtualBox kernel libre modules source' + depends=('dkms' 'gcc' 'make') + provides=("virtualbox-host-source=$pkgver" 'virtualbox-libre-host-modules') + replaces=('virtualbox-host-source' 'virtualbox-source' 'virtualbox-libre-source') + conflicts=('virtualbox-host-source' 'virtualbox-source' 'virtualbox-libre-source') + optdepends=('linux-libre-headers' + 'linux-libre-lts-headers') + install=virtualbox-libre-host-source.install + + install -dm755 "$pkgdir/usr/src" + source "VirtualBox-$pkgver/env.sh" + cd "VirtualBox-$pkgver/out/linux.$BUILD_PLATFORM_ARCH/release/bin" + cp -r src "$pkgdir/usr/src/vboxhost-$pkgver" +} + +package_virtualbox-libre-guest-source() { + pkgdesc='VirtualBox Additions kernel libre modules source' + depends=('dkms' 'gcc' 'make') + provides=("virtualbox-guest-source=${pkgver}" 'virtualbox-libre-guest-modules') + replaces=('virtualbox-guest-source' 'virtualbox-archlinux-source' 'virtualbox-parabola-source') + conflicts=('virtualbox-guest-source' 'virtualbox-archlinux-source' 'virtualbox-parabola-source') + optdepends=('linux-libre-headers' + 'linux-libre-lts-headers') + install=virtualbox-libre-guest-source.install + + install -dm755 "$pkgdir/usr/src" + source "VirtualBox-$pkgver/env.sh" + cd "VirtualBox-$pkgver/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions" + cp -r src "$pkgdir/usr/src/vboxguest-$pkgver" +} + +package_virtualbox-libre-guest-additions(){ + pkgdesc='Additions for guests only (userspace tools)' + depends=('virtualbox-libre-guest-modules' 'gcc-libs' 'libxmu' 'xorg-xrandr' 'libxfixes') + provides=("virtualbox-guest-additions=${pkgver}") + replaces=('virtualbox-guest-additions' 'virtualbox-archlinux-additions' 'virtualbox-parabola-additions') + conflicts=('virtualbox-guest-additions' 'virtualbox-archlinux-additions' 'virtualbox-parabola-additions') backup=('etc/conf.d/vboxservice') - install=virtualbox-libre-parabola-additions.install + install=virtualbox-libre-guest-additions.install source "VirtualBox-$pkgver/env.sh" @@ -235,55 +290,3 @@ package_virtualbox-libre-parabola-additions(){ install -D -m644 "$srcdir/vboxservice.service" \ "$pkgdir/usr/lib/systemd/system/vboxservice.service" } - -package_virtualbox-libre-parabola-source() { - pkgdesc='VirtualBox Additions kernel libre modules source' - depends=(dkms gcc make) - replaces=('virtualbox-archlinux-source') - conflicts=('virtualbox-archlinux-source') - provides=("virtualbox-archlinux-source=${pkgver}" 'virtualbox-libre-parabola-modules') - optdepends=('linux-libre-headers' - 'linux-libre-lts-headers') - install=virtualbox-libre-parabola-source.install - - install -dm755 "$pkgdir/var/lib/dkms/vboxguest/$pkgver" - source "VirtualBox-$pkgver/env.sh" - cd "VirtualBox-$pkgver/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions" - cp -r src "$pkgdir/var/lib/dkms/vboxguest/$pkgver/source" -} - -md5sums=('84c5beeead094ce52d098105897aadbb' - '5f85710e0b8606de967716ded7b2d351' - 'bf5d1eeeec20a042e8af34cd61a9e11b' - '58d6e5bb4b4c1c6f3f0b3daa6aaeed03' - '4ff559f2bea335d59c4012048983ca91' - '97e193f050574dd272a38e5ee5ebe62b' - '3c08ad30b89add47d3f45121200a5360' - '7d9823507206de9b8528a72af2f18d74' - '07c5f6d86c4b7839d719c8ee0c53653b' - '7e9483b1069a54f181546083ac7e5469' - 'c159d683ba1947290fc2ad2c64194150' - 'bc9efed88e0469cd7fc460d5a5cd7b4b' - '8538dba8686d7449cb481c9bae9d722a' - '545c925b46f2ac95e5f8ae407fad101a' - 'f6416f509c2e5460e4dc624e0a57f3c1' - 'bbfb59dd517c020a23701b480187a355' - 'efacfdb61918286ea9bc89866b8fd239' - '7c3eb09995e8bafeef414374e44ad4ce' - 'a49ed3ab6bd0fb084de0ab3dd97ae93e' - '6b432b3305ed446125eef052c38355a6' - 'a70022a468bd3e9daf01818d2d74ac3c' - '6b432b3305ed446125eef052c38355a6' - 'a70022a468bd3e9daf01818d2d74ac3c' - 'a70022a468bd3e9daf01818d2d74ac3c' - '380eb2ab6cad3da198094585853c129c' - 'a60bb9a98abcc3c34156f9051d00df9a' - '3a908ef6952bcf987e63ef2fe4e98d24' - '02e87c39c353634cecacf98f1707fa15' - '0cf41a41e7a415d404d5584e047fd450' - '449cde3b58390284b59c5d663de3edc9' - 'c7951fe6888d939f3a7d0dafe477e82b' - '4da8eeb2ece7e475fc7a0d1003da26c6' - '5e4187af59726d71c5be48d0cd816c34' - 'a9e4724b56ddf99bb2e9a8fab8ad43ba' - '1e47d90affabfbf6dbb07d9d42742d6a') diff --git a/libre/virtualbox-libre/free-distros.patch b/libre/virtualbox-libre/free-distros.patch index 47857e05d..e6c05d8f4 100755 --- a/libre/virtualbox-libre/free-distros.patch +++ b/libre/virtualbox-libre/free-distros.patch @@ -1,12 +1,73 @@ ---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.cpp 2012-07-25 14:51:03.569003667 -0300 -+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.cpp 2012-07-25 14:51:03.652333615 -0300 -@@ -44,94 +44,38 @@ - * first matching string found, will be used. */ +--- VirtualBox-4.2.0.orig/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageBasic1.cpp 2012-08-29 11:13:40.000000000 -0300 ++++ VirtualBox-4.2.0/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageBasic1.cpp 2012-09-19 01:30:56.328334913 -0300 +@@ -44,99 +44,111 @@ + static const osTypePattern gs_OSTypePattern[] = { +- /* DOS: */ - { QRegExp("DOS", Qt::CaseInsensitive), "DOS" }, ++ ++ /* Code names for GNU/Linux distributions */ ++ { QRegExp("((Taranis)|(Dagda)|(Brigantia)).*64", Qt::CaseInsensitive), "Trisquel_64" }, ++ { QRegExp("(Taranis)|(Dagda)|(Brigantia)", Qt::CaseInsensitive), "Trisquel" }, ++ { QRegExp("((metad)|(parkes)|(three)).*64", Qt::CaseInsensitive), "gNewSense_64" }, ++ { QRegExp("(deltah)|(metad)|(parkes)|(three)", Qt::CaseInsensitive), "gNewSense" }, ++ { QRegExp("((90k)|(119k)|(140k)|(160k)|(90000)|(119000)|(140000)|(160000)|(Spartakus)).*64", Qt::CaseInsensitive), "Blag_64" }, ++ { QRegExp("(90k)|(119k)|(140k)|(160k)|(90000)|(119000)|(140000)|(160000)|(Spartakus)", Qt::CaseInsensitive), "Blag" }, ++ { QRegExp("((edgy)|(feisty)|(gutsy)|(hardy)|(intrepid)|(jaunty)|(karmic)|(lucid)|(maverick)|(natty)|(oneiric)|(precise)).*64", Qt::CaseInsensitive), "GNULinux_64" }, ++ { QRegExp("(edgy)|(feisty)|(gutsy)|(hardy)|(intrepid)|(jaunty)|(karmic)|(lucid)|(maverick)|(natty)|(oneiric)|(precise)", Qt::CaseInsensitive), "GNULinux" }, ++ { QRegExp("((sarge)|(etch)|(lenny)|(squeeze)|(wheezy)|(sid)).*64", Qt::CaseInsensitive), "GNULinux_64" }, ++ { QRegExp("(sarge)|(etch)|(lenny)|(squeeze)|(wheezy)|(sid)", Qt::CaseInsensitive), "GNULinux" }, ++ { QRegExp("((moonshine)|(werewolf)|(sulphur)|(cambridge)|(leonidas)|(constantine)|(goddard)|(laughlin)|(lovelock)|(verne)).*64", Qt::CaseInsensitive), "GNULinux_64" }, ++ { QRegExp("(moonshine)|(werewolf)|(sulphur)|(cambridge)|(leonidas)|(constantine)|(goddard)|(laughlin)|(lovelock)|(verne)", Qt::CaseInsensitive), "GNULinux" }, ++ ++ /* Regular names of GNU/Linux distributions and GNU-Hurd */ ++ { QRegExp("Pa.*64", Qt::CaseInsensitive), "Parabola_64" }, ++ { QRegExp("Pa", Qt::CaseInsensitive), "Parabola" }, ++ { QRegExp("((gNe)|(new)|(Sen)).*64", Qt::CaseInsensitive), "gNewSense_64" }, ++ { QRegExp("(gNe)|(new)|(Sen)", Qt::CaseInsensitive), "gNewSense" }, ++ { QRegExp("Bla.*64", Qt::CaseInsensitive), "Blag_64" }, ++ { QRegExp("Bla", Qt::CaseInsensitive), "Blag" }, ++ { QRegExp("Dra.*64", Qt::CaseInsensitive), "Dragora_64" }, ++ { QRegExp("Dra", Qt::CaseInsensitive), "Dragora" }, ++ { QRegExp("((Utu)|(XS)).*64", Qt::CaseInsensitive), "Ututo_64" }, ++ { QRegExp("(Utu)|(XS)", Qt::CaseInsensitive), "Ututo" }, ++ { QRegExp("Mus.*64", Qt::CaseInsensitive), "Musix_64" }, ++ { QRegExp("Mus", Qt::CaseInsensitive), "Musix" }, ++ { QRegExp("Tri.*64", Qt::CaseInsensitive), "Trisquel_64" }, ++ { QRegExp("Tri", Qt::CaseInsensitive), "Trisquel" }, ++ { QRegExp("Dyn", Qt::CaseInsensitive), "Dynebolic" }, ++ { QRegExp("Ven", Qt::CaseInsensitive), "Venenux" }, ++ { QRegExp("GNU", Qt::CaseInsensitive), "GNU" }, ++ { QRegExp("Hu", Qt::CaseInsensitive), "GNUHurd" }, ++ { QRegExp("((Li)|(lnx)).*64", Qt::CaseInsensitive), "GNULinux_64" }, ++ { QRegExp("(Li)|(lnx)", Qt::CaseInsensitive), "GNULinux" }, ++ { QRegExp("Arc.*64", Qt::CaseInsensitive), "GNULinux_64" }, ++ { QRegExp("Arc", Qt::CaseInsensitive), "GNULinux" }, ++ { QRegExp("Deb.*64", Qt::CaseInsensitive), "GNULinux_64" }, ++ { QRegExp("Deb", Qt::CaseInsensitive), "GNULinux" }, ++ { QRegExp("((SU)|(Nov)|(SLE)).*64", Qt::CaseInsensitive), "GNULinux_64" }, ++ { QRegExp("(SU)|(Nov)|(SLE)", Qt::CaseInsensitive), "GNULinux" }, ++ { QRegExp("Fe.*64", Qt::CaseInsensitive), "GNULinux_64" }, ++ { QRegExp("Fe", Qt::CaseInsensitive), "GNULinux" }, ++ { QRegExp("((Gen)|(Sab)).*64", Qt::CaseInsensitive), "GNULinux_64" }, ++ { QRegExp("(Gen)|(Sab)", Qt::CaseInsensitive), "GNULinux" }, ++ { QRegExp("((Man)|(Mag)).*64", Qt::CaseInsensitive), "GNULinux_64" }, ++ { QRegExp("((Man)|(Mag))", Qt::CaseInsensitive), "GNULinux" }, ++ { QRegExp("((Red)|(rhel)|(cen)).*64", Qt::CaseInsensitive), "GNULinux_64" }, ++ { QRegExp("(Red)|(rhel)|(cen)", Qt::CaseInsensitive), "GNULinux" }, ++ { QRegExp("Tur.*64", Qt::CaseInsensitive), "GNULinux_64" }, ++ { QRegExp("Tur", Qt::CaseInsensitive), "GNULinux" }, ++ { QRegExp("Ub.*64", Qt::CaseInsensitive), "GNULinux_64" }, ++ { QRegExp("Ub", Qt::CaseInsensitive), "GNULinux" }, ++ { QRegExp("Xa.*64", Qt::CaseInsensitive), "GNULinux_64" }, ++ { QRegExp("Xa", Qt::CaseInsensitive), "GNULinux" }, ++ { QRegExp("((Or)|(oel)).*64", Qt::CaseInsensitive), "GNULinux_64" }, ++ { QRegExp("(Or)|(oel)", Qt::CaseInsensitive), "GNULinux" }, ++ { QRegExp("Knoppix", Qt::CaseInsensitive), "GNULinux" }, ++ { QRegExp("Dsl", Qt::CaseInsensitive), "GNULinux" }, -- /* Windows */ +- /* Windows: */ - { QRegExp("Wi.*98", Qt::CaseInsensitive), "Windows98" }, - { QRegExp("Wi.*95", Qt::CaseInsensitive), "Windows95" }, - { QRegExp("Wi.*Me", Qt::CaseInsensitive), "WindowsMe" }, @@ -27,20 +88,21 @@ - { QRegExp("Wi.*3", Qt::CaseInsensitive), "Windows31" }, - { QRegExp("Wi", Qt::CaseInsensitive), "WindowsXP" }, - -- /* Solaris */ -- { QRegExp("((Op.*So)|(os20[01][0-9])|(So.*1[01])|(India)|(Neva)).*64", Qt::CaseInsensitive), "OpenSolaris_64" }, -- { QRegExp("(Op.*So)|(os20[01][0-9])|(So.*1[01])|(India)|(Neva)", Qt::CaseInsensitive), "OpenSolaris" }, +- /* Solaris: */ +- { QRegExp("So.*11", Qt::CaseInsensitive), "Solaris11_64" }, +- { QRegExp("((Op.*So)|(os20[01][0-9])|(So.*10)|(India)|(Neva)).*64", Qt::CaseInsensitive), "OpenSolaris_64" }, +- { QRegExp("(Op.*So)|(os20[01][0-9])|(So.*10)|(India)|(Neva)", Qt::CaseInsensitive), "OpenSolaris" }, - { QRegExp("So.*64", Qt::CaseInsensitive), "Solaris_64" }, - { QRegExp("So", Qt::CaseInsensitive), "Solaris" }, - -- /* OS/2 */ +- /* OS/2: */ - { QRegExp("OS[/|!-]{,1}2.*W.*4.?5", Qt::CaseInsensitive), "OS2Warp45" }, - { QRegExp("OS[/|!-]{,1}2.*W.*4", Qt::CaseInsensitive), "OS2Warp4" }, - { QRegExp("OS[/|!-]{,1}2.*W", Qt::CaseInsensitive), "OS2Warp3" }, - { QRegExp("(OS[/|!-]{,1}2.*e)|(eCS.*)", Qt::CaseInsensitive), "OS2eCS" }, - { QRegExp("OS[/|!-]{,1}2", Qt::CaseInsensitive), "OS2" }, - -- /* Code names for Linux distributions */ +- /* Code names for Linux distributions: */ - { QRegExp("((edgy)|(feisty)|(gutsy)|(hardy)|(intrepid)|(jaunty)|(karmic)|(lucid)|(maverick)|(natty)|(oneiric)|(precise)).*64", Qt::CaseInsensitive), "Ubuntu_64" }, - { QRegExp("(edgy)|(feisty)|(gutsy)|(hardy)|(intrepid)|(jaunty)|(karmic)|(lucid)|(maverick)|(natty)|(oneiric)|(precise)", Qt::CaseInsensitive), "Ubuntu" }, - { QRegExp("((sarge)|(etch)|(lenny)|(squeeze)|(wheezy)|(sid)).*64", Qt::CaseInsensitive), "Debian_64" }, @@ -48,7 +110,7 @@ - { QRegExp("((moonshine)|(werewolf)|(sulphur)|(cambridge)|(leonidas)|(constantine)|(goddard)|(laughlin)|(lovelock)|(verne)).*64", Qt::CaseInsensitive), "Fedora_64" }, - { QRegExp("(moonshine)|(werewolf)|(sulphur)|(cambridge)|(leonidas)|(constantine)|(goddard)|(laughlin)|(lovelock)|(verne)", Qt::CaseInsensitive), "Fedora" }, - -- /* Regular names of Linux distributions */ +- /* Regular names of Linux distributions: */ - { QRegExp("Arc.*64", Qt::CaseInsensitive), "ArchLinux_64" }, - { QRegExp("Arc", Qt::CaseInsensitive), "ArchLinux" }, - { QRegExp("Deb.*64", Qt::CaseInsensitive), "Debian_64" }, @@ -59,8 +121,8 @@ - { QRegExp("Fe", Qt::CaseInsensitive), "Fedora" }, - { QRegExp("((Gen)|(Sab)).*64", Qt::CaseInsensitive), "Gentoo_64" }, - { QRegExp("(Gen)|(Sab)", Qt::CaseInsensitive), "Gentoo" }, -- { QRegExp("Man.*64", Qt::CaseInsensitive), "Mandriva_64" }, -- { QRegExp("Man", Qt::CaseInsensitive), "Mandriva" }, +- { QRegExp("((Man)|(Mag)).*64", Qt::CaseInsensitive), "Mandriva_64" }, +- { QRegExp("((Man)|(Mag))", Qt::CaseInsensitive), "Mandriva" }, - { QRegExp("((Red)|(rhel)|(cen)).*64", Qt::CaseInsensitive), "RedHat_64" }, - { QRegExp("(Red)|(rhel)|(cen)", Qt::CaseInsensitive), "RedHat" }, - { QRegExp("Tur.*64", Qt::CaseInsensitive), "Turbolinux_64" }, @@ -71,6 +133,8 @@ - { QRegExp("Xa", Qt::CaseInsensitive), "Xandros" }, - { QRegExp("((Or)|(oel)).*64", Qt::CaseInsensitive), "Oracle_64" }, - { QRegExp("(Or)|(oel)", Qt::CaseInsensitive), "Oracle" }, +- { QRegExp("Knoppix", Qt::CaseInsensitive), "Linux26" }, +- { QRegExp("Dsl", Qt::CaseInsensitive), "Linux24" }, - { QRegExp("((Li)|(lnx)).*2.?2", Qt::CaseInsensitive), "Linux22" }, - { QRegExp("((Li)|(lnx)).*2.?4.*64", Qt::CaseInsensitive), "Linux24_64" }, - { QRegExp("((Li)|(lnx)).*2.?4", Qt::CaseInsensitive), "Linux24" }, @@ -78,37 +142,8 @@ - { QRegExp("(((Li)|(lnx)).*2.?6)|(LFS)", Qt::CaseInsensitive), "Linux26" }, - { QRegExp("((Li)|(lnx)).*64", Qt::CaseInsensitive), "Linux26_64" }, - { QRegExp("(Li)|(lnx)", Qt::CaseInsensitive), "Linux26" }, -+ /* Code names for GNU/Linux distributions */ -+ { QRegExp("((Taranis)|(Dagda)|(Brigantia)).*64", Qt::CaseInsensitive), "Trisquel_64" }, -+ { QRegExp("(Taranis)|(Dagda)|(Brigantia)", Qt::CaseInsensitive), "Trisquel" }, -+ { QRegExp("((metad)|(parkes)|(three)).*64", Qt::CaseInsensitive), "gNewSense_64" }, -+ { QRegExp("(deltah)|(metad)|(parkes)|(three)", Qt::CaseInsensitive), "gNewSense" }, -+ { QRegExp("((90k)|(119k)|(140k)|(160k)|(90000)|(119000)|(140000)|(160000)|(Spartakus)).*64", Qt::CaseInsensitive), "Blag_64" }, -+ { QRegExp("(90k)|(119k)|(140k)|(160k)|(90000)|(119000)|(140000)|(160000)|(Spartakus)", Qt::CaseInsensitive), "Blag" }, -+ -+ /* Regular names of GNU/Linux distributions and GNU-Hurd */ -+ { QRegExp("Pa.*64", Qt::CaseInsensitive), "Parabola_64" }, -+ { QRegExp("Pa", Qt::CaseInsensitive), "Parabola" }, -+ { QRegExp("((gNe)|(new)|(Sen)).*64", Qt::CaseInsensitive), "gNewSense_64" }, -+ { QRegExp("(gNe)|(new)|(Sen)", Qt::CaseInsensitive), "gNewSense" }, -+ { QRegExp("Bla.*64", Qt::CaseInsensitive), "Blag_64" }, -+ { QRegExp("Bla", Qt::CaseInsensitive), "Blag" }, -+ { QRegExp("Dra.*64", Qt::CaseInsensitive), "Dragora_64" }, -+ { QRegExp("Dra", Qt::CaseInsensitive), "Dragora" }, -+ { QRegExp("((Utu)|(XS)).*64", Qt::CaseInsensitive), "Ututo_64" }, -+ { QRegExp("(Utu)|(XS)", Qt::CaseInsensitive), "Ututo" }, -+ { QRegExp("Mus.*64", Qt::CaseInsensitive), "Musix_64" }, -+ { QRegExp("Mus", Qt::CaseInsensitive), "Musix" }, -+ { QRegExp("Tri.*64", Qt::CaseInsensitive), "Trisquel_64" }, -+ { QRegExp("Tri", Qt::CaseInsensitive), "Trisquel" }, -+ { QRegExp("Dyn", Qt::CaseInsensitive), "Dynebolic" }, -+ { QRegExp("Ven", Qt::CaseInsensitive), "Venenux" }, -+ { QRegExp("GNU", Qt::CaseInsensitive), "GNU" }, -+ { QRegExp("Hu", Qt::CaseInsensitive), "GNUHurd" }, -+ { QRegExp("((Li)|(lnx)).*64", Qt::CaseInsensitive), "GNULinux_64" }, -+ { QRegExp("(Li)|(lnx)", Qt::CaseInsensitive), "GNULinux" }, - - /* Other */ +- +- /* Other: */ - { QRegExp("L4", Qt::CaseInsensitive), "L4" }, - { QRegExp("((Fr.*B)|(fbsd)).*64", Qt::CaseInsensitive), "FreeBSD_64" }, - { QRegExp("(Fr.*B)|(fbsd)", Qt::CaseInsensitive), "FreeBSD" }, @@ -121,9 +156,53 @@ - { QRegExp("(Mac)|(Tig)|(Leop)|(osx)", Qt::CaseInsensitive), "MacOS" }, - { QRegExp("Net", Qt::CaseInsensitive), "Netware" }, - { QRegExp("Rocki", Qt::CaseInsensitive), "JRockitVE" }, ++ /* Other */ { QRegExp("Ot", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("DOS", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("Wi.*98", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("Wi.*95", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("Wi.*Me", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("(Wi.*NT)|(NT4)", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("((Wi.*XP)|(\\bXP\\b)).*64", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("(Wi.*XP)|(\\bXP\\b)", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("((Wi.*2003)|(W2K3)).*64", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("(Wi.*2003)|(W2K3)", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("((Wi.*V)|(Vista)).*64", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("(Wi.*V)|(Vista)", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("((Wi.*2008)|(W2K8)).*64", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("(Wi.*2008)|(W2K8)", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("(Wi.*2000)|(W2K)", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("(Wi.*7.*64)|(W7.*64)", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("(Wi.*7)|(W7)", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("(Wi.*8.*64)|(W8.*64)", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("(Wi.*8)|(W8)", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("Wi.*3", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("Wi", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("So.*11", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("((Op.*So)|(os20[01][0-9])|(So.*10)|(India)|(Neva)).*64", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("(Op.*So)|(os20[01][0-9])|(So.*10)|(India)|(Neva)", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("So.*64", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("So", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("OS[/|!-]{,1}2.*W.*4.?5", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("OS[/|!-]{,1}2.*W.*4", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("OS[/|!-]{,1}2.*W", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("(OS[/|!-]{,1}2.*e)|(eCS.*)", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("OS[/|!-]{,1}2", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("L4", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("((Fr.*B)|(fbsd)).*64", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("(Fr.*B)|(fbsd)", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("Op.*B.*64", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("Op.*B", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("Ne.*B.*64", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("Ne.*B", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("QN", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("((Mac)|(Tig)|(Leop)|(osx)).*64", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("(Mac)|(Tig)|(Leop)|(osx)", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("Net", Qt::CaseInsensitive), "Other" }, ++ { QRegExp("Rocki", Qt::CaseInsensitive), "Other" }, }; + UIWizardNewVMPage1::UIWizardNewVMPage1(const QString &strGroup) --- VirtualBox-4.1.18.orig/src/VBox/Main/xml/Settings.cpp 2012-07-25 15:14:50.498764160 -0300 +++ VirtualBox-4.1.18/src/VBox/Main/xml/Settings.cpp 2012-07-25 15:14:50.548761649 -0300 @@ -3227,40 +3227,18 @@ @@ -234,546 +313,460 @@ </xsl:choose> </xsl:attribute> <xsl:apply-templates select="@*[name()!='OSType']" mode="v1.5"/> ---- VirtualBox-4.1.18.orig/src/VBox/Main/xml/VirtualBox-settings-common.xsd 2012-07-25 15:04:37.856003691 -0300 -+++ VirtualBox-4.1.18/src/VBox/Main/xml/VirtualBox-settings-common.xsd 2012-07-25 15:04:37.892668156 -0300 -@@ -137,75 +137,27 @@ - <xsd:simpleType name="TGuestOSType"> - <xsd:restriction base="xsd:string"> - <xsd:enumeration value="Other"/> -- <xsd:enumeration value="DOS"/> -- <xsd:enumeration value="Netware"/> -- <xsd:enumeration value="L4"/> -- <xsd:enumeration value="Windows31"/> -- <xsd:enumeration value="Windows95"/> -- <xsd:enumeration value="Windows98"/> -- <xsd:enumeration value="WindowsMe"/> -- <xsd:enumeration value="WindowsNT4"/> -- <xsd:enumeration value="Windows2000"/> -- <xsd:enumeration value="WindowsXP"/> -- <xsd:enumeration value="WindowsXP_64"/> -- <xsd:enumeration value="Windows2003"/> -- <xsd:enumeration value="Windows2003_64"/> -- <xsd:enumeration value="WindowsVista"/> -- <xsd:enumeration value="WindowsVista_64"/> -- <xsd:enumeration value="Windows2008"/> -- <xsd:enumeration value="Windows2008_64"/> -- <xsd:enumeration value="Windows7"/> -- <xsd:enumeration value="Windows7_64"/> -- <xsd:enumeration value="Windows8"/> -- <xsd:enumeration value="Windows8_64"/> -- <xsd:enumeration value="WindowsNT"/> -- <xsd:enumeration value="OS2Warp3"/> -- <xsd:enumeration value="OS2Warp4"/> -- <xsd:enumeration value="OS2Warp45"/> -- <xsd:enumeration value="OS2eCS"/> -- <xsd:enumeration value="OS2"/> -- <xsd:enumeration value="Linux22"/> -- <xsd:enumeration value="Linux24"/> -- <xsd:enumeration value="Linux24_64"/> -- <xsd:enumeration value="Linux26"/> -- <xsd:enumeration value="Linux26_64"/> -- <xsd:enumeration value="ArchLinux"/> -- <xsd:enumeration value="ArchLinux_64"/> -- <xsd:enumeration value="Debian"/> -- <xsd:enumeration value="Debian_64"/> -- <xsd:enumeration value="OpenSUSE"/> -- <xsd:enumeration value="OpenSUSE_64"/> -- <xsd:enumeration value="Fedora"/> -- <xsd:enumeration value="Fedora_64"/> -- <xsd:enumeration value="Gentoo"/> -- <xsd:enumeration value="Gentoo_64"/> -- <xsd:enumeration value="Mandriva"/> -- <xsd:enumeration value="Mandriva_64"/> -- <xsd:enumeration value="RedHat"/> -- <xsd:enumeration value="RedHat_64"/> -- <xsd:enumeration value="Turbolinux"/> -- <xsd:enumeration value="Turbolinux_64"/> -- <xsd:enumeration value="Ubuntu"/> -- <xsd:enumeration value="Ubuntu_64"/> -- <xsd:enumeration value="Xandros"/> -- <xsd:enumeration value="Xandros_64"/> -- <xsd:enumeration value="Oracle"/> -- <xsd:enumeration value="Oracle_64"/> -- <xsd:enumeration value="Linux"/> -- <xsd:enumeration value="FreeBSD"/> -- <xsd:enumeration value="FreeBSD_64"/> -- <xsd:enumeration value="OpenBSD"/> -- <xsd:enumeration value="OpenBSD_64"/> -- <xsd:enumeration value="NetBSD"/> -- <xsd:enumeration value="NetBSD_64"/> -- <xsd:enumeration value="Solaris"/> -- <xsd:enumeration value="Solaris_64"/> -- <xsd:enumeration value="OpenSolaris"/> -- <xsd:enumeration value="OpenSolaris_64"/> -- <xsd:enumeration value="QNX"/> -- <xsd:enumeration value="MacOS"/> -- <xsd:enumeration value="MacOS_64"/> -- <xsd:enumeration value="JRockitVE"/> -+ <xsd:enumeration value="GNU"/> -+ <xsd:enumeration value="GNU_64"/> -+ <xsd:enumeration value="GNUHurd"/> -+ <xsd:enumeration value="GNULinux"/> -+ <xsd:enumeration value="GNULinux_64"/> -+ <xsd:enumeration value="Parabola"/> -+ <xsd:enumeration value="Parabola_64"/> -+ <xsd:enumeration value="gNewSense"/> -+ <xsd:enumeration value="gNewSense_64"/> -+ <xsd:enumeration value="Blag"/> -+ <xsd:enumeration value="Blag_64"/> -+ <xsd:enumeration value="Dragora"/> -+ <xsd:enumeration value="Dragora_64"/> -+ <xsd:enumeration value="Ututo"/> -+ <xsd:enumeration value="Ututo_64"/> -+ <xsd:enumeration value="Musix"/> -+ <xsd:enumeration value="Musix_64"/> -+ <xsd:enumeration value="Trisquel"/> -+ <xsd:enumeration value="Trisquel_64"/> -+ <xsd:enumeration value="Dynebolic"/> -+ <xsd:enumeration value="Venenux"/> - </xsd:restriction> - </xsd:simpleType> - ---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc 2012-07-25 15:40:56.733096866 -0300 -+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc 2012-07-25 15:40:56.796426519 -0300 +--- VirtualBox-4.2.0.orig/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc 2012-09-19 01:52:44.572133271 -0300 ++++ VirtualBox-4.2.0/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc 2012-09-19 01:58:47.789130085 -0300 @@ -1,75 +1,27 @@ - <!DOCTYPE RCC><RCC version="1.0"> - <qresource prefix="/"> -- <file alias="os_archlinux.png">images/os_archlinux.png</file> -- <file alias="os_archlinux_64.png">images/os_archlinux_64.png</file> -- <file alias="os_debian.png">images/os_debian.png</file> -- <file alias="os_debian_64.png">images/os_debian_64.png</file> -- <file alias="os_dos.png">images/os_dos.png</file> -- <file alias="os_fedora.png">images/os_fedora.png</file> -- <file alias="os_fedora_64.png">images/os_fedora_64.png</file> -- <file alias="os_freebsd.png">images/os_freebsd.png</file> -- <file alias="os_freebsd_64.png">images/os_freebsd_64.png</file> -- <file alias="os_gentoo.png">images/os_gentoo.png</file> -- <file alias="os_gentoo_64.png">images/os_gentoo_64.png</file> -- <file alias="os_jrockitve.png">images/os_jrockitve.png</file> -- <file alias="os_l4.png">images/os_l4.png</file> -- <file alias="os_linux_other.png">images/os_linux_other.png</file> -- <file alias="os_linux22.png">images/os_linux22.png</file> -- <file alias="os_linux24.png">images/os_linux24.png</file> -- <file alias="os_linux24_64.png">images/os_linux24_64.png</file> -- <file alias="os_linux26.png">images/os_linux26.png</file> -- <file alias="os_linux26_64.png">images/os_linux26_64.png</file> -- <file alias="os_mandriva.png">images/os_mandriva.png</file> -- <file alias="os_mandriva_64.png">images/os_mandriva_64.png</file> -- <file alias="os_netbsd.png">images/os_netbsd.png</file> -- <file alias="os_netbsd_64.png">images/os_netbsd_64.png</file> -- <file alias="os_netware.png">images/os_netware.png</file> -- <file alias="os_openbsd.png">images/os_openbsd.png</file> -- <file alias="os_openbsd_64.png">images/os_openbsd_64.png</file> -- <file alias="os_oraclesolaris.png">images/os_oraclesolaris.png</file> -- <file alias="os_oraclesolaris_64.png">images/os_oraclesolaris_64.png</file> -- <file alias="os_opensuse.png">images/os_opensuse.png</file> -- <file alias="os_opensuse_64.png">images/os_opensuse_64.png</file> -- <file alias="os_os2_other.png">images/os_os2_other.png</file> -- <file alias="os_os2ecs.png">images/os_os2ecs.png</file> -- <file alias="os_os2warp3.png">images/os_os2warp3.png</file> -- <file alias="os_os2warp4.png">images/os_os2warp4.png</file> -- <file alias="os_os2warp45.png">images/os_os2warp45.png</file> -+ <file alias="os_parabola.png">images/os_parabola.png</file> -+ <file alias="os_parabola_64.png">images/os_parabola_64.png</file> -+ <file alias="os_gnewsense.png">images/os_gnewsense.png</file> -+ <file alias="os_gnewsense_64.png">images/os_gnewsense_64.png</file> -+ <file alias="os_blag.png">images/os_blag.png</file> -+ <file alias="os_blag_64.png">images/os_blag_64.png</file> -+ <file alias="os_ututo.png">images/os_ututo.png</file> -+ <file alias="os_ututo_64.png">images/os_ututo_64.png</file> -+ <file alias="os_gnu.png">images/os_gnu.png</file> -+ <file alias="os_gnu_64.png">images/os_gnu_64.png</file> -+ <file alias="os_gnuhurd.png">images/os_gnuhurd.png</file> -+ <file alias="os_gnulinux.png">images/os_gnulinux.png</file> -+ <file alias="os_gnulinux_64.png">images/os_gnulinux_64.png</file> -+ <file alias="os_musix.png">images/os_musix.png</file> -+ <file alias="os_musix_64.png">images/os_musix_64.png</file> -+ <file alias="os_dragora.png">images/os_dragora.png</file> -+ <file alias="os_dragora_64.png">images/os_dragora_64.png</file> - <file alias="os_other.png">images/os_other.png</file> -- <file alias="os_qnx.png">images/os_qnx.png</file> -- <file alias="os_redhat.png">images/os_redhat.png</file> -- <file alias="os_redhat_64.png">images/os_redhat_64.png</file> -- <file alias="os_turbolinux.png">images/os_turbolinux.png</file> -- <file alias="os_turbolinux_64.png">images/os_turbolinux_64.png</file> -- <file alias="os_solaris.png">images/os_solaris.png</file> -- <file alias="os_solaris_64.png">images/os_solaris_64.png</file> -- <file alias="os_ubuntu.png">images/os_ubuntu.png</file> -- <file alias="os_ubuntu_64.png">images/os_ubuntu_64.png</file> -- <file alias="os_win_other.png">images/os_win_other.png</file> -- <file alias="os_win2k.png">images/os_win2k.png</file> -- <file alias="os_win2k3.png">images/os_win2k3.png</file> -- <file alias="os_win2k3_64.png">images/os_win2k3_64.png</file> -- <file alias="os_win2k8.png">images/os_win2k8.png</file> -- <file alias="os_win2k8_64.png">images/os_win2k8_64.png</file> -- <file alias="os_win31.png">images/os_win31.png</file> -- <file alias="os_win7.png">images/os_win7.png</file> -- <file alias="os_win7_64.png">images/os_win7_64.png</file> -- <file alias="os_win8.png">images/os_win8.png</file> -- <file alias="os_win8_64.png">images/os_win8_64.png</file> -- <file alias="os_win95.png">images/os_win95.png</file> -- <file alias="os_win98.png">images/os_win98.png</file> -- <file alias="os_winme.png">images/os_winme.png</file> -- <file alias="os_winnt4.png">images/os_winnt4.png</file> -- <file alias="os_winvista.png">images/os_winvista.png</file> -- <file alias="os_winvista_64.png">images/os_winvista_64.png</file> -- <file alias="os_winxp.png">images/os_winxp.png</file> -- <file alias="os_winxp_64.png">images/os_winxp_64.png</file> -- <file alias="os_xandros.png">images/os_xandros.png</file> -- <file alias="os_xandros_64.png">images/os_xandros_64.png</file> -- <file alias="os_oracle.png">images/os_oracle.png</file> -- <file alias="os_oracle_64.png">images/os_oracle_64.png</file> -- <file alias="os_macosx.png">images/os_macosx.png</file> -- <file alias="os_macosx_64.png">images/os_macosx_64.png</file> -+ <file alias="os_dynebolic.png">images/os_dynebolic.png</file> -+ <file alias="os_venenux.png">images/os_venenux.png</file> -+ <file alias="os_trisquel.png">images/os_trisquel.png</file> -+ <file alias="os_trisquel_64.png">images/os_trisquel_64.png</file> - <file alias="hd_16px.png">images/hd_16px.png</file> - <file alias="hd_disabled_16px.png">images/hd_disabled_16px.png</file> - <file alias="hd_32px.png">images/hd_32px.png</file> ---- VirtualBox-4.1.20.orig/src/VBox/Main/src-all/Global.cpp 2012-08-20 11:36:24.000000000 -0300 -+++ VirtualBox-4.1.20/src/VBox/Main/src-all/Global.cpp 2012-08-21 14:22:29.148190849 -0300 -@@ -35,284 +35,90 @@ + <RCC> + <qresource prefix="/"> +- <file alias="os_archlinux.png">images/os_archlinux.png</file> +- <file alias="os_archlinux_64.png">images/os_archlinux_64.png</file> +- <file alias="os_debian.png">images/os_debian.png</file> +- <file alias="os_debian_64.png">images/os_debian_64.png</file> +- <file alias="os_dos.png">images/os_dos.png</file> +- <file alias="os_fedora.png">images/os_fedora.png</file> +- <file alias="os_fedora_64.png">images/os_fedora_64.png</file> +- <file alias="os_freebsd.png">images/os_freebsd.png</file> +- <file alias="os_freebsd_64.png">images/os_freebsd_64.png</file> +- <file alias="os_gentoo.png">images/os_gentoo.png</file> +- <file alias="os_gentoo_64.png">images/os_gentoo_64.png</file> +- <file alias="os_jrockitve.png">images/os_jrockitve.png</file> +- <file alias="os_l4.png">images/os_l4.png</file> +- <file alias="os_linux_other.png">images/os_linux_other.png</file> +- <file alias="os_linux22.png">images/os_linux22.png</file> +- <file alias="os_linux24.png">images/os_linux24.png</file> +- <file alias="os_linux24_64.png">images/os_linux24_64.png</file> +- <file alias="os_linux26.png">images/os_linux26.png</file> +- <file alias="os_linux26_64.png">images/os_linux26_64.png</file> +- <file alias="os_mandriva.png">images/os_mandriva.png</file> +- <file alias="os_mandriva_64.png">images/os_mandriva_64.png</file> +- <file alias="os_netbsd.png">images/os_netbsd.png</file> +- <file alias="os_netbsd_64.png">images/os_netbsd_64.png</file> +- <file alias="os_netware.png">images/os_netware.png</file> +- <file alias="os_openbsd.png">images/os_openbsd.png</file> +- <file alias="os_openbsd_64.png">images/os_openbsd_64.png</file> +- <file alias="os_oraclesolaris.png">images/os_oraclesolaris.png</file> +- <file alias="os_oraclesolaris_64.png">images/os_oraclesolaris_64.png</file> +- <file alias="os_opensuse.png">images/os_opensuse.png</file> +- <file alias="os_opensuse_64.png">images/os_opensuse_64.png</file> +- <file alias="os_os2_other.png">images/os_os2_other.png</file> +- <file alias="os_os2ecs.png">images/os_os2ecs.png</file> +- <file alias="os_os2warp3.png">images/os_os2warp3.png</file> +- <file alias="os_os2warp4.png">images/os_os2warp4.png</file> +- <file alias="os_os2warp45.png">images/os_os2warp45.png</file> + <file alias="os_other.png">images/os_other.png</file> +- <file alias="os_qnx.png">images/os_qnx.png</file> +- <file alias="os_redhat.png">images/os_redhat.png</file> +- <file alias="os_redhat_64.png">images/os_redhat_64.png</file> +- <file alias="os_turbolinux.png">images/os_turbolinux.png</file> +- <file alias="os_turbolinux_64.png">images/os_turbolinux_64.png</file> +- <file alias="os_solaris.png">images/os_solaris.png</file> +- <file alias="os_solaris_64.png">images/os_solaris_64.png</file> +- <file alias="os_ubuntu.png">images/os_ubuntu.png</file> +- <file alias="os_ubuntu_64.png">images/os_ubuntu_64.png</file> +- <file alias="os_win_other.png">images/os_win_other.png</file> +- <file alias="os_win2k.png">images/os_win2k.png</file> +- <file alias="os_win2k3.png">images/os_win2k3.png</file> +- <file alias="os_win2k3_64.png">images/os_win2k3_64.png</file> +- <file alias="os_win2k8.png">images/os_win2k8.png</file> +- <file alias="os_win2k8_64.png">images/os_win2k8_64.png</file> +- <file alias="os_win31.png">images/os_win31.png</file> +- <file alias="os_win7.png">images/os_win7.png</file> +- <file alias="os_win7_64.png">images/os_win7_64.png</file> +- <file alias="os_win8.png">images/os_win8.png</file> +- <file alias="os_win8_64.png">images/os_win8_64.png</file> +- <file alias="os_win95.png">images/os_win95.png</file> +- <file alias="os_win98.png">images/os_win98.png</file> +- <file alias="os_winme.png">images/os_winme.png</file> +- <file alias="os_winnt4.png">images/os_winnt4.png</file> +- <file alias="os_winvista.png">images/os_winvista.png</file> +- <file alias="os_winvista_64.png">images/os_winvista_64.png</file> +- <file alias="os_winxp.png">images/os_winxp.png</file> +- <file alias="os_winxp_64.png">images/os_winxp_64.png</file> +- <file alias="os_xandros.png">images/os_xandros.png</file> +- <file alias="os_xandros_64.png">images/os_xandros_64.png</file> +- <file alias="os_oracle.png">images/os_oracle.png</file> +- <file alias="os_oracle_64.png">images/os_oracle_64.png</file> +- <file alias="os_macosx.png">images/os_macosx.png</file> +- <file alias="os_macosx_64.png">images/os_macosx_64.png</file> ++ <file alias="os_parabola.png">images/os_parabola.png</file> ++ <file alias="os_parabola_64.png">images/os_parabola_64.png</file> ++ <file alias="os_gnewsense.png">images/os_gnewsense.png</file> ++ <file alias="os_gnewsense_64.png">images/os_gnewsense_64.png</file> ++ <file alias="os_blag.png">images/os_blag.png</file> ++ <file alias="os_blag_64.png">images/os_blag_64.png</file> ++ <file alias="os_ututo.png">images/os_ututo.png</file> ++ <file alias="os_ututo_64.png">images/os_ututo_64.png</file> ++ <file alias="os_gnu.png">images/os_gnu.png</file> ++ <file alias="os_gnu_64.png">images/os_gnu_64.png</file> ++ <file alias="os_gnuhurd.png">images/os_gnuhurd.png</file> ++ <file alias="os_gnulinux.png">images/os_gnulinux.png</file> ++ <file alias="os_gnulinux_64.png">images/os_gnulinux_64.png</file> ++ <file alias="os_musix.png">images/os_musix.png</file> ++ <file alias="os_musix_64.png">images/os_musix_64.png</file> ++ <file alias="os_dragora.png">images/os_dragora.png</file> ++ <file alias="os_dragora_64.png">images/os_dragora_64.png</file> ++ <file alias="os_dynebolic.png">images/os_dynebolic.png</file> ++ <file alias="os_venenux.png">images/os_venenux.png</file> ++ <file alias="os_trisquel.png">images/os_trisquel.png</file> ++ <file alias="os_trisquel_64.png">images/os_trisquel_64.png</file> + <file alias="hd_16px.png">images/hd_16px.png</file> + <file alias="hd_disabled_16px.png">images/hd_disabled_16px.png</file> + <file alias="hd_32px.png">images/hd_32px.png</file> +--- VirtualBox-4.2.0.orig/src/VBox/Main/src-all/Global.cpp 2012-09-08 06:36:02.000000000 -0300 ++++ VirtualBox-4.2.0/src/VBox/Main/src-all/Global.cpp 2012-09-19 03:33:50.143066084 -0300 +@@ -29,296 +29,94 @@ + /* NOTE1: we assume that unknown is always the first entry! + * NOTE2: please use powers of 2 when specifying the size of harddisks since + * '2GB' looks better than '1.95GB' (= 2000MB) */ +- { "Other", "Other", "Other", "Other/Unknown", ++ { "Other", "Other", "Other", "Other/Unknown", VBOXOSTYPE_Unknown, VBOXOSHINT_NONE, 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows31, "Windows 3.1", -- VBOXOSTYPE_Win31, VBOXOSHINT_NONE, +- { "Windows", "Microsoft Windows", "Windows31", "Windows 3.1", +- VBOXOSTYPE_Win31, VBOXOSHINT_FLOPPY, - 32, 4, 1 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows95, "Windows 95", -- VBOXOSTYPE_Win95, VBOXOSHINT_NONE, +- { "Windows", "Microsoft Windows", "Windows95", "Windows 95", +- VBOXOSTYPE_Win95, VBOXOSHINT_FLOPPY, - 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows98, "Windows 98", -- VBOXOSTYPE_Win98, VBOXOSHINT_NONE, +- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16 }, +- { "Windows", "Microsoft Windows", "Windows98", "Windows 98", +- VBOXOSTYPE_Win98, VBOXOSHINT_FLOPPY, - 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, +- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16 }, +- { "Windows", "Microsoft Windows", "WindowsMe", "Windows ME", +- VBOXOSTYPE_WinMe, VBOXOSHINT_FLOPPY | VBOXOSHINT_USBTABLET, +- 128, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsMe, "Windows Me", -- VBOXOSTYPE_WinMe, VBOXOSHINT_NONE, -- 64, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsNT4, "Windows NT 4", +- { "Windows", "Microsoft Windows", "WindowsNT4", "Windows NT 4", - VBOXOSTYPE_WinNT4, VBOXOSHINT_NONE, - 128, 16, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2000, "Windows 2000", +- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16 }, +- { "Windows", "Microsoft Windows", "Windows2000", "Windows 2000", - VBOXOSTYPE_Win2k, VBOXOSHINT_USBTABLET, - 168, 16, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsXP, "Windows XP", +- { "Windows", "Microsoft Windows", "WindowsXP", "Windows XP", - VBOXOSTYPE_WinXP, VBOXOSHINT_USBTABLET, - 192, 16, 10 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsXP_64, "Windows XP (64 bit)", +- { "Windows", "Microsoft Windows", "WindowsXP_64", "Windows XP (64 bit)", - VBOXOSTYPE_WinXP_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET, - 192, 16, 10 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2003, "Windows 2003", +- { "Windows", "Microsoft Windows", "Windows2003", "Windows 2003", - VBOXOSTYPE_Win2k3, VBOXOSHINT_USBTABLET, - 256, 16, 20 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2003_64, "Windows 2003 (64 bit)", +- { "Windows", "Microsoft Windows", "Windows2003_64", "Windows 2003 (64 bit)", - VBOXOSTYPE_Win2k3_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET, - 256, 16, 20 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsVista, "Windows Vista", +- { "Windows", "Microsoft Windows", "WindowsVista", "Windows Vista", - VBOXOSTYPE_WinVista, VBOXOSHINT_USBTABLET, - 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsVista_64, "Windows Vista (64 bit)", +- { "Windows", "Microsoft Windows", "WindowsVista_64", "Windows Vista (64 bit)", - VBOXOSTYPE_WinVista_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET, - 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2008, "Windows 2008", +- { "Windows", "Microsoft Windows", "Windows2008", "Windows 2008", - VBOXOSTYPE_Win2k8, VBOXOSHINT_USBTABLET, - 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2008_64, "Windows 2008 (64 bit)", +- { "Windows", "Microsoft Windows", "Windows2008_64", "Windows 2008 (64 bit)", - VBOXOSTYPE_Win2k8_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET, - 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows7, "Windows 7", +- { "Windows", "Microsoft Windows", "Windows7", "Windows 7", - VBOXOSTYPE_Win7, VBOXOSHINT_USBTABLET, - 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows7_64, "Windows 7 (64 bit)", +- { "Windows", "Microsoft Windows", "Windows7_64", "Windows 7 (64 bit)", - VBOXOSTYPE_Win7_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET, - 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows8, "Windows 8", -- VBOXOSTYPE_Win8, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_PAE, +- { "Windows", "Microsoft Windows", "Windows8", "Windows 8", +- VBOXOSTYPE_Win8, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_PAE, - 1024,128, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows8_64, "Windows 8 (64 bit)", +- { "Windows", "Microsoft Windows", "Windows8_64", "Windows 8 (64 bit)", - VBOXOSTYPE_Win8_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET, -- 1536,128, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, +- 2048,128, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, +- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA }, +- { "Windows", "Microsoft Windows", "Windows2012_64", "Windows 2012 (64 bit)", +- VBOXOSTYPE_Win2k12_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET, +- 2048,128, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA }, -- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsNT, "Other Windows", +- { "Windows", "Microsoft Windows", "WindowsNT", "Other Windows", - VBOXOSTYPE_WinNT, VBOXOSHINT_NONE, - 512, 16, 20 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux22, "Linux 2.2", +- { "Linux", "Linux", "Linux22", "Linux 2.2", - VBOXOSTYPE_Linux22, VBOXOSHINT_RTCUTC, - 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux24, "Linux 2.4", +- { "Linux", "Linux", "Linux24", "Linux 2.4", - VBOXOSTYPE_Linux24, VBOXOSHINT_RTCUTC, - 128, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux24_64, "Linux 2.4 (64 bit)", +- { "Linux", "Linux", "Linux24_64", "Linux 2.4 (64 bit)", - VBOXOSTYPE_Linux24_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC, - 128, 4, 4 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -+ { "GNU", "GNU", SchemaDefs_OSTypeId_GNU, "GNU", ++ { "GNU", "GNU", "GNU", "GNU", + VBOXOSTYPE_GNU, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, + 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, + StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -+ { "GNU", "GNU", SchemaDefs_OSTypeId_GNU_64, "GNU (64 bit)", ++ { "GNU", "GNU", "GNU_64", "GNU (64 bit)", + VBOXOSTYPE_GNU_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, + 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, + StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -+ { "GNU-Hurd", "GNU-Hurd", SchemaDefs_OSTypeId_GNUHurd, "GNU-Hurd", ++ { "GNU-Hurd", "GNU-Hurd", "GNUHurd", "GNU-Hurd", + VBOXOSTYPE_GNUHurd, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, + 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux26, "Linux 2.6", +- { "Linux", "Linux", "Linux26", "Linux 2.6", - VBOXOSTYPE_Linux26, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_GNULinux, "GNU/Linux", ++ { "GNU/Linux", "GNU/Linux", "GNULinux", "GNU/Linux", + VBOXOSTYPE_GNULinux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux26_64, "Linux 2.6 (64 bit)", +- { "Linux", "Linux", "Linux26_64", "Linux 2.6 (64 bit)", - VBOXOSTYPE_Linux26_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_GNULinux_64, "GNU/Linux (64 bit)", ++ { "GNU/Linux", "GNU/Linux", "GNULinux_64", "GNU/Linux (64 bit)", + VBOXOSTYPE_GNULinux_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_ArchLinux, "Arch Linux", +- { "Linux", "Linux", "ArchLinux", "Arch Linux", - VBOXOSTYPE_ArchLinux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Parabola, "Parabola GNU/Linux-libre", ++ { "GNU/Linux", "GNU/Linux", "Parabola", "Parabola GNU/Linux-libre", + VBOXOSTYPE_Parabola, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_ArchLinux_64, "Arch Linux (64 bit)", +- { "Linux", "Linux", "ArchLinux_64", "Arch Linux (64 bit)", - VBOXOSTYPE_ArchLinux_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Parabola_64, "Parabola GNU/Linux-libre (64 bit)", ++ { "GNU/Linux", "GNU/Linux", "Parabola_64", "Parabola GNU/Linux-libre (64 bit)", + VBOXOSTYPE_Parabola_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Debian, "Debian", +- { "Linux", "Linux", "Debian", "Debian", - VBOXOSTYPE_Debian, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_gNewSense, "gNewSense", ++ { "GNU/Linux", "GNU/Linux", "gNewSense", "gNewSense", + VBOXOSTYPE_gNewSense, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Debian_64, "Debian (64 bit)", +- { "Linux", "Linux", "Debian_64", "Debian (64 bit)", - VBOXOSTYPE_Debian_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_gNewSense_64, "gNewSense (64 bit)", ++ { "GNU/Linux", "GNU/Linux", "gNewSense_64", "gNewSense (64 bit)", + VBOXOSTYPE_gNewSense_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97}, -- { "Linux", "Linux", SchemaDefs_OSTypeId_OpenSUSE, "openSUSE", +- { "Linux", "Linux", "OpenSUSE", "openSUSE", - VBOXOSTYPE_OpenSUSE, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_OpenSUSE_64, "openSUSE (64 bit)", +- { "Linux", "Linux", "OpenSUSE_64", "openSUSE (64 bit)", - VBOXOSTYPE_OpenSUSE_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Fedora, "Fedora", +- { "Linux", "Linux", "Fedora", "Fedora", - VBOXOSTYPE_FedoraCore, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Blag, "Blag Linux and GNU", ++ { "GNU/Linux", "GNU/Linux", "Blag", "Blag Linux and GNU", + VBOXOSTYPE_Blag, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, 768, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Fedora_64, "Fedora (64 bit)", +- { "Linux", "Linux", "Fedora_64", "Fedora (64 bit)", - VBOXOSTYPE_FedoraCore_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Blag_64, "Blag Linux and GNU (64 bit)", ++ { "GNU/Linux", "GNU/Linux", "Blag_64", "Blag Linux and GNU (64 bit)", + VBOXOSTYPE_Blag_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, 768, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Gentoo, "Gentoo", +- { "Linux", "Linux", "Gentoo", "Gentoo", - VBOXOSTYPE_Gentoo, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Dragora, "Dragora", ++ { "GNU/Linux", "GNU/Linux", "Dragora", "Dragora", + VBOXOSTYPE_Dragora, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Gentoo_64, "Gentoo (64 bit)", +- { "Linux", "Linux", "Gentoo_64", "Gentoo (64 bit)", - VBOXOSTYPE_Gentoo_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Dragora_64, "Dragora (64 bit)", ++ { "GNU/Linux", "GNU/Linux", "Dragora_64", "Dragora (64 bit)", + VBOXOSTYPE_Dragora_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Mandriva, "Mandriva", +- { "Linux", "Linux", "Mandriva", "Mandriva", - VBOXOSTYPE_Mandriva, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Mandriva_64, "Mandriva (64 bit)", +- { "Linux", "Linux", "Mandriva_64", "Mandriva (64 bit)", - VBOXOSTYPE_Mandriva_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_RedHat, "Red Hat", +- { "Linux", "Linux", "RedHat", "Red Hat", - VBOXOSTYPE_RedHat, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE, - 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Ututo, "Ututo XS", ++ { "GNU/Linux", "GNU/Linux", "Ututo", "Ututo XS", + VBOXOSTYPE_Ututo, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, + 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_RedHat_64, "Red Hat (64 bit)", +- { "Linux", "Linux", "RedHat_64", "Red Hat (64 bit)", - VBOXOSTYPE_RedHat_x64, VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC, - 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Ututo_64, "Ututo XS (64 bit)", ++ { "GNU/Linux", "GNU/Linux", "Ututo_64", "Ututo XS (64 bit)", + VBOXOSTYPE_Ututo_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, + 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Turbolinux, "Turbolinux", +- { "Linux", "Linux", "Turbolinux", "Turbolinux", - VBOXOSTYPE_Turbolinux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Musix, "Musix", ++ { "GNU/Linux", "GNU/Linux", "Musix", "Musix", + VBOXOSTYPE_Musix, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Turbolinux, "Turbolinux (64 bit)", +- { "Linux", "Linux", "Turbolinux_64", "Turbolinux (64 bit)", - VBOXOSTYPE_Turbolinux_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Musix_64, "Musix (64 bit)", ++ { "GNU/Linux", "GNU/Linux", "Musix_64", "Musix (64 bit)", + VBOXOSTYPE_Musix_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Ubuntu, "Ubuntu", +- { "Linux", "Linux", "Ubuntu", "Ubuntu", - VBOXOSTYPE_Ubuntu, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE | VBOXOSHINT_USBTABLET, + StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97}, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Trisquel, "Trisquel", ++ { "GNU/Linux", "GNU/Linux", "Trisquel", "Trisquel", + VBOXOSTYPE_Trisquel, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE | VBOXOSHINT_USBTABLET, 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Ubuntu_64, "Ubuntu (64 bit)", +- { "Linux", "Linux", "Ubuntu_64", "Ubuntu (64 bit)", - VBOXOSTYPE_Ubuntu_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Trisquel_64, "Trisquel (64 bit)", ++ { "GNU/Linux", "GNU/Linux", "Trisquel_64", "Trisquel (64 bit)", + VBOXOSTYPE_Trisquel_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Xandros, "Xandros", +- { "Linux", "Linux", "Xandros", "Xandros", - VBOXOSTYPE_Xandros, VBOXOSHINT_RTCUTC, - 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Dynebolic, "Dyne:bolic", ++ { "GNU/Linux", "GNU/Linux", "Dynebolic", "Dyne:bolic", + VBOXOSTYPE_Dynebolic, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, + 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Xandros_64, "Xandros (64 bit)", +- { "Linux", "Linux", "Xandros_64", "Xandros (64 bit)", - VBOXOSTYPE_Xandros_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC, - 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, -+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Venenux, "Venenux", ++ { "GNU/Linux", "GNU/Linux", "Venenux", "Venenux", + VBOXOSTYPE_Venenux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, + 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Oracle, "Oracle", +- { "Linux", "Linux", "Oracle", "Oracle", - VBOXOSTYPE_Oracle, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE, - 512, 12, 12 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Oracle_64, "Oracle (64 bit)", +- { "Linux", "Linux", "Oracle_64", "Oracle (64 bit)", - VBOXOSTYPE_Oracle_x64, VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC, - 512, 12, 12 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux, "Other Linux", +- { "Linux", "Linux", "Linux", "Other Linux", - VBOXOSTYPE_Linux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET, - 256, 12, 8 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Solaris", "Solaris", SchemaDefs_OSTypeId_Solaris, "Oracle Solaris 10 5/09 and earlier", +- { "Solaris", "Solaris", "Solaris", "Oracle Solaris 10 5/09 and earlier", - VBOXOSTYPE_Solaris, VBOXOSHINT_NONE, - 768, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Solaris", "Solaris", SchemaDefs_OSTypeId_Solaris_64, "Oracle Solaris 10 5/09 and earlier (64 bit)", +- { "Solaris", "Solaris", "Solaris_64", "Oracle Solaris 10 5/09 and earlier (64 bit)", - VBOXOSTYPE_Solaris_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC, - 1536, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Solaris", "Solaris", SchemaDefs_OSTypeId_OpenSolaris, "Oracle Solaris 10 10/09 and later", +- { "Solaris", "Solaris", "OpenSolaris", "Oracle Solaris 10 10/09 and later", - VBOXOSTYPE_OpenSolaris, VBOXOSHINT_USBTABLET, - 768, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Solaris", "Solaris", SchemaDefs_OSTypeId_OpenSolaris_64, "Oracle Solaris 10 10/09 and later (64 bit)", +- { "Solaris", "Solaris", "OpenSolaris_64", "Oracle Solaris 10 10/09 and later (64 bit)", - VBOXOSTYPE_OpenSolaris_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET, - 1536, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA, - StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "BSD", "BSD", SchemaDefs_OSTypeId_FreeBSD, "FreeBSD", +- { "Solaris", "Solaris", "Solaris11_64", "Oracle Solaris 11 (64 bit)", +- VBOXOSTYPE_Solaris11_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET, +- 1536, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA, +- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 }, +- { "BSD", "BSD", "FreeBSD", "FreeBSD", - VBOXOSTYPE_FreeBSD, VBOXOSHINT_NONE, - 128, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "BSD", "BSD", SchemaDefs_OSTypeId_FreeBSD_64, "FreeBSD (64 bit)", +- { "BSD", "BSD", "FreeBSD_64", "FreeBSD (64 bit)", - VBOXOSTYPE_FreeBSD_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC, - 128, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "BSD", "BSD", SchemaDefs_OSTypeId_OpenBSD, "OpenBSD", +- { "BSD", "BSD", "OpenBSD", "OpenBSD", - VBOXOSTYPE_OpenBSD, VBOXOSHINT_HWVIRTEX, - 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "BSD", "BSD", SchemaDefs_OSTypeId_OpenBSD_64, "OpenBSD (64 bit)", +- { "BSD", "BSD", "OpenBSD_64", "OpenBSD (64 bit)", - VBOXOSTYPE_OpenBSD_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC, - 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "BSD", "BSD", SchemaDefs_OSTypeId_NetBSD, "NetBSD", +- { "BSD", "BSD", "NetBSD", "NetBSD", - VBOXOSTYPE_NetBSD, VBOXOSHINT_NONE, - 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "BSD", "BSD", SchemaDefs_OSTypeId_NetBSD_64, "NetBSD (64 bit)", +- { "BSD", "BSD", "NetBSD_64", "NetBSD (64 bit)", - VBOXOSTYPE_NetBSD_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC, - 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "OS2", "IBM OS/2", SchemaDefs_OSTypeId_OS2Warp3, "OS/2 Warp 3", -- VBOXOSTYPE_OS2Warp3, VBOXOSHINT_HWVIRTEX, +- { "OS2", "IBM OS/2", "OS2Warp3", "OS/2 Warp 3", +- VBOXOSTYPE_OS2Warp3, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_FLOPPY, - 48, 4, 1 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "OS2", "IBM OS/2", SchemaDefs_OSTypeId_OS2Warp4, "OS/2 Warp 4", -- VBOXOSTYPE_OS2Warp4, VBOXOSHINT_HWVIRTEX, +- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16 }, +- { "OS2", "IBM OS/2", "OS2Warp4", "OS/2 Warp 4", +- VBOXOSTYPE_OS2Warp4, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_FLOPPY, - 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "OS2", "IBM OS/2", SchemaDefs_OSTypeId_OS2Warp45, "OS/2 Warp 4.5", -- VBOXOSTYPE_OS2Warp45, VBOXOSHINT_HWVIRTEX, -- 96, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "OS2", "IBM OS/2", SchemaDefs_OSTypeId_OS2eCS, "eComStation", +- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16 }, +- { "OS2", "IBM OS/2", "OS2Warp45", "OS/2 Warp 4.5", +- VBOXOSTYPE_OS2Warp45, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_FLOPPY, +- 128, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE, +- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16 }, +- { "OS2", "IBM OS/2", "OS2eCS", "eComStation", - VBOXOSTYPE_ECS, VBOXOSHINT_HWVIRTEX, -- 96, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE, +- 256, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "OS2", "IBM OS/2", SchemaDefs_OSTypeId_OS2, "Other OS/2", -- VBOXOSTYPE_OS2, VBOXOSHINT_HWVIRTEX, +- { "OS2", "IBM OS/2", "OS2", "Other OS/2", +- VBOXOSTYPE_OS2, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_FLOPPY | VBOXOSHINT_NOUSB, - 96, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE, -- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "MacOS", "Mac OS X", SchemaDefs_OSTypeId_MacOS, "Mac OS X Server", +- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16 }, +- { "MacOS", "Mac OS X", "MacOS", "Mac OS X", - VBOXOSTYPE_MacOS, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_USBTABLET, -- 1024, 4, 20 * _1G64, NetworkAdapterType_I82543GC, 0, +- 2048, 4, 20 * _1G64, NetworkAdapterType_I82543GC, 0, - StorageControllerType_ICH6, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA, - ChipsetType_ICH9, AudioControllerType_HDA }, -- { "MacOS", "Mac OS X", SchemaDefs_OSTypeId_MacOS_64, "Mac OS X Server (64 bit)", +- { "MacOS", "Mac OS X", "MacOS_64", "Mac OS X (64 bit)", - VBOXOSTYPE_MacOS_x64, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE | VBOXOSHINT_64BIT | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_USBTABLET, -- 1024, 4, 20 * _1G64, NetworkAdapterType_I82543GC, 0, +- 2048, 4, 20 * _1G64, NetworkAdapterType_I82543GC, 0, - StorageControllerType_ICH6, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA, - ChipsetType_ICH9, AudioControllerType_HDA }, -- { "Other", "Other", SchemaDefs_OSTypeId_DOS, "DOS", -- VBOXOSTYPE_DOS, VBOXOSHINT_NONE, +- { "Other", "Other", "DOS", "DOS", +- VBOXOSTYPE_DOS, VBOXOSHINT_FLOPPY | VBOXOSHINT_NOUSB, - 32, 4, 500 * _1M, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16 }, -- { "Other", "Other", SchemaDefs_OSTypeId_Netware, "Netware", +- { "Other", "Other", "Netware", "Netware", - VBOXOSTYPE_Netware, VBOXOSHINT_HWVIRTEX, - 512, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Other", "Other", SchemaDefs_OSTypeId_L4, "L4", +- { "Other", "Other", "L4", "L4", - VBOXOSTYPE_L4, VBOXOSHINT_NONE, - 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Other", "Other", SchemaDefs_OSTypeId_QNX, "QNX", +- { "Other", "Other", "QNX", "QNX", - VBOXOSTYPE_QNX, VBOXOSHINT_HWVIRTEX, - 512, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 }, -- { "Other", "Other", SchemaDefs_OSTypeId_JRockitVE, "JRockitVE", +- { "Other", "Other", "JRockitVE", "JRockitVE", - VBOXOSTYPE_JRockitVE, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_PAE, - 1024, 4, 8 * _1G64, NetworkAdapterType_I82545EM, 0, StorageControllerType_PIIX4, StorageBus_IDE, - StorageControllerType_BusLogic, StorageBus_SCSI, ChipsetType_PIIX3, AudioControllerType_AC97 }, }; - /** ---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp 2012-07-25 21:44:01.290876720 -0300 -+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp 2012-07-25 22:00:57.819380802 -0300 -@@ -4875,75 +4875,27 @@ + uint32_t Global::cOSTypes = RT_ELEMENTS(Global::sOSTypes); +--- VirtualBox-4.2.0.orig/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp 2012-09-04 09:48:45.000000000 -0300 ++++ VirtualBox-4.2.0/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp 2012-09-19 02:10:41.293426675 -0300 +@@ -4283,76 +4283,27 @@ static const char *kOSTypeIcons [][2] = { {"Other", ":/os_other.png"}, @@ -842,6 +835,7 @@ - {"Solaris_64", ":/os_solaris_64.png"}, - {"OpenSolaris", ":/os_oraclesolaris.png"}, - {"OpenSolaris_64", ":/os_oraclesolaris_64.png"}, +- {"Solaris11_64", ":/os_oraclesolaris_64.png"}, - {"QNX", ":/os_qnx.png"}, - {"MacOS", ":/os_macosx.png"}, - {"MacOS_64", ":/os_macosx_64.png"}, @@ -870,32 +864,9 @@ }; for (uint n = 0; n < SIZEOF_ARRAY (kOSTypeIcons); ++ n) { ---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorWidget.cpp.orig 2012-06-20 10:16:38.000000000 -0300 -+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorWidget.cpp 2012-07-25 22:07:51.232436783 -0300 -@@ -192,17 +192,10 @@ - if (typeIndex != -1) - mCbType->setCurrentIndex (typeIndex); - } -- /* Or select WinXP item for Windows family as default */ -- else if (familyId == "Windows") -+ /* Or select Parabola GNU/Linux-libre item for GNU/Linux family as default */ -+ else if (familyId == "GNU/Linux") - { -- int xpIndex = mCbType->findData ("WindowsXP", RoleTypeID); -- if (xpIndex != -1) -- mCbType->setCurrentIndex (xpIndex); -- } -- /* Or select Ubuntu item for Linux family as default */ -- else if (familyId == "Linux") -- { -- int ubIndex = mCbType->findData ("Ubuntu", RoleTypeID); -+ int ubIndex = mCbType->findData ("Parabola", RoleTypeID); - if (ubIndex != -1) - mCbType->setCurrentIndex (ubIndex); - } ---- VirtualBox-4.1.18.orig/include/VBox/ostypes.h 2012-06-20 10:07:51.000000000 -0300 -+++ VirtualBox-4.1.18/include/VBox/ostypes.h 2012-07-25 23:20:57.322757456 -0300 -@@ -43,77 +43,27 @@ +--- VirtualBox-4.2.0.orig/include/VBox/ostypes.h 2012-09-08 06:35:56.000000000 -0300 ++++ VirtualBox-4.2.0/include/VBox/ostypes.h 2012-09-19 02:20:24.640916587 -0300 +@@ -43,79 +43,27 @@ typedef enum VBOXOSTYPE { VBOXOSTYPE_Unknown = 0, @@ -920,6 +891,7 @@ - VBOXOSTYPE_Win7_x64 = 0x37100, - VBOXOSTYPE_Win8 = 0x38000, - VBOXOSTYPE_Win8_x64 = 0x38100, +- VBOXOSTYPE_Win2k12_x64 = 0x39100, - VBOXOSTYPE_OS2 = 0x40000, - VBOXOSTYPE_OS2Warp3 = 0x41000, - VBOXOSTYPE_OS2Warp4 = 0x42000, @@ -965,6 +937,7 @@ - VBOXOSTYPE_Solaris_x64 = 0x80100, - VBOXOSTYPE_OpenSolaris = 0x81000, - VBOXOSTYPE_OpenSolaris_x64 = 0x81100, +- VBOXOSTYPE_Solaris11_x64 = 0x82100, - VBOXOSTYPE_L4 = 0x90000, - VBOXOSTYPE_QNX = 0xA0000, - VBOXOSTYPE_MacOS = 0xB0000, @@ -994,7 +967,7 @@ /** The bit number which indicates 64-bit or 32-bit. */ #define VBOXOSTYPE_x64_BIT 8 /** The mask which indicates 64-bit. */ -@@ -129,16 +79,11 @@ +@@ -131,16 +79,11 @@ typedef enum VBOXOSFAMILY { VBOXOSFAMILY_Unknown = 0, @@ -1016,204 +989,202 @@ /** The usual 32-bit hack. */ VBOXOSFAMILY_32BIT_HACK = 0x7fffffff } VBOXOSFAMILY; ---- VirtualBox-4.1.18.orig/src/VBox/Main/src-server/ApplianceImpl.cpp 2012-06-20 10:17:35.000000000 -0300 -+++ VirtualBox-4.1.18/src/VBox/Main/src-server/ApplianceImpl.cpp 2012-07-26 01:28:50.033551279 -0300 -@@ -49,94 +49,33 @@ +--- VirtualBox-4.2.0.orig/src/VBox/Main/src-server/ApplianceImpl.cpp 2012-08-03 09:28:30.000000000 -0300 ++++ VirtualBox-4.2.0/src/VBox/Main/src-server/ApplianceImpl.cpp 2012-09-19 04:40:38.226412294 -0300 +@@ -50,94 +50,33 @@ g_osTypes[] = { - { ovf::CIMOSType_CIMOS_Unknown, SchemaDefs_OSTypeId_Other }, -- { ovf::CIMOSType_CIMOS_OS2, SchemaDefs_OSTypeId_OS2 }, -- { ovf::CIMOSType_CIMOS_OS2, SchemaDefs_OSTypeId_OS2Warp3 }, -- { ovf::CIMOSType_CIMOS_OS2, SchemaDefs_OSTypeId_OS2Warp4 }, -- { ovf::CIMOSType_CIMOS_OS2, SchemaDefs_OSTypeId_OS2Warp45 }, -- { ovf::CIMOSType_CIMOS_MSDOS, SchemaDefs_OSTypeId_DOS }, -- { ovf::CIMOSType_CIMOS_WIN3x, SchemaDefs_OSTypeId_Windows31 }, -- { ovf::CIMOSType_CIMOS_WIN95, SchemaDefs_OSTypeId_Windows95 }, -- { ovf::CIMOSType_CIMOS_WIN98, SchemaDefs_OSTypeId_Windows98 }, -- { ovf::CIMOSType_CIMOS_WINNT, SchemaDefs_OSTypeId_WindowsNT }, -- { ovf::CIMOSType_CIMOS_WINNT, SchemaDefs_OSTypeId_WindowsNT4 }, -- { ovf::CIMOSType_CIMOS_NetWare, SchemaDefs_OSTypeId_Netware }, -- { ovf::CIMOSType_CIMOS_NovellOES, SchemaDefs_OSTypeId_Netware }, -- { ovf::CIMOSType_CIMOS_Solaris, SchemaDefs_OSTypeId_Solaris }, -- { ovf::CIMOSType_CIMOS_SunOS, SchemaDefs_OSTypeId_Solaris }, -- { ovf::CIMOSType_CIMOS_FreeBSD, SchemaDefs_OSTypeId_FreeBSD }, -- { ovf::CIMOSType_CIMOS_NetBSD, SchemaDefs_OSTypeId_NetBSD }, -- { ovf::CIMOSType_CIMOS_QNX, SchemaDefs_OSTypeId_QNX }, -- { ovf::CIMOSType_CIMOS_Windows2000, SchemaDefs_OSTypeId_Windows2000 }, -- { ovf::CIMOSType_CIMOS_WindowsMe, SchemaDefs_OSTypeId_WindowsMe }, -- { ovf::CIMOSType_CIMOS_OpenBSD, SchemaDefs_OSTypeId_OpenBSD }, -- { ovf::CIMOSType_CIMOS_WindowsXP, SchemaDefs_OSTypeId_WindowsXP }, -- { ovf::CIMOSType_CIMOS_WindowsXPEmbedded, SchemaDefs_OSTypeId_WindowsXP }, -- { ovf::CIMOSType_CIMOS_WindowsEmbeddedforPointofService, SchemaDefs_OSTypeId_WindowsXP }, -- { ovf::CIMOSType_CIMOS_MicrosoftWindowsServer2003, SchemaDefs_OSTypeId_Windows2003 }, -- { ovf::CIMOSType_CIMOS_MicrosoftWindowsServer2003_64, SchemaDefs_OSTypeId_Windows2003_64 }, -- { ovf::CIMOSType_CIMOS_WindowsXP_64, SchemaDefs_OSTypeId_WindowsXP_64 }, -- { ovf::CIMOSType_CIMOS_WindowsVista, SchemaDefs_OSTypeId_WindowsVista }, -- { ovf::CIMOSType_CIMOS_WindowsVista_64, SchemaDefs_OSTypeId_WindowsVista_64 }, -- { ovf::CIMOSType_CIMOS_MicrosoftWindowsServer2008, SchemaDefs_OSTypeId_Windows2008 }, -- { ovf::CIMOSType_CIMOS_MicrosoftWindowsServer2008_64, SchemaDefs_OSTypeId_Windows2008_64 }, -- { ovf::CIMOSType_CIMOS_FreeBSD_64, SchemaDefs_OSTypeId_FreeBSD_64 }, -- { ovf::CIMOSType_CIMOS_MACOS, SchemaDefs_OSTypeId_MacOS }, -- { ovf::CIMOSType_CIMOS_MACOS, SchemaDefs_OSTypeId_MacOS_64 }, // there is no CIM 64-bit type for this + { ovf::CIMOSType_CIMOS_Unknown, VBOXOSTYPE_Unknown }, +- { ovf::CIMOSType_CIMOS_OS2, VBOXOSTYPE_OS2 }, +- { ovf::CIMOSType_CIMOS_OS2, VBOXOSTYPE_OS2Warp3 }, +- { ovf::CIMOSType_CIMOS_OS2, VBOXOSTYPE_OS2Warp4 }, +- { ovf::CIMOSType_CIMOS_OS2, VBOXOSTYPE_OS2Warp45 }, +- { ovf::CIMOSType_CIMOS_MSDOS, VBOXOSTYPE_DOS }, +- { ovf::CIMOSType_CIMOS_WIN3x, VBOXOSTYPE_Win31 }, +- { ovf::CIMOSType_CIMOS_WIN95, VBOXOSTYPE_Win95 }, +- { ovf::CIMOSType_CIMOS_WIN98, VBOXOSTYPE_Win98 }, +- { ovf::CIMOSType_CIMOS_WINNT, VBOXOSTYPE_WinNT }, +- { ovf::CIMOSType_CIMOS_WINNT, VBOXOSTYPE_WinNT4 }, +- { ovf::CIMOSType_CIMOS_NetWare, VBOXOSTYPE_Netware }, +- { ovf::CIMOSType_CIMOS_NovellOES, VBOXOSTYPE_Netware }, +- { ovf::CIMOSType_CIMOS_Solaris, VBOXOSTYPE_Solaris }, +- { ovf::CIMOSType_CIMOS_SunOS, VBOXOSTYPE_Solaris }, +- { ovf::CIMOSType_CIMOS_FreeBSD, VBOXOSTYPE_FreeBSD }, +- { ovf::CIMOSType_CIMOS_NetBSD, VBOXOSTYPE_NetBSD }, +- { ovf::CIMOSType_CIMOS_QNX, VBOXOSTYPE_QNX }, +- { ovf::CIMOSType_CIMOS_Windows2000, VBOXOSTYPE_Win2k }, +- { ovf::CIMOSType_CIMOS_WindowsMe, VBOXOSTYPE_WinMe }, +- { ovf::CIMOSType_CIMOS_OpenBSD, VBOXOSTYPE_OpenBSD }, +- { ovf::CIMOSType_CIMOS_WindowsXP, VBOXOSTYPE_WinXP }, +- { ovf::CIMOSType_CIMOS_WindowsXPEmbedded, VBOXOSTYPE_WinXP }, +- { ovf::CIMOSType_CIMOS_WindowsEmbeddedforPointofService, VBOXOSTYPE_WinXP }, +- { ovf::CIMOSType_CIMOS_MicrosoftWindowsServer2003, VBOXOSTYPE_Win2k3 }, +- { ovf::CIMOSType_CIMOS_MicrosoftWindowsServer2003_64, VBOXOSTYPE_Win2k3_x64 }, +- { ovf::CIMOSType_CIMOS_WindowsXP_64, VBOXOSTYPE_WinXP_x64 }, +- { ovf::CIMOSType_CIMOS_WindowsVista, VBOXOSTYPE_WinVista }, +- { ovf::CIMOSType_CIMOS_WindowsVista_64, VBOXOSTYPE_WinVista_x64 }, +- { ovf::CIMOSType_CIMOS_MicrosoftWindowsServer2008, VBOXOSTYPE_Win2k8 }, +- { ovf::CIMOSType_CIMOS_MicrosoftWindowsServer2008_64, VBOXOSTYPE_Win2k8_x64 }, +- { ovf::CIMOSType_CIMOS_FreeBSD_64, VBOXOSTYPE_FreeBSD_x64 }, +- { ovf::CIMOSType_CIMOS_MACOS, VBOXOSTYPE_MacOS }, +- { ovf::CIMOSType_CIMOS_MACOS, VBOXOSTYPE_MacOS_x64 }, // there is no CIM 64-bit type for this - - // Linuxes -- { ovf::CIMOSType_CIMOS_RedHatEnterpriseLinux, SchemaDefs_OSTypeId_RedHat }, -- { ovf::CIMOSType_CIMOS_RedHatEnterpriseLinux_64, SchemaDefs_OSTypeId_RedHat_64 }, -- { ovf::CIMOSType_CIMOS_Solaris_64, SchemaDefs_OSTypeId_Solaris_64 }, -- { ovf::CIMOSType_CIMOS_SUSE, SchemaDefs_OSTypeId_OpenSUSE }, -- { ovf::CIMOSType_CIMOS_SLES, SchemaDefs_OSTypeId_OpenSUSE }, -- { ovf::CIMOSType_CIMOS_NovellLinuxDesktop, SchemaDefs_OSTypeId_OpenSUSE }, -- { ovf::CIMOSType_CIMOS_SUSE_64, SchemaDefs_OSTypeId_OpenSUSE_64 }, -- { ovf::CIMOSType_CIMOS_SLES_64, SchemaDefs_OSTypeId_OpenSUSE_64 }, -- { ovf::CIMOSType_CIMOS_LINUX, SchemaDefs_OSTypeId_Linux }, -- { ovf::CIMOSType_CIMOS_LINUX, SchemaDefs_OSTypeId_Linux22 }, -- { ovf::CIMOSType_CIMOS_SunJavaDesktopSystem, SchemaDefs_OSTypeId_Linux }, -- { ovf::CIMOSType_CIMOS_TurboLinux, SchemaDefs_OSTypeId_Turbolinux }, -- { ovf::CIMOSType_CIMOS_TurboLinux_64, SchemaDefs_OSTypeId_Turbolinux_64 }, -- { ovf::CIMOSType_CIMOS_Mandriva, SchemaDefs_OSTypeId_Mandriva }, -- { ovf::CIMOSType_CIMOS_Mandriva_64, SchemaDefs_OSTypeId_Mandriva_64 }, -- { ovf::CIMOSType_CIMOS_Ubuntu, SchemaDefs_OSTypeId_Ubuntu }, -- { ovf::CIMOSType_CIMOS_Ubuntu_64, SchemaDefs_OSTypeId_Ubuntu_64 }, -- { ovf::CIMOSType_CIMOS_Debian, SchemaDefs_OSTypeId_Debian }, -- { ovf::CIMOSType_CIMOS_Debian_64, SchemaDefs_OSTypeId_Debian_64 }, -- { ovf::CIMOSType_CIMOS_Linux_2_4_x, SchemaDefs_OSTypeId_Linux24 }, -- { ovf::CIMOSType_CIMOS_Linux_2_4_x_64, SchemaDefs_OSTypeId_Linux24_64 }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x, SchemaDefs_OSTypeId_Linux26 }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, SchemaDefs_OSTypeId_Linux26_64 }, -- { ovf::CIMOSType_CIMOS_Linux_64, SchemaDefs_OSTypeId_Linux26_64 }, +- { ovf::CIMOSType_CIMOS_RedHatEnterpriseLinux, VBOXOSTYPE_RedHat }, +- { ovf::CIMOSType_CIMOS_RedHatEnterpriseLinux_64, VBOXOSTYPE_RedHat_x64 }, +- { ovf::CIMOSType_CIMOS_Solaris_64, VBOXOSTYPE_Solaris_x64 }, +- { ovf::CIMOSType_CIMOS_SUSE, VBOXOSTYPE_OpenSUSE }, +- { ovf::CIMOSType_CIMOS_SLES, VBOXOSTYPE_OpenSUSE }, +- { ovf::CIMOSType_CIMOS_NovellLinuxDesktop, VBOXOSTYPE_OpenSUSE }, +- { ovf::CIMOSType_CIMOS_SUSE_64, VBOXOSTYPE_OpenSUSE_x64 }, +- { ovf::CIMOSType_CIMOS_SLES_64, VBOXOSTYPE_OpenSUSE_x64 }, +- { ovf::CIMOSType_CIMOS_LINUX, VBOXOSTYPE_Linux }, +- { ovf::CIMOSType_CIMOS_LINUX, VBOXOSTYPE_Linux22 }, +- { ovf::CIMOSType_CIMOS_SunJavaDesktopSystem, VBOXOSTYPE_Linux }, +- { ovf::CIMOSType_CIMOS_TurboLinux, VBOXOSTYPE_Turbolinux }, +- { ovf::CIMOSType_CIMOS_TurboLinux_64, VBOXOSTYPE_Turbolinux_x64 }, +- { ovf::CIMOSType_CIMOS_Mandriva, VBOXOSTYPE_Mandriva }, +- { ovf::CIMOSType_CIMOS_Mandriva_64, VBOXOSTYPE_Mandriva_x64 }, +- { ovf::CIMOSType_CIMOS_Ubuntu, VBOXOSTYPE_Ubuntu }, +- { ovf::CIMOSType_CIMOS_Ubuntu_64, VBOXOSTYPE_Ubuntu_x64 }, +- { ovf::CIMOSType_CIMOS_Debian, VBOXOSTYPE_Debian }, +- { ovf::CIMOSType_CIMOS_Debian_64, VBOXOSTYPE_Debian_x64 }, +- { ovf::CIMOSType_CIMOS_Linux_2_4_x, VBOXOSTYPE_Linux24 }, +- { ovf::CIMOSType_CIMOS_Linux_2_4_x_64, VBOXOSTYPE_Linux24_x64 }, +- { ovf::CIMOSType_CIMOS_Linux_2_6_x, VBOXOSTYPE_Linux26 }, +- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, VBOXOSTYPE_Linux26_x64 }, +- { ovf::CIMOSType_CIMOS_Linux_64, VBOXOSTYPE_Linux26_x64 }, - - // types that we have support for but CIM doesn't -- { ovf::CIMOSType_CIMOS_Linux_2_6_x, SchemaDefs_OSTypeId_ArchLinux }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, SchemaDefs_OSTypeId_ArchLinux_64 }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x, SchemaDefs_OSTypeId_Fedora }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, SchemaDefs_OSTypeId_Fedora_64 }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x, SchemaDefs_OSTypeId_Gentoo }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, SchemaDefs_OSTypeId_Gentoo_64 }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x, SchemaDefs_OSTypeId_Xandros }, -- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, SchemaDefs_OSTypeId_Xandros_64 }, -- { ovf::CIMOSType_CIMOS_Solaris, SchemaDefs_OSTypeId_OpenSolaris }, -- { ovf::CIMOSType_CIMOS_Solaris_64, SchemaDefs_OSTypeId_OpenSolaris_64 }, +- { ovf::CIMOSType_CIMOS_Linux_2_6_x, VBOXOSTYPE_ArchLinux }, +- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, VBOXOSTYPE_ArchLinux_x64 }, +- { ovf::CIMOSType_CIMOS_Linux_2_6_x, VBOXOSTYPE_FedoraCore }, +- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, VBOXOSTYPE_FedoraCore_x64 }, +- { ovf::CIMOSType_CIMOS_Linux_2_6_x, VBOXOSTYPE_Gentoo }, +- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, VBOXOSTYPE_Gentoo_x64 }, +- { ovf::CIMOSType_CIMOS_Linux_2_6_x, VBOXOSTYPE_Xandros }, +- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, VBOXOSTYPE_Xandros_x64 }, +- { ovf::CIMOSType_CIMOS_Solaris, VBOXOSTYPE_OpenSolaris }, +- { ovf::CIMOSType_CIMOS_Solaris_64, VBOXOSTYPE_OpenSolaris_x64 }, - - // types added with CIM 2.25.0 follow: -- { ovf::CIMOSType_CIMOS_WindowsServer2008R2, SchemaDefs_OSTypeId_Windows2008 }, // duplicate, see above --// { ovf::CIMOSType_CIMOS_VMwareESXi = 104, // we can't run ESX in a VM -- { ovf::CIMOSType_CIMOS_Windows7, SchemaDefs_OSTypeId_Windows7 }, -- { ovf::CIMOSType_CIMOS_Windows7, SchemaDefs_OSTypeId_Windows7_64 }, // there is no CIM 64-bit type for this -- { ovf::CIMOSType_CIMOS_CentOS, SchemaDefs_OSTypeId_RedHat }, -- { ovf::CIMOSType_CIMOS_CentOS_64, SchemaDefs_OSTypeId_RedHat_64 }, -- { ovf::CIMOSType_CIMOS_OracleEnterpriseLinux, SchemaDefs_OSTypeId_Oracle }, -- { ovf::CIMOSType_CIMOS_OracleEnterpriseLinux_64, SchemaDefs_OSTypeId_Oracle_64 }, -- { ovf::CIMOSType_CIMOS_eComStation, SchemaDefs_OSTypeId_OS2eCS } +- { ovf::CIMOSType_CIMOS_WindowsServer2008R2, VBOXOSTYPE_Win2k8 }, // duplicate, see above +-// { ovf::CIMOSType_CIMOS_VMwareESXi = 104, // we can't run ESX in a VM +- { ovf::CIMOSType_CIMOS_Windows7, VBOXOSTYPE_Win7 }, +- { ovf::CIMOSType_CIMOS_Windows7, VBOXOSTYPE_Win7_x64 }, // there is no CIM 64-bit type for this +- { ovf::CIMOSType_CIMOS_CentOS, VBOXOSTYPE_RedHat }, +- { ovf::CIMOSType_CIMOS_CentOS_64, VBOXOSTYPE_RedHat_x64 }, +- { ovf::CIMOSType_CIMOS_OracleEnterpriseLinux, VBOXOSTYPE_Oracle }, +- { ovf::CIMOSType_CIMOS_OracleEnterpriseLinux_64, VBOXOSTYPE_Oracle_x64 }, +- { ovf::CIMOSType_CIMOS_eComStation, VBOXOSTYPE_ECS } - - // there are no CIM types for these, so these turn to "other" on export: -- // SchemaDefs_OSTypeId_OpenBSD -- // SchemaDefs_OSTypeId_OpenBSD_64 -- // SchemaDefs_OSTypeId_NetBSD -- // SchemaDefs_OSTypeId_NetBSD_64 +- // VBOXOSTYPE_OpenBSD +- // VBOXOSTYPE_OpenBSD_x64 +- // VBOXOSTYPE_NetBSD +- // VBOXOSTYPE_NetBSD_x64 + + // Custom OS -+ { ovf::CIMOSType_CIMOS_GNU, SchemaDefs_OSTypeId_GNU }, -+ { ovf::CIMOSType_CIMOS_GNU_64, SchemaDefs_OSTypeId_GNU_64 }, -+ { ovf::CIMOSType_CIMOS_GNUHurd, SchemaDefs_OSTypeId_GNUHurd }, -+ { ovf::CIMOSType_CIMOS_GNULinux, SchemaDefs_OSTypeId_GNULinux }, -+ { ovf::CIMOSType_CIMOS_GNULinux_64, SchemaDefs_OSTypeId_GNULinux_64 }, ++ { ovf::CIMOSType_CIMOS_GNU, VBOXOSTYPE_GNU }, ++ { ovf::CIMOSType_CIMOS_GNU_64, VBOXOSTYPE_GNU_x64 }, ++ { ovf::CIMOSType_CIMOS_GNUHurd, VBOXOSTYPE_GNUHurd }, ++ { ovf::CIMOSType_CIMOS_GNULinux, VBOXOSTYPE_GNULinux }, ++ { ovf::CIMOSType_CIMOS_GNULinux_64, VBOXOSTYPE_GNULinux_x64 }, + + // GNU/Linux free distros -+ { ovf::CIMOSType_CIMOS_gNewSense, SchemaDefs_OSTypeId_gNewSense }, -+ { ovf::CIMOSType_CIMOS_gNewSense_64, SchemaDefs_OSTypeId_gNewSense_64 }, -+ { ovf::CIMOSType_CIMOS_Dragora, SchemaDefs_OSTypeId_Dragora }, -+ { ovf::CIMOSType_CIMOS_Dragora_64, SchemaDefs_OSTypeId_Dragora_64 }, -+ { ovf::CIMOSType_CIMOS_Musix, SchemaDefs_OSTypeId_Musix }, -+ { ovf::CIMOSType_CIMOS_Musix_64, SchemaDefs_OSTypeId_Musix_64 }, -+ { ovf::CIMOSType_CIMOS_Trisquel, SchemaDefs_OSTypeId_Trisquel }, -+ { ovf::CIMOSType_CIMOS_Trisquel_64, SchemaDefs_OSTypeId_Trisquel_64 }, -+ { ovf::CIMOSType_CIMOS_Dynebolic, SchemaDefs_OSTypeId_Dynebolic }, -+ { ovf::CIMOSType_CIMOS_Venenux, SchemaDefs_OSTypeId_Venenux }, ++ { ovf::CIMOSType_CIMOS_gNewSense, VBOXOSTYPE_gNewSense }, ++ { ovf::CIMOSType_CIMOS_gNewSense_64, VBOXOSTYPE_gNewSense_x64 }, ++ { ovf::CIMOSType_CIMOS_Dragora, VBOXOSTYPE_Dragora }, ++ { ovf::CIMOSType_CIMOS_Dragora_64, VBOXOSTYPE_Dragora_x64 }, ++ { ovf::CIMOSType_CIMOS_Musix, VBOXOSTYPE_Musix }, ++ { ovf::CIMOSType_CIMOS_Musix_64, VBOXOSTYPE_Musix_x64 }, ++ { ovf::CIMOSType_CIMOS_Trisquel, VBOXOSTYPE_Trisquel }, ++ { ovf::CIMOSType_CIMOS_Trisquel_64, VBOXOSTYPE_Trisquel_x64 }, ++ { ovf::CIMOSType_CIMOS_Dynebolic, VBOXOSTYPE_Dynebolic }, ++ { ovf::CIMOSType_CIMOS_Venenux, VBOXOSTYPE_Venenux }, + + // GNU/Linux free distros that we have support for but CIM doesn't -+ { ovf::CIMOSType_CIMOS_GNULinux, SchemaDefs_OSTypeId_Parabola }, -+ { ovf::CIMOSType_CIMOS_GNULinux_64, SchemaDefs_OSTypeId_Parabola_64 }, -+ { ovf::CIMOSType_CIMOS_GNULinux, SchemaDefs_OSTypeId_Blag }, -+ { ovf::CIMOSType_CIMOS_GNULinux_64, SchemaDefs_OSTypeId_Blag_64 }, -+ { ovf::CIMOSType_CIMOS_GNULinux, SchemaDefs_OSTypeId_Ututo }, -+ { ovf::CIMOSType_CIMOS_GNULinux_64, SchemaDefs_OSTypeId_Ututo_64 }, ++ { ovf::CIMOSType_CIMOS_GNULinux, VBOXOSTYPE_Parabola }, ++ { ovf::CIMOSType_CIMOS_GNULinux_64, VBOXOSTYPE_Parabola_x64 }, ++ { ovf::CIMOSType_CIMOS_GNULinux, VBOXOSTYPE_Blag }, ++ { ovf::CIMOSType_CIMOS_GNULinux_64, VBOXOSTYPE_Blag_x64 }, ++ { ovf::CIMOSType_CIMOS_GNULinux, VBOXOSTYPE_Ututo }, ++ { ovf::CIMOSType_CIMOS_GNULinux_64, VBOXOSTYPE_Ututo_x64 }, }; -@@ -150,53 +89,34 @@ +@@ -151,53 +90,32 @@ /* These are the 32-Bit ones. They are sorted by priority. */ static const osTypePattern g_osTypesPattern[] = { -- {"Windows NT", SchemaDefs_OSTypeId_WindowsNT4}, -- {"Windows XP", SchemaDefs_OSTypeId_WindowsXP}, -- {"Windows 2000", SchemaDefs_OSTypeId_Windows2000}, -- {"Windows 2003", SchemaDefs_OSTypeId_Windows2003}, -- {"Windows Vista", SchemaDefs_OSTypeId_WindowsVista}, -- {"Windows 2008", SchemaDefs_OSTypeId_Windows2008}, -- {"SUSE", SchemaDefs_OSTypeId_OpenSUSE}, -- {"Novell", SchemaDefs_OSTypeId_OpenSUSE}, -- {"Red Hat", SchemaDefs_OSTypeId_RedHat}, -- {"Mandriva", SchemaDefs_OSTypeId_Mandriva}, -- {"Ubuntu", SchemaDefs_OSTypeId_Ubuntu}, -- {"Debian", SchemaDefs_OSTypeId_Debian}, -- {"QNX", SchemaDefs_OSTypeId_QNX}, -- {"Linux 2.4", SchemaDefs_OSTypeId_Linux24}, -- {"Linux 2.6", SchemaDefs_OSTypeId_Linux26}, -- {"Linux", SchemaDefs_OSTypeId_Linux}, -- {"OpenSolaris", SchemaDefs_OSTypeId_OpenSolaris}, -- {"Solaris", SchemaDefs_OSTypeId_OpenSolaris}, -- {"FreeBSD", SchemaDefs_OSTypeId_FreeBSD}, -- {"NetBSD", SchemaDefs_OSTypeId_NetBSD}, -- {"Windows 95", SchemaDefs_OSTypeId_Windows95}, -- {"Windows 98", SchemaDefs_OSTypeId_Windows98}, -- {"Windows Me", SchemaDefs_OSTypeId_WindowsMe}, -- {"Windows 3.", SchemaDefs_OSTypeId_Windows31}, -- {"DOS", SchemaDefs_OSTypeId_DOS}, -- {"OS2", SchemaDefs_OSTypeId_OS2} -+ -+ {"Parabola GNU/Linux-libre", SchemaDefs_OSTypeId_Parabola}, -+ {"gNewSense", SchemaDefs_OSTypeId_gNewSense}, -+ {"Blag Linux and GNU", SchemaDefs_OSTypeId_Blag}, -+ {"Dragora", SchemaDefs_OSTypeId_Dragora}, -+ {"Ututo XS", SchemaDefs_OSTypeId_Ututo}, -+ {"Musix", SchemaDefs_OSTypeId_Musix}, -+ {"Trisquel", SchemaDefs_OSTypeId_Trisquel}, -+ {"Dyne:bolic", SchemaDefs_OSTypeId_Dynebolic}, -+ {"Venenux", SchemaDefs_OSTypeId_Venenux}, -+ {"GNU", SchemaDefs_OSTypeId_GNU}, -+ {"GNU-Hurd", SchemaDefs_OSTypeId_GNUHurd}, -+ {"GNU/Linux", SchemaDefs_OSTypeId_GNULinux}, -+ +- {"Windows NT", VBOXOSTYPE_WinNT4}, +- {"Windows XP", VBOXOSTYPE_WinXP}, +- {"Windows 2000", VBOXOSTYPE_Win2k}, +- {"Windows 2003", VBOXOSTYPE_Win2k3}, +- {"Windows Vista", VBOXOSTYPE_WinVista}, +- {"Windows 2008", VBOXOSTYPE_Win2k8}, +- {"SUSE", VBOXOSTYPE_OpenSUSE}, +- {"Novell", VBOXOSTYPE_OpenSUSE}, +- {"Red Hat", VBOXOSTYPE_RedHat}, +- {"Mandriva", VBOXOSTYPE_Mandriva}, +- {"Ubuntu", VBOXOSTYPE_Ubuntu}, +- {"Debian", VBOXOSTYPE_Debian}, +- {"QNX", VBOXOSTYPE_QNX}, +- {"Linux 2.4", VBOXOSTYPE_Linux24}, +- {"Linux 2.6", VBOXOSTYPE_Linux26}, +- {"Linux", VBOXOSTYPE_Linux}, +- {"OpenSolaris", VBOXOSTYPE_OpenSolaris}, +- {"Solaris", VBOXOSTYPE_OpenSolaris}, +- {"FreeBSD", VBOXOSTYPE_FreeBSD}, +- {"NetBSD", VBOXOSTYPE_NetBSD}, +- {"Windows 95", VBOXOSTYPE_Win95}, +- {"Windows 98", VBOXOSTYPE_Win98}, +- {"Windows Me", VBOXOSTYPE_WinMe}, +- {"Windows 3.", VBOXOSTYPE_Win31}, +- {"DOS", VBOXOSTYPE_DOS}, +- {"OS2", VBOXOSTYPE_OS2} ++ {"Parabola GNU/Linux-libre", VBOXOSTYPE_Parabola}, ++ {"gNewSense", VBOXOSTYPE_gNewSense}, ++ {"Blag Linux and GNU", VBOXOSTYPE_Blag}, ++ {"Dragora", VBOXOSTYPE_Dragora}, ++ {"Ututo XS", VBOXOSTYPE_Ututo}, ++ {"Musix", VBOXOSTYPE_Musix}, ++ {"Trisquel", VBOXOSTYPE_Trisquel}, ++ {"Dyne:bolic", VBOXOSTYPE_Dynebolic}, ++ {"Venenux", VBOXOSTYPE_Venenux}, ++ {"GNU", VBOXOSTYPE_GNU}, ++ {"GNU-Hurd", VBOXOSTYPE_GNUHurd}, ++ {"GNU/Linux", VBOXOSTYPE_GNULinux}, }; /* These are the 64-Bit ones. They are sorted by priority. */ static const osTypePattern g_osTypesPattern64[] = { -- {"Windows XP", SchemaDefs_OSTypeId_WindowsXP_64}, -- {"Windows 2003", SchemaDefs_OSTypeId_Windows2003_64}, -- {"Windows Vista", SchemaDefs_OSTypeId_WindowsVista_64}, -- {"Windows 2008", SchemaDefs_OSTypeId_Windows2008_64}, -- {"SUSE", SchemaDefs_OSTypeId_OpenSUSE_64}, -- {"Novell", SchemaDefs_OSTypeId_OpenSUSE_64}, -- {"Red Hat", SchemaDefs_OSTypeId_RedHat_64}, -- {"Mandriva", SchemaDefs_OSTypeId_Mandriva_64}, -- {"Ubuntu", SchemaDefs_OSTypeId_Ubuntu_64}, -- {"Debian", SchemaDefs_OSTypeId_Debian_64}, -- {"Linux 2.4", SchemaDefs_OSTypeId_Linux24_64}, -- {"Linux 2.6", SchemaDefs_OSTypeId_Linux26_64}, -- {"Linux", SchemaDefs_OSTypeId_Linux26_64}, -- {"OpenSolaris", SchemaDefs_OSTypeId_OpenSolaris_64}, -- {"Solaris", SchemaDefs_OSTypeId_OpenSolaris_64}, -- {"FreeBSD", SchemaDefs_OSTypeId_FreeBSD_64}, -+ {"Parabola GNU/Linux-libre", SchemaDefs_OSTypeId_Parabola_64}, -+ {"gNewSense", SchemaDefs_OSTypeId_gNewSense_64}, -+ {"Blag Linux and GNU", SchemaDefs_OSTypeId_Blag_64}, -+ {"Dragora", SchemaDefs_OSTypeId_Dragora_64}, -+ {"Ututo XS", SchemaDefs_OSTypeId_Ututo_64}, -+ {"Musix", SchemaDefs_OSTypeId_Musix_64}, -+ {"Trisquel", SchemaDefs_OSTypeId_Trisquel_64}, -+ {"GNU", SchemaDefs_OSTypeId_GNU_64}, -+ {"GNU/Linux", SchemaDefs_OSTypeId_GNULinux_64}, +- {"Windows XP", VBOXOSTYPE_WinXP_x64}, +- {"Windows 2003", VBOXOSTYPE_Win2k3_x64}, +- {"Windows Vista", VBOXOSTYPE_WinVista_x64}, +- {"Windows 2008", VBOXOSTYPE_Win2k8_x64}, +- {"SUSE", VBOXOSTYPE_OpenSUSE_x64}, +- {"Novell", VBOXOSTYPE_OpenSUSE_x64}, +- {"Red Hat", VBOXOSTYPE_RedHat_x64}, +- {"Mandriva", VBOXOSTYPE_Mandriva_x64}, +- {"Ubuntu", VBOXOSTYPE_Ubuntu_x64}, +- {"Debian", VBOXOSTYPE_Debian_x64}, +- {"Linux 2.4", VBOXOSTYPE_Linux24_x64}, +- {"Linux 2.6", VBOXOSTYPE_Linux26_x64}, +- {"Linux", VBOXOSTYPE_Linux26_x64}, +- {"OpenSolaris", VBOXOSTYPE_OpenSolaris_x64}, +- {"Solaris", VBOXOSTYPE_OpenSolaris_x64}, +- {"FreeBSD", VBOXOSTYPE_FreeBSD_x64}, ++ {"Parabola GNU/Linux-libre", VBOXOSTYPE_Parabola_x64}, ++ {"gNewSense", VBOXOSTYPE_gNewSense_x64}, ++ {"Blag Linux and GNU", VBOXOSTYPE_Blag_x64}, ++ {"Dragora", VBOXOSTYPE_Dragora_x64}, ++ {"Ututo XS", VBOXOSTYPE_Ututo_x64}, ++ {"Musix", VBOXOSTYPE_Musix_x64}, ++ {"Trisquel", VBOXOSTYPE_Trisquel_x64}, ++ {"GNU", VBOXOSTYPE_GNU_x64}, ++ {"GNU/Linux", VBOXOSTYPE_GNULinux_x64}, }; /** @@ -1381,3 +1352,14 @@ #endif rc = VBoxGuestInitDevExt(&g_DevExt, g_IOPortBase, +--- VirtualBox-4.2.0.orig/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp 2012-07-18 05:58:09.000000000 -0300 ++++ VirtualBox-4.2.0/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp 2012-09-18 22:43:54.956086896 -0300 +@@ -141,7 +141,7 @@ + #ifdef VBOX_WITH_VIDEOHWACCEL + /* Check if 2D video acceleration supported by the guest OS type: */ + QString strguestOSTypeFamily = m_guestOSType.GetFamilyId(); +- m_f2DVideoAccelerationSupported = strguestOSTypeFamily == "Windows"; ++ m_f2DVideoAccelerationSupported = strguestOSTypeFamily == "Other"; + #endif /* VBOX_WITH_VIDEOHWACCEL */ + #ifdef VBOX_WITH_CRHGSMI + /* Check if WDDM mode supported by the guest OS type: */ diff --git a/libre/virtualbox-libre/libre.patch b/libre/virtualbox-libre/libre.patch index e51d0c0a7..41a34fc84 100755 --- a/libre/virtualbox-libre/libre.patch +++ b/libre/virtualbox-libre/libre.patch @@ -1,5 +1,5 @@ ---- VirtualBox-4.1.18.orig/Config.kmk 2012-07-24 16:38:43.981310996 -0300 -+++ VirtualBox-4.1.18/Config.kmk 2012-07-24 16:38:44.001309865 -0300 +--- VirtualBox-4.2.0.orig/Config.kmk 2012-09-13 05:26:16.000000000 -0300 ++++ VirtualBox-4.2.0/Config.kmk 2012-09-18 21:35:33.118487052 -0300 @@ -56,9 +56,6 @@ PROPS_SYSMODS_ACCUMULATE_L += INTERMEDIATES PROPS_MISCBINS_ACCUMULATE_L += INTERMEDIATES @@ -10,7 +10,7 @@ # Install paths ## @todo This will change after 4.1 is branched off! # What is now 'bin' and 'lib' will be moved down under 'staged/', except on -@@ -125,9 +122,6 @@ +@@ -129,9 +126,6 @@ endif INST_DOC = doc/ @@ -20,7 +20,7 @@ INST_PACKAGES = packages/ VBOX_PATH_SDK = $(patsubst %/,%,$(PATH_STAGE)/$(INST_SDK)) -@@ -136,7 +130,6 @@ +@@ -140,7 +134,6 @@ VBOX_PATH_ADDITIONS = $(patsubst %/,%,$(PATH_STAGE)/$(INST_ADDITIONS)) VBOX_PATH_ADDITIONS_ISO = $(patsubst %/,%,$(PATH_STAGE)/$(INST_ADDITIONS_ISO)) VBOX_PATH_ADDITIONS_LIB = $(patsubst %/,%,$(PATH_STAGE)/$(INST_ADDITIONS_LIB)) @@ -28,7 +28,7 @@ VBOX_PATH_PACKAGES = $(patsubst %/,%,$(PATH_STAGE)/$(INST_PACKAGES)) -@@ -208,7 +201,6 @@ +@@ -215,7 +208,6 @@ export VBOX_ADDITIONS_SH_MODE = release export VBOX_DOCUMENTATION_SH_MODE = release export VBOX_EFI_SH_MODE = release @@ -36,7 +36,7 @@ endif # Some info on the vendor -@@ -361,8 +353,6 @@ +@@ -368,8 +360,6 @@ VBOX_WITH_USB = 1 # Enable the USB 1.1 controller plus virtual USB HID devices. VBOX_WITH_VUSB = 1 @@ -45,7 +45,7 @@ # Enable the ISCSI feature. VBOX_WITH_ISCSI = 1 # Enable INIP support in the ISCSI feature. -@@ -430,9 +420,6 @@ +@@ -439,9 +429,6 @@ ifdef VBOX_WITH_USB VBOX_WITH_VUSB = 1 endif @@ -55,10 +55,11 @@ ifdef VBOX_WITH_PCI_PASSTHROUGH VBOX_WITH_PCI_PASSTHROUGH_IMPL = 1 endif -@@ -591,15 +578,6 @@ +@@ -609,17 +596,6 @@ + endif ## @} - +- -## @name Extension pack -## @{ -# Enables the extension pack feature. @@ -68,10 +69,11 @@ -# Enables building+packing the Oracle VM VirtualBox Extension Pack, includes VBOX_WITH_EXTPACK_PUEL -VBOX_WITH_EXTPACK_PUEL_BUILD = 1 -## @} - +- ## @name Misc ## @{ -@@ -777,14 +755,6 @@ + # Enable Seamless mode +@@ -810,14 +786,6 @@ # Skip stuff. # @@ -86,7 +88,7 @@ # VBOX_QUICK can be used by core developers to speed to the build ifdef VBOX_QUICK # undefine variables by assigning blank. -@@ -848,7 +818,6 @@ +@@ -872,7 +840,6 @@ VBOX_WITH_TESTSUITE= VBOX_WITH_QTGUI= VBOX_WITH_USB= @@ -94,7 +96,7 @@ VBOX_WITH_DOCS= VBOX_WITH_PDM_ASYNC_COMPLETION= VBOX_WITH_KCHMVIEWER= -@@ -870,7 +839,6 @@ +@@ -894,7 +861,6 @@ VBOX_WITH_CROGL= VBOX_WITH_DEBUGGER= VBOX_WITH_DOCS= @@ -102,7 +104,7 @@ VBOX_WITH_HARDENING= VBOX_WITH_HEADLESS= VBOX_WITH_HGCM= -@@ -952,9 +920,6 @@ +@@ -985,9 +951,6 @@ # ifdef VBOX_OSE VBOX_WITH_VRDP= @@ -112,7 +114,7 @@ VBOX_WITH_PCI_PASSTHROUGH_IMPL= VBOX_WITH_OS2_ADDITIONS_BIN= VBOX_WITH_SECURELABEL= -@@ -1082,10 +1047,6 @@ +@@ -1118,10 +1081,6 @@ VBOX_WITH_KCHMVIEWER= endif @@ -123,17 +125,17 @@ # # Mark OSE builds clearly, helps figuring out limitations more easily. # -@@ -1679,9 +1640,6 @@ - # biossums (set BIOS checksums) - VBOX_BIOSSUMS ?= $(PATH_OBJ)/biossums/biossums$(HOSTSUFF_EXE) +@@ -1744,9 +1703,6 @@ + # bin2c (convert binary files into C arrays) + VBOX_BIN2C ?= $(PATH_OBJ)/bin2c/bin2c$(HOSTSUFF_EXE) -# RTManifest (extension pack manifest utility) -VBOX_RTMANIFEST ?= $(PATH_OBJ)/bldRTManifest/bldRTManifest$(HOSTSUFF_EXE) - - # filesplitter (splits java files) - VBOX_FILESPLIT ?= $(PATH_OBJ)/filesplitter/filesplitter$(HOSTSUFF_EXE) + # VBoxCmp (simple /bin/cmp with more sensible output) + VBOX_VBOXCMP ?= $(PATH_OBJ)/VBoxCmp/VBoxCmp$(HOSTSUFF_EXE) -@@ -2461,13 +2419,6 @@ +@@ -2638,13 +2594,6 @@ SDK_VBOX_OPENSSL2_LIBS = $(NO_SUCH_VARIABLE) endif @@ -147,11 +149,10 @@ SDK_VBOX_BLD_OPENSSL = . SDK_VBOX_BLD_OPENSSL_EXTENDS = VBOX_OPENSSL SDK_VBOX_BLD_OPENSSL_LIBS ?= \ -@@ -3817,100 +3768,6 @@ - endif +@@ -4100,99 +4049,6 @@ TEMPLATE_VBOXMAINCLIENTDLL_LDFLAGS.darwin = $(filter-out -bind_at_load,$(TEMPLATE_VBOXMAINCLIENTEXE_LDFLAGS.darwin)) -- + - -# -# Templates used for building the extension packs. @@ -248,9 +249,9 @@ # # Qt 4 # Qt 4 ---- VirtualBox-4.1.18.orig/Makefile.kmk 2012-07-24 17:16:47.078929150 -0300 -+++ VirtualBox-4.1.18/Makefile.kmk 2012-07-24 17:16:47.125592981 -0300 -@@ -446,7 +446,6 @@ +--- VirtualBox-4.2.0.orig/Makefile.kmk 2012-08-29 11:13:46.000000000 -0300 ++++ VirtualBox-4.2.0/Makefile.kmk 2012-09-18 23:43:54.750454776 -0300 +@@ -378,7 +378,6 @@ include/VBox \ include/VBox/vmm \ include/VBox/com \ @@ -258,12 +259,10 @@ include/VBox/HostServices \ include/VBox/GuestHost \ include/VBox/HGSMI \ -@@ -862,191 +861,6 @@ - additions-build-linux.x86.combined \ - additions-packing +@@ -990,200 +989,6 @@ -- --# + + # -# Build the extension packs, all of them. -# -# This is tailored (hardcoded) for the extension pack build box. @@ -325,16 +324,18 @@ -ifeq ($(KBUILD_TARGET),win) - + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) -else -- $(call MSG_L1,Building Windows/amd64 extension packs) -- $(VBOX_KMK_TIME) ssh vbox@192.168.27.6 " echo $@ && cd e:/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_EXTPACKS_BUILD.amd64) all" +- $(call VBOX_BLD_VM_MSG_BEGIN,Windows/amd64 extension packs) +- $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_WIN_AMD64_IP) " echo $@ && cd e:/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_EXTPACKS_BUILD.amd64) all" +- $(call VBOX_BLD_VM_MSG_END__,Windows/amd64 extension packs) -endif - -extpacks-build-win.x86: -ifeq ($(KBUILD_TARGET),win) - + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) -else -- $(call MSG_L1,Building Windows/x86 extension packs) -- $(VBOX_KMK_TIME) ssh vbox@192.168.27.16 " echo $@ && cd e:/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_EXTPACKS_BUILD.x86) all" +- $(call VBOX_BLD_VM_MSG_BEGIN,Windows/x86 extension packs) +- $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_WIN_X86_IP) " echo $@ && cd e:/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_EXTPACKS_BUILD.x86) all" +- $(call VBOX_BLD_VM_MSG_END__,Windows/x86 extension packs) -endif - -ifeq ($(KBUILD_TARGET),solaris) @@ -347,17 +348,19 @@ -else -# Serialize 32-bit and 64-bit ASSUMING the same VM builds both. -extpacks-build-solaris.rsync-into-vm: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) -- $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,solaris,*) . 192.168.27.4:/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) +- $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,solaris,*) . $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) - -extpacks-build-solaris.build-it: extpacks-build-solaris.rsync-into-vm -- $(call MSG_L1,Building Solaris/amd64 extension packs) -- $(VBOX_KMK_TIME) ssh vbox@192.168.27.4 " echo $@/amd64 && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all" -- $(call MSG_L1,Building Solaris/x86 extension packs) -- $(VBOX_KMK_TIME) ssh vbox@192.168.27.4 " echo $@/x86 && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all" +- $(call VBOX_BLD_VM_MSG_BEGIN,Solaris/amd64 extension packs) +- $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_SOLARIS_IP) " echo $@/amd64 && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all" +- $(call VBOX_BLD_VM_MSG_END__,Solaris/amd64 extension packs) +- $(call VBOX_BLD_VM_MSG_BEGIN,Solaris/x86 extension packs) +- $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_SOLARIS_IP) " echo $@/x86 && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all" +- $(call VBOX_BLD_VM_MSG_END__,Solaris/x86 extension packs) - -extpacks-build-solaris.rsync-out-of-vm: extpacks-build-solaris.build-it -- $(VBOX_KMK_TIME) rsync -a --delete 192.168.27.4:/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/solaris.x86 out/ -- $(VBOX_KMK_TIME) rsync -a --delete 192.168.27.4:/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/solaris.amd64 out/ +- $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/solaris.x86 out/ +- $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/solaris.amd64 out/ - -.NOTPARALLEL: extpacks-build-solaris.rsync-out-of-vm extpacks-build-solaris.rsync-into-vm -.PHONY: extpacks-build-solaris.rsync-out-of-vm extpacks-build-solaris.rsync-into-vm extpacks-build-solaris.build-it @@ -370,59 +373,65 @@ -#ifeq ($(KBUILD_TARGET),os2) -# + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) -#else --# $(VBOX_KMK_TIME) ssh vbox@192.168.27.3 " cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) " +-# $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_OS2_IP) " cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) " -#endif - -extpacks-build-linux.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) -ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),linux.amd64) - + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) -else -- $(call MSG_L1,Building Linux/amd64 extension packs) -- $(VBOX_KMK_TIME) ssh vbox@192.168.27.12 " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all" +- $(call VBOX_BLD_VM_MSG_BEGIN,Linux/amd64 extension packs) +- $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_LNX_AMD64_IP) " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all" +- $(call VBOX_BLD_VM_MSG_END__,Linux/amd64 extension packs) -endif - -extpacks-build-linux.x86: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) -ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),linux.x86) - + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) -else -- $(call MSG_L1,Building Linux/x86 extension packs) -- $(VBOX_KMK_TIME) ssh vbox@192.168.27.11 " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all" +- $(call VBOX_BLD_VM_MSG_BEGIN,Linux/x86 extension packs) +- $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_LNX_NEW_X86_IP) " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all" +- $(call VBOX_BLD_VM_MSG_END__,Linux/x86 extension packs) -endif - -extpacks-build-freebsd.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) -#ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),freebsd.amd64) -# + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) -#else --# $(call MSG_L1,Building FreeBSD/amd64 extension packs) --# $(VBOX_KMK_TIME) ssh vbox@192.168.27.17 " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all" +-# $(call VBOX_BLD_VM_MSG_BEGIN,FreeBSD/amd64 extension packs) +-# $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_FBSD_AMD64_IP) " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all" +-# $(call VBOX_BLD_VM_MSG_END__,FreeBSD/amd64 extension packs) -#endif - -extpacks-build-freebsd.x86: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) -#ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),freebsd.x86) -# + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) -#else --# $(call MSG_L1,Building FreeBSD/x86 extension packs) --# $(VBOX_KMK_TIME) ssh vbox@192.168.27.7 " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all" +-# $(call VBOX_BLD_VM_MSG_BEGIN,FreeBSD/x86 extension packs) +-# $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_FBSD_X86_IP) " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all" +-# $(call VBOX_BLD_VM_MSG_END__,FreeBSD/x86 extension packs) -#endif - -extpacks-build-darwin.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) -ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.amd64) - + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) -else -- $(call MSG_L1,Building Darwin/amd64 extension packs) -- $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,darwin,amd64) . 192.168.27.15:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) -- $(VBOX_KMK_TIME) ssh vbox@192.168.27.15 " echo $@ && cd /Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all" -- $(VBOX_KMK_TIME) rsync -am -v --delete 192.168.27.15:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/darwin.amd64 out/ +- $(call VBOX_BLD_VM_MSG_BEGIN,Darwin/amd64 extension packs) +- $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,darwin,amd64) . $(VBOX_BLD_VM_DARWIN_AMD64_IP):/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) +- $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_DARWIN_AMD64_IP) " echo $@ && cd /Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all" +- $(VBOX_KMK_TIME) rsync -am -v --delete $(VBOX_BLD_VM_DARWIN_AMD64_IP):/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/darwin.amd64 out/ +- $(call VBOX_BLD_VM_MSG_END__,Darwin/amd64 extension packs) -endif - -extpacks-build-darwin.x86: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST) -ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.x86) - + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK) -else -- $(call MSG_L1,Building Darwin/x86 extension packs) -- $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,darwin,x86) . 192.168.27.5:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) -- $(VBOX_KMK_TIME) ssh vbox@192.168.27.5 " echo $@ && cd /Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all" -- $(VBOX_KMK_TIME) rsync -am -v --delete 192.168.27.5:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/darwin.x86 out/ +- $(call VBOX_BLD_VM_MSG_BEGIN,Darwin/x86 extension packs) +- $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,darwin,x86) . $(VBOX_BLD_VM_DARWIN_X86_IP):/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) +- $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_DARWIN_X86_IP) " echo $@ && cd /Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all" +- $(VBOX_KMK_TIME) rsync -am -v --delete $(VBOX_BLD_VM_DARWIN_X86_IP):/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/darwin.x86 out/ +- $(call VBOX_BLD_VM_MSG_END__,Darwin/x86 extension packs) -endif - - @@ -447,9 +456,10 @@ - extpacks-packing - - - # +-# # Build the test suite, all of it. # + # This is currently tailored (hardcoded) for the additions build box just like --- VirtualBox-4.1.18.orig/src/VBox/Devices/build/VBoxDD.cpp 2012-06-20 10:15:51.000000000 -0300 +++ VirtualBox-4.1.18/src/VBox/Devices/build/VBoxDD.cpp 2012-07-24 16:18:03.964493454 -0300 @@ -132,11 +132,6 @@ @@ -474,10 +484,10 @@ extern const PDMDEVREG g_DeviceACPI; extern const PDMDEVREG g_DeviceDMA; extern const PDMDEVREG g_DeviceFloppyController; ---- VirtualBox-4.1.18.orig/src/VBox/Main/include/ExtPackManagerImpl.h 2012-06-20 10:17:33.000000000 -0300 -+++ /dev/null 2012-07-24 14:48:18.638572110 -0300 -@@ -1,245 +0,0 @@ --/* $Id: ExtPackManagerImpl.h $ */ +--- VirtualBox-4.2.0.orig/src/VBox/Main/include/ExtPackManagerImpl.h 2012-03-13 11:51:50.000000000 -0300 ++++ /dev/null 2012-09-18 22:18:48.866734195 -0300 +@@ -1,247 +0,0 @@ +-/* $Id: ExtPackManagerImpl.h 39878 2012-01-25 16:30:07Z vboxsync $ */ -/** @file - * VirtualBox Main - interface for Extension Packs, VBoxSVC & VBoxC. - */ @@ -533,6 +543,7 @@ - STDMETHOD(COMGETTER(Description))(BSTR *a_pbstrDescription); - STDMETHOD(COMGETTER(Version))(BSTR *a_pbstrVersion); - STDMETHOD(COMGETTER(Revision))(ULONG *a_puRevision); +- STDMETHOD(COMGETTER(Edition))(BSTR *a_pbstrEdition); - STDMETHOD(COMGETTER(VRDEModule))(BSTR *a_pbstrVrdeModule); - STDMETHOD(COMGETTER(PlugIns))(ComSafeArrayOut(IExtPackPlugIn *, a_paPlugIns)); - STDMETHOD(COMGETTER(Usable))(BOOL *a_pfUsable); @@ -596,6 +607,7 @@ - STDMETHOD(COMGETTER(Description))(BSTR *a_pbstrDescription); - STDMETHOD(COMGETTER(Version))(BSTR *a_pbstrVersion); - STDMETHOD(COMGETTER(Revision))(ULONG *a_puRevision); +- STDMETHOD(COMGETTER(Edition))(BSTR *a_pbstrEdition); - STDMETHOD(COMGETTER(VRDEModule))(BSTR *a_pbstrVrdeModule); - STDMETHOD(COMGETTER(PlugIns))(ComSafeArrayOut(IExtPackPlugIn *, a_paPlugIns)); - STDMETHOD(COMGETTER(Usable))(BOOL *a_pfUsable); @@ -722,10 +734,10 @@ - -#endif -/* vi: set tabstop=4 shiftwidth=4 expandtab: */ ---- VirtualBox-4.1.18.orig/src/VBox/Main/include/ExtPackUtil.h 2012-06-20 10:17:33.000000000 -0300 -+++ /dev/null 2012-07-24 14:48:18.638572110 -0300 +--- VirtualBox-4.2.0.orig/src/VBox/Main/include/ExtPackUtil.h 2012-03-13 11:51:50.000000000 -0300 ++++ /dev/null 2012-09-18 22:18:48.866734195 -0300 @@ -1,137 +0,0 @@ --/* $Id: ExtPackUtil.h $ */ +-/* $Id: ExtPackUtil.h 39878 2012-01-25 16:30:07Z vboxsync $ */ -/** @file - * VirtualBox Main - Extension Pack Utilities and definitions, VBoxC, VBoxSVC, ++. - */ @@ -839,14 +851,14 @@ - - -void VBoxExtPackInitDesc(PVBOXEXTPACKDESC a_pExtPackDesc); --RTCString *VBoxExtPackLoadDesc(const char *a_pszDir, PVBOXEXTPACKDESC a_pExtPackDesc, PRTFSOBJINFO a_pObjInfo); --RTCString *VBoxExtPackLoadDescFromVfsFile(RTVFSFILE hVfsFile, PVBOXEXTPACKDESC a_pExtPackDesc, PRTFSOBJINFO a_pObjInfo); --RTCString *VBoxExtPackExtractNameFromTarballPath(const char *pszTarball); +-RTCString *VBoxExtPackLoadDesc(const char *a_pszDir, PVBOXEXTPACKDESC a_pExtPackDesc, PRTFSOBJINFO a_pObjInfo); +-RTCString *VBoxExtPackLoadDescFromVfsFile(RTVFSFILE hVfsFile, PVBOXEXTPACKDESC a_pExtPackDesc, PRTFSOBJINFO a_pObjInfo); +-RTCString *VBoxExtPackExtractNameFromTarballPath(const char *pszTarball); -void VBoxExtPackFreeDesc(PVBOXEXTPACKDESC a_pExtPackDesc); -bool VBoxExtPackIsValidName(const char *pszName); -bool VBoxExtPackIsValidMangledName(const char *pszMangledName, size_t cchMax = RTSTR_MAX); --RTCString *VBoxExtPackMangleName(const char *pszName); --RTCString *VBoxExtPackUnmangleName(const char *pszMangledName, size_t cbMax); +-RTCString *VBoxExtPackMangleName(const char *pszName); +-RTCString *VBoxExtPackUnmangleName(const char *pszMangledName, size_t cbMax); -int VBoxExtPackCalcDir(char *pszExtPackDir, size_t cbExtPackDir, const char *pszParentDir, const char *pszName); -bool VBoxExtPackIsValidVersionString(const char *pszVersion); -bool VBoxExtPackIsValidEditionString(const char *pszEdition); @@ -862,10 +874,10 @@ - -#endif - ---- VirtualBox-4.1.18.orig/src/VBox/Main/src-all/ExtPackManagerImpl.cpp 2012-06-20 10:17:34.000000000 -0300 -+++ /dev/null 2012-07-24 14:48:18.638572110 -0300 +--- VirtualBox-4.2.0.orig/src/VBox/Main/src-all/ExtPackManagerImpl.cpp 2012-04-03 04:56:24.000000000 -0300 ++++ /dev/null 2012-09-18 22:18:48.866734195 -0300 @@ -1,3126 +0,0 @@ --/* $Id: ExtPackManagerImpl.cpp $ */ +-/* $Id: ExtPackManagerImpl.cpp 40468 2012-03-14 17:07:58Z vboxsync $ */ -/** @file - * VirtualBox Main - interface for Extension Packs, VBoxSVC & VBoxC. - */ @@ -1260,22 +1272,22 @@ - HRESULT hrc = autoCaller.rc(); - if (SUCCEEDED(hrc)) - { -- /* HACK ALERT: This is for easing backporting to 4.1. The edition stuff -- will be changed into a separate */ -- if (m->Desc.strEdition.isEmpty()) -- { -- Bstr str(m->Desc.strVersion); -- str.cloneTo(a_pbstrVersion); -- } -- else -- { -- RTCString strHack(m->Desc.strVersion); -- strHack.append('-'); -- strHack.append(m->Desc.strEdition); +- Bstr str(m->Desc.strVersion); +- str.cloneTo(a_pbstrVersion); +- } +- return hrc; +-} - -- Bstr str(strHack); -- str.cloneTo(a_pbstrVersion); -- } +-STDMETHODIMP ExtPackFile::COMGETTER(Edition)(BSTR *a_pbstrEdition) +-{ +- CheckComArgOutPointerValid(a_pbstrEdition); +- +- AutoCaller autoCaller(this); +- HRESULT hrc = autoCaller.rc(); +- if (SUCCEEDED(hrc)) +- { +- Bstr str(m->Desc.strEdition); +- str.cloneTo(a_pbstrEdition); - } - return hrc; -} @@ -2494,22 +2506,8 @@ - HRESULT hrc = autoCaller.rc(); - if (SUCCEEDED(hrc)) - { -- /* HACK ALERT: This is for easing backporting to 4.1. The edition stuff -- will be changed into a separate */ -- if (m->Desc.strEdition.isEmpty()) -- { -- Bstr str(m->Desc.strVersion); -- str.cloneTo(a_pbstrVersion); -- } -- else -- { -- RTCString strHack(m->Desc.strVersion); -- strHack.append('-'); -- strHack.append(m->Desc.strEdition); -- -- Bstr str(strHack); -- str.cloneTo(a_pbstrVersion); -- } +- Bstr str(m->Desc.strVersion); +- str.cloneTo(a_pbstrVersion); - } - return hrc; -} @@ -2525,6 +2523,20 @@ - return hrc; -} - +-STDMETHODIMP ExtPack::COMGETTER(Edition)(BSTR *a_pbstrEdition) +-{ +- CheckComArgOutPointerValid(a_pbstrEdition); +- +- AutoCaller autoCaller(this); +- HRESULT hrc = autoCaller.rc(); +- if (SUCCEEDED(hrc)) +- { +- Bstr str(m->Desc.strEdition); +- str.cloneTo(a_pbstrEdition); +- } +- return hrc; +-} +- -STDMETHODIMP ExtPack::COMGETTER(VRDEModule)(BSTR *a_pbstrVrdeModule) -{ - CheckComArgOutPointerValid(a_pbstrVrdeModule); @@ -3991,10 +4003,10 @@ -} - -/* vi: set tabstop=4 shiftwidth=4 expandtab: */ ---- VirtualBox-4.1.18.orig/src/VBox/Main/src-all/ExtPackUtil.cpp 2012-06-20 10:17:34.000000000 -0300 -+++ /dev/null 2012-07-24 14:48:18.638572110 -0300 +--- VirtualBox-4.2.0.orig/src/VBox/Main/src-all/ExtPackUtil.cpp 2012-07-18 05:57:58.000000000 -0300 ++++ /dev/null 2012-09-18 22:18:48.866734195 -0300 @@ -1,1385 +0,0 @@ --/* $Id: ExtPackUtil.cpp $ */ +-/* $Id: ExtPackUtil.cpp 41783 2012-06-16 19:24:15Z vboxsync $ */ -/** @file - * VirtualBox Main - Extension Pack Utilities and definitions, VBoxC, VBoxSVC, ++. - */ @@ -4092,7 +4104,7 @@ - * - * @returns NULL on success, pointer to an error message on failure (caller - * deletes it). -- * @param a_pDoc Pointer to the the XML document. +- * @param a_pDoc Pointer to the XML document. - * @param a_pExtPackDesc Where to store the extension pack descriptor. - */ -static RTCString *vboxExtPackLoadDescFromDoc(xml::Document *a_pDoc, PVBOXEXTPACKDESC a_pExtPackDesc) @@ -5389,25 +5401,22 @@ iprt/alloca.h \ iprt/tcp.h \ iprt/localipc.h \ ---- VirtualBox-4.1.18.orig/src/Makefile.kmk 2012-06-20 10:07:57.000000000 -0300 -+++ VirtualBox-4.1.18/src/Makefile.kmk 2012-07-24 22:51:10.206996034 -0300 -@@ -26,14 +26,6 @@ - include $(PATH_SUB_CURRENT)/VBox/Makefile.kmk +--- VirtualBox-4.2.0.orig/src/Makefile.kmk 2012-08-03 09:28:25.000000000 -0300 ++++ VirtualBox-4.2.0/src/Makefile.kmk 2012-09-19 03:01:57.588337894 -0300 +@@ -23,10 +23,8 @@ + if !defined(VBOX_ONLY_ADDITIONS) include $(PATH_SUB_CURRENT)/libs/Makefile.kmk + endif +-if defined(VBOX_ONLY_EXTPACKS) && !defined(VBOX_ONLY_EXTPACKS_USE_IMPLIBS) && defined(VBOX_WITH_REM) +- include $(PATH_SUB_CURRENT)/recompiler/Makefile.kmk --else if defined(VBOX_ONLY_EXTPACKS) -- include $(PATH_SUB_CURRENT)/bldprogs/Makefile.kmk -- include $(PATH_SUB_CURRENT)/VBox/Makefile.kmk -- include $(PATH_SUB_CURRENT)/libs/Makefile.kmk -- ifndef VBOX_ONLY_EXTPACKS_USE_IMPLIBS -- include $(PATH_SUB_CURRENT)/recompiler/Makefile.kmk -- endif -- - else if defined(VBOX_ONLY_TESTSUITE) - include $(PATH_SUB_CURRENT)/libs/Makefile.kmk - include $(PATH_SUB_CURRENT)/VBox/Makefile.kmk ---- VirtualBox-4.1.18.orig/src/VBox/Makefile.kmk 2012-07-24 21:19:55.565641784 -0300 -+++ VirtualBox-4.1.18/src/VBox/Makefile.kmk 2012-07-24 22:12:55.429156962 -0300 +-else if !defined(VBOX_ONLY_BUILD) ++if !defined(VBOX_ONLY_BUILD) + # Normal build. + if1of ($(KBUILD_TARGET_ARCH), x86 amd64) + ifdef VBOX_WITH_REM +--- VirtualBox-4.2.0.orig/src/VBox/Makefile.kmk 2012-05-30 07:39:32.000000000 -0300 ++++ VirtualBox-4.2.0/src/VBox/Makefile.kmk 2012-09-19 00:03:08.577726965 -0300 @@ -33,19 +33,6 @@ include $(PATH_SUB_CURRENT)/HostDrivers/Makefile.kmk include $(PATH_SUB_CURRENT)/Frontends/Makefile.kmk @@ -5428,17 +5437,15 @@ else ifdef VBOX_ONLY_SDK include $(PATH_SUB_CURRENT)/Main/Makefile.kmk ifdef VBOX_WITH_VRDP -@@ -92,9 +79,6 @@ +@@ -92,7 +79,6 @@ if1of ($(KBUILD_TARGET_ARCH), amd64 x86) include $(PATH_SUB_CURRENT)/NetworkServices/Makefile.kmk endif -- ifndef VBOX_OSE -- include $(PATH_SUB_CURRENT)/ExtPacks/Makefile.kmk -- endif +- include $(PATH_SUB_CURRENT)/ExtPacks/Makefile.kmk ifdef VBOX_WITH_INSTALLER include $(PATH_SUB_CURRENT)/Installer/Makefile.kmk # Keep this last. endif ---- VirtualBox-4.1.18/src/libs/Makefile.kmk.orig 2012-07-24 21:23:26.938013023 -0300 +--- VirtualBox-4.1.18.orig/src/libs/Makefile.kmk 2012-07-24 21:23:26.938013023 -0300 +++ VirtualBox-4.1.18/src/libs/Makefile.kmk 2012-07-24 21:43:42.557911752 -0300 @@ -48,13 +48,6 @@ include $(PATH_SUB_CURRENT)/kStuff/Makefile.kmk @@ -5454,52 +5461,46 @@ # libjpeg for VRDP video redirection if defined(VBOX_WITH_VRDP) && defined(VBOX_WITH_VRDP_VIDEO_CHANNEL) include $(PATH_SUB_CURRENT)/jpeg-8a/Makefile.kmk ---- VirtualBox-4.1.18.orig/src/VBox/Devices/Makefile.kmk 2012-07-24 23:06:45.916276235 -0300 -+++ VirtualBox-4.1.18/src/VBox/Devices/Makefile.kmk 2012-07-24 23:17:00.202963228 -0300 -@@ -21,9 +21,7 @@ +--- VirtualBox-4.2.0.orig/src/VBox/Devices/Makefile.kmk 2012-08-03 09:28:25.000000000 -0300 ++++ VirtualBox-4.2.0/src/VBox/Devices/Makefile.kmk 2012-09-19 02:54:35.912748288 -0300 +@@ -25,9 +25,7 @@ # Include sub-makefiles. include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk -if defined(VBOX_WITH_INTEL_PXE) || defined(VBOX_ONLY_EXTPACKS) - include $(PATH_SUB_CURRENT)/PC/PXE/Makefile.kmk --else if defined(VBOX_WITH_PXE_ROM) && !defined(VBOX_WITHOUT_ETHERBOOT) -+if defined(VBOX_WITH_PXE_ROM) && !defined(VBOX_WITHOUT_ETHERBOOT) - include $(PATH_SUB_CURRENT)/PC/Etherboot-src/Makefile.kmk - endif - if !defined(VBOX_ONLY_EXTPACKS) # Goes on almost to the end of the file. -@@ -57,9 +55,6 @@ +-else if defined(VBOX_WITH_PXE_ROM) ++if defined(VBOX_WITH_PXE_ROM) + if !defined(VBOX_WITHOUT_ETHERBOOT) + include $(PATH_SUB_CURRENT)/PC/Etherboot-src/Makefile.kmk + endif +@@ -71,9 +69,6 @@ ifdef VBOX_WITH_USB VBoxDDU_DEFS += VBOX_WITH_USB IN_USBLIB - VBoxDDU_SDKS.win = WINPSDK W2K3DDK + VBoxDDU_SDKS.win = ReorderCompilerIncs $(VBOX_WINPSDK) $(VBOX_WINDDK) - if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL) - VBoxDDU_DEFS += VBOX_WITH_EHCI_IMPL - endif ifdef VBOX_WITH_NEW_USB_CODE_ON_DARWIN VBoxDDU_DEFS.darwin += VBOX_WITH_NEW_USB_CODE_ON_DARWIN endif -@@ -122,9 +117,6 @@ - VBoxDD_DEFS = VBOX_ACPI - ifdef VBOX_WITH_USB - VBoxDD_DEFS += VBOX_WITH_USB +@@ -326,15 +321,7 @@ + Storage/UsbMsd.cpp + endif + - if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL) - VBoxDD_DEFS += VBOX_WITH_EHCI_IMPL - endif - endif - ifdef VBOX_WITH_VUSB - VBoxDD_DEFS += VBOX_WITH_VUSB -@@ -446,11 +438,6 @@ - endif - ifdef VBOX_WITH_USB - DevicesR3_DEFS += VBOX_WITH_USB + VBoxDD_DEFS += VBOX_WITH_USB - if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL) -- DevicesR3_DEFS += VBOX_WITH_EHCI_IMPL -- DevicesR3_SOURCES += \ +- VBoxDD_DEFS += VBOX_WITH_EHCI_IMPL +- VBoxDD_SOURCES += \ - USB/DevEHCI.cpp - endif - endif - if defined(VBOX_WITH_PCI_PASSTHROUGH_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL) - DevicesR3_DEFS += VBOX_WITH_PCI_PASSTHROUGH_IMPL -@@ -607,11 +594,6 @@ + + endif # VBOX_WITH_USB + +@@ -869,11 +856,6 @@ ifdef VBOX_WITH_USB VBoxDDGC_DEFS += VBOX_WITH_USB @@ -5511,7 +5512,7 @@ endif ifdef VBOX_WITH_VIDEOHWACCEL -@@ -711,11 +693,6 @@ +@@ -1020,11 +1002,6 @@ endif ifdef VBOX_WITH_USB VBoxDDR0_DEFS += VBOX_WITH_USB @@ -5523,10 +5524,10 @@ endif if defined(VBOX_WITH_PCI_PASSTHROUGH_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL) -@@ -1204,49 +1181,5 @@ - +@@ -1163,50 +1140,5 @@ endif # !VBOX_ONLY_EXTPACKS + -if defined(VBOX_WITH_EXTPACK_PUEL) && defined(VBOX_WITH_EXTPACK_PUEL_BUILD) - # - # The EHCI (USB 2.0) Extension Pack Modules. @@ -5563,6 +5564,7 @@ - Bus/DevPciRaw.cpp_INCS = Bus - endif - +- - # - # The Intel PXE rom. - # @@ -5571,11 +5573,11 @@ - VBoxExtPackPuelInsRoms_SOURCES = PC/PXE/PXE-Intel.rom=>PXE-Intel.rom -endif # VBOX_WITH_EXTPACK_PUEL - - include $(KBUILD_PATH)/subfooter.kmk + include $(FILE_KBUILD_SUB_FOOTER) ---- VirtualBox-4.1.18.orig/src/VBox/Main/Makefile.kmk 2012-07-24 23:38:25.304126039 -0300 -+++ VirtualBox-4.1.18/src/VBox/Main/Makefile.kmk 2012-07-24 23:38:25.350789964 -0300 -@@ -230,14 +230,12 @@ +--- VirtualBox-4.2.0.orig/src/VBox/Main/Makefile.kmk 2012-09-04 09:48:44.000000000 -0300 ++++ VirtualBox-4.2.0/src/VBox/Main/Makefile.kmk 2012-09-19 00:46:39.251763337 -0300 +@@ -233,14 +233,12 @@ $(if $(VBOX_USB_WITH_SYSFS),VBOX_USB_WITH_SYSFS,) \ $(if $(VBOX_USB_WITH_INOTIFY),VBOX_USB_WITH_INOTIFY,) \ $(if $(VBOX_WITH_LIVE_MIGRATION),VBOX_WITH_LIVE_MIGRATION,) \ @@ -5590,7 +5592,7 @@ $(if $(VBOX_WITH_NEW_USB_CODE_ON_DARWIN),VBOX_WITH_NEW_USB_CODE_ON_DARWIN,) endif VBoxSVC_DEFS.win += VBOX_COM_OUTOFPROC_MODULE -@@ -290,7 +288,6 @@ +@@ -293,7 +291,6 @@ src-all/SharedFolderImpl.cpp \ src-all/VirtualBoxBase.cpp \ src-all/VirtualBoxErrorInfoImpl.cpp \ @@ -5598,25 +5600,25 @@ src-server/ApplianceImpl.cpp \ src-server/ApplianceImplExport.cpp \ src-server/ApplianceImplImport.cpp \ -@@ -543,8 +540,6 @@ - $(if $(VBOX_WITH_HGSMI),VBOX_WITH_HGSMI,) \ - $(if $(VBOX_WITH_VIDEOHWACCEL),VBOX_WITH_VIDEOHWACCEL,) \ +@@ -538,8 +535,6 @@ + $(if $(VBOX_WITH_DRAG_AND_DROP),VBOX_WITH_DRAG_AND_DROP,) \ + $(if $(VBOX_WITH_DRAG_AND_DROP_GH),VBOX_WITH_DRAG_AND_DROP_GH,) \ $(if $(VBOX_WITH_USB),VBOX_WITH_USB,) \ - $(if-expr defined(VBOX_WITH_EHCI) && defined(VBOX_WITH_USB),VBOX_WITH_EHCI,) \ - $(if $(VBOX_WITH_EXTPACK),VBOX_WITH_EXTPACK,) \ - $(if $(VBOX_WITH_PCI_PASSTHROUGH),VBOX_WITH_PCI_PASSTHROUGH,) + $(if $(VBOX_WITH_PCI_PASSTHROUGH),VBOX_WITH_PCI_PASSTHROUGH,) \ + $(if $(VBOX_WITH_VPX),VBOX_WITH_VPX,) - VBoxC_DEFS.darwin.x86 = VBOX_WITH_2X_4GB_ADDR_SPACE -@@ -602,7 +597,6 @@ +@@ -605,7 +600,6 @@ src-all/SharedFolderImpl.cpp \ src-all/VirtualBoxBase.cpp \ src-all/VirtualBoxErrorInfoImpl.cpp \ - $(if $(VBOX_WITH_EXTPACK),src-all/ExtPackManagerImpl.cpp src-all/ExtPackUtil.cpp,) \ $(if $(VBOX_WITH_USB_VIDEO),src-client/UsbWebcamInterface.cpp,) \ $(if $(VBOX_WITH_USB_CARDREADER),src-client/UsbCardReader.cpp,) \ - src-client/AdditionsFacilityImpl.cpp \ -@@ -711,22 +705,6 @@ - endif # !win + src-client/Nvram.cpp \ +@@ -733,22 +727,6 @@ + $(if $(VBOX_BLEEDING_EDGE),VBOX_BLEEDING_EDGE=\"$(VBOX_BLEEDING_EDGE)\",) -# @@ -5631,7 +5633,7 @@ - src-helper-apps/VBoxExtPackHelperApp.cpp \ - src-all/ExtPackUtil.cpp - VBoxExtPackHelperApp_LIBS = \ -- $(LIB_RUNTIME) +- $(LIB_RUNTIME) -endif # VBOX_WITH_EXTPACK - - @@ -5648,27 +5650,27 @@ $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-ovf.icns=>Resources/virtualbox-ovf.icns \ $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-ova.icns=>Resources/virtualbox-ova.icns \ $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-vdi.icns=>Resources/virtualbox-vdi.icns \ ---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc 2012-07-24 23:28:17.985011038 -0300 -+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc 2012-07-24 23:28:18.051673913 -0300 -@@ -167,18 +167,6 @@ - <file alias="status_check_32px.png">images/status_check_32px.png</file> - <file alias="status_error_16px.png">images/status_error_16px.png</file> - <file alias="status_error_32px.png">images/status_error_32px.png</file> -- <file alias="extension_pack_16px.png">images/extension_pack_16px.png</file> -- <file alias="extension_pack_disabled_16px.png">images/extension_pack_disabled_16px.png</file> -- <file alias="extension_pack_32px.png">images/extension_pack_32px.png</file> -- <file alias="extension_pack_disabled_32px.png">images/extension_pack_disabled_32px.png</file> -- <file alias="extension_pack_install_16px.png">images/extension_pack_install_16px.png</file> -- <file alias="extension_pack_install_disabled_16px.png">images/extension_pack_install_disabled_16px.png</file> -- <file alias="extension_pack_install_32px.png">images/extension_pack_install_32px.png</file> -- <file alias="extension_pack_install_disabled_32px.png">images/extension_pack_install_disabled_32px.png</file> -- <file alias="extension_pack_uninstall_16px.png">images/extension_pack_uninstall_16px.png</file> -- <file alias="extension_pack_uninstall_disabled_16px.png">images/extension_pack_uninstall_disabled_16px.png</file> -- <file alias="extension_pack_uninstall_32px.png">images/extension_pack_uninstall_32px.png</file> -- <file alias="extension_pack_uninstall_disabled_32px.png">images/extension_pack_uninstall_disabled_32px.png</file> - <file alias="proxy_16px.png">images/proxy_16px.png</file> - <file alias="proxy_disabled_16px.png">images/proxy_disabled_16px.png</file> - <file alias="proxy_32px.png">images/proxy_32px.png</file> +--- VirtualBox-4.2.0.orig/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc 2012-05-30 07:39:18.000000000 -0300 ++++ VirtualBox-4.2.0/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc 2012-09-19 00:51:25.413310527 -0300 +@@ -169,18 +169,6 @@ + <file alias="status_check_32px.png">images/status_check_32px.png</file> + <file alias="status_error_16px.png">images/status_error_16px.png</file> + <file alias="status_error_32px.png">images/status_error_32px.png</file> +- <file alias="extension_pack_16px.png">images/extension_pack_16px.png</file> +- <file alias="extension_pack_disabled_16px.png">images/extension_pack_disabled_16px.png</file> +- <file alias="extension_pack_32px.png">images/extension_pack_32px.png</file> +- <file alias="extension_pack_disabled_32px.png">images/extension_pack_disabled_32px.png</file> +- <file alias="extension_pack_install_16px.png">images/extension_pack_install_16px.png</file> +- <file alias="extension_pack_install_disabled_16px.png">images/extension_pack_install_disabled_16px.png</file> +- <file alias="extension_pack_install_32px.png">images/extension_pack_install_32px.png</file> +- <file alias="extension_pack_install_disabled_32px.png">images/extension_pack_install_disabled_32px.png</file> +- <file alias="extension_pack_uninstall_16px.png">images/extension_pack_uninstall_16px.png</file> +- <file alias="extension_pack_uninstall_disabled_16px.png">images/extension_pack_uninstall_disabled_16px.png</file> +- <file alias="extension_pack_uninstall_32px.png">images/extension_pack_uninstall_32px.png</file> +- <file alias="extension_pack_uninstall_disabled_32px.png">images/extension_pack_uninstall_disabled_32px.png</file> + <file alias="proxy_16px.png">images/proxy_16px.png</file> + <file alias="proxy_disabled_16px.png">images/proxy_disabled_16px.png</file> + <file alias="proxy_32px.png">images/proxy_32px.png</file> --- VirtualBox-4.1.18.orig/src/VBox/Installer/linux/Makefile.kmk 2012-07-25 00:32:00.780012664 -0300 +++ VirtualBox-4.1.18/src/VBox/Installer/linux/Makefile.kmk 2012-07-25 00:32:00.806677728 -0300 @@ -170,11 +170,6 @@ @@ -5702,17 +5704,17 @@ -E 'VBOX_WITH_GUEST_CONTROL=$(if $(VBOX_WITH_GUEST_CONTROL),yes,no)' \ -E 'VBOX_WITH_GUEST_PROPS=$(if $(VBOX_WITH_GUEST_PROPS),yes,no)' \ -E 'VBOX_WITH_NETFLT=$(if $(VBOX_WITH_NETFLT),yes,no)' \ ---- VirtualBox-4.1.18.orig/src/VBox/Installer/darwin/Makefile.kmk 2012-07-25 00:36:55.929571374 -0300 -+++ VirtualBox-4.1.18/src/VBox/Installer/darwin/Makefile.kmk 2012-07-25 00:36:55.959569630 -0300 -@@ -629,7 +629,6 @@ +--- VirtualBox-4.2.0.orig/src/VBox/Installer/darwin/Makefile.kmk 2012-09-08 06:36:03.000000000 -0300 ++++ VirtualBox-4.2.0/src/VBox/Installer/darwin/Makefile.kmk 2012-09-19 00:55:08.991167973 -0300 +@@ -497,7 +497,6 @@ MacOS/VirtualBoxVM \ MacOS/VBoxNetAdpCtl \ MacOS/VBoxNetDHCP \ - MacOS/VBoxExtPackHelperApp \ - MacOS/VBoxBalloonCtrl + MacOS/VBoxBalloonCtrl \ + MacOS/VBoxAutostart ifdef VBOX_WITH_WEBSERVICES - VBOX_DI_VBAPP_PROGS += \ -@@ -659,7 +658,6 @@ +@@ -522,7 +521,6 @@ Resources/virtualbox.icns \ Resources/virtualbox.png \ Resources/virtualbox-vbox.icns \ diff --git a/libre/virtualbox-libre/vboxdrv-reference.patch b/libre/virtualbox-libre/vboxdrv-reference.patch index 9599a3a49..4703da68d 100755 --- a/libre/virtualbox-libre/vboxdrv-reference.patch +++ b/libre/virtualbox-libre/vboxdrv-reference.patch @@ -21,8 +21,8 @@ diff -Nur VirtualBox-4.1.6_OSE.orig/src/VBox/Frontends/VirtualBox/src/main.cpp V - "recompiles the vboxdrv kernel module if necessary." + "libre module by executing<br/><br/>" + " <font color=blue>'pacman -S virtualbox-libre-modules'</font><br/><br/>" -+ "as root. If you don't use our stock kernel libre, install virtualbox-libre-source and " -+ "execute dkms install vboxhost/4.1.18 ." ++ "as root. If you don't use our stock kernel libre, install virtualbox-libre-host-source and " ++ "execute dkms autoinstall ." ); QString g_QStrHintOtherWrongDriverVersion = QApplication::tr( @@ -42,7 +42,7 @@ diff -Nur VirtualBox-4.1.6_OSE.orig/src/VBox/Frontends/VirtualBox/src/main.cpp V - "OSE version and the PUEL version of VirtualBox." + "The VirtualBox kernel libre modules do not match this version of " + "VirtualBox. Reload the modules or if you don't use our stock kernel libre execute<br/><br/> " -+ " <font color=blue>'dkms install vboxhost/4.1.18'</font><br/><br/>" ++ " <font color=blue>'dkms autoinstall'</font><br/><br/>" ); QString g_QStrHintOtherNoDriver = QApplication::tr( @@ -85,7 +85,7 @@ diff -Nur VirtualBox-4.1.6_OSE.orig/src/VBox/Installer/linux/VBox.sh VirtualBox- + if you don't use our stock kernel libre compile the modules with - sudo /etc/init.d/vboxdrv setup -+ sudo dkms install vboxhost/4.1.18 ++ sudo dkms autoinstall You will not be able to start VMs until this problem is fixed. EOF diff --git a/libre/virtualbox-libre/virtualbox-libre-parabola-additions.install b/libre/virtualbox-libre/virtualbox-libre-guest-additions.install index 38bbe807d..38bbe807d 100755 --- a/libre/virtualbox-libre/virtualbox-libre-parabola-additions.install +++ b/libre/virtualbox-libre/virtualbox-libre-guest-additions.install diff --git a/libre/virtualbox-libre/virtualbox-libre-parabola-source.install b/libre/virtualbox-libre/virtualbox-libre-guest-source.install index 966fb5681..966fb5681 100755 --- a/libre/virtualbox-libre/virtualbox-libre-parabola-source.install +++ b/libre/virtualbox-libre/virtualbox-libre-guest-source.install diff --git a/libre/virtualbox-libre/virtualbox-libre-source.install b/libre/virtualbox-libre/virtualbox-libre-host-source.install index 6a3994c8d..6a3994c8d 100755 --- a/libre/virtualbox-libre/virtualbox-libre-source.install +++ b/libre/virtualbox-libre/virtualbox-libre-host-source.install |