Freeware ports on x86
Posted: Wed Dec 04, 2024 6:24 pm
Exercise in standing up freeware ports on x86 starting with this link with the initial target of getting ImageMagick to work.
Running VMS-Apache-MySQL-PHP sites on OpenVMS
https://vamp.issinoho.com/
Code: Select all
$ curl -O http://nchrem.tnw.tudelft.nl/openvms/patches/gnv_x86.zip
$ unzip gnv_x86.zip
$ set def [.gnv213]
$ backup/log bb.back/save *
$ cr/dir disk$tools:[GNU.bin]
$ copy *.* disk$tools:[GNU.bin]
$ DEF/SYS/EXEC/TRANS=CONC GNU DISK$TOOLS:[GNU.]
$ BASH :== $GNU:[bin]bash.exe
$ bash
Code: Select all
$ wget https://github.com/openssl/openssl/releases/download/openssl-3.2.0/openssl-3.2.0.tar.gz
$ gzip -d openssl-3^.2^.0.tar.gz
$ vmstar -xzvf openssl-3^.2^.0.tar
$ set def [.openssl-3_2_0]
$ find/rep/nopattern/noconfirm/log [.Configurations]descrip^.mms.tmpl ",-\"""\n\t""", map" "\"""\n\t""", map"
Code: Select all
************
File DISK$TOOLS:[TEMP.openssl.openssl-3_2_0.Configurations]descrip^.mms.tmpl;2
1266 join("\"\n\t", map { my $x = $_ =~ /\[/ ? $_ : "[]".$_;
1267 "WRITE OPT_FILE \"$x" } @objs).
******
File DISK$TOOLS:[TEMP.openssl.openssl-3_2_0.Configurations]descrip^.mms.tmpl;1
1266 join(",-\"\n\t", map { my $x = $_ =~ /\[/ ? $_ : "[]".$_;
1267 "WRITE OPT_FILE \"$x" } @objs).
************
Code: Select all
$ perl Configure
$ mms
$ mms test
Code: Select all
$ DEF/SYS/EXEC SSL_SHARE DISK$X86SYS:[OPENSSL]
$ cr/dir/prot=(w:re) SSL_SHARE
$ copy OSSL$libcrypto^.^.03_shr.EXE SSL_SHARE:OSSL$LIBCRYPTO03_SHR64.EXE
$ copy OSSL$libcrypto^.^.03_shr.EXE SSL_SHARE:OSSL$LIBCRYPTO03_SHR.EXE
$ copy OSSL$libcrypto^.^.03_shr.EXE SYS$LIBRARY:OSSL$LIBCRYPTO03_SHR.EXE
$ copy OSSL$libcrypto^.^.03_shr.EXE SYS$LIBRARY:OSSL$LIBCRYPTO^..03_SHR
$ copy OSSL$libssl^.^.03_shr.EXE SSL_SHARE:OSSL$LIBSSL03_SHR64.EXE
$ copy OSSL$libssl^.^.03_shr.EXE SSL_SHARE:OSSL$LIBSSL03_SHR.EXE
$ copy OSSL$libssl^.^.03_shr.EXE SYS$LIBRARY:OSSL$LIBSSL03_SHR.EXE
$ copy OSSL$libssl^.^.03_shr.EXE SYS$LIBRARY:OSSL$LIBSSL^..03_SHR
Code: Select all
$ curl -O http://nchrem.tnw.tudelft.nl/openvms/patches/vms_auto64_8_5.zip
$ unzip vms_auto64_8_5.zip
$ set def [.vms_auto64_8^.5]
$ mms
$ copy *.exe sys$library
Code: Select all
$ curl -O https://www.ijg.org/files/jpegsrc.v9f.tar.gz
$ gzip -d jpegsrc^.v9f^.tar.gz
$ vmstar -xzvf jpegsrc^.v9f.tar
$ curl -O http://nchrem.tnw.tudelft.nl/openvms/patches/jpeg-9f_vmspatch.zip
$ unzip jpeg-9f_vmspatch.zip
Overwrite All when prompted.
$ set def [.jpeg-9f]
$ mms/descrip=makefile
$ def/sys/exec jpeg dka0:[freeware.jpeg]
$ cr/dir/prot=(w:re) jpeg
$ copy *.exe,*.h jpeg
$ copy *.olb sys$library
Code: Select all
$ curl -O https://www.zlib.net/zlib-1.3.1.tar.gz
$ gzip -d zlib-1^.3^.1^.tar.gz
$ vmstar -xzvf zlib-1^.3^.1.tar
$ rename zlib-1_3_1.DIR zlib-1^.3^.1.DIR
$ curl -O http://nchrem.tnw.tudelft.nl/openvms/patches/zlib_131_vmspatch.zip
$ unzip zlib_131_vmspatch.zip
Overwrite All when prompted.
$ set def [.zlib-1^.3^.1]
$ @make_vms
$ DEF/SYS/EXEC ZLIB SYS$COMMON:[LIBZ]
$ cr/dir/prot=w:re ZLIB
$ copy *.olb,*.exe,*.h ZLIB
$ copy *.olb sys$library
Code: Select all
$ curl -O https://download.osgeo.org/libtiff/tiff-4.7.0rc2.tar.gz
$ gzip -d tiff-4^.7^.0rc2^.tar.gz
$ vmstar -xzvf tiff-4^.7^.0rc2.tar
$ rename tiff-4_7_0.DIR tiff-4^.7^.0.dir
$ curl -O http://nchrem.tnw.tudelft.nl/openvms/patches/tiff_470rc2_vmspatch.zip
$ unzip tiff_470rc2_vmspatch.zip
Overwrite All when prompted.
$ set def [.tiff-4^.7^.0]
$ @configure
$ find/replace/noconfirm/log BUILD.COM "MMS/macro=(X86=1)" "MMS/IGNORE/macro=(X86=1)"
$ find/replace/noconfirm/log [...]descrip.mms "pipe link/map/full/exec=nl: $(MMS$TARGET_NAME),sys$library:dummy_auto64.obj | copy sys$input nl:" "link/map/full/exec=nl: $(MMS$TARGET_NAME)"
$ @build
$ DEFINE TIFF DISK$X86SYS:[FREEWARE.LIBTIFF]
$ cr/dir/prot=(w:re) TIFF
$ copy [.tools]*.exe TIFF
$ copy LIBTIFF$STARTUP.COM TIFF
Code: Select all
DEFINE TIFF DISK$X86SYS:[FREEWARE.LIBTIFF]
FAX2PS:==$TIFF:FAX2PS
FAX2TIFF:==$TIFF:FAX2TIFF
PAL2RGB:==$TIFF:PAL2RGB
PPM2TIFF:==$TIFF:PPM2TIFF
RAW2TIFF:==$TIFF:RAW2TIFF
RGB2YCBCR:==$TIFF:RGB2YCBCR
THUMBNAIL:==$TIFF:THUMBNAIL
TIFF2BW:==$TIFF:TIFF2BW
TIFF2PDF:==$TIFF:TIFF2PDF
TIFF2PS:==$TIFF:TIFF2PS
TIFF2RGBA:==$TIFF:TIFF2RGBA
TIFFCMP:==$TIFF:TIFFCMP
TIFFCP:==$TIFF:TIFFCP
TIFFDITHER:==$TIFF:TIFFDITHER
TIFFDUMP:==$TIFF:TIFFDUMP
TIFFINFO:==$TIFF:TIFFINFO
TIFFMEDIAN:==$TIFF:TIFFMEDIAN
TIFFCROP:==$TIFF:TIFFCROP
TIFFSPLIT:==$TIFF:TIFFSPLIT
TIFFSET:==$TIFF:TIFFSET
FAX2PS64:==$TIFF:FAX2PS_64
FAX2TIFF64:==$TIFF:FAX2TIFF_64
PAL2RGB64:==$TIFF:PAL2RGB_64
PPM2TIFF64:==$TIFF:PPM2TIFF_64
RAW2TIFF64:==$TIFF:RAW2TIFF_64
RGB2YCBCR64:==$TIFF:RGB2YCBCR_64
THUMBNAIL64:==$TIFF:THUMBNAIL_64
TIFF2BW64:==$TIFF:TIFF2BW_64
TIFF2PDF64:==$TIFF:TIFF2PDF_64
TIFF2PS64:==$TIFF:TIFF2PS_64
TIFF2RGBA64:==$TIFF:TIFF2RGBA_64
TIFFCMP64:==$TIFF:TIFFCMP_64
TIFFCP64:==$TIFF:TIFFCP_64
TIFFDITHER64:==$TIFF:TIFFDITHER_64
TIFFDUMP64:==$TIFF:TIFFDUMP_64
TIFFINFO64:==$TIFF:TIFFINFO_64
TIFFMEDIAN64:==$TIFF:TIFFMEDIAN_64
TIFFCROP64:==$TIFF:TIFFCROP_64
TIFFSPLIT64:==$TIFF:TIFFSPLIT_64
TIFFSET64:==$TIFF:TIFFSET_64
Code: Select all
$ git clone https://github.com/facebook/zstd.git
$ set def [.zstd]
$ git checkout fa147cbb4d3fbd8c31b1f35c7984ae62f4c6ea03
$ set def [-]
$ curl -O http://nchrem.tnw.tudelft.nl/openvms/patches/zstd_git_vmspatch.zip
$ unzip zstd_git_vmspatch.zip
Overwrite All when prompted.
$ set def [.zstd]
$ find/replace/noconfirm/log [...]descrip.mms "pipe link/map/full/exec=nl: $(MMS$TARGET_NAME),sys$library:dummy_auto64.obj | copy sys$input nl:" "link/map/full/exec=nl: $(MMS$TARGET_NAME)"
$ find/replace/noconfirm/log [...]descrip.mms "pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj,sys$library:dummy_auto64.obj | copy sys$input nl:" "link/map/full/exec=nl: $(MMS$TARGET_NAME)"
$ find/replace/noconfirm/log [...]descrip.mms "pipe link/map/full/exec=nl: $(MMS$TARGET_NAME),\\" "link/map/full/exec=nl: $(MMS$TARGET_NAME)"
$ find/replace/noconfirm/log [...]descrip.mms "sys$library:dummy_auto64.obj | copy sys$input nl:" ""
$ mms /ignore=error
$ def/sys/exec zstd dka0:[freeware.zstd]
$ cr/dir/prot=(w:re) zstd
$ copy zstd.h zstd
$ copy *.olb sys$library
Code: Select all
$ gzip -d giflib-5^.2^.1^.tar.gz
$ vmstar -xzvf giflib-5^.2^.1.tar
$ curl -O http://nchrem.tnw.tudelft.nl/openvms/patches/giflib-5_2_1_vmspatch.zip
$ rename giflib-5_2_1.DIR giflib-5^.2^.1.dir
$ unzip giflib-5_2_1_vmspatch.zip
Overwrite All when prompted.
$ set def [.giflib-5^.2^.1]
$ find/replace/noconfirm/log [...]descrip.mms "pipe link/map/full/exec=nl: $(MMS$TARGET_NAME),sys$library:dummy_auto64.obj | copy sys$input nl:" "link/map/full/exec=nl: $(MMS$TARGET_NAME)"
$ mms /ignore
$ def/sys/exec giflib dka0:[freeware.giflib]
$ cr/dir/prot=(w:re) giflib
$ copy *.exe,*.h giflib
$ copy *.olb sys$library
Code: Select all
$ gzip -d libpng-1^.6^.44^.tar.gz
$ vmstar -xzvf libpng-1^.6^.44.tar
$ curl -O http://nchrem.tnw.tudelft.nl/openvms/patches/pnglib_1644_vmspatch.zip
$ rename libpng-1_6_44.DIR libpng-1^.6^.44.dir
$ unzip pnglib_1644_vmspatch.zip
Overwrite All when prompted.
$ set def [.libpng-1^.6^.44]
$ find/replace/noconfirm/log [...]descrip.mms "pipe link/map/full/exec=nl: $(MMS$TARGET_NAME) | copy sys$input nl:" "link/map/full/exec=nl: $(MMS$TARGET_NAME)"
$ @[.scripts]makevms
$ find/replace/noconfirm/log descrip.mms "ZLIBSRC=[-.zlib]" "ZLIBSRC=zlib:"
$ mms /ignore
$ def/sys/exec libpng dka0:[freeware.libpng]
$ cr/dir/prot=(w:re) libpng
$ copy *.exe,*.h libpng
$ copy *.olb sys$library
Code: Select all
$ curl -O http://nchrem.tnw.tudelft.nl/openvms/patches/mesa3d_2014_01_15.zip
$ unzip mesa3d_2014_01_15.zip
$ rename mesa3d_2014_01_15.DIR mesa3d_python.dir
$ curl -O http://nchrem.tnw.tudelft.nl/openvms/patches/mesa3d_python.zip
$ unzip mesa3d_python.zip
Overwrite All when prompted.
$ set def [.mesa3d_python.mesa]
$ mms /ignore
$ def/sys/exec mesa3d dka0:[freeware.mesa3d]
$ cr/dir/prot=(w:re) mesa3d
$ copy [.include.gl]*.h mesa3d
$ copy [.lib]lib*.olb mesa3d
$ copy [.lib]lib*.olb sys$library
Code: Select all
$ cr/dir [.mesa3dglu]
$ set def [.mesa3dglu]
$ git clone https://gitlab.freedesktop.org/mesa/glu.git
$ set def [.glu]
$ git checkout 0bf42e41c8b63fc2488dd8d41f696310b5a5a6a7
$ set def [--]
$ curl -O http://nchrem.tnw.tudelft.nl/openvms/patches/mesa3dglu_vmspatch.zip
$ unzip mesa3dglu_vmspatch.zip
$ set def [.mesa3dglu.glu]
$ copy [.src.include]gluos.h [.src.libutil]
$ copy [.src.include]gluos.h [.src.libtess]
$ mms
$ copy [.lib]*.olb mesa3d
Code: Select all
$ curl -O https://ftp.gnu.org/gnu/make/make-3.82.tar.gz
$ gzip -d make-3^.82^.tar.gz
$ vmstar -xzvf make-3^.82.tar
$ curl -O http://nchrem.tnw.tudelft.nl/openvms/patches/make-3_82_vmspatch.zip
$ rename make-3_82.DIR make-3^.82.DIR
$ unzip -l make-3_82_vmspatch.zip
$ set def [.make-3^.82]
$ find/replace/noconfirm/log makefile.com ","""VMS""") -" ","""VMS""","""HAVE_SA_RESTART""","""HAVE_STRNCASECMP""") -"
$ @makefile
$ copy make.exe dcl$path
Code: Select all
$ curl -O http://nchrem.tnw.tudelft.nl/openvms/patches/PORTING_LIBRARY-A9.ZIP
$ unzip PORTING_LIBRARY-A9.ZIP
$ set def [.porting_library-a9]
$ make
$ copy VMS_JACKETS.exe dcl$path