aboutsummaryrefslogtreecommitdiff
path: root/tools/star/windows-msi.pod
blob: d1b9875a1866ef19b3b7569d4e1381df1c079a56 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
=head1 windows-msi.pod - guide to build MSI packages

Rakudo Star releases are based on Rakudo compiler releases.
Since some time is often needed for module updates and testing
after each Rakudo compiler release, the timing of Star releases
varies from one release to the next. The MSI packages are based
on these Star releases.

Also, while the Rakudo compiler issues monthly releases; Star
releases are free to choose a longer release cycle.  Star releases
are also free to choose older releases of the compiler, NQP, and/or
MoarVM.  The goal is to balance end-user stability needs with
progress being made on the compiler, modules, and other runtime
components.

=head2 Steps to create an MSI package

If this is your first time releasing, B<read the whole guide before starting>.
That way you can ask questions and clear up and confusions before you're in the
thick of it.

If you have done this before, you might want to check for and read any changes
to this release guide since your last run.

=over 4

=item 0.

Download and install WiX Toolset, if needed adjust the PATH environment
variable to point to its bin directory. The tools `heat`, `candle` and `light`
should be available now.

Install ActivePerl and make sure it is in PATH. `perl -V` should give a
sensible output.

If you do not have the C compiler "cl" installed yet, install the Microsoft
Visual C++ Express for version 2010 or perhaps newer.

Finally, install the Windows Software Development Kit (SDK) for your Windows
version.

An alternative to ActivePerl and the Microsoft toolchain is to use Strawberry
Perl which ships with GCC and a mingw toolchain.  Run these tools under cmd.exe
and replace all following references to "nmake" by "gmake".

=item 1.

Make sure there is no C:\rakudo directory, as this will be our installation
target.  If there is one, remove it, perhaps after creating backup.

=item 2.

Use your browser to download the latest star release, replace YYYY.MM by year
and month: https://rakudo.perl6.org/downloads/star/rakudo-star-YYYY.MM.tar.gz

Unpack this .tar.gz to your hard disk. You will get a folder
rakudo-star-YYYY.MM, again YYYY.MM is year and month of the star release.

=item 3.

Run the Command Line for Visual Studio from the start menu. Alternatively you
can run cmd.exe followed by vcvars32.bat.

In either case, this should return a valid path:

  echo %VSINSTALLDIR%

=item 4.

Change the path to the directory created in step 2, and run:

  perl Configure.pl --prefix=C:\rakudo --gen-moar

This will create a Makefile and will start to compile the MoarVM backend.

=item 5.

Compile NQP and Rakudo by doing:

  nmake install

This will also precompile all modules and install binaries like `panda`.

=item 6.

Finally create the MSI package.

  nmake msi

(Note if you are using Strawberry Perl's GCC use 'build_msi' at this point)

Depending on your architecture you either rename that msi to:

  rakudo-star-YYYY.MM-x86 (no JIT).msi

or:

  rakudo-star-YYYY.MM-x86_64 (JIT).msi


=item 7.

Delete your C:\rakudo folder and make sure it got deleted. Then run the just
created installer, and do some sanity tests:

  perl6 -e "say $*KERNEL.bits"
  zef list --installed
  zef install openssl

If you are using Strawberry Perl then move its directory temporarily to a
different name in order to check all DDLs are correctly installed in the
C:\rakudo folder.

=item 8.

Stop the release process if step 7 failed. Post any issues to the irc channel
or mailing list.

=item 9.

Upload the msi package to L<http://rakudo.org/downloads/star> and L<https://rakudo.perl6.org/downloads/star/>:

 scp "rakudo-star-YYYY.MM-x86 (no JIT).msi" rakudo@rakudo.org:public_html/downloads/star
 scp "rakudo-star-YYYY.MM-x86 (no JIT).msi" rakudo@www.p6c.org:public_html/downloads/star

If you don't have permission to do this step, please ask one(pmichaud, jnthn,
masak, PerlJam/perlpilot, tadzik, moritz) on #perl6 to do it for you.

=item 10.

Publicize the msi packages in the appropriate places.  These include:

=over 4

=item * rakudo.org

=item * #perl6

=back

=item 11.

You're done!  Celebrate with the appropriate amount of fun.

=back

=cut