Page 1 of 2

Freeware ports on x86

Posted: Wed Dec 04, 2024 6:24 pm
by issinoho
Exercise in standing up freeware ports on x86 starting with this link with the initial target of getting ImageMagick to work.

Re: Freeware ports on x86

Posted: Wed Dec 04, 2024 6:50 pm
by issinoho
Start with an x86 port of GNV - An open-source, GNU-based environment for OpenVMS that provides application developers, system managers, and users a nix-style environment on OpenVMS.

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

Re: Freeware ports on x86

Posted: Wed Dec 04, 2024 11:36 pm
by issinoho
Install Perl from here.

Re: Freeware ports on x86

Posted: Thu Dec 05, 2024 12:05 am
by issinoho
OpenSSL: Secure Sockets Layer library

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"
Edit [.Configurations]descrip^.mms.tmpl and patch as follows

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).
************
Build as follows.

Code: Select all

$ perl Configure
$ mms
$ mms test
The build will fail however the required libraries will be available, so now copy those to a known location.

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

Re: Freeware ports on x86

Posted: Thu Dec 05, 2024 11:21 pm
by issinoho
VMS_auto64: Program to convert C and FORTRAN code from 32 to 64 bit.

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

Re: Freeware ports on x86

Posted: Thu Dec 05, 2024 11:22 pm
by issinoho
JPEG: library to read/write jpeg images

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

Re: Freeware ports on x86

Posted: Fri Dec 06, 2024 10:22 am
by issinoho
Zlib: Z-(de)compression

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

Re: Freeware ports on x86

Posted: Mon Dec 09, 2024 10:51 pm
by issinoho
LibTIFF: library to read/write Tiff images

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
Edit TIFF:LIBTIFF$STARTUP.COM and update the folder references.
Add @DISK$X86SYS:[FREEWARE.LIBTIFF]LIBTIFF$STARTUP.COM to sylogin.com, e.g.

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

Re: Freeware ports on x86

Posted: Tue Dec 10, 2024 12:45 pm
by issinoho
Zstandard (zstd): Real-time compression algorithm, providing high compression ratios.

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

Re: Freeware ports on x86

Posted: Tue Dec 10, 2024 3:53 pm
by issinoho
GIFLIB library: library to read/write GIF images
Download from SourceForge, https://sourceforge.net/projects/giflib ... z/download

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

Re: Freeware ports on x86

Posted: Tue Dec 10, 2024 4:54 pm
by issinoho
PNG library: read/write PNG images
Download from SourceForge, https://sourceforge.net/projects/libpng ... z/download

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

Re: Freeware ports on x86

Posted: Tue Dec 10, 2024 5:13 pm
by issinoho
Mesa3d: Opensource OpenGL implementation

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

Re: Freeware ports on x86

Posted: Wed Dec 11, 2024 11:36 am
by issinoho
Mesa3d_glu: Utilities for Mesa3d.

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

Re: Freeware ports on x86

Posted: Wed Dec 11, 2024 3:07 pm
by issinoho
GNU make: a tool which controls the generation of executables and other non-source files of a program from the program's source files.

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

Re: Freeware ports on x86

Posted: Wed Dec 11, 2024 3:12 pm
by issinoho
Porting library: library to make it easy to port software to OpenVMS

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