BEWARE: Mostly unsorted ideas
=============================

###
+ Net::DNS::Native
+ Log::Log4perl
Reply
Devel::NYTProf
AnyEvent
Type::Tiny
Perl::Critic
Devel::Cover
App::PMUtils (too big)

### add some from: https://metacpan.org/pod/Bundle::libwin32

### add to after-QA:
- OpenCL-patched
- pkg-config
- portable + Math::Float128
- PDL: test plplot (and other libs)

### openssl lib/engines/*.dll

### do we want to introduce $config{mystrawberryperlroot} ?

### set TERM= or set TERM=dumb ?

### gdb
- what about detached debug info?
- http://stackoverflow.com/questions/866721/how-to-generate-gcc-debug-symbol-outside-the-build-target
- http://marcioandreyoliveira.blogspot.cz/2008/03/how-to-load-debug-symbols-with-gdb.html
- https://www.technovelty.org/code/separate-debug-info.html
   
  objcopy --only-keep-debug perl.exe perl.exe.debug
  objcopy --add-gnu-debuglink=perl.exe.debug perl.exe
  objcopy --only-keep-debug perl.exe perl.exe.debug
  objcopy --remove-section=.gnu_debuglink perl.exe
  objcopy --strip-debug perl.exe
  objcopy --add-gnu-debuglink=perl.exe.debug perl.exe
  
  ccflags  ='-g -O2 -DDEBUGGING -DWIN32  -DPERL_TEXTMODE_SCRIPTS ... -fwrapv ...
  optimize ='-g -O2 -DDEBUGGING',
  ldflags  ='-g -L"C:\strawberry\perl\lib\CORE" -L"C:\strawberry\c\lib"'
  lddlflags='-mdll -g -L"C:\strawberry\perl\lib\CORE" -L"C:\strawberry\c\lib"'
  
  ccflags  ='-s -O2 -DWIN32  -DPERL_TEXTMODE_SCRIPTS ...
  optimize ='-s -O2',
  ldflags  ='-s -L"C:\strawberry\perl\lib\CORE" -L"C:\strawberry\c\lib"'
  lddlflags='-mdll -s -L"C:\strawberry\perl\lib\CORE" -L"C:\strawberry\c\lib"'
  ccflags_nolargefiles=' -g -O2 -DDEBUGGING -DWIN32  -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields'
  ldflags_nolargefiles='-g -L"C
 
  c:\strawberry\perl\lib\Config_heavy.pl 
  s/(ccflags|optimize|ccflags_nolargefiles)(=.*?)-g -O2 -DDEBUGGING/$1-s -O2/;
  s/(lddlflags|ldflags|ldflags_nolargefiles)(=.*?)-g /-s /;

### update GDBM related modules (extracted from core)

################################################

### extlibs & config info
lib                    pkgconfig           *-config
gdbm-1.10           !! no                  
db-6.0.30           !! no
gmp-5.1.3           !! no
mpfr-3.1.2          !! no
mpc-1.0.2           !! no
zlib-1.2.8             YES
xz-5.0.5               YES
libiconv-1.14       !! no
expat-2.1.0            YES
libxml2-2.9.1          YES                 YES
libxslt-1.1.28         YES                 YES
openssl-1.0.1g         YES
libssh2-1.4.3          YES
postgresql-9.3.4       YES
freeglut-2.8.1      !! no
giflib-5.0.6        !! no
jpeg-9a             !! no
tiff-4.0.3             YES
libpng-1.6.10          YES                 YES
libXpm-3.5.11          YES
freetype-2.5.3         YES                 YES**
libgd-2.1.0            YES                 YES**
t1lib-5.1.2         !! no
libffi-3.0.13          YES
fftw-3.3.4             YES
gsl-1.16               YES                 YES**
proj-4.8.0             no????
plplot-5.10.0          no????
szip-2.1               no
hdf-4.2.10             no
hdf5-1.8.12            no
netcdf-4.3.2           YES                 YES
ta-lib-0.4.0           no                  YES**
gnuplot-4.6.5          no
ncurses-5.9            no                  YES

### PDL related
- Astro::FITS::Header
- PDL::IO::HDF5                   ### sam warnings + testfailure
- PDL::NetCDF                     ### patch needed + netcdf3 support fails
- PDL::Graphics::Prima            ### OK
- PDL::Graphics::Gnuplot          ### OK
- PDL::FFTW                       ### NO (not recommended by CHM)
- PDL::IO::Browser                ### (PDL-2.007) ncursesw not detected
- PDL::Graphics::PLplot           ### (PDL-2.007) Cannot find plplot library (libplplotd.dll), skipping PDL::Graphics::PLplot
- PDL::IO::HDF                    ### (PDL-2.007) Cannot find hdf library, libdf.a
- PDL::GSL::*                     ### (PDL-2.007) OK
- PDL::GIS::Proj                  ### (PDL-2.007) PROJ4 library found but cannot initialize projection, won't build
- PDL::Transform::Proj4           ### (PDL-2.007) ~~ dtto ~~
- Alien::GSL                      ### does not detect existing library
- Alien::FFTW3                    ### does not detect existing library
- PDL::FFTW3                      ### Sorry, Alien::FFTW3 doesn't work for Microsoft Windows
- PDL::LinearAlgebra              ### FAILS - unfriendly to gcc@MSWin32
- PDL::Ngrams
- PDL::Audio
- PDL::GSL::Randist
- PDL::CCS
- PDL::Stats
- PDL::VectorValued 
- PDL::Graphics::Prima

### new modules - candidates
- AnyEvent                      (642KB)
- Devel::NYTProf                (1.23MB - 2326)
- POE                           (1.25MB - 3583)
- PAR::Packer                   (9.9MB)
- Time::ParseDate               (55KB   - 3638)
- Perl::Critic                  (2.3MB  - total:3.252MB)
- DBIx::Class::Schema::Loader   (3.6MB)
- SQL::Translator               (2.6MB)
- Wx                            (88MB)
- Padre                         (97MB incl. Wx)

### Test FAILS
! Testing Convert-PEM-0.08 failed
  Failed test 'errstr matches decrypt failed'
  #   at t/02-encode.t line 28.
  #                   'ASN decode failed: decode error at C:/strawberry/perl/vendor/lib/Convert/ASN1/_decode.pm line 64.
  # '
  #     doesn't match '(?^:^Decryption failed)'
! Testing GD-2.53 failed
  GD                  - t/GD.t
! Testing Imager-0.98 failed
  Imager              - t/10png.t - Failed test 'read bad crc with png_ignore_benign_errors'
! Testing Test-Script-1.07 failed
  Test::Script        - t/03_compiles_bad.t
! Testing Win32-OLE-0.1711 failed
  Win32::OLE          - t/2_variant.t
! Testing Win32API-Registry-0.32 failed
  Can't find key with values:  More data is available
! Testing Win32-TieRegistry-0.26 failed
  Win32::TieRegistry  - t/02_main.t - Failed test 'Opened CU/SW/MS/Win/CV/Pol/Exp//NoDriveTypeAutoRun' + 'Type is REG_DWORD' + 'Value matches expected'
! Testing DBIx-Class-0.08270 failed but installing it anyway.
! Testing LWP-Protocol-https-6.04 failed but installing it anyway.
! Testing pip-1.19 failed but installing it anyway.
! Testing OpenGL-0.6703 failed but installing it anyway.
! Testing Data-Dump-Streamer-2.37 failed but installing it anyway.
 
### gcc-4.8.2 headers
YES ieeefp.h        ------- I_IEEEFP
YES inttypes.h      ------- I_INTTYPES
YES memory.h        ------  I_MEMORY
YES netdb.h         ------  I_NETDB
YES pthread.h       ------  I_PTHREAD   !!!!!!!
YES sys/file.h      ------- I_SYS_FILE
YES sys/param.h     ------- I_SYS_PARAM
YES sys/time.h      ------- I_SYS_TIME
YES varargs.h       ------- I_VARARGS

### MSI testing
- upgrade/downgrade

========== LATER ==========

### MSI: filesystem ACL for c:\strawberry & co.
http://wixtoolset.org/documentation/manual/v3/xsd/wix/permission.html
http://wixtoolset.org/documentation/manual/v3/xsd/util/permissionex.html
http://blogs.msdn.com/b/cjacks/archive/2008/12/04/how-to-set-directory-permissions-at-install-time-using-an-msi-created-using-windows-installer-xml-wix.aspx
create group:
http://stackoverflow.com/questions/11459591/how-to-create-a-local-group-and-add-an-active-directory-user-to-it-in-wix
http://stackoverflow.com/questions/12278265/how-to-get-user-credentials-displayed-as-default-in-a-wix-custom-dialog
http://social.msdn.microsoft.com/Forums/vstudio/en-US/39d9e905-2b35-4ce9-a544-4564f6b5a376/setting-file-permissions-in-languages-other-than-english-windows-installer-wix?forum=vssetup

### move dlls
- from c/bin to perl/bin
- still not sure
- perhaps a hack to BinaryToolsAndLibs.pm e.g. [src=>qr|c/bin/.*?\.dll/i, dst=>'perl/bin']

### maybe: keep something like 'minimal' perl
core + minimal sset of modules needed for relocation + setup

### maybe: single setup.bat
relocation + set env
maybe simple GUI

### UninstallModules.pm via cpanm
cpanm -U Capture::Tiny


### tools
- update: dendef, gmake, dmake, mingw-runtime
- add: genidl 

### CHM documentation 
- try http://www.microsoft.com/en-us/download/details.aspx?id=21138
- see https://github.com/oneclick/rubyinstaller/blob/master/resources/chm/contents.hhc.rhtml

### fix shebangline (partly fixed)

### IPC::Run3 is not able to handle 'dmake all' for 64bit build !!!

### check for XXX FIXME TODO in the code
- ok for now

### improve CreateRelocFiles
- search all in perl/bin
- search *.url in image_dir
- search *.pm in image_dir

### perltoc.pod contains hardcoded paths to build directory
- not a new bug

### PPM
- maybe App::Strawberry::PPM
- fix warning: Use of chdir('') or chdir(undef) as chdir() is deprecated at C:/strawberry-322222/perl/vendor/lib/PPM.pm line 393.