Archive for the ‘Windows’ Category

"Open/Public letter":
Erik Scholten ( in http://www.vmguru.nl/wordpress/2012/09/new-enterprise-hypervisor-comparison-2/#disqus_thread ):
If you have improvements, please mention it in the comments or write me an e-mail specifying which value needs to be altered and some proof of you statement, a MS website, video, etc.

{
www.vmguru.nl — Enterprise Hypervisor comparison v4.2 2012-10-01
==
Hypervisor comparison
Version 4.2
A feature comparison of the three main competitors in the hypervisor space, Citrix, Microsoft and VMware.
Updated to the latest two versions, Citrix XenServer 5.6 & 6.0, Microsoft Hyper-V 2008 R2 SP1 & 2012 and VMware vSphere 5.0 & 5.1.
©2012, VMGuru.nl
Erik Scholten
1 October 2012

At manufacturer’s websites and in the blogosphere there are many hypervisor comparisons which only compare hypervisors based on a single driver (performance, features or cost). In my opinion it’s a bit more complicated than that. After the everlasting discussion on make-believe cheaper Microsoft Hyper-V and Citrix XenServer implementations, I spend a fair deal of my time explaining to colleagues and clients that this is a hoax and that cost is not the only reason to base their decision on. Especially in the case of XenServer the choice and the long term effects make it a little bit more complicated.

Now you probably think ‘These VMGuru.nl guys are VMware fans so here we go again‘ but the opposite is true. Like Chris I think every situation has its own ideal solution and you should select the hypervisor based on well-considered selection criteria and because my employer, Imtech ICT, focuses on clients with 500+ workstations/employees these criteria are Enterprise-class hypervisor selection criteria.

==

}

{

I’m not found word "dynamic" ( and info about Dynamic Memory in MS Hyper-V) in Enterprise Hypervisor comparison v4.2 2012-10-01 ( 2012/09/Hypervisor-comparison.pdf 01 Oct 2012 17:55:04 GMT )

==

Victor Miasnikov:

Hyper-V 2008 R2 _support_ "Hot-add memory"

Erik Scholten:
With SP1 for Hyper-V R2 Microsoft added a feature that is called Dynamic Memory, which adjusts the amount of memory
available to virtual machines depending on the needs of each virtual machine. Which is much like but not entirely
similar to hot-add/remove.
Victor Miasnikov:
Dynamic Memory can increase/decrese _without_ reboot etc. , in real time

<=>
on _practic_ similar ( _very_ simular) to hot-add/remove
==

Erik Scholten ( in Enterprise Hypervisor comparison v4.2 2012-10-01 ( 2012/09/Hypervisor-comparison.pdf 01 Oct 2012 17:55:04 GMT ) :
==
Now you probably think ‘These VMGuru.nl guys are VMware fans so here we go again‘ but the opposite is true.

==
In fact: true i.e. VMGuru.nl guys are VMware fans
}

IMHO, need more comments:

{
Solaris ( and _all_ OS _without_ IC , for example see later Win NT 4.0 )
==
. . .
Quite some OS lacking Hyper-V drivers (like BSD) do run on Hyper-V but with quite of a performance penalty if at all:

  • Only legacy (emulated) 100Mbit Ethernet
  • Only 4 emulated IDE disks which are then quite slow, no paravirt SCSI controller
  • 1 vCPU and no dynamic memory (Linux doesn’t support the later one today, only Windows guests) . . .

. . .

==

}
{
Windows Server 2000
==
Friday, 6 March, 2009

We have need for a temporary legacy setup here at the shop.

We used a Windows Server 2000 Standard SP2 CD ISO to install the base OS.

We have an ISO based DVD with every conceivable Microsoft service pack and needed critical update on it that we use to service our VMs. We needed to mount that ISO and update to Service Pack 4 before we could get the Hyper-V Integration Services installed.

==

but only 1 CPU :
==
Configure virtual machines running Windows 2000 Server with 1 virtual processor.
==

}
again, IMHO, need more comments:
{
Windows NT 4.0
==

. . .

Legacy operating system support

Q. The virtual machine settings include a processor option which limits processor functionality to run an older operating system such as Windows NT on the virtual machine. What does this feature actually do?
A. This feature is designed to allow backwards compatibility for older operating systems such as Windows NT 4.0 (which performs a CPUID check and, if CPUID returns more than three leaves, it will fail). By selecting the processor functionality check box Hyper-V will limit CPUID to only return three leaves and therefore allow Windows NT 4.0 to successfully install. It is possible that other legacy operating systems could have a similar issue.

Q. Does this mean that Windows NT 4.0 is supported on Hyper-V?
A. Absolutely not. Windows NT 4.0 is outside its mainstream and extended support lifecycle and is not supported on Hyper-V and no integration components will be released for Windows NT 4.0.

Q. But one of the stated advantages for virtualisation is running legacy operating systems where hardware support is becoming problematic. Does this mean I can’t virtualise my remaining Windows NT computers?
A. The difference here is between “possible” and “supported”. Many legacy (and current) operating systems will run on Hyper-V (with emulated drivers) but are not supported.

. . .

==
}
{
Novel NetWare
==
Ben Armstrong ( Microsoft)
NetWare 5.0 worked, but 6.0 / 6.5 did not.
==
}
{

Ubuntu 12.04 has backported from kernel v3.4.3 *.ko/drivers for Hyper-V , work fine, has support
Debian v7.X has backported from kernel v3.4.3 *.ko/drivers for Hyper-V
}
{
RHEL 6.X , 5.X ( and CenOs, SL, OEL , etc. ) :
the Linux Integration Services 3.4 Release for Hyper-V adds support for the following guest operating systems:

  • RHEL 5.7 (x86 and x64)
  • RHEL 5.8 (x86 and x64)
  • RHEL 6.3 (x86 and x64)
  • CentOS 5.7 (x86 and x64)
  • CentOS 5.8 (x86 and x64)
  • CentOS 6.3 (x86 and x64)
==
}
{
RHEL 5.9 Beta:
http://www.microsoftnow.com/2012/09/red-hat-includes-built-in-integration-services-for-hyper-v-in-rhel-5-9.html
==
Microsoft have made strategic investments in interoperability that continues to reap rewards and here’s another big one TODAY with Red Hat. Today, Red Hat has announced the beta of RHEL 5.9 which includes the Linux Integration Services for Hyper-V built-in.
==

==
This means that RHEL will include the following Linux Integration Components for Hyper-V “inbox”:

1. Driver support: Linux Integration Services supports the network controller and the IDE and SCSI storage controllers that were developed specifically for Hyper-V.

2. Fastpath Boot Support for Hyper-V: Boot devices now take advantage of the block Virtualization Service Client (VSC) to provide enhanced performance.

3. Timesync: The clock inside the virtual machine will remain accurate by synchronizing to the clock on the virtualization server via Timesync service, and with the help of the pluggable time source device.

4. Integrated Shutdown: Virtual machines running Linux can be shut down from either Hyper-V Manager or System Center Virtual Machine Manager by using the “Shut down” command.

5. Heartbeat: This feature allows the Hyper-V to detect whether the virtual machine is running and responsive.

6. Key Value Pair (KVP) Exchange: Information about the running Linux virtual machine can be obtained by using the Key Value Pair exchange functionality on the Hyper-V host.

7. Integrated Mouse Support: Linux Integration Services provides full mouse support for Linux guest virtual machines.
==

The Microsoft press release
http://blogs.technet.com/b/openness/archive/2012/09/21/windows-server-hyper-v-drivers-supported-in-red-hat-enterprise-linux.aspx

https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/5-Beta/html/5.9_Release_Notes/virtualization.html
==
Chapter 9. Virtualization

Inclusion of, and Guest Installation Support for, Microsoft Hyper-V Drivers
Integrated Red Hat Enterprise Linux guest installation, and Hyper-V para-virtualized device support in Red Hat Enterprise Linux 5.9 on Microsoft Hyper-V allows users to run Red Hat Enterprise Linux 5.9 as a guest on top of Microsoft Hyper-V hypervisors. The following Hyper-V drivers and a clock source have been added to the kernel shipped with Red Hat Enterprise Linux 5.9:

a network driver ( hv_netvsc)

a storage driver ( hv_storvsc)

an HID-compliant mouse driver ( hid_hyperv)

a VMbus driver ( hv_vmbus)

a util driver ( hv_util)

a clock source (i386: hyperv_clocksource, AMD64/Intel 64: HYPER-V timer)

Red Hat Enterprise Linux 5.9 also includes a guest Hyper-V Key-Value Pair (KVP) daemon ( hypervkvpd) that passes basic information, such as the guest IP, the FQDN, OS name, and OS release number, to the host through VMbus.

==

}
{
FreeBSD v9.X , v8.3 – v8.2

http://blogs.technet.com/b/port25/archive/2012/08/09/windows-server-hyper-v-is-now-a-hypervisor-for-freebsd.aspx
==
Microsoft and partners NetApp and Citrix are excited to announce the availability of FreeBSD support for Windows Server Hyper-V

8,500 lines of code released under the BSD license, is the result of collaboration between Microsoft, NetApp, and Citrix to enable FreeBSD to run as a first-class guest on Windows Server Hyper-V.
==

http://blogs.technet.com/b/openness/archive/2012/08/09/available-today-freebsd-support-for-windows-server-hyper-v.aspx
==
enable FreeBSD to run on Hyper-V with high performance. This release includes 8,500 lines of code submitted under the BSD license, supporting FreeBSD 8.2 on Windows Server 2008 R2.
. . .

Analysis is currently underway to assess customer demand and partner capacity to extend support to FreeBSD 9.0 on Windows Server 2012.

==

FreeBSD enlightened device drivers for Hyper-V/Azure with FreeBSD source tree

http://freebsdonhyper-v.github.com/

https://lists.launchpad.net/freeonhyper-v/msg00000.html
==
From: Chris Knight stryqx (at) DOMAIN.HIDDEN
Date: Mon, 13 Aug 2012 20:34:57 +1000

I’ve pulled down a git clone and created patchsets for FreeBSD 8.2,
8.3, 9.0 and 9.1-BETA1. They can be found here:
==

http://blog.chrisara.com.au/2012/08/hyper-v-integration-components-for_13.html
==
Monday, August 13, 2012

Hyper-V Integration Components for FreeBSD – Patchfiles

Call me old fashioned, but I’d much prefer a patchset than having to install a version control package and suck down a source code check out. So please find a patchset for the Hyper-V integration components for the following versions of FreeBSD:

FreeBSD 8.2 Hyper-V Integration Components Patchset

FreeBSD 8.3 Hyper-V Integration Components Patchset

FreeBSD 9.0 Hyper-V Integration Components Patchset

FreeBSD 9.1-BETA1 Hyper-V Integration Components Patchset

Download the patchset, then issue:

patch –p –d /usr/src <

to patch the source tree, followed by:

cd /usr/src; make kernel KERNCONF=HYPERV_VM INSTKERNNAME=kernel.HYPERV

to install the Hyper-V enabled kernel to /boot/kernel.HYPERV.

Before booting to the Hyper-V enabled kernel it’s best to use GEOM labels to mount the partitions. Follow the instructions here to do this. This makes it easy for you to quickly swap between a Hyper-V enabled kernel and a non-Hyper-V enabled kernel – the reason being the Fast IDE storage driver presents itself as a SCSI driver, changing the device node path which prevents /etc/fstab from working correctly.

. . .
==

}

support-for-ubuntu-and-freebsd — Answers

http://blogs.technet.com/b/vm/archive/2012/05/13/support-for-ubuntu-and-freebsd.aspx
{
VVM 28 Jun 2012 5:43 AM

==
>> Например, экзотический { Linux дистрибутив }
>> уже поставляется с новым ядром и готовыми модулями Hyper-V.
==

Менее экзотический Arch Linux ( и, почти все дистрибутивы, кроме некоторых)
достаточно давно идут с «готовыми модулями Hyper-V»

Но проблема
«use hv_storvsc instead of ata_piix to handle the IDE disks devices ( but not for the CD-ROM)»
требует патчей:
==
cd006086fa5d ata_piix: defer disks to the Hyper-V drivers by default

and its prerequisite

db63a4c8115a libata: add a host flag to ignore detected ATA devices
==

поэтому призываю всех Hyper-V админов «требовать у поставщика»
kernel v3.4.3 ( и выше)
или backport-а вышеупомянутых патчей

}

vy-vse-eshhe-sravnivaete-gipervizory — Answers

http://vmind.ru/2012/05/28/vy-vse-eshhe-sravnivaete-gipervizory/


Практические советы:

Stanislav Buldakov пишет:

==
В Hyper-V со снимками действительно пичалька. Чтобы после удаления снимка произошло объединение дисков необходимо виртуалку выключать (на лету этот процесс не запускается). Если забыл это сделать, а затем, например, удалил ещё несколько снимков, то чтобы объединить диски необходимо сильно танцевать с бубном. Процесс в принципе несложный, но простой виртуальной машины адский получается. То есть она вылетает из работы на несколько часов как минимум.
==

Крайне не советую использовать "снимки" в production, т.е. _не_ для тестирования: дифференциальный диск ( .avhd ) растет какими-то неадекватными темпами

==
Но, судя по бэте Windows 2012, в новом Hyper-V эту проблему таки решат.
==

Решат -- хорошо, не решат -- см. выше

navion пишет:
28 мая 2012 в 14:17

==
Для себя вижу всего два плюса у vShere:
1) Нормальная поддержка Linux и Solaris
==

Скажем так:
в Linux Kernel v3.4.3 и выше поддержка Hyper-V близка к идеалу

для RHEL/CentOS/SL ( Scientific Linux)/OracleEL v6.X -- есть фактический аналог по функционалу: Linux Integration Services
Они же: Linux Integration Components ( Linux IC)
( для v5.X -- ранние версии Linux Integration Components ( Linux IC) )
плюс оффициальная поддержка от MS

OpenSUSE / SLES -- поддержка с самого начала + оффициальная от MS

Ubuntu начиная с v12.04 -- оффициальная поддержка от MS , заключен договор
Причем для "Hyper-V drivers" backport from v3.4-rc1

в Debian v7.X -- аналогично: backport from v3.4-rc1

Для FreeBSD пишут аналог Linux IC:

http://blogs.technet.com/b/vm/archive/2012/05/13/support-for-ubuntu-and-freebsd.aspx

==
Вчера на конференции BSDCan 2012 было заявлено, что NetApp совместно с Citrix разрабатывает компоненты интеграции Hyper-V для FreeBSD,
которые в скором времени станут доступны для FreeBSD 8.2 и 8.3. Исходные коды компонентов интеграции будут доступны по BSD лицензии для всех желающих.
Это первый пример разработки некоммерческого кода для Hyper-V сторонними коммерческими компаниями.
Microsoft будет осуществлять поддержку пользователей FreeBSD в среде Hyper-V.
==

( де-факто этот код у фирмы Citrix уже есть и применяется в ее продуктах базирующихся на FreeBSD)

Там же про Solaris на VMWare:

==
Oracle has not certified any of its products on VMware virtualized environments
==

navion пишет: 20 июня 2012 в 22:14

==
Про Оракел они слукавили – VMware сами занимаются его поддержкой (http://www.vmware.com/solutions/partners/alliances/oracle-vmware-support.html)
==

Если так -- хорошо

Стоп машина:
Речь про Oracke СУБД ? Или про ОС Solaris ?

Просто хотел отметить следующее:
MS понимает под поддержкой то, что работники MS будут решать проблемы клиента сами -- соответственно, ожидают этого же от конкурента,
когда видят слово "поддержка"

navion пишет: 20 июня 2012 в 22:14

==
а в остальном круто, надеюсь инициативы не заглохнут.
==

Зачастую, приходится _заставлять_ разработчиков и от MS, и от Linux Kernel Team
решать проблемы см. например эпопею с

==
> > > Please, _fix_ errors related
> > > "use hv_storvsc instead of ata_piix to handle the IDE disks devices ( but not for the CD-ROM)"

. . .

cd006086fa5d ata_piix: defer disks to the Hyper-V drivers by default

and its prerequisite

db63a4c8115a libata: add a host flag to ignore detected ATA devices
==

Dim-soft пишет: 28 мая 2012 в 16:26

==
про изменение размеров дисков “на горячую” соглашусь,
надо было срочно увеличить размер системного диска (exchange встал) на esxi 5 мин и все,
на hyper-v пришлось перезагружать.
==

На практике: создавайте динамический .vhd максимального размера,
NTFS раздел можно увеличивать, уменьшать на ходу внутри гостя в .MMC остнастке Windows,
начиная с Win 2008 -- даже системный диск ( он же диск C: )

Если устанавливать Exchange, как положено, на более быстрые диски т.е SCSI, то:
в Hyper-V SCSI-диски можно отключать, подключать на ходу

Итого ( это на случай, если .vhd без запаса по размеру):
-- останаливаем сервисы Exchange
-- отключаем диск
-- увеличиваем размер .vhd
-- подключаем диск
-- увеличиваем NTFS раздел
-- запускаем сервисы Exchange

Т.е. _перезагружать_ не пришлось

dim-soft пишет: 20 июня 2012 в 22:09
==
Проблема была не в диске D с базой exchange, а в системном диске, а он только IDE, т.к. hyper-v не умеет загружаться с scsi
или надо было творить костыль разделяя системный и загрузочный диски ?
==

dim-soft пишет: 20 июня 2012 в 22:09

==
разделяя системный и загрузочный диски ?
==

В Linux такое проходит: Grub + /boot/* на IDE , остальное на SCSI

Сам не пробовал, но и
Не удивлюсь, если и с MS Win v6.0 / v6.1 / v6.2 ( Win 2008 / R2 / Win 2012 )
пройдет нечто похожее

dim-soft пишет: 20 июня 2012 в 22:09

==
Проблема была . . . в системном диске, а он только IDE
==

Расшифрую свои слова:

==
На практике: создавайте динамический .vhd максимального размера
==

.vhd _сразу_ делаем с большим запасом по размеру, но оставляем почти пустым:

+------------------------------- . . .
|
| .vhd присоедененный к IDE 300 - 500Gb
| ( кстати, потолок Virtual PС в 127Gb в IDE дисках преодолен в Hyper-V)
| +------------------------++------------------------------- . . .
| | Disk С: NTFS 40Gb_*****|| Free space
| +------------------------++-------------------------------- . . .
|
+------------------------------- . . .

а когда потребуется место для раздела / partition

--- NTFS раздел можно увеличивать на ходу внутри гостя в .MMC остнастке Windows --}

+------------------------------- . . .
|
| .vhd присоедененный к IDE 300 - 500Gb
| +------------------------------------------++-------------+
| | Disk С: NTFS 83Gb__**********************|| Free space
| +------------------------------------------++-------------+
|
+------------------------------- . . .

вот и не нужен особо динамически расширяемый на ходу .vhd ,
но если будет -- не откажусь

Андрей Вахитов пишет: 21 июня 2012 в 13:55

Насколько я понял из

http://blogs.technet.com/b/vm/archive/2012/05/13/support-for-ubuntu-and-freebsd.aspx

===
Microsoft заключил соглашение о поддержке пользователей Ubuntu, запущенных в виртуальной среде Hyper-V.
Теперь, как и в случае с RedHat, SUSE и CentOS,
при возникновении проблем с виртуализованным Ubuntu можно обращаться на линию технической поддержки Microsoft,
которая будет сама эскалировать инциденты в Ubuntu и являться единой точкой входа.
===

==
беру железку, ставлю туда бесплатный Hyper-V сервер
Имею проблемы, после чего звоню в техподдержку MS и что?..
==
+
==
внедряю внутрь ВМ OpenSuse/FreeBSD, CentOS
==
+
===
я купил Win2k8R2, опять же поднял Hyper-V и установил внутрь гостей бесплатных никсовых операционок.
Вы хотите сказать, что в рамках техподдержки MS начнет решать мои проблемы с никсами?
===

да будет
SUSE ( скорее SLES)
RedHat
CentOS
Ubuntu

( список -- в порядке времени начала дружбы с MS т.е. заключения спец.договора )

Насколько понял, "фуршет" оплачивают производители Linux, скорее всего, встречными услугами от них фирме MicroSoft

Про остальные Free OS: "Debian? А с кем там можно заключить договор?"

FreeBSD -- IMHO, аналогично,
но есть _корпоративные_ profy-любители
==
NetApp совместно с Citrix разрабатывает компоненты интеграции Hyper-V для FreeBSD
==
так что, ничего не исключаю Ж-)

Факт ( эпопея с
"use hv_storvsc instead of ata_piix to handle the IDE disks devices ( but not for the CD-ROM)"
и не только) : Разработчики SUSE и, в последнее время, Ubuntu
вовсю учавствуют в "Hyper-V for Linux" и вообще, в широком смысле,
работоспособности [ своих ] Linux-ов в ПО виртуализации от MS.

Правильный ответ на "кроссворд" :-) :

From: Alex A. Kibkalo
Sent: Thursday, June 21, 2012 6:29 PM

===

Поддержка гостевых ОС осуществляется так же, как и физических ОС.

Если у вас куплены лицензии на Windows Server – то с каждой лицензией идёт 5 инцидентов (больше для Datacenter, с ходу не скажу сколько, ибо я никогда в поддержке не работал).

Итак, если у вас есть лицензии на Windows Server, вы можете открывать инциденты. В том числе по non-MS ОС в гостевых системах, - даже если они запущены на бесплатном гипервизоре (нам не важно на что вы расходуете свои инциденты).

Таким образом вы нам уже заплатили за открытие инцидента.

Если же вы взяли просто Hyper-V Server, не купив ничего у Microsoft, то далее второй линии поддержки не уйти (запросы к сторонним вендорам делает третья линия).

Если вы купили один контроллер домена, и поставили два бесплатных Hyper-V в кластер, сделали десяток юниксов в ВМ – пять инцидентов мы отработаем.

Далее за деньги – также как и в случае простых инцидентов по самому физическому Windows серверу. Пять даром, далее платите по инцидентно, или покупайте Премьер контракт.

==

(

http://blogs.technet.com/b/vm/archive/2012/05/13/support-for-ubuntu-and-freebsd.aspx

VVM Thu, Jun 28 2012 11:35 AM

==
Alex A. Kibkalo >> Я вроде бы уже в почте отвечал на этот вопрос для вашего сайта через читателей :)
==

Было дело . . .

==
VVM:> Чудес не бывает Ж-)
VVM:> будет время, опубликую
==

не успел . . .

Подробнее здесь

http://vvm.blog.tut.by/2012/06/20/vy-vse-eshhe-sravnivaete-gipervizory-answers/

там же ссылка на "сайт Templier-а"

==
Templier:> если вы запустите Netware в MS VirtualPC, получите утилизацию процессора в 100%.
==

Используйте "NetWare CPU Idle NLM"

Nw5-idle.nlm
или
Nw4-idle.nlm

==
Novell NetWare does not implement a processor idle loop by default.
While this is not detrimental on native hardware,
as Novell NetWare is fully in control of the processor,
in Virtual PC this causes the virtual environment to use all available processing power.
This excessive processor usage can be avoided
by loading an idle module such as 'NW5-IDLE.NLM'
. . .

Please note that while this module is called 'NW5-IDLE.NLM'
it works perfectly on Novel NetWare 6.0 as well.
==

)

Забавно: вообще-то, IDLE.NLM "из мира VMWare" , см. например:

http://novell.org.ru/forum/viewtopic.php?f=1&t=11680

==
NW5-IDLE.NLM . . . для тех . . . [ кому ] надо "разгрузить" реальный процессор.
. . .

Без него nw сервер в виртуалке будет честно жрать 100% выданных ему CPU в режиме Utilization 0%.
. . .

грузить в AUTOEXEC.NCF для NetWare 5.x - 6.0, поскольку без него виртуалка отжирала слишком много CPU от хост-машины.

. . .
==

Если не найдете -- пишите прямо здесь в комментарий, комплект сохранился . . .

Strawberry Perl v5.12.3 and Crypt-DSA Bug RT #49668

Crypt::DSA needs a patch to install with OpenSSL v1.X in Strawberry Perl v5.14.X / v5.12.X ( see RT #49668 "Crypt-DSA Bug #49668")

HowTo fix:
perl-Crypt-DSA-dsaparam.patch Sun Sep 13 05:18:33 2009 (3.6k) by paul [...] city-fan.org

http://rt.cpan.org/Public/Bug/Display.html?id=49668

== Crypt-DSA-1.16.yml ==
---
comment: |

Crypt::DSA needs a patch to install with OpenSSL v1.X in Strawberry Perl v5.14.X / v5.12.X ( see RT #49668 "Crypt-DSA Bug #49668")

match:
distribution: |
^(?x:
.^ # never matches, only purpose is to let things align nicely
|ADAMK\Crypt-DSA-1.16.tar.gz # Needs a patch to install.
)|
patches:
- "Crypt-DSA-1.16.patch"
==

== Crypt-DSA-1.16.patch ==

# Strawberry Perl v5.14.X / v5.12.X and Crypt-DSA Bug RT #49668
# See:
# http://rt.cpan.org/Public/Bug/Display.html?id=49668
#
# perl-Crypt-DSA-dsaparam.patch 2009-09-12 22:56:31 by paul (at) city-fan.org
#
# Crypt-DSA-1.16.patch by Victor Miasnikov
# See:
# http://vvm.blog.tut.by/2011/06/14/strawberry-perl-v5-12-3-and-crypt-dsa-bug-49668/
#
#
# To apply this patch:
# STEP 1: Chdir to the source directory.
# STEP 2: Run the 'applypatch' program with this patch file as input.
#
# If you do not have 'applypatch', it is part of the 'makepatch' package
# that you can fetch from the Comprehensive Perl Archive Network:
# http://www.perl.com/CPAN/authors/Johan_Vromans/makepatch-x.y.tar.gz
# In the above URL, 'x' should be 2 or higher.
#
# To apply this patch without the use of 'applypatch':
# STEP 1: Chdir to the source directory.
# STEP 2: Run the 'patch' program with this file as input.
#
#### End of Preamble ####

#### Patch data follows ####
diff -c "C:\strawberry\cpanplus--VVM0--Crypt-DSA-1.16\lib\Crypt\DSA\KeyChain.pm" "C:\strawberry\cpanplus\5.12.3\build\Crypt-DSA-1.16\lib\Crypt\DSA\KeyChain.pm"
Index: ./lib/Crypt/DSA/KeyChain.pm
*** ./lib/Crypt/DSA/KeyChain.pm Fri Sep 11 15:45:37 2009
--- ./lib/Crypt/DSA/KeyChain.pm Fri Sep 11 22:56:31 2009
***************
*** 53,59 ****
my $cur_part;
foreach (@res) {
if (/^\s+(\w):\s*$/) {
! $cur_part = $1;
next;
}
if (/^\s*((?:[0-9a-f]{2,2}:?)+)\s*$/) {
--- 53,59 ----
my $cur_part;
foreach (@res) {
if (/^\s+(\w):\s*$/) {
! $cur_part = lc($1);
next;
}
if (/^\s*((?:[0-9a-f]{2,2}:?)+)\s*$/) {
#### End of Patch data ####

#### ApplyPatch data follows ####
# Data version : 1.0
# Date generated : Wed Jun 15 12:11:06 2011
# Generated by : makepatch 2.04
# Recurse directories : Yes
# Excluded files : (\A|/).*\~\Z
# (\A|/).*\.a\Z
# (\A|/).*\.bak\Z
# (\A|/).*\.BAK\Z
# (\A|/).*\.elc\Z
# (\A|/).*\.exe\Z
# (\A|/).*\.gz\Z
# (\A|/).*\.ln\Z
# (\A|/).*\.o\Z
# (\A|/).*\.obj\Z
# (\A|/).*\.olb\Z
# (\A|/).*\.old\Z
# (\A|/).*\.orig\Z
# (\A|/).*\.rej\Z
# (\A|/).*\.so\Z
# (\A|/).*\.Z\Z
# (\A|/)\.del\-.*\Z
# (\A|/)\.make\.state\Z
# (\A|/)\.nse_depinfo\Z
# (\A|/)core\Z
# (\A|/)tags\Z
# (\A|/)TAGS\Z
# p "lib/Crypt/DSA/KeyChain.pm" 6858 1252698991 0100666
#### End of ApplyPatch data ####

#### End of Patch kit [created: Wed Jun 15 12:11:06 2011] ####
#### Patch checksum: 55 2129 57221 ####
#### Checksum: 82 3101 4475 ####
==

---------

Error description:
=== debug.out ==
Loading CPAN...
Installing Crypt::DSA from CPAN...
Going to read 'C:\strawberry\cpan\sources\authors1mailrc.txt.gz'
............................................................................DONE
Going to read 'C:\strawberry\cpan\sources\modules2packages.details.txt.gz'
Database was generated on Mon, 13 Jun 2011 08:29:41 GMT
............................................................................DONE
Going to read 'C:\strawberry\cpan\sources\modules3modlist.data.gz'
............................................................................DONE
$ENV{PATH} = 'C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin;C:\sb\perl\site\bin;C:\BIN\ImageMagick;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\'
Running install for module 'Crypt::DSA'
Running make for A/AD/ADAMK/Crypt-DSA-1.16.tar.gz
Fetching with LWP:

http://cpan.strawberryperl.com/authors/id/A/AD/ADAMK/Crypt-DSA-1.16.tar.gz

Checksum for C:\strawberry\cpan\sources\authors\id\A\AD\ADAMK\Crypt-DSA-1.16.tar.gz ok

CPAN.pm: Going to build A/AD/ADAMK/Crypt-DSA-1.16.tar.gz

Checking if your kit is complete...
Looks good
Writing Makefile for Crypt::DSA
Could not read metadata file. Falling back to other methods to determine prerequisites
cp lib/Crypt/DSA/Signature.pm blib\lib\Crypt\DSA\Signature.pm
cp lib/Crypt/DSA/Key/SSH2.pm blib\lib\Crypt\DSA\Key\SSH2.pm
cp lib/Crypt/DSA.pm blib\lib\Crypt\DSA.pm
cp lib/Crypt/DSA/Util.pm blib\lib\Crypt\DSA\Util.pm
cp lib/Crypt/DSA/KeyChain.pm blib\lib\Crypt\DSA\KeyChain.pm
cp lib/Crypt/DSA/Key.pm blib\lib\Crypt\DSA\Key.pm
cp lib/Crypt/DSA/Key/PEM.pm blib\lib\Crypt\DSA\Key\PEM.pm
ADAMK/Crypt-DSA-1.16.tar.gz
C:\strawberry\c\bin\dmake.EXE -- OK
Running make test
C:\strawberry\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib\lib', 'blib\arch')" t/*.t
t/00-compile.t .. ok
t/01-util.t ..... ok
t/02-sign.t .....
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 4/4 subtests
t/03-keygen.t ...
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 18/18 subtests
t/04-pem.t ...... skipped: no Crypt::DES_EDE3
t/06-fips.t ..... ok
t/07-openid.t ... skipped: no Convert::PEM
t/97_meta.t ..... skipped: Author tests not required for installation
t/98_pod.t ...... skipped: Author tests not required for installation
t/99_pmv.t ...... skipped: Author tests not required for installation

Test Summary Report
-------------------
t/02-sign.t (Wstat: 65280 Tests: 0 Failed: 0)
Non-zero exit status: 255
Parse errors: Bad plan. You planned 4 tests but ran 0.
t/03-keygen.t (Wstat: 65280 Tests: 0 Failed: 0)
Non-zero exit status: 255
Parse errors: Bad plan. You planned 18 tests but ran 0.
Files=10, Tests=23, 26 wallclock secs ( 0.08 usr + 0.09 sys = 0.17 CPU)
Result: FAIL
ADAMK/Crypt-DSA-1.16.tar.gz
C:\strawberry\c\bin\dmake.EXE test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports ADAMK/Crypt-DSA-1.16.tar.gz
Running make install
make test had returned bad status, won't install without force
Completed install of Crypt::DSA
===

=== debug.err ==
# Testing Crypt::DSA 1.16
Use of uninitialized value $parts{"p"} in concatenation (.) or string at C:\strawberry\cpan\build\Crypt-DSA-1.16-APootp\blib\lib/Crypt/DSA/KeyChain.pm line 68.
Use of uninitialized value $parts{"q"} in concatenation (.) or string at C:\strawberry\cpan\build\Crypt-DSA-1.16-APootp\blib\lib/Crypt/DSA/KeyChain.pm line 69.
Use of uninitialized value $parts{"g"} in concatenation (.) or string at C:\strawberry\cpan\build\Crypt-DSA-1.16-APootp\blib\lib/Crypt/DSA/KeyChain.pm line 70.
Can't call method "copy" without a package or object reference at C:\strawberry\cpan\build\Crypt-DSA-1.16-APootp\blib\lib/Crypt/DSA/Util.pm line 43.
# Looks like your test exited with 255 before it could output anything.
Use of uninitialized value $parts{"p"} in concatenation (.) or string at C:\strawberry\cpan\build\Crypt-DSA-1.16-APootp\blib\lib/Crypt/DSA/KeyChain.pm line 68.
Use of uninitialized value $parts{"q"} in concatenation (.) or string at C:\strawberry\cpan\build\Crypt-DSA-1.16-APootp\blib\lib/Crypt/DSA/KeyChain.pm line 69.
Use of uninitialized value $parts{"g"} in concatenation (.) or string at C:\strawberry\cpan\build\Crypt-DSA-1.16-APootp\blib\lib/Crypt/DSA/KeyChain.pm line 70.
Can't call method "copy" without a package or object reference at C:\strawberry\cpan\build\Crypt-DSA-1.16-APootp\blib\lib/Crypt/DSA/Util.pm line 43.
# Looks like your test exited with 255 before it could output anything.
# This takes a couple of minutes on slower machines.
Failed 2/10 test programs. 0/23 subtests failed.
dmake.EXE: Error code 255, while making 'test_dynamic'
Installation of Crypt::DSA appears to have failed at C:\tmp\build\cpan_string.pl line 41.
===

perl-Crypt-DSA-dsaparam.patch Sun Sep 13 05:18:33 2009 (3.6k) by paul [...] city-fan.org

http://rt.cpan.org/Public/Bug/Display.html?id=49668

=>
[

http://rt.cpan.org/Ticket/Attachment/663526/340507/perl-Crypt-DSA-dsaparam.patch

]

===
There's a slight change of output format in the openssl dsaparam command from
current versions to the forthcoming 1.0 release:

openssl 0.9.8k:

$ openssl dsaparam -text -noout 512
Generating DSA parameters, 512 bit long prime
This could take some time
........+..+++++++++++++++++++++++++++++++++++++++++++++++++++*
..+....................+................+.+................+................................+...+..+...........+.....+.............+.......+....+..............+.......+...+.....+.................+....+.............................+.......+..........+..+...+........+...............+......+..........+..+.....+............+.+..+...+.....+....+++++++++++++++++++++++++++++++++++++++++++++++++++*
DSA-Parameters: (512 bit)
p:
00:e6:6c:38:ce:8d:9f:1d:f0:7a:12:50:1e:ef:5c:
73:fe:2e:7a:b0:ed:27:a0:96:c3:37:98:de:e9:b6:
a2:e6:3a:97:9d:d5:c1:f8:1e:f4:2d:38:29:d8:08:
ac:f1:20:28:51:54:cb:7a:a1:36:f6:e7:07:b1:cf:
23:8d:6e:a1:33
q:
00:f4:7b:0c:a8:98:d7:e0:d0:3e:92:94:95:30:f5:
21:0a:86:db:16:55
g:
00:c6:81:8d:32:72:6b:6b:a5:d2:90:fb:c2:31:c4:
73:e0:1b:05:bb:17:5c:b2:b2:09:69:17:78:41:fc:
99:a1:9b:07:ca:a7:02:5f:0e:1f:dd:35:05:90:ac:
e8:66:47:ca:9a:1a:77:a4:f4:5e:65:66:64:bf:34:
7d:fe:30:bf:5a

openssl 1.0 beta 3:

$ openssl dsaparam -text -noout 512
Generating DSA parameters, 512 bit long prime
This could take some time
.+........+++++++++++++++++++++++++++++++++++++++++++++++++++*
...+................+.....+..........+.+.+...........+.+............+............+......+...+.........................................+......+......+...............+...+....+..............+++++++++++++++++++++++++++++++++++++++++++++++++++*
P:
00:82:ab:91:c2:9e:8e:c1:cd:cb:70:68:12:c9:44:
90:20:97:e4:69:77:fc:53:ce:78:2c:3d:01:5c:69:
42:45:bc:e7:06:2f:4e:75:d4:10:3b:ae:de:43:6f:
d8:86:6d:1e:f9:1d:c5:8e:0d:92:ca:e7:23:2e:5b:
42:26:09:88:3b
Q:
00:f9:dc:55:fd:ca:48:8c:d4:e9:df:8a:25:6d:f7:
82:5d:f8:34:34:3f
G:
6b:75:a7:e5:ac:2e:3a:79:65:01:51:cb:78:a3:06:
73:47:0a:b8:9c:de:68:36:c5:5e:44:02:fe:8a:73:
73:bc:d3:1a:ec:08:40:da:b3:f6:e2:0b:14:e6:1c:
0d:f5:ef:62:0e:bf:64:18:96:ee:87:f7:13:89:42:
cc:69:6e:be

The change to labelling the parameters in upper case causes
Crypt::DSA::Keychain to fail like this (from the test suite):

Use of uninitialized value $parts{"p"} in concatenation (.) or string at /builddir/build/BUILD/Crypt-DSA-1.16/blib/lib/Crypt/DSA/KeyChain.pm line 69.
Use of uninitialized value $parts{"q"} in concatenation (.) or string at /builddir/build/BUILD/Crypt-DSA-1.16/blib/lib/Crypt/DSA/KeyChain.pm line 70.
Use of uninitialized value $parts{"g"} in concatenation (.) or string at /builddir/build/BUILD/Crypt-DSA-1.16/blib/lib/Crypt/DSA/KeyChain.pm line 71.
Can't locate object method "copy" via package "NaN" (perhaps you forgot to load "NaN"?) at /builddir/build/BUILD/Crypt-DSA-1.16/blib/lib/Crypt/DSA/Util.pm line 43.
# Looks like your test exited with 255 before it could output anything.

The patch changes the parameter labels to lower case, making the code
compatible with both old and new versions of openssl.

--- Crypt-DSA-1.16/lib/Crypt/DSA/KeyChain.pm 2009-09-11 13:45:37.000000000 +0100
+++ Crypt-DSA-1.16/lib/Crypt/DSA/KeyChain.pm 2009-09-12 22:56:31.000000000 +0100
@@ -53,7 +53,7 @@
my $cur_part;
foreach (@res) {
if (/^\s+(\w):\s*$/) {
- $cur_part = $1;
+ $cur_part = lc($1);
next;
}
if (/^\s*((?:[0-9a-f]{2,2}:?)+)\s*$/) {
===

Install makepatch:
cpanp i JV/makepatch-2.04.tar.gz

Run:
cpanp z Crypt::DSA

exit

Apply patch:
===
--- Crypt-DSA-1.16/lib/Crypt/DSA/KeyChain.pm 2009-09-11 13:45:37.000000000 +0100
+++ Crypt-DSA-1.16/lib/Crypt/DSA/KeyChain.pm 2009-09-12 22:56:31.000000000 +0100
@@ -53,7 +53,7 @@
my $cur_part;
foreach (@res) {
if (/^\s+(\w):\s*$/) {
- $cur_part = $1;
+ $cur_part = lc($1);
next;
}
if (/^\s*((?:[0-9a-f]{2,2}:?)+)\s*$/) {
===

Generate Crypt-DSA-1.16.patch
makepatch C:\strawberry\cpanplus--VVM0--Crypt-DSA-1.16\ C:\strawberry\cpanplus\5.12.3\build\Crypt-DSA-1.16\ >Crypt-DSA-1.16.patch

Type patch description:
==
Strawberry Perl v5.14.X / v5.12.X and Crypt-DSA Bug RT #49668
See http://rt.cpan.org/Public/Bug/Display.html?id=49668

perl-Crypt-DSA-dsaparam.patch 2009-09-12 22:56:31 by paul (at) city-fan.org

Crypt-DSA-1.16.patch by Victor Miasnikov
See:

http://vvm.blog.tut.by/2011/06/14/strawberry-perl-v5-12-3-and-crypt-dsa-bug-49668/

==

Type single '.'

Screenshot:
===
Manifest MANIFEST for C:\strawberry\cpanplus--VVM0--Crypt-DSA-1.16\ contains 32 files.
Manifest MANIFEST for C:\strawberry\cpanplus\5.12.3\build\Crypt-DSA-1.16\ contains 32 files.
Processing the filelists ...
Enter patch description, terminated with a single '.':
>> Strawberry Perl v5.14.X / v5.12.X and Crypt-DSA Bug RT #49668
>> See:
>> http://rt.cpan.org/Public/Bug/Display.html?id=49668
>>
>> perl-Crypt-DSA-dsaparam.patch 2009-09-12 22:56:31 by paul (at) city-fan.org
>>
>> Crypt-DSA-1.16.patch by Victor Miasnikov
>> See:
>> http://vvm.blog.tut.by/2011/06/14/strawberry-perl-v5-12-3-and-crypt-dsa-bug-49668/
>>
>> .
Collecting patches ...
1 file need to be patched.
===

== Crypt-DSA-1.16.patch ==

# Strawberry Perl v5.14.X / v5.12.X and Crypt-DSA Bug RT #49668
# See:
# http://rt.cpan.org/Public/Bug/Display.html?id=49668
#
# perl-Crypt-DSA-dsaparam.patch 2009-09-12 22:56:31 by paul (at) city-fan.org
#
# Crypt-DSA-1.16.patch by Victor Miasnikov
# See:
# http://vvm.blog.tut.by/2011/06/14/strawberry-perl-v5-12-3-and-crypt-dsa-bug-49668/
#
#
# To apply this patch:
# STEP 1: Chdir to the source directory.
# STEP 2: Run the 'applypatch' program with this patch file as input.
#
# If you do not have 'applypatch', it is part of the 'makepatch' package
# that you can fetch from the Comprehensive Perl Archive Network:
# http://www.perl.com/CPAN/authors/Johan_Vromans/makepatch-x.y.tar.gz
# In the above URL, 'x' should be 2 or higher.
#
# To apply this patch without the use of 'applypatch':
# STEP 1: Chdir to the source directory.
# STEP 2: Run the 'patch' program with this file as input.
#
#### End of Preamble ####

#### Patch data follows ####
diff -c "C:\strawberry\cpanplus--VVM0--Crypt-DSA-1.16\lib\Crypt\DSA\KeyChain.pm" "C:\strawberry\cpanplus\5.12.3\build\Crypt-DSA-1.16\lib\Crypt\DSA\KeyChain.pm"
Index: ./lib/Crypt/DSA/KeyChain.pm
*** ./lib/Crypt/DSA/KeyChain.pm Fri Sep 11 15:45:37 2009
--- ./lib/Crypt/DSA/KeyChain.pm Fri Sep 11 22:56:31 2009
***************
*** 53,59 ****
my $cur_part;
foreach (@res) {
if (/^\s+(\w):\s*$/) {
! $cur_part = $1;
next;
}
if (/^\s*((?:[0-9a-f]{2,2}:?)+)\s*$/) {
--- 53,59 ----
my $cur_part;
foreach (@res) {
if (/^\s+(\w):\s*$/) {
! $cur_part = lc($1);
next;
}
if (/^\s*((?:[0-9a-f]{2,2}:?)+)\s*$/) {
#### End of Patch data ####

#### ApplyPatch data follows ####
# Data version : 1.0
# Date generated : Wed Jun 15 12:11:06 2011
# Generated by : makepatch 2.04
# Recurse directories : Yes
# Excluded files : (\A|/).*\~\Z
# (\A|/).*\.a\Z
# (\A|/).*\.bak\Z
# (\A|/).*\.BAK\Z
# (\A|/).*\.elc\Z
# (\A|/).*\.exe\Z
# (\A|/).*\.gz\Z
# (\A|/).*\.ln\Z
# (\A|/).*\.o\Z
# (\A|/).*\.obj\Z
# (\A|/).*\.olb\Z
# (\A|/).*\.old\Z
# (\A|/).*\.orig\Z
# (\A|/).*\.rej\Z
# (\A|/).*\.so\Z
# (\A|/).*\.Z\Z
# (\A|/)\.del\-.*\Z
# (\A|/)\.make\.state\Z
# (\A|/)\.nse_depinfo\Z
# (\A|/)core\Z
# (\A|/)tags\Z
# (\A|/)TAGS\Z
# p "lib/Crypt/DSA/KeyChain.pm" 6858 1252698991 0100666
#### End of ApplyPatch data ####

#### End of Patch kit [created: Wed Jun 15 12:11:06 2011] ####
#### Patch checksum: 55 2129 57221 ####
#### Checksum: 82 3101 4475 ####
==

== Crypt-DSA-1.16.yml ==
---
comment: |

Crypt::DSA needs a patch to install with OpenSSL v1.X in Strawberry Perl v5.14.X / v5.12.X ( see RT #49668 "Crypt-DSA Bug #49668")

match:
distribution: |
^(?x:
.^ # never matches, only purpose is to let things align nicely
|ADAMK\Crypt-DSA-1.16.tar.gz # Needs a patch to install.
)|
patches:
- "Crypt-DSA-1.16.patch"
==

Tests runs without errors:
==
C:\strawberry\cpanplus\5.12.3\build\Crypt-DSA-1.16>perl Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for Crypt::DSA

C:\strawberry\cpanplus\5.12.3\build\Crypt-DSA-1.16>dmake
cp lib/Crypt/DSA/Signature.pm blib\lib\Crypt\DSA\Signature.pm
cp lib/Crypt/DSA/Key/SSH2.pm blib\lib\Crypt\DSA\Key\SSH2.pm
cp lib/Crypt/DSA.pm blib\lib\Crypt\DSA.pm
cp lib/Crypt/DSA/Util.pm blib\lib\Crypt\DSA\Util.pm
cp lib/Crypt/DSA/KeyChain.pm blib\lib\Crypt\DSA\KeyChain.pm
cp lib/Crypt/DSA/Key.pm blib\lib\Crypt\DSA\Key.pm
cp lib/Crypt/DSA/Key/PEM.pm blib\lib\Crypt\DSA\Key\PEM.pm

C:\strawberry\cpanplus\5.12.3\build\Crypt-DSA-1.16>dmake test
C:\strawberry\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib\lib', 'blib\arch')" t/*.t
t/00-compile.t .. # Testing Crypt::DSA 1.16
t/00-compile.t .. ok
t/01-util.t ..... ok
t/02-sign.t ..... ok
t/03-keygen.t ... ok
t/04-pem.t ...... ok
t/06-fips.t ..... 1/9 # This takes a couple of minutes on slower machines.
t/06-fips.t ..... ok
t/07-openid.t ... ok
t/97_meta.t ..... skipped: Author tests not required for installation
t/98_pod.t ...... skipped: Author tests not required for installation
t/99_pmv.t ...... skipped: Author tests not required for installation
All tests successful.
Files=10, Tests=82, 31 wallclock secs ( 0.25 usr + 0.03 sys = 0.28 CPU)
Result: PASS
==

----- Original Message -----
From: "Victor Miasnikov"
To: "Curtis Jewell"
Sent: Wednesday, June 15, 2011 12:47 PM
Subject: Crypt-DSA-1.16.yml Crypt-DSA-1.16.patch Fw: Crypt::DSA needs a patch to install with OpenSSL v1.X in Strawberry Perl v5.14.X / v5.12.X ( see RT #49668 "Crypt-DSA Bug #49668")

. . .

== Crypt-DSA-1.16.yml ==
. . .

== Crypt-DSA-1.16.patch ==
. . .

Tests runs without errors

Best regards, Victor Miasnikov
Blog: http://vvm.blog.tut.by/
---

----- Original Message -----
From: "Curtis Jewell"
To: "Victor Miasnikov"
Sent: Wednesday, June 15, 2011 12:52 PM
Subject: Re: Crypt-DSA-1.16.yml Crypt-DSA-1.16.patch Fw: Crypt::DSA needs a patch to install with OpenSSL v1.X in Strawberry Perl v5.14.X / v5.12.X ( see RT #49668 "Crypt-DSA Bug #49668")

This was great, Victor. Thanks! Was very much appreciated.

Curtis Jewell
---


2011-03-14 17-53:

1) See later:
==
sha1.c: In function 'sha_transform':
sha1.c:146: warning: right shift count >= width of type
boot.c: In function 'main':
boot.c:123: warning: passing argument 3 of 'spawnvpe' from incompatible pointer type
==

2) See later:

cpanp i Getopt::ArgvFile
cpanp i Module::ScanDeps

---------

HowTo: Strawberry Perl v5.12.3 x64 and PAR::Packer

After run:
===
cpanp i PAR-Packer
===

===
. . .
t/resolvepathes.t .. ok
t/use1.t ........... ok
t/use2.t ........... ok
All tests successful.
Files=10, Tests=43, 1 wallclock secs ( 0.06 usr + 0.08 sys = 0.14 CPU)
Result: PASS
Running [C:\strawberry\perl\bin\perl.exe C:\strawberry\perl\bin\cpanp-run-perl C:\strawberry\cpanplus\5.12.3\build\Module-ScanDeps-1.02\Makefile.PL]...
Checking if your kit is complete...
Looks good
Writing Makefile for Module::ScanDeps
Running [C:\STRAWB~2\c\bin\dmake.EXE test UNINST=1]...
C:\strawberry\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib\lib', 'blib\arch')" t/*.t
t/0-pod.t ....................................... skipped: Test::Pod 1.00 required for testing POD
t/1-static_functional_interface_real.t .......... ok
t/10-case-insensitive-keys.t .................... ok
t/11-finds-shared-lib.t ......................... ok
t/12-ScanFileRE.t ............................... ok
t/13-static_prefork_test.t ...................... skipped: This test requires prefork.pm which is not installed. Skipping.
t/14-scan_chunk.t ............................... ok
0
Couldn't retrieve data from file deps_cache.dat. Building new cache.
t/14-static_functional_cached.t ................. ok
t/16-scan_line.t ................................ ok
t/17-private_methods.t .......................... ok
t/2-static_functional_interface_fake.t .......... ok
t/3-static_oo_interface_real.t .................. ok
t/4-static_functional_interface_options_fake.t .. ok
t/5-pluggable_fake.t ............................ ok
t/6-file-glob.t ................................. ok
t/7-check-dynaloader.t .......................... ok
t/8-check_duplicated_entries.t .................. ok
t/9-check_path_to_inc_name.t .................... ok
All tests successful.
Files=18, Tests=113540, 465 wallclock secs (13.75 usr + 0.59 sys = 14.34 CPU)
Result: PASS
[ERROR] MAKE failed: cp lib/App/Packer/PAR.pm blib\lib\App\Packer\PAR.pm
cp lib/PAR/Packer.pm blib\lib\PAR\Packer.pm
cp lib/PAR/Filter/Obfuscate.pm blib\lib\PAR\Filter\Obfuscate.pm
cp lib/PAR/Filter/PodStrip.pm blib\lib\PAR\Filter\PodStrip.pm
cp lib/PAR/StrippedPARL/Base.pm blib\lib\PAR\StrippedPARL\Base.pm
cp lib/PAR/Filter.pm blib\lib\PAR\Filter.pm
cp lib/PAR/Filter/PatchContent.pm blib\lib\PAR\Filter\PatchContent.pm
cp lib/PAR/Filter/Bytecode.pm blib\lib\PAR\Filter\Bytecode.pm
cp lib/pp.pm blib\lib\pp.pm
cp lib/PAR/Filter/Bleach.pm blib\lib\PAR\Filter\Bleach.pm
C:\strawberry\perl\bin\perl.exe sha1.c.PL
gcc -c -s -O2 -DWIN32 -DHAVE_DES_FCRYPT -DWIN64 -DCONSERVATIVE -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfie
lds -DPERL_MSVCRT_READFIX -I"C:\strawberry\perl\lib\CORE" -DLOAD_MY_LIBGCC -DPARL_EXE=\"parl.exe\" -s -O2 main.c
C:\strawberry\perl\bin\perl.exe file2c.pl -s ..\script\par.pl -l my_par_pl.c load_my_par_pl
gcc -c -s -O2 -DWIN32 -DHAVE_DES_FCRYPT -DWIN64 -DCONSERVATIVE -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfie
lds -DPERL_MSVCRT_READFIX -I"C:\strawberry\perl\lib\CORE" -DLOAD_MY_LIBGCC -DPARL_EXE=\"parl.exe\" -s -O2 my_par_pl.c
g++ main.o my_par_pl.o win32.coff -s -s -L"C:\strawberry\perl\lib\CORE" -L"C:\strawberry\c\lib" C:\strawberry\perl\lib\CORE\libperl512.a C:\strawberry\c\x86_
64-w64-mingw32\lib\libmoldname.a C:\strawberry\c\x86_64-w64-mingw32\lib\libkernel32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libuser32.a C:\strawberry\c\x86_64-
w64-mingw32\lib\libgdi32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libwinspool.a C:\strawberry\c\x86_64-w64-mingw32\lib\libcomdlg32.a C:\strawberry\c\x86_64-w64-
mingw32\lib\libadvapi32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libshell32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libole32.a C:\strawberry\c\x86_64-w64-mingw
32\lib\liboleaut32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libnetapi32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libuuid.a C:\strawberry\c\x86_64-w64-mingw32\li
b\libws2_32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libmpr.a C:\strawberry\c\x86_64-w64-mingw32\lib\libwinmm.a C:\strawberry\c\x86_64-w64-mingw32\lib\libversio
n.a C:\strawberry\c\x86_64-w64-mingw32\lib\libodbc32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libodbccp32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libcomctl32.a
-o par.exe
win32.coff: file not recognized: File format not recognized
collect2: ld returned 1 exit status
dmake: Error code 129, while making 'par.exe'
dmake.EXE: Error code 255, while making 'subdirs'

[ERROR] Unable to create a new distribution object for 'PAR::Packer' -- cannot continue

*** Install log written to:
C:\strawberry\cpanplus\install-logs\PAR-Packer-1.009-1307946827.log

Error installing 'PAR::Packer'
Problem installing one or more modules
===

See:

https://rt.cpan.org/Public/Bug/Display.html?id=57273

For fix this issue:
==
win32.coff: file not recognized: File format not recognized
==

cpanp i Getopt::ArgvFile
cpanp i Module::ScanDeps

cpanp z PAR-Packer

Go to:
C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009

md C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009\myldr.Orig
move C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009\myldr\win32.coff C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009\myldr.Orig\win32.coff
move C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009\myldr\win32.obj C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009\myldr.Orig\win32.obj
move C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009\myldr\win32.res C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009\myldr.Orig\win32.res

See:

http://news.tcx.org.uk/msg/4D93C148.1060301@znix.com

===
. . .
The zip

http://www.wxperl.co.uk/ppamd64_resource.zip

Contains objects that can be unzipped into the current PAR::Packer
source in the directory myldr. You want the contained win32.coff /
win32.obj to replace the originals.

Should then compile OK on Strawberry.
. . .
===

Download:

http://www.wxperl.co.uk/ppamd64_resource.zip

Unpack from "ppamd64_resource.zip"
==
win32.coff
win32.obj
win32.res
win32.manifest
win32.rc
win32.ico
==
to
C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009\myldr

Run
cpanp i .

Screenshot:
===
Installing PAR::Packer (1.009) A
Running [C:\strawberry\perl\bin\perl.exe C:\strawberry\perl\bin\cpanp-run-perl C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009\Makefile.PL]...
Checking if your kit is complete...
Looks good
Prototype mismatch: sub main::prompt: none vs ($;$) at C:/strawberry/perl/lib/ExtUtils/MakeMaker.pm line 202
Writing Makefile for par.exe
Writing Makefile for PAR::Packer
Running [C:\STRAWB~2\c\bin\dmake.EXE test UNINST=1]...
C:\strawberry\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib\lib', 'blib\arch')" t/00-pod.t t/10-parl-generation.t t/20-pp.t t/3
0-current_exec.t t/40-packer_cd_option.t t/90-rt59710.t
t/00-pod.t ............... skipped: Set environment variable PERL_TEST_POD=1 to test POD
t/10-parl-generation.t ... ok
The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.e
xe tool for more detail.
C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009\blib\script/pp: Cannot open hello.exe for reading: No such file or directory at C:\strawberry\cpanplus\5.12
.3\build\PAR-Packer-1.009\blib\lib/PAR/Packer.pm line 1172.

# Failed test 'pp_gui_tests
# amsg572: sub pp_gui_tests cannot system pp --gui --icon hi.ico -o hello.exe hello.pl:No such file or directory:
# '
# at automated_pp_test.pl line 8445.
# Looks like you failed 1 test of 34.
t/20-pp.t ................
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/34 subtests
# Please wait
t/30-current_exec.t ...... ok
t/40-packer_cd_option.t .. ok
t/90-rt59710.t ........... ok

Test Summary Report
-------------------
t/20-pp.t (Wstat: 256 Tests: 34 Failed: 1)
Failed test: 32
Non-zero exit status: 1
Files=6, Tests=74, 2506 wallclock secs ( 0.09 usr + 0.05 sys = 0.14 CPU)
Result: FAIL
Failed 1/6 test programs. 1/74 subtests failed.
dmake.EXE: Error code 255, while making 'test_dynamic'

The tests for 'PAR::Packer' failed. Would you like me to proceed anyway or should we abort?

Proceed anyway? [y/N]: y
*** Install log written to:
C:\strawberry\cpanplus\install-logs\PAR-Packer-1.009-1307954507.log

Module 'PAR::Packer' installed successfully
No errors installing all modules
===

P.S.

2011-03-14 17-53:

Sorry, this occured independent my patch ( i.e. before ( PAR-Packer-1.009-1307954507.log 13.06.2011 11:41) and after patch):
==
C:\strawberry\perl\bin\perl.exe file2c.pl -l -c 30000 C:\strawberry\perl\bin\libgcc_s_sjlj-1.dll my_libgcc.c load_my_libgcc
gcc -c -s -O2 -DWIN32 -DHAVE_DES_FCRYPT -DWIN64 -DCONSERVATIVE -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfie
lds -DPERL_MSVCRT_READFIX -I"C:\strawberry\perl\lib\CORE" -DLOAD_MY_LIBGCC -DPARL_EXE=\"parl.exe\" -s -O2 boot.c
In file included from mktmpdir.h:85,
from mktmpdir.c:1,
from boot.c:3:
sha1.c: In function 'sha_transform':
sha1.c:146: warning: right shift count >= width of type
boot.c: In function 'main':
boot.c:123: warning: passing argument 3 of 'spawnvpe' from incompatible pointer type
==

P.P.S.

> Since this patch is meant for x64 only, please make it match against the environment variable PROCESSOR_ARCHITECTURE=x64 as well as the package name.

Not only: I'm simply "Turn off use win32.coff"

== PAR-Packer.yml ==
---
comment: |

PAR::Packer needs a patch to install in gcc4 Strawberry Perl x64 ( but patch Ok and for x86)

match:
distribution: |
^(?x:
.^ # never matches, only purpose is to let things align nicely
|RSCHUPP/PAR-Packer-1.009.tar.gz # Needs a patch to install.
)|
patches:
- "PAR-Packer-1.009.patch"

==

== PAR-Packer-1.009.patch ==

# Turn off use win32.coff
#
# To apply this patch:
# STEP 1: Chdir to the source directory.
# STEP 2: Run the 'applypatch' program with this patch file as input.
#
# If you do not have 'applypatch', it is part of the 'makepatch' package
# that you can fetch from the Comprehensive Perl Archive Network:
# http://www.perl.com/CPAN/authors/Johan_Vromans/makepatch-x.y.tar.gz
# In the above URL, 'x' should be 2 or higher.
#
# To apply this patch without the use of 'applypatch':
# STEP 1: Chdir to the source directory.
# STEP 2: Run the 'patch' program with this file as input.
#
#### End of Preamble ####

#### Patch data follows ####
diff -c "C:\strawberry\cpanplus -VVM0_--_PAR-Packer-1.009\myldr\Makefile.PL" "C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009\myldr\Makefile.PL"
Index: ./myldr/Makefile.PL
*** ./myldr/Makefile.PL Tue Mar 22 19:53:31 2011
--- ./myldr/Makefile.PL Tue Jun 14 16:49:32 2011
***************
*** 104,110 ****
$ccdebug = $debug ? '-g ' : '';
$lddebug = ($debug or $^O eq 'darwin') ? '' : '-s ';
$warn = $debug ? '-Wall -Wno-comments ' : '';
! $res = ($^O =~ /^(?:MSWin|cygwin)/) ? 'win32.coff' : '';
$long_literal = '-l';
$mt_cmd = '-$(NOOP)';
} else {
--- 104,111 ----
$ccdebug = $debug ? '-g ' : '';
$lddebug = ($debug or $^O eq 'darwin') ? '' : '-s ';
$warn = $debug ? '-Wall -Wno-comments ' : '';
! $res = ''; # VVM
! # $res = ($^O =~ /^(?:MSWin|cygwin)/) ? 'win32.coff' : '';
$long_literal = '-l';
$mt_cmd = '-$(NOOP)';
} else {
#### End of Patch data ####

#### ApplyPatch data follows ####
# Data version : 1.0
# Date generated : Tue Jun 14 16:59:06 2011
# Generated by : makepatch 2.04
# Recurse directories : Yes
# Excluded files : (\A|/).*\~\Z
# (\A|/).*\.a\Z
# (\A|/).*\.bak\Z
# (\A|/).*\.BAK\Z
# (\A|/).*\.elc\Z
# (\A|/).*\.exe\Z
# (\A|/).*\.gz\Z
# (\A|/).*\.ln\Z
# (\A|/).*\.o\Z
# (\A|/).*\.obj\Z
# (\A|/).*\.olb\Z
# (\A|/).*\.old\Z
# (\A|/).*\.orig\Z
# (\A|/).*\.rej\Z
# (\A|/).*\.so\Z
# (\A|/).*\.Z\Z
# (\A|/)\.del\-.*\Z
# (\A|/)\.make\.state\Z
# (\A|/)\.nse_depinfo\Z
# (\A|/)core\Z
# (\A|/)tags\Z
# (\A|/)TAGS\Z
# p "myldr/Makefile.PL" 10179 1308059372 0100666
#### End of ApplyPatch data ####

#### End of Patch kit [created: Tue Jun 14 16:59:06 2011] ####
#### Patch checksum: 56 2184 611 ####
#### Checksum: 74 2829 54096 ####
==

At this moment I'm run test:
==
C:\>cd C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009

C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009>dmake test
C:\strawberry\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib\lib', 'blib\arch')" t/00-po
d.t t/10-parl-generation.t t/20-pp.t t/30-current_exec.t t/40-packer_cd_option.t t/90-rt59710.t
t/00-pod.t ............... skipped: Set environment variable PERL_TEST_POD=1 to test POD
t/10-parl-generation.t ... ok
t/20-pp.t ................ ok
t/30-current_exec.t ...... # Please wait
t/30-current_exec.t ...... ok
t/40-packer_cd_option.t .. ok
t/90-rt59710.t ........... ok
All tests successful.
Files=6, Tests=74, 2560 wallclock secs ( 0.05 usr + 0.09 sys = 0.14 CPU)
Result: PASS

C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009>dmake.EXE test UNINST=1
C:\strawberry\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib\lib', 'blib\arch')" t/00-po
d.t t/10-parl-generation.t t/20-pp.t t/30-current_exec.t t/40-packer_cd_option.t t/90-rt59710.t
t/00-pod.t ............... skipped: Set environment variable PERL_TEST_POD=1 to test POD
t/10-parl-generation.t ... ok
t/20-pp.t ................ ok
t/30-current_exec.t ...... # Please wait
t/30-current_exec.t ...... ok
t/40-packer_cd_option.t .. ok
t/90-rt59710.t ........... ok
All tests successful.
Files=6, Tests=74, 2547 wallclock secs ( 0.13 usr + 0.02 sys = 0.14 CPU)
Result: PASS

C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009>

==

2011-06-15 11-01:

Look like ok

HowTo: Build Strawberry Perl v5.12.3 x86 with GCC toolchain mingw64-w32-gcc4.4.6_20110503-v2.zip and kmx/32_libs 20110506.zip

As result:
-- Strawberry Perl v5.12.3 x86 with GCC toolchain mingw64-w32-gcc4.4.6_20110503-v2.zip and kmx/32_libs 20110506.zip
( strawberry-perl-5.12.3.0-32bit-build-2011-06-09.zip / .msi )

Screenshot:
==
C:\strawberry>gcc -v
Using built-in specs.
Target: i686-w64-mingw32
Configured with: ../gcc44-svn/configure --host=i686-w64-mingw32 --target=i686-w64-mingw32 --disable-multilib --enable-checking=release --prefix=/mingw32 --enabl
e-languages=c,c++,fortran --enable-libgomp --with-gmp=/mingw32 --with-mpfr=/mingw32 --disable-nls --disable-win32-registry
Thread model: win32
gcc version 4.4.6 20110416 (release) [svn/rev.172578 - mingw-w64/oz] (GCC)

C:\strawberry>perl -v

This is perl 5, version 12, subversion 3 (v5.12.3) built for MSWin32-x86-multi-thread

Copyright 1987-2010, Larry Wall

. . .
==

Download:

http://strawberryperl.com/download/5.12.3.0/strawberry-perl-5.12.3.0-64bit.zip

( VVM: Or http://strawberryperl.com/download/5.12.3.0/strawberry-perl-5.12.3.0-32bit.zip , but this not tested )

unpack it to
c:\sb\

Save to c:\sb\portableshell.bat :
==
@echo off
set drive=%~dp0
set drivep=%drive%
If $#\#$==$#%drive:~-1%#$ set drivep=%drive:~0,-1%
set PATH=%drivep%\perl\site\bin;%drivep%\perl\bin;%drivep%\c\bin;%PATH%
set TERM=dumb
echo ----------------------------------------------
echo Welcome to Strawberry Perl Portable Edition!
echo * URL - http://www.strawberryperl.com/
echo * see README.portable.TXT for more info
echo ----------------------------------------------
perl -e "printf("""Perl executable: %%s\nPerl version : %%vd\n""", $^X, $^V)" 2>nul
if ERRORLEVEL==1 echo.&echo FATAL ERROR: 'perl' does not work; check if your strawberry pack is complete!
echo.
cmd
==

#{
# Old:
#
Download:

http://strawberryperl.com/download/5.12.3.0/strawberry-perl-5.12.3.0-portable.zip

unpack only portableshell.bat from it to
c:\sb\
#
#
#}

Run:
portableshell.bat

In portableshell.bat shell:

set PERL_MM_USE_DEFAULT=1

cpanp s save system
===
C:\sb>cpanp s save system
Configuration successfully saved to CPANPLUS::Config::System
(C:\sb\perl\lib\CPANPLUS\Config\System.pm)
===

cpanp s edit system

Replace
strawberryperl to sb
==
$conf->set_conf( base => 'C:\\sb\\cpanplus' );
==

If found:
==
$conf->set_conf( signature => 1 );
==
replace to
==
$conf->set_conf( signature => 0 );
==

Save file.

cpanp i IPC::Run

cpanp i Perl::Dist::Strawberry

cpanp i Perl::Dist::WiX::BuildPerl::5123
cpanp i Perl::Dist::Strawberry::BuildPerl::5123

Screenshot:
===
Preparing Math::Pari
** GET http://strawberryperl.com/package/32bit-gcc4/Math-Pari-2.01080605-MSWin32-x86-multi-thread-5.14.0.par ==> 404 Not Found
===
=>

GoTo:
C:\sb\perl\site\lib\Perl\Dist\
rename
Strawberry.pm
to
Strawberry.pm.Orig

apply patch to Strawberry.pm:
===
--- Strawberry.pm.Orig Tue May 31 04:09:10 2011
+++ Strawberry.pm Tue Jun 14 12:33:15 2011
@@ -449,10 +449,10 @@
name => 'Win32::EventLog',
force => 1, # Tests fail on only one computer, will be reported later
);
- $self->install_modules('Win32::API') if not 64 == $self->bits();
+#VVM $self->install_modules('Win32::API') if not 64 == $self->bits();

# Install additional math modules
- $self->install_pari() if not 64 == $self->bits();
+#VVM $self->install_pari() if not 64 == $self->bits();
$self->install_modules( qw{
Math::BigInt::GMP
} );
@@ -676,7 +676,7 @@
Net::SSLeay
IO::Socket::SSL
Net::SMTP::TLS
- }) if 32 == $self->bits();
+ }) if 932 == $self->bits(); #VVM

# The rest of the Net::SSH::Perl toolchain.
$self->install_module(
@@ -690,7 +690,7 @@
# Check why this one isn't working.
$self->install_modules( qw{
Crypt::DSA
- }) if 32 == $self->bits();
+ }) if 932 == $self->bits(); #VVM
$self->install_modules( qw{
Class::ErrorHandler
Convert::ASN1
@@ -712,7 +712,7 @@
# Requires Math::Pari.
$self->install_modules( qw{
Crypt::Random
- }) if 32 == $self->bits();
+ }) if 932 == $self->bits(); #VVM
$self->install_modules( qw{
Convert::ASCII::Armour
Digest::MD2
@@ -722,14 +722,14 @@
$self->install_modules( qw{
Crypt::Primes
Crypt::RSA
- }) if 32 == $self->bits();
+ }) if 932 == $self->bits(); #VVM
$self->install_modules( qw{
Digest::BubbleBabble
});
# Does not build 64-bit yet.
$self->install_modules( qw{
Crypt::IDEA
- }) if 32 == $self->bits();
+ }) if 932 == $self->bits(); #VVM
$self->install_modules( qw{
String::CRC32
Net::SSH2
@@ -751,7 +751,7 @@
# Crypt::RSA, and Math::Pari.
$self->install_modules( qw{
Crypt::OpenPGP
- }) if 32 == $self->bits();
+ }) if 932 == $self->bits(); #VVM
$self->install_modules( qw{
Algorithm::Diff
Text::Diff
@@ -762,7 +762,7 @@
name => 'FLORA/Module-Signature-0.66.tar.gz',
mod_name => 'Module::Signature',
makefilepl_param => [ 'INSTALLDIRS=vendor', ],
- ) if 32 == $self->bits();
+ ) if 932 == $self->bits(); #VVM
# version 0.67 of Module::Signature can have serious problems on Windows
# See https://rt.cpan.org/Ticket/Display.html?id=46339
# IPC::Run is a prereq only for 0.67
===

( Install all skiped modules later ( if need) by cpan/CPANPLUS )

GoTo:
C:\sb\perl\site\lib\Perl\Dist\WiX\Mixin\
rename
Libraries.pm
to
Libraries.pm.Orig

apply patch to Libraries.pm:
===
--- Libraries.pm.Orig Sun Jun 05 15:17:58 2011
+++ Libraries.pm Fri Jun 10 16:50:14 2011
@@ -49,19 +49,28 @@
# 'mingw-runtime' => 'mingw-runtime-3.13.tar.gz',
# 'w32api' => 'w32api-3.10.tar.gz',
},
+# VVM 2011-06-10 16-18
'32bit-gcc4' => {
'dmake' => '32bit-gcc4/dmake-SVN20091127-bin_20100524.zip',
'mingw-make' => '32bit-gcc4/gmake-3.81-20090914-bin_20100524.zip',
'pexports' => '32bit-gcc4/pexports-0.44-bin_20100120.zip',
- 'gcc-toolchain' => '32bit-gcc4/mingw64-w32-20100123-kmx-v2.zip',
- 'gcc-license' => '32bit-gcc4/mingw64-w32-20100123-kmx-v2-lic.zip',
+# [ VVM 2011-06-10 16-18
+ 'gcc-toolchain' => 'kmx/32_gcctoolchain/mingw64-w32-gcc4.4.6_20110503-v2.zip',
+ 'gcc-license' => 'kmx/32_gcctoolchain/mingw64-w32-gcc4.4.6_20110503-v2-lic.zip',
+# ]
},
+# VVM 2011-06-09 09-56
'64bit-gcc4' => {
+# 'dmake' => 'kmx/64_tools/64bit_dmake-SVN20091127-bin_20100308.zip', # older? <= ( 20100308 '64bit-gcc4/dmake-SVN20091127-bin_20100524.zip',
+# 'mingw-make' => 'kmx/64_tools/64bit_gmake-3.82-bin_20110503.zip', # Has error? VVM 2011-06-09 15-43
'mingw-make' => '64bit-gcc4/gmake-3.81.90_20100127_20100524.zip',
+# 'pexports' => 'kmx/64_tools/64bit_pexports-0.44-bin_20100110.zip', # Not need? VVM 2011-06-09 09-56
'pexports' => '64bit-gcc4/pexports-0.44-bin_20100110.zip',
- 'gcc-toolchain' => '64bit-gcc4/mingw64-w64-20100123-kmx-v2.zip',
- 'gcc-license' => '64bit-gcc4/mingw64-w64-20100123-kmx-v2-lic.zip',
+# [ VVM 2011-06-09 09-56
+ 'gcc-toolchain' => 'kmx/64_gcctoolchain/mingw64-w64-gcc4.4.6_20110503-v2.zip',
+ 'gcc-license' => 'kmx/64_gcctoolchain/mingw64-w64-gcc4.4.6_20110503-v2-lic.zip',
+#]
},
);
===

GoTo:
C:\sb\perl\site\lib\Perl\Dist\Strawberry\

rename
Libraries.pm
to
Libraries.pm.Orig

apply patch to Libraries.pm:
===
--- Libraries.pm.Orig Tue May 31 04:09:10 2011
+++ Libraries.pm Mon Jun 13 16:10:27 2011
@@ -93,7 +93,7 @@
'mysql5121' => undef,
'mysql5122' => undef,
'mysql5123' => undef,
- 'mysqllib' => '32bit-gcc4/mysql-5.1.44-bin_20100304.zip',
+ 'mysqllib' => 'kmx/32_libs/5.14/32bit_mysql-5.1.44-bin_20100304.zip', # VVM 2011-06-09 09-56
'pari589' => undef,
'pari5100' => undef,
'pari5101' => undef,
@@ -101,34 +101,38 @@
'pari5120' => '32bit-gcc4/Math-Pari-2.01080604-MSWin32-x86-multi-thread-5.12.0.par',
'pari5121' => '32bit-gcc4/Math-Pari-2.01080604-MSWin32-x86-multi-thread-5.12.0.par',
'pari5122' => '32bit-gcc4/Math-Pari-2.01080604-MSWin32-x86-multi-thread-5.12.0.par',
- 'pari5123' => '32bit-gcc4/Math-Pari-2.01080604-MSWin32-x86-multi-thread-5.12.3.par',
+ 'pari5123' => '32bit-gcc4/Math-Pari-2.01080605-MSWin32-x86-multi-thread-5.14.0.par', # VVM 2011-06-09 09-56
+# 'pari5123' => '32bit-gcc4/Math-Pari-2.01080604-MSWin32-x86-multi-thread-5.12.3.par', # VVM 2011-06-09 09-56 : not shue what is Ok with GCC v4.6.6
'pari5140' => '32bit-gcc4/Math-Pari-2.01080605-MSWin32-x86-multi-thread-5.14.0.par',
- 'zlib' => '32bit-gcc4/zlib-1.2.3-bin_20091126.zip',
- 'libiconv' => '32bit-gcc4/libiconv-1.13.1-bin_20091126.zip',
- 'libxml2' => '32bit-gcc4/libxml2-2.7.3-bin_20091126.zip',
- 'libexpat' => '32bit-gcc4/expat-2.0.1-bin_20091126.zip',
- 'gmp' => '32bit-gcc4/gmp-5.0.1-419f6a4cc606-bin_20110218.zip',
- 'libxslt' => '32bit-gcc4/libxslt-1.1.26-bin_20091126.zip',
- 'libjpeg' => '32bit-gcc4/jpeg-6b-gnuwin32-bin_20091126.zip',
- 'libgif' => '32bit-gcc4/giflib-4.1.6-bin_20091126.zip',
- 'libpng' => '32bit-gcc4/libpng-1.2.40-bin_20091126.zip',
- 'libtiff' => '32bit-gcc4/tiff-3.9.1-bin_20091126.zip',
- 'libgd' => '32bit-gcc4/gd-2.0.35-bin_20091126.zip',
- 'libfreetype' => '32bit-gcc4/freetype-2.3.11-bin_20091126.zip',
- 'libopenssl' => '32bit-gcc4/openssl-0.9.8l-bin_20091126.zip',
- 'libpostgresql' => '32bit-gcc4/postgresql-8.4.1-bin_20091126.zip',
- 'libdb' => '32bit-gcc4/db-4.8.24-bin_20091126.zip',
- 'libgdbm' => '32bit-gcc4/gdbm-1.8.3-bin_20100112.zip',
- 'libxpm' => '32bit-gcc4/libXpm-3.5.8-bin_20091126.zip',
- 'libxz' => '32bit-gcc4/liblzma-xz-4.999.9beta-bin_20100308.zip',
- 'mpc' => '32bit-gcc4/mpc-0.8.1-bin_20100306.zip',
- 'mpfr' => '32bit-gcc4/mpfr-2.4.2-bin_20100306.zip',
- 'libmysql' => '32bit-gcc4/mysql-5.1.44-bin_20100304.zip',
- 'freeglut' => '32bit-gcc4/freeglut-2.6.0-bin_20100213.zip',
- 'libssh2' => '32bit-gcc4/libssh2-1.2.5-bin_20100520.zip',
+# [ VVM 2011-06-09 09-56
+ 'zlib' => 'kmx/32_libs/5.14/32bit_zlib-1.2.5-bin_20110506.zip',
+ 'libiconv' => 'kmx/32_libs/5.14/32bit_libiconv-1.13.1-sezero20110428-bin_20110506.zip',
+ 'libxml2' => 'kmx/32_libs/5.14/32bit_libxml2-2.7.8-bin_20110506.zip',
+ 'libexpat' => 'kmx/32_libs/5.14/32bit_expat-2.0.1-sezero20110428-bin_20110506.zip',
+ 'gmp' => 'kmx/32_libs/5.14/32bit_gmp-5.0.1-bin_20110506.zip',
+ 'libxslt' => 'kmx/32_libs/5.14/32bit_libxslt-1.1.26-bin_20110506.zip',
+ 'libjpeg' => 'kmx/32_libs/5.14/32bit_jpeg-8c-bin_20110506.zip',
+ 'libgif' => 'kmx/32_libs/5.14/32bit_giflib-4.1.6-bin_20110506.zip',
+ 'libpng' => 'kmx/32_libs/5.14/32bit_libpng-1.5.2-bin_20110506.zip',
+ 'libtiff' => 'kmx/32_libs/5.14/32bit_tiff-3.9.5-bin_20110506.zip',
+ 'libgd' => 'kmx/32_libs/5.14/32bit_gd-2.0.35(OLD-jpg-png)-bin_20110506.zip',
+ 'libfreetype' => 'kmx/32_libs/5.14/32bit_freetype-2.4.4-bin_20110506.zip',
+ 'libopenssl' => 'kmx/32_libs/5.14/32bit_openssl-1.0.0d-bin_20110506.zip',
+ 'libpostgresql' => 'kmx/32_libs/5.14/32bit_postgresql-9.0.4-bin_20110506.zip',
+ 'libdb' => 'kmx/32_libs/5.14/32bit_db-5.1.25-bin_20110506.zip',
+ 'libgdbm' => 'kmx/32_libs/5.14/32bit_gdbm-1.8.3-bin_20110506.zip',
+ 'libxpm' => 'kmx/32_libs/5.14/32bit_libXpm-3.5.9-bin_20110506.zip',
+ 'libxz' => 'kmx/32_libs/5.14/32bit_xz-5.0.2-bin_20110506.zip',
+ 'mpc' => 'kmx/32_libs/5.14/32bit_mpc-0.9-bin_20110506.zip',
+ 'mpfr' => 'kmx/32_libs/5.14/32bit_mpfr-3.0.1-bin_20110506.zip',
+ 'libmysql' => 'kmx/32_libs/5.14/32bit_mysql-5.1.44-bin_20100304.zip',
+ 'freeglut' => 'kmx/32_libs/5.14/32bit_freeglut-2.6.0-bin_20110506.zip',
+ 'libssh2' => 'kmx/32_libs/5.14/32bit_libssh2-1.2.8-bin_20110506.zip',
+# ]
},
'64bit-gcc4' => {
'patch' => '64bit-gcc4/patch-2.5.9-7-bin_20100110_20100303.zip',
+# 'patch' => 'kmx/64_tools/64bit_patch-2.5.9-7-bin_20100110_UAC.zip', # VVM 2011-06-09 15-43 ToDo? # [ VVM 2011-06-09 09-56 ( kmx)
'mysql589' => undef,
'mysql5100' => undef,
'mysql5101' => undef,
@@ -146,29 +150,31 @@
'pari5121' => undef,
'pari5122' => undef,
'pari5123' => undef,
- 'zlib' => '64bit-gcc4/zlib-1.2.3-bin_20100110.zip',
- 'libiconv' => '64bit-gcc4/libiconv-1.13.1-bin_20100110.zip',
- 'libxml2' => '64bit-gcc4/libxml2-2.7.3-bin_20100110.zip',
- 'libexpat' => '64bit-gcc4/expat-2.0.1-bin_20100110.zip',
- 'gmp' => '64bit-gcc4/gmp-5.0.1-419f6a4cc606-bin_20100306.zip',
- 'libxslt' => '64bit-gcc4/libxslt-1.1.26-bin_20100111.zip',
- 'libjpeg' => '64bit-gcc4/jpeg-6b-gnuwin32-bin_20100110.zip',
- 'libgif' => '64bit-gcc4/giflib-4.1.6-bin_20100110.zip',
- 'libpng' => '64bit-gcc4/libpng-1.2.40-bin_20100110.zip',
- 'libtiff' => '64bit-gcc4/tiff-3.9.1-bin_20100110.zip',
- 'libgd' => '64bit-gcc4/gd-2.0.35-bin_20100110.zip',
- 'libfreetype' => '64bit-gcc4/freetype-2.3.11-bin_20100110.zip',
- 'libopenssl' => '64bit-gcc4/openssl-1.0.0-beta4-bin_20100110.zip',
- 'libpostgresql' => '64bit-gcc4/postgresql-8.4.1-bin_20100110.zip',
- 'libdb' => '64bit-gcc4/db-4.8.24-bin_20100110.zip',
- 'libgdbm' => '64bit-gcc4/gdbm-1.8.3-bin_20100112.zip',
- 'libxpm' => '64bit-gcc4/libXpm-3.5.8-bin_20100110.zip',
- 'libxz' => '64bit-gcc4/liblzma-xz-4.999.9beta-bin_20100308.zip',
- 'mpc' => '64bit-gcc4/mpc-0.8.1-bin_20100306.zip',
- 'mpfr' => '64bit-gcc4/mpfr-2.4.2-bin_20100306.zip',
- 'libmysql' => '64bit-gcc4/mysql-5.1.44-bin_20100304.zip',
- 'freeglut' => '64bit-gcc4/freeglut-2.6.0-bin_20100213.zip',
- 'libssh2' => '64bit-gcc4/libssh2-1.2.5-bin_20100520.zip',
+# [ VVM 2011-06-09 09-56
+ 'zlib' => 'kmx/64_libs/5.14/64bit_zlib-1.2.5-bin_20110506.zip',
+ 'libiconv' => 'kmx/64_libs/5.14/64bit_libiconv-1.13.1-sezero20110428-bin_20110506.zip',
+ 'libxml2' => 'kmx/64_libs/5.14/64bit_libxml2-2.7.8-bin_20110506.zip',
+ 'libexpat' => 'kmx/64_libs/5.14/64bit_expat-2.0.1-sezero20110428-bin_20110506.zip',
+ 'gmp' => 'kmx/64_libs/5.14/64bit_gmp-5.0.1-bin_20110506.zip',
+ 'libxslt' => 'kmx/64_libs/5.14/64bit_libxslt-1.1.26-bin_20110506.zip',
+ 'libjpeg' => 'kmx/64_libs/5.14/64bit_jpeg-8c-bin_20110506.zip',
+ 'libgif' => 'kmx/64_libs/5.14/64bit_giflib-4.1.6-bin_20110506.zip',
+ 'libpng' => 'kmx/64_libs/5.14/64bit_libpng-1.5.2-bin_20110506.zip',
+ 'libtiff' => 'kmx/64_libs/5.14/64bit_tiff-3.9.5-bin_20110506.zip',
+ 'libgd' => 'kmx/64_libs/5.14/64bit_gd-2.0.35(OLD-jpg-png)-bin_20110506.zip',
+ 'libfreetype' => 'kmx/64_libs/5.14/64bit_freetype-2.4.4-bin_20110506.zip',
+ 'libopenssl' => 'kmx/64_libs/5.14/64bit_openssl-1.0.0d-bin_20110506.zip',
+ 'libpostgresql' => 'kmx/64_libs/5.14/64bit_postgresql-9.0.4-bin_20110506.zip',
+ 'libdb' => 'kmx/64_libs/5.14/64bit_db-5.1.25-bin_20110506.zip',
+ 'libgdbm' => 'kmx/64_libs/5.14/64bit_gdbm-1.8.3-bin_20110506.zip',
+ 'libxpm' => 'kmx/64_libs/5.14/64bit_libXpm-3.5.9-bin_20110506.zip',
+ 'libxz' => 'kmx/64_libs/5.14/64bit_xz-5.0.2-bin_20110506.zip',
+ 'mpc' => 'kmx/64_libs/5.14/64bit_mpc-0.9-bin_20110506.zip',
+ 'mpfr' => 'kmx/64_libs/5.14/64bit_mpfr-3.0.1-bin_20110506.zip',
+ 'libmysql' => 'kmx/64_libs/5.14/64bit_mysql-5.1.44-bin_20100304.zip',
+ 'freeglut' => 'kmx/64_libs/5.14/64bit_freeglut-2.6.0-bin_20110506.zip',
+ 'libssh2' => 'kmx/64_libs/5.14/64bit_libssh2-1.2.8-bin_20110506.zip',
+# ]
},
};

===

GoTo:
C:\sb\perl\site\lib\Perl\Dist\

rename
WiX.pm
to
WiX.pm.Orig

apply patch to WiX.pm:

===
--- WiX.pm.Orig Sun Jun 05 15:17:58 2011
+++ WiX.pm Fri Jun 10 16:18:39 2011
@@ -728,7 +728,7 @@
$_ = 32;
}

- $_ == 32 or $_ == 64;
+ $_ == 32 or $_ == 32; # VVM 2011-06-10 16-18
},
message {
'Not 32 or 64-bit';
===

Run

%SystemRoot%\system32\cmd.exe /c C:\sb\perl\site\bin\perldist_strawberry.bat --output C:\strawberry --skip 1 --skip 2 --skip 3

# { Or
#%SystemRoot%\system32\cmd.exe /c C:\sb\perl\bin\perl.exe -x -S perldist_strawberry.pl --output C:\strawberry --skip 1 --skip 2 --skip 3
# }

Go to directory:
C:\tmp\output\

rename strawberry-perl-5.12.3.0.msi strawberry-perl-5.12.3.0-32bit-build-2011-06-09.msi
rename strawberry-perl-5.12.3.0.zip strawberry-perl-5.12.3.0-32bit-build-2011-06-09.zip

Copy this files from C:\tmp\

HowTo: Upgrade Strawberry Perl v5.12.3.0 x86 ( strawberry-perl-5.12.3.0-32bit.zip) library to kmx/32_libs/5.12/*.zip

ToDo ( if possible)

2011-06-10 14-44:

See later about
nan , InF

—–


HowTo: Build Strawberry Perl v5.12.3 x64 with GCC toolchain mingw64-w64-gcc4.4.6_20110503-v2.zip and kmx/64_libs 20110506.zip

Or
HowTo: Upgrade Strawberry Perl v5.12.3.0 x64 ( strawberry-perl-5.12.3.0-64bit.zip) library to kmx/64_libs/5.14/*.zip and GCC toolchain to mingw64-w64-gcc4.4.6_20110503-v2.zip

As result:
-- Strawberry Perl v5.12.3 x64 with GCC toolchain mingw64-w64-gcc4.4.6_20110503-v2.zip and kmx/64_libs 20110506.zip
( strawberry-perl-5.12.3.0-64bit-build-2011-06-09.zip / .msi )

Screenshot:
==
C:\strawberry>gcc -v
Using built-in specs.
Target: x86_64-w64-mingw32
Configured with: ../gcc44-svn/configure --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --disable-multilib
--enable-checking=release --prefix=/mingw64 --enable-languages=c,c++,fortran --enable-libgomp --with-gmp=/mingw64
--with-mpfr=/mingw64 --disable-nls --disable-win32-registry
Thread model: win32
gcc version 4.4.6 20110416 (release) [svn/rev.172578 - mingw-w64/oz] (GCC)

C:\strawberry>perl -v

This is perl 5, version 12, subversion 3 (v5.12.3) built for MSWin32-x64-multi-thread
. . .
==

Download:

http://strawberryperl.com/download/5.12.3.0/strawberry-perl-5.12.3.0-64bit.zip

unpack it to
c:\sb\

Save to c:\sb\portableshell.bat :
==
@echo off
set drive=%~dp0
set drivep=%drive%
If $#\#$==$#%drive:~-1%#$ set drivep=%drive:~0,-1%
set PATH=%drivep%\perl\site\bin;%drivep%\perl\bin;%drivep%\c\bin;%PATH%
set TERM=dumb
echo ----------------------------------------------
echo Welcome to Strawberry Perl Portable Edition!
echo * URL - http://www.strawberryperl.com/
echo * see README.portable.TXT for more info
echo ----------------------------------------------
perl -e "printf("""Perl executable: %%s\nPerl version : %%vd\n""", $^X, $^V)" 2>nul
if ERRORLEVEL==1 echo.&echo FATAL ERROR: 'perl' does not work; check if your strawberry pack is complete!
echo.
cmd
==

#{
# Old:
#
Download:

http://strawberryperl.com/download/5.12.3.0/strawberry-perl-5.12.3.0-portable.zip

unpack only portableshell.bat from it to
c:\sb\
#
#
#}

Run:
portableshell.bat

In portableshell.bat shell:

set PERL_MM_USE_DEFAULT=1

cpanp s save system
===
C:\sb>cpanp s save system
Configuration successfully saved to CPANPLUS::Config::System
(C:\sb\perl\lib\CPANPLUS\Config\System.pm)
===

cpanp s edit system

Replace
strawberryperl to sb
==
$conf->set_conf( base => 'C:\\sb\\cpanplus' );
==

If found:
==
$conf->set_conf( signature => 1 );
==
replace to
==
$conf->set_conf( signature => 0 );
==

Save file.

cpanp i IPC::Run

cpanp i Perl::Dist::Strawberry

cpanp i Perl::Dist::WiX::BuildPerl::5123
cpanp i Perl::Dist::Strawberry::BuildPerl::5123

GoTo:
C:\sb\perl\site\lib\Perl\Dist\WiX\Mixin\
rename
Libraries.pm
to
Libraries.pm.Orig

apply patch to Libraries.pm:
===
--- Libraries.pm.Orig Sun Jun 05 15:17:58 2011
+++ Libraries.pm Thu Jun 09 15:43:42 2011
@@ -56,12 +56,18 @@
'gcc-toolchain' => '32bit-gcc4/mingw64-w32-20100123-kmx-v2.zip',
'gcc-license' => '32bit-gcc4/mingw64-w32-20100123-kmx-v2-lic.zip',
},
+# VVM 2011-06-09 09-56
'64bit-gcc4' => {
+# 'dmake' => 'kmx/64_tools/64bit_dmake-SVN20091127-bin_20100308.zip', # older? <= ( 20100308 '64bit-gcc4/dmake-SVN20091127-bin_20100524.zip',
+# 'mingw-make' => 'kmx/64_tools/64bit_gmake-3.82-bin_20110503.zip', # Has error? VVM 2011-06-09 15-43
'mingw-make' => '64bit-gcc4/gmake-3.81.90_20100127_20100524.zip',
+# 'pexports' => 'kmx/64_tools/64bit_pexports-0.44-bin_20100110.zip', # Not need? VVM 2011-06-09 09-56
'pexports' => '64bit-gcc4/pexports-0.44-bin_20100110.zip',
- 'gcc-toolchain' => '64bit-gcc4/mingw64-w64-20100123-kmx-v2.zip',
- 'gcc-license' => '64bit-gcc4/mingw64-w64-20100123-kmx-v2-lic.zip',
+# [ VVM 2011-06-09 09-56
+ 'gcc-toolchain' => 'kmx/64_gcctoolchain/mingw64-w64-gcc4.4.6_20110503-v2.zip',
+ 'gcc-license' => 'kmx/64_gcctoolchain/mingw64-w64-gcc4.4.6_20110503-v2-lic.zip',
+#]
},
);
===

GoTo:
C:\sb\perl\site\lib\Perl\Dist\Strawberry\

rename
Libraries.pm
to
Libraries.pm.Orig

apply patch to Libraries.pm:
===
--- Libraries.pm.Orig Tue May 31 04:09:10 2011
+++ Libraries.pm Thu Jun 09 15:43:42 2011
@@ -129,6 +129,7 @@
},
'64bit-gcc4' => {
'patch' => '64bit-gcc4/patch-2.5.9-7-bin_20100110_20100303.zip',
+# 'patch' => 'kmx/64_tools/64bit_patch-2.5.9-7-bin_20100110_UAC.zip', # VVM 2011-06-09 15-43 ToDo? # [ VVM 2011-06-09 09-56 ( kmx)
'mysql589' => undef,
'mysql5100' => undef,
'mysql5101' => undef,
@@ -146,29 +147,31 @@
'pari5121' => undef,
'pari5122' => undef,
'pari5123' => undef,
- 'zlib' => '64bit-gcc4/zlib-1.2.3-bin_20100110.zip',
- 'libiconv' => '64bit-gcc4/libiconv-1.13.1-bin_20100110.zip',
- 'libxml2' => '64bit-gcc4/libxml2-2.7.3-bin_20100110.zip',
- 'libexpat' => '64bit-gcc4/expat-2.0.1-bin_20100110.zip',
- 'gmp' => '64bit-gcc4/gmp-5.0.1-419f6a4cc606-bin_20100306.zip',
- 'libxslt' => '64bit-gcc4/libxslt-1.1.26-bin_20100111.zip',
- 'libjpeg' => '64bit-gcc4/jpeg-6b-gnuwin32-bin_20100110.zip',
- 'libgif' => '64bit-gcc4/giflib-4.1.6-bin_20100110.zip',
- 'libpng' => '64bit-gcc4/libpng-1.2.40-bin_20100110.zip',
- 'libtiff' => '64bit-gcc4/tiff-3.9.1-bin_20100110.zip',
- 'libgd' => '64bit-gcc4/gd-2.0.35-bin_20100110.zip',
- 'libfreetype' => '64bit-gcc4/freetype-2.3.11-bin_20100110.zip',
- 'libopenssl' => '64bit-gcc4/openssl-1.0.0-beta4-bin_20100110.zip',
- 'libpostgresql' => '64bit-gcc4/postgresql-8.4.1-bin_20100110.zip',
- 'libdb' => '64bit-gcc4/db-4.8.24-bin_20100110.zip',
- 'libgdbm' => '64bit-gcc4/gdbm-1.8.3-bin_20100112.zip',
- 'libxpm' => '64bit-gcc4/libXpm-3.5.8-bin_20100110.zip',
- 'libxz' => '64bit-gcc4/liblzma-xz-4.999.9beta-bin_20100308.zip',
- 'mpc' => '64bit-gcc4/mpc-0.8.1-bin_20100306.zip',
- 'mpfr' => '64bit-gcc4/mpfr-2.4.2-bin_20100306.zip',
- 'libmysql' => '64bit-gcc4/mysql-5.1.44-bin_20100304.zip',
- 'freeglut' => '64bit-gcc4/freeglut-2.6.0-bin_20100213.zip',
- 'libssh2' => '64bit-gcc4/libssh2-1.2.5-bin_20100520.zip',
+# [ VVM 2011-06-09 09-56
+ 'zlib' => 'kmx/64_libs/5.14/64bit_zlib-1.2.5-bin_20110506.zip',
+ 'libiconv' => 'kmx/64_libs/5.14/64bit_libiconv-1.13.1-sezero20110428-bin_20110506.zip',
+ 'libxml2' => 'kmx/64_libs/5.14/64bit_libxml2-2.7.8-bin_20110506.zip',
+ 'libexpat' => 'kmx/64_libs/5.14/64bit_expat-2.0.1-sezero20110428-bin_20110506.zip',
+ 'gmp' => 'kmx/64_libs/5.14/64bit_gmp-5.0.1-bin_20110506.zip',
+ 'libxslt' => 'kmx/64_libs/5.14/64bit_libxslt-1.1.26-bin_20110506.zip',
+ 'libjpeg' => 'kmx/64_libs/5.14/64bit_jpeg-8c-bin_20110506.zip',
+ 'libgif' => 'kmx/64_libs/5.14/64bit_giflib-4.1.6-bin_20110506.zip',
+ 'libpng' => 'kmx/64_libs/5.14/64bit_libpng-1.5.2-bin_20110506.zip',
+ 'libtiff' => 'kmx/64_libs/5.14/64bit_tiff-3.9.5-bin_20110506.zip',
+ 'libgd' => 'kmx/64_libs/5.14/64bit_gd-2.0.35(OLD-jpg-png)-bin_20110506.zip',
+ 'libfreetype' => 'kmx/64_libs/5.14/64bit_freetype-2.4.4-bin_20110506.zip',
+ 'libopenssl' => 'kmx/64_libs/5.14/64bit_openssl-1.0.0d-bin_20110506.zip',
+ 'libpostgresql' => 'kmx/64_libs/5.14/64bit_postgresql-9.0.4-bin_20110506.zip',
+ 'libdb' => 'kmx/64_libs/5.14/64bit_db-5.1.25-bin_20110506.zip',
+ 'libgdbm' => 'kmx/64_libs/5.14/64bit_gdbm-1.8.3-bin_20110506.zip',
+ 'libxpm' => 'kmx/64_libs/5.14/64bit_libXpm-3.5.9-bin_20110506.zip',
+ 'libxz' => 'kmx/64_libs/5.14/64bit_xz-5.0.2-bin_20110506.zip',
+ 'mpc' => 'kmx/64_libs/5.14/64bit_mpc-0.9-bin_20110506.zip',
+ 'mpfr' => 'kmx/64_libs/5.14/64bit_mpfr-3.0.1-bin_20110506.zip',
+ 'libmysql' => 'kmx/64_libs/5.14/64bit_mysql-5.1.44-bin_20100304.zip',
+ 'freeglut' => 'kmx/64_libs/5.14/64bit_freeglut-2.6.0-bin_20110506.zip',
+ 'libssh2' => 'kmx/64_libs/5.14/64bit_libssh2-1.2.8-bin_20110506.zip',
+# ]
},
};
===

GoTo:
C:\sb\perl\site\lib\Perl\Dist\

rename
WiX.pm
to
WiX.pm.Orig

apply patch to WiX.pm:

===
>diff -u WiX.pm.Orig WiX.pm
--- WiX.pm.Orig Sun Jun 05 15:17:58 2011
+++ WiX.pm Tue Jun 07 17:23:36 2011
@@ -725,16 +725,16 @@
isa => subtype(
'Int' => where {
if ( not defined $_ ) {
- $_ = 32;
+ $_ = 64;
}

- $_ == 32 or $_ == 64;
+ $_ == 64 or $_ == 64;
},
message {
'Not 32 or 64-bit';
},
),
- default => 32,
+ default => 64,
);
===

Run

%SystemRoot%\system32\cmd.exe /c C:\sb\perl\site\bin\perldist_strawberry.bat --output C:\strawberry --skip 1 --skip 2 --skip 3

# { Or
#%SystemRoot%\system32\cmd.exe /c C:\sb\perl\bin\perl.exe -x -S perldist_strawberry.pl --output C:\strawberry --skip 1 --skip 2 --skip 3
# }

Go to directory:
C:\tmp\output\

rename strawberry-perl-5.12.3.0-64bit.msi strawberry-perl-5.12.3.0-64bit-build-2011-06-09.msi
rename strawberry-perl-5.12.3.0-64bit.zip strawberry-perl-5.12.3.0-64bit-build-2011-06-09.zip

Copy this files from C:\tmp\

—-

As result:
Fixed nan , InF issue:

https://rt.cpan.org/Public/Bug/Display.html?id=62161

=>
=== ---

On Thu Feb 17 06:32:37 2011, KMX wrote:

> I have prepared micro-patched gcc toolchain packs
>(just changing single file stdlib.h)

> 64bit:
> /kmx/64_gcctoolchain/mingw64-w64-20100123-kmx-v3.zip

With:
Strawberry Perl v5.12.3 x64 with GCC toolchain mingw64-w64-gcc4.4.6_20110503-v2.zip and kmx/64_libs 20110506.zip
( strawberry-perl-5.12.3.0-64bit-build-2011-06-09.zip / .msi )

( Instruction for build:

HowTo: Upgrade Strawberry Perl v5.12.3.0 x64 ( strawberry-perl-5.12.3.0-64bit.zip) library to kmx/64_libs/5.14/*.zip and GCC toolchain to mingw64-w64-gcc4.4.6_20110503-v2.zip

http://vvm.blog.tut.by/2011/06/09/howto-upgrade-strawberry-perl-v5-12-3-0-x64-strawberry-perl-5-12-3-0-64bit-zip-library-to-kmx-64_libs-5-14-zip-and-gcc-toolchain-to-mingw64-w64-gcc4-4-6_20110503-v2-zip/

)

Screenshot:
==
C:\strawberry-perl-5.12.3.0-64bit-build-2011-06-09>perl -wle "print 'nan' + 0"
-1.#IND

C:\strawberry-perl-5.12.3.0-64bit-build-2011-06-09>perl -wle "print 'InF' + 0"
1.#INF

C:\strawberry-perl-5.12.3.0-64bit-build-2011-06-09>perl -wle "print 'NanN' + 0"
Argument "NanN" isn't numeric in addition (+) at -e line 1.
-1.#IND

C:\strawberry-perl-5.12.3.0-64bit-build-2011-06-09>perl -wle "print 'iNff' + 0"
Argument "iNff" isn't numeric in addition (+) at -e line 1.
1.#INF
==

=== ---


HowTo: Upgrade Strawberry Perl v5.12.3.0 x64 ( strawberry-perl-5.12.3.0-64bit.zip) library to kmx/64_libs/5.12/*.zip

Upgrade Strawberry Perl v5.12.3.0 x64 ( strawberry-perl-5.12.3.0-64bit.zip) library to kmx/64_libs/5.12/*.zip:

Download:

http://strawberryperl.com/download/5.12.3.0/strawberry-perl-5.12.3.0-64bit.zip

unpack it to
c:\sb\

Save to c:\sb\portableshell.bat :
==
@echo off
set drive=%~dp0
set drivep=%drive%
If $#\#$==$#%drive:~-1%#$ set drivep=%drive:~0,-1%
set PATH=%drivep%\perl\site\bin;%drivep%\perl\bin;%drivep%\c\bin;%PATH%
set TERM=dumb
echo ----------------------------------------------
echo Welcome to Strawberry Perl Portable Edition!
echo * URL - http://www.strawberryperl.com/
echo * see README.portable.TXT for more info
echo ----------------------------------------------
perl -e "printf("""Perl executable: %%s\nPerl version : %%vd\n""", $^X, $^V)" 2>nul
if ERRORLEVEL==1 echo.&echo FATAL ERROR: 'perl' does not work; check if your strawberry pack is complete!
echo.
cmd
==

#{
# Old:
#
Download:

http://strawberryperl.com/download/5.12.3.0/strawberry-perl-5.12.3.0-portable.zip

unpack only portableshell.bat from it to
c:\sb\
#
#
#}

Run:
portableshell.bat

In portableshell.bat shell:

set PERL_MM_USE_DEFAULT=1

cpanp s save system
===
C:\sb>cpanp s save system
Configuration successfully saved to CPANPLUS::Config::System
(C:\sb\perl\lib\CPANPLUS\Config\System.pm)
===

cpanp s edit system

Replace
strawberryperl to sb
==
$conf->set_conf( base => 'C:\\sb\\cpanplus' );
==

If found:
==
$conf->set_conf( signature => 1 );
==
replace to
==
$conf->set_conf( signature => 0 );
==

Save file.

cpanp i IPC::Run

cpanp i Perl::Dist::Strawberry

cpanp i Perl::Dist::WiX::BuildPerl::5123
cpanp i Perl::Dist::Strawberry::BuildPerl::5123

GoTo:
C:\sb\perl\site\lib\Perl\Dist\Strawberry\

rename
Libraries.pm
to
Libraries.pm.Orig

apply patch to Libraries.pm:
===
--- Libraries.pm.Orig Tue Jun 07 15:50:35 2011
+++ Libraries.pm Tue Jun 07 16:35:51 2011
@@ -127,6 +127,9 @@
'freeglut' => '32bit-gcc4/freeglut-2.6.0-bin_20100213.zip',
'libssh2' => '32bit-gcc4/libssh2-1.2.5-bin_20100520.zip',
},
+#{ VVM 2011-06-07 16-35
+#
+#
'64bit-gcc4' => {
'patch' => '64bit-gcc4/patch-2.5.9-7-bin_20100110_20100303.zip',
'mysql589' => undef,
@@ -146,29 +149,34 @@
'pari5121' => undef,
'pari5122' => undef,
'pari5123' => undef,
- 'zlib' => '64bit-gcc4/zlib-1.2.3-bin_20100110.zip',
- 'libiconv' => '64bit-gcc4/libiconv-1.13.1-bin_20100110.zip',
- 'libxml2' => '64bit-gcc4/libxml2-2.7.3-bin_20100110.zip',
- 'libexpat' => '64bit-gcc4/expat-2.0.1-bin_20100110.zip',
- 'gmp' => '64bit-gcc4/gmp-5.0.1-419f6a4cc606-bin_20100306.zip',
- 'libxslt' => '64bit-gcc4/libxslt-1.1.26-bin_20100111.zip',
- 'libjpeg' => '64bit-gcc4/jpeg-6b-gnuwin32-bin_20100110.zip',
- 'libgif' => '64bit-gcc4/giflib-4.1.6-bin_20100110.zip',
- 'libpng' => '64bit-gcc4/libpng-1.2.40-bin_20100110.zip',
- 'libtiff' => '64bit-gcc4/tiff-3.9.1-bin_20100110.zip',
- 'libgd' => '64bit-gcc4/gd-2.0.35-bin_20100110.zip',
- 'libfreetype' => '64bit-gcc4/freetype-2.3.11-bin_20100110.zip',
- 'libopenssl' => '64bit-gcc4/openssl-1.0.0-beta4-bin_20100110.zip',
- 'libpostgresql' => '64bit-gcc4/postgresql-8.4.1-bin_20100110.zip',
- 'libdb' => '64bit-gcc4/db-4.8.24-bin_20100110.zip',
- 'libgdbm' => '64bit-gcc4/gdbm-1.8.3-bin_20100112.zip',
- 'libxpm' => '64bit-gcc4/libXpm-3.5.8-bin_20100110.zip',
- 'libxz' => '64bit-gcc4/liblzma-xz-4.999.9beta-bin_20100308.zip',
- 'mpc' => '64bit-gcc4/mpc-0.8.1-bin_20100306.zip',
- 'mpfr' => '64bit-gcc4/mpfr-2.4.2-bin_20100306.zip',
- 'libmysql' => '64bit-gcc4/mysql-5.1.44-bin_20100304.zip',
- 'freeglut' => '64bit-gcc4/freeglut-2.6.0-bin_20100213.zip',
- 'libssh2' => '64bit-gcc4/libssh2-1.2.5-bin_20100520.zip',
+ 'zlib' => 'kmx/64_libs/5.12/64bit_zlib-1.2.5-bin_20110507.zip',
+ 'libiconv' => 'kmx/64_libs/5.12/64bit_libiconv-1.13.1-sezero20110428-bin_20110507.zip',
+ 'libxml2' => 'kmx/64_libs/5.12/64bit_libxml2-2.7.8-bin_20110507.zip',
+ 'libexpat' => 'kmx/64_libs/5.12/64bit_expat-2.0.1-sezero20110428-bin_20110507.zip',
+ 'gmp' => 'kmx/64_libs/5.12/64bit_gmp-5.0.1-bin_20110507.zip',
+ 'libxslt' => 'kmx/64_libs/5.12/64bit_libxslt-1.1.26-bin_20110507.zip',
+ 'libjpeg' => 'kmx/64_libs/5.12/64bit_jpeg-8c-bin_20110507.zip',
+ 'libgif' => 'kmx/64_libs/5.12/64bit_giflib-4.1.6-bin_20110507.zip',
+ 'libpng' => 'kmx/64_libs/5.12/64bit_libpng-1.5.2-bin_20110507.zip',
+ 'libtiff' => 'kmx/64_libs/5.12/64bit_tiff-3.9.5-bin_20110507.zip',
+ 'libgd' => 'kmx/64_libs/5.12/64bit_gd-2.0.35(OLD-jpg-png)-bin_20110507.zip',
+ 'libfreetype' => 'kmx/64_libs/5.12/64bit_freetype-2.4.4-bin_20110507.zip',
+ 'libopenssl' => 'kmx/64_libs/5.12/64bit_openssl-1.0.0d-bin_20110507.zip',
+ 'libpostgresql' => 'kmx/64_libs/5.12/64bit_postgresql-9.0.4-bin_20110507.zip',
+ 'libdb' => 'kmx/64_libs/5.12/64bit_db-5.1.25-bin_20110507.zip',
+ 'libgdbm' => 'kmx/64_libs/5.12/64bit_gdbm-1.8.3-bin_20110507.zip',
+ 'libxpm' => 'kmx/64_libs/5.12/64bit_libXpm-3.5.9-bin_20110507.zip',
+ 'libxz' => 'kmx/64_libs/5.12/64bit_xz-5.0.2-bin_20110507.zip',
+ 'mpc' => 'kmx/64_libs/5.12/64bit_mpc-0.9-bin_20110507.zip',
+ 'mpfr' => 'kmx/64_libs/5.12/64bit_mpfr-3.0.1-bin_20110507.zip',
+ 'libmysql' => 'kmx/64_libs/5.12/64bit_mysql-5.1.44-bin_20100304.zip',
+ 'freeglut' => 'kmx/64_libs/5.12/64bit_freeglut-2.6.0-bin_20110507.zip',
+ 'libssh2' => 'kmx/64_libs/5.12/64bit_libssh2-1.2.8-bin_20110507.zip',
+#
+#
+#}
+
},
};
===

GoTo:
C:\sb\perl\site\lib\Perl\Dist\

rename
WiX.pm
to
WiX.pm.Orig

apply patch to WiX.pm:

===
>diff -u WiX.pm.Orig WiX.pm
--- WiX.pm.Orig Sun Jun 05 15:17:58 2011
+++ WiX.pm Tue Jun 07 17:23:36 2011
@@ -725,16 +725,16 @@
isa => subtype(
'Int' => where {
if ( not defined $_ ) {
- $_ = 32;
+ $_ = 64;
}

- $_ == 32 or $_ == 64;
+ $_ == 64 or $_ == 64;
},
message {
'Not 32 or 64-bit';
},
),
- default => 32,
+ default => 64,
);
===

Run

%SystemRoot%\system32\cmd.exe /c C:\sb\perl\site\bin\perldist_strawberry.bat --output C:\strawberry --skip 1 --skip 2 --skip 3

# { Or
#%SystemRoot%\system32\cmd.exe /c C:\sb\perl\bin\perl.exe -x -S perldist_strawberry.pl --output C:\strawberry --skip 1 --skip 2 --skip 3
# }

Go to directory:
C:\tmp\output\

rename strawberry-perl-5.12.3.0-64bit.msi strawberry-perl-5.12.3.0-64bit-build-2011-06-07.msi
rename strawberry-perl-5.12.3.0-64bit.zip strawberry-perl-5.12.3.0-64bit-build-2011-06-07.zip

Copy this files from C:\tmp\

Mini How-To: practical method to install OpsMgr ( SCOM) agents on all Hyper-V guest managed by SC VVM ( System Center Virtual Machine Manager)

SCVMM 2008 R2 Интеграция с SCOM 2007 R2 « ИТ Блог Алексея Максимова

12.Установка агентов SCOM на сервер VMM, все хосты виртуализации и все виртуальные машины

На этом этапе мы должны обеспечить наличие агента SCOM на всех объектах, которые подпадают под инфраструктуру VMM, а именно:

•На сервере VMM
•На всех серверах несущих роль VMM Library Server
•На всех серверах виртуализации с ролью Hyper-V
•На всех виртуальных машинах

Учетная запись «Action Account» SCOM на время установки агентов должна быть с правами «Local Admin»; проще всего этого добиться включив в группу «Domain Admin».
Перезапустить сервисы или сервер с OpsMgr.

Solution:


# Filename: Install-Agent_VMMComputers-Get-VM-_for_YoureSCVMM.ps1
# Description: Adds System Center Virtual Machine Manager host servers,
# ( and may be library servers ) and all guest to the set of computers
# managed by System Center Operations Manager and install OpsMgr agents.
#
#[ Victor Miasnikov:
#
# 1) Filter Hyper-V guest without Windows ( or other issue ) by "Unknown" :
# if ( -not ( $Computer.ComputerNameString -eq "Unknown" ) ) {
#
# 2) Using $Computer.ComputerNameString as current full DNS Name of computer for install agents, etc. :
# . . . New-WindowsDiscoveryConfiguration -ComputerName $Computer.ComputerNameString
#
#]

#[ Based:
# Filename: DiscoverVMMComputers.ps1.ps1
# Description: Adds System Center Virtual Machine Manager host servers
# and library servers to the set of computers managed
# by System Center Operations Manager.
# Copyright (c) Microsoft Corporation. All rights reserved.
#]

# DISCLAIMER:
# This script is made available to you without any express, implied or
# statutory warranty, not even the implied warranty of
# merchantability or fitness for a particular purpose, or the
# warranty of title or non-infringement. The entire risk of the
# use or the results from the use of this script remains with you.

$VMMServerComputerName = "YoureSCVMM.YoureADDomain.tut.by"
$RMS = “YoureOpsMgr.YoureADDomain.tut.by”

#
# http://www.thomasmaurer.ch/2010/12/powershell-for-system-center-virtual-machine-manager-and-hyper-v/
#
# Load Powershell Snapin for Virtual Machine Manager:
#

if ((Get-PSSnapin | Where-Object {$_.Name -eq 'Microsoft.SystemCenter.VirtualMachineManager'}) -eq $null)
{
Write-Host("Loading SC VMM PS Snapin")
Add-PSSnapin Microsoft.SystemCenter.VirtualMachineManager
}

#################################
#Init the connection to SCOM srv
#################################

if(-not (Get-pssnapin | Where-Object {$_.Name -eq "Microsoft.EnterpriseManagement.OperationsManager.Client"}))
{
Add-PSSnapin Microsoft.EnterpriseManagement.OperationsManager.Client
}
new-managementGroupConnection -ConnectionString:$RMS
Set-Location "OperationsManagerMonitoring::" -ErrorVariable errSnapin ;
Set-Location $RMS -ErrorVariable errSnapin ;

####################################################################
# Connect to the Virtual Machine Manager server
####################################################################
# Substitute the name of your VMM server and domain in this command:
$VMMServerByComputerName = Get-VMMServer -ComputerName $VMMServerComputerName

####################################################################
# Get all computers managed by VMM and get OpsMgr server
####################################################################
# Get the object for all host and library servers and all guest managed by VMM

$VMMManagedComputer = Get-VM

# Get an instance of the OpsMgr Management Server
$OpsMgrServer = Get-ManagementServer

####################################################################
# For each VMM host, ( and may be library server ) and all guest initiate a discovery
####################################################################
ForEach ($Computer in $VMMManagedComputer)
{
Write-Host $Computer.Name
if ( -not ( $Computer.ComputerNameString -eq "Unknown" ) ) {

Write-Host $Computer.ComputerNameString
Write-Host ""

#Create a new discovery configuration
$DiscoveryConfig = New-WindowsDiscoveryConfiguration -ComputerName $Computer.ComputerNameString -ComputerType Server

#Initiate the Operations Manager discovery
$discoResult = Start-Discovery -ManagementServer $OpsMgrServer -WindowsDiscoveryConfiguration $DiscoveryConfig

#Check that the discovery process discovered the Windows computers you specified.
$discoResult.CustomMonitoringObjects

if($discoResult.CustomMonitoringObjects -ne $null)
{
Write-Host "Agent installation in progress..."
Write-Host ""
Install-Agent –ManagementServer $managementServer –AgentManagedComputer $discoResult.CustomMonitoringObjects

Write-host "Installation Finished, waiting for 60 secondes"
Start-Sleep -s 60
}

}

}

Used resources:

http://www.opsmode.com/2009/09/scheduling-opsmgr-powershell-scripts/


#
#Scheduling OpsMgr PowerShell scripts
#2009/09/17, 10:37 When scheduling an Operations Manager PowerShell script you have to load the powershell snapins.
#
#Insert this in the beginning of your script
#
#$ServerName = “hostname”
#add-pssnapin “Microsoft.EnterpriseManagement.OperationsManager.Client”;
#set-location “OperationsManagerMonitoring::”;
#new-managementGroupConnection -ConnectionString:$ServerName;
#set-location $ServerName;
#

#if ((Get-PSSnapin | Where-Object {$_.Name -eq 'Microsoft.EnterpriseManagement.OperationsManager.Client'}) -eq $null)
# {
## add-pssnapin “Microsoft.EnterpriseManagement.OperationsManager.Client”;
# }

http://www.leveilleur.net/index.php/2010/01/20/opsmgr-scom-automatic-agent-deployment-with-powershell/


#
# Var B
#
##################################
##Init the connection to SCOM srv
##################################
#if(-not (Get-pssnapin | Where-Object {$_.Name -eq "Microsoft.EnterpriseManagement.OperationsManager.Client"}))
# {
# Add-PSSnapin Microsoft.EnterpriseManagement.OperationsManager.Client
# }
#new-managementGroupConnection -ConnectionString:$RMS
#Set-Location "OperationsManagerMonitoring::" -ErrorVariable errSnapin ;
#Set-Location $RMS -ErrorVariable errSnapin ;
#

> У части виртуальных серверов состояние . . . Not Monitored.

Например:

Они могут быть не в домене.
Если на виртуальном комп-е ISA Server или TMG, то надо задать в них IP OpsMgr.

Mini How-To: practical method to run Darwin OS x86 on Hyper-V:
«Matrioshka» Darwin OS ( Мас ОS Х v10.4 ) inside VMWare v5.5 inside Hyper-V


+------------- Physical Hardware --------------------------------------- . . .
|
| +------------- Windows 2008 Server R2 + Hyper V ----------------------- . . .
| |
| | Hyper-V Guests:
| | +------------- Windows 2003 x86 + VMWare v5.5 ----------------
| | |
| | | VMWare v5.5 Guests:
| | | +------------- Darwin OS ( Мас ОS Х v10.4 ) ---
| | | | VNC Server
| | | |
| | | +-----------------------------------------------
| | |
| | | +------------- Virtual Machine N 2 -------------
| | | |
| | | |
| | | +-----------------------------------------------
| | | . . .
| | |
| | |
| | | +------------- Virtual Machine N Z -------------
| | | |
| | | |
| | | +-----------------------------------------------
| | |
| | |
| | +-------------------------------------------------------------
| |
| |
| | +-------------------- Hyper-V Guests N 2 ---------------------
| | |
| | |
| | +--------------------------------------------------------------
| |
| | . . .
| |
| | +-------------------- Hyper-V Guests N Z ---------------------
| | |
| | |
| | +--------------------------------------------------------------
| |
| |
| |
| +---------------------------------------------------------------------- . . .
|
|
|
+---------------------------------------------------------------------------- . . .

P.S.
«Matrioshka» not work in case non _pure_ x86 VMWare or Darwin OS ( Мас ОS Х )

Copyright © 2013 Виктор Мясников ( Victor Miasnikov). Search Engine Optimization by Star Nine. Distributed by Wordpress Themes
Хостинг hoster.by   Сервис белорусских блогов: BLOGS.TUT.BY