-
Notifications
You must be signed in to change notification settings - Fork 16
/
perl-32bit.pp
106 lines (104 loc) · 5.47 KB
/
perl-32bit.pp
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
### job description for building strawberry perl for get_iplayer
#Available '<..>' macros:
# <package_url> is placeholder for http://strawberryperl.com/package
# <dist_sharedir> is placeholder for Perl::Dist::Strawberry's distribution sharedir
# <image_dir> is placeholder for c:\strawberry
{
app_version => '5.32.1.1', #BEWARE: do not use '.0.0' in the last two version digits
bits => 32,
beta => 0,
app_fullname => 'Perl (32-bit)',
app_simplename => 'perl',
maketool => 'gmake', # 'dmake' or 'gmake'
build_job_steps => [
### NEXT STEP ###########################
{
plugin => 'Perl::Dist::Strawberry::Step::BinaryToolsAndLibs',
install_packages => {
#tools
'gcc-toolchain' => { url=>'<package_url>/kmx/32_gcctoolchain/mingw64-w32-gcc8.3.0_20190316.zip', install_to=>'c' },
#libs
'gdbm' => '<package_url>/kmx/32_libs/gcc83-2019Q2/32bit_gdbm-1.18-bin_20190522.zip',
'liblibiconv' => '<package_url>/kmx/32_libs/gcc83-2019Q2/32bit_libiconv-1.16-bin_20190522.zip',
'liblibxml2' => '<package_url>/kmx/32_libs/gcc83-2019Q2/32bit_libxml2-2.9.9-bin_20190522.zip',
'openssl' => '<package_url>/kmx/32_libs/gcc83-2021Q1/32bit_openssl-1.1.1i-bin_20210124.zip',
'xz' => '<package_url>/kmx/32_libs/gcc83-2019Q2/32bit_xz-5.2.4-bin_20190522.zip',
'zlib' => '<package_url>/kmx/32_libs/gcc83-2019Q2/32bit_zlib-1.2.11-bin_20190522.zip',
},
},
### NEXT STEP ###########################
{
plugin => 'Perl::Dist::Strawberry::Step::InstallPerlCore',
url => 'https://www.cpan.org/src/5.0/perl-5.32.1.tar.gz',
cf_email => 'get_iplayer@project', #IMPORTANT: keep 'strawberry-perl' before @
perl_debug => 0, # can be overridden by --perl_debug=N option
perl_64bitint => 1, # ignored on 64bit, can be overridden by --perl_64bitint | --noperl_64bitint option
buildoptextra => '-D__USE_MINGW_ANSI_STDIO',
patch => { #DST paths are relative to the perl src root
'<dist_sharedir>/msi/files/perlexe.ico' => 'win32/perlexe.ico',
'<dist_sharedir>/perl-5.32/win32_config.gc.tt' => 'win32/config.gc',
'<dist_sharedir>/perl-5.32/perlexe.rc.tt' => 'win32/perlexe.rc',
'<dist_sharedir>/perl-5.32/win32_config_H.gc' => 'win32/config_H.gc', # enables gdbm/ndbm/odbm
'<dist_sharedir>/perl-5.32/win32_FindExt.pm' => 'win32/FindExt.pm',
},
license => { #SRC paths are relative to the perl src root
'Readme' => '<image_dir>/licenses/perl/Readme',
'Artistic' => '<image_dir>/licenses/perl/Artistic',
'Copying' => '<image_dir>/licenses/perl/Copying',
},
},
### NEXT STEP ###########################
{
plugin => 'Perl::Dist::Strawberry::Step::InstallModules',
modules => [
{ module=>'Portable', skiptest=>1 },
],
},
### NEXT STEP ###########################
{
plugin => 'Perl::Dist::Strawberry::Step::FixShebang',
shebang => '#!perl',
},
### NEXT STEP ###########################
{
plugin => 'Perl::Dist::Strawberry::Step::FilesAndDirs',
commands => [ # files and dirs specific to portable edition
# templated files
{ do=>'apply_tt', args=>[ '<dist_sharedir>/config-files/CPAN_Config.pm.tt', '<image_dir>/perl/lib/CPAN/Config.pm', {}, 1 ] }, #XXX-temporary empty tt_vars, no_backup=1
# licenses
{ do=>'copyfile', args=>[ '<dist_sharedir>/extra-files/licenses/License.rtf', '<image_dir>/licenses/perl/Strawberry.rtf' ] },
# cleanup cpanm related files
{ do=>'removedir', args=>[ '<image_dir>/perl/site/lib/MSWin32-x86-multi-thread-64int' ] },
{ do=>'removedir', args=>[ '<image_dir>/perl/site/lib/MSWin32-x86-multi-thread' ] },
{ do=>'removedir', args=>[ '<image_dir>/perl/site/lib/MSWin32-x64-multi-thread' ] },
{ do=>'removefile_recursive', args=>[ '<image_dir>', qr/\.packlist$/i ] },
{ do=>'removefile_recursive', args=>[ '<image_dir>', qr/perllocal\.pod$/i ] },
],
},
### NEXT STEP ###########################
{
plugin => 'Perl::Dist::Strawberry::Step::SetupPortablePerl', # no options needed
},
### NEXT STEP ###########################
{
plugin => 'Perl::Dist::Strawberry::Step::FilesAndDirs',
commands => [ # files and dirs specific to portable edition
{ do=>'apply_tt', args=>[ '<dist_sharedir>/portable/portable.perl.tt', '<image_dir>/portable.perl', {gcchost=>'i686-w64-mingw32', gccver=>'8.3.0'} ] },
{ do=>'copyfile', args=>[ '<dist_sharedir>/portable/portableshell.bat', '<image_dir>/portableshell.bat' ] },
{ do=>'apply_tt', args=>[ '<dist_sharedir>/portable/README.portable.txt.tt', '<image_dir>/README.txt' ] },
],
},
### NEXT STEP ###########################
{
plugin => 'Perl::Dist::Strawberry::Step::OutputPortableZIP', # no options needed
},
### NEXT STEP ###########################
{
plugin => 'Perl::Dist::Strawberry::Step::CreateReleaseNotes', # no options needed
},
### NEXT STEP ###########################
{
plugin => 'Perl::Dist::Strawberry::Step::OutputLogZIP', # no options needed
},
],
}