init repo.
This commit is contained in:
51
third_party/curl/packages/Makefile.am
vendored
Normal file
51
third_party/curl/packages/Makefile.am
vendored
Normal file
@ -0,0 +1,51 @@
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
SUBDIRS = vms
|
||||
|
||||
EXTRA_DIST = README.md \
|
||||
OS400/README.OS400 \
|
||||
OS400/rpg-examples \
|
||||
OS400/ccsidcurl.c \
|
||||
OS400/ccsidcurl.h \
|
||||
OS400/curlcl.c \
|
||||
OS400/curlmain.c \
|
||||
OS400/curl.inc.in \
|
||||
OS400/initscript.sh \
|
||||
OS400/config400.default \
|
||||
OS400/make-include.sh \
|
||||
OS400/make-lib.sh \
|
||||
OS400/make-src.sh \
|
||||
OS400/make-tests.sh \
|
||||
OS400/makefile.sh \
|
||||
OS400/os400sys.c \
|
||||
OS400/os400sys.h \
|
||||
OS400/curl.cmd
|
||||
|
||||
CHECKSRC = $(CS_$(V))
|
||||
CS_0 = @echo " RUN " $@;
|
||||
CS_1 =
|
||||
CS_ = $(CS_0)
|
||||
|
||||
checksrc:
|
||||
$(CHECKSRC)(@PERL@ $(top_srcdir)/scripts/checksrc.pl -D$(srcdir) $(srcdir)/OS400/*.[ch])
|
796
third_party/curl/packages/Makefile.in
vendored
Normal file
796
third_party/curl/packages/Makefile.in
vendored
Normal file
@ -0,0 +1,796 @@
|
||||
# Makefile.in generated by automake 1.16.5 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2021 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
VPATH = @srcdir@
|
||||
am__is_gnu_make = { \
|
||||
if test -z '$(MAKELEVEL)'; then \
|
||||
false; \
|
||||
elif test -n '$(MAKE_HOST)'; then \
|
||||
true; \
|
||||
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
||||
true; \
|
||||
else \
|
||||
false; \
|
||||
fi; \
|
||||
}
|
||||
am__make_running_with_option = \
|
||||
case $${target_option-} in \
|
||||
?) ;; \
|
||||
*) echo "am__make_running_with_option: internal error: invalid" \
|
||||
"target option '$${target_option-}' specified" >&2; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
has_opt=no; \
|
||||
sane_makeflags=$$MAKEFLAGS; \
|
||||
if $(am__is_gnu_make); then \
|
||||
sane_makeflags=$$MFLAGS; \
|
||||
else \
|
||||
case $$MAKEFLAGS in \
|
||||
*\\[\ \ ]*) \
|
||||
bs=\\; \
|
||||
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
|
||||
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
|
||||
esac; \
|
||||
fi; \
|
||||
skip_next=no; \
|
||||
strip_trailopt () \
|
||||
{ \
|
||||
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
|
||||
}; \
|
||||
for flg in $$sane_makeflags; do \
|
||||
test $$skip_next = yes && { skip_next=no; continue; }; \
|
||||
case $$flg in \
|
||||
*=*|--*) continue;; \
|
||||
-*I) strip_trailopt 'I'; skip_next=yes;; \
|
||||
-*I?*) strip_trailopt 'I';; \
|
||||
-*O) strip_trailopt 'O'; skip_next=yes;; \
|
||||
-*O?*) strip_trailopt 'O';; \
|
||||
-*l) strip_trailopt 'l'; skip_next=yes;; \
|
||||
-*l?*) strip_trailopt 'l';; \
|
||||
-[dEDm]) skip_next=yes;; \
|
||||
-[JT]) skip_next=yes;; \
|
||||
esac; \
|
||||
case $$flg in \
|
||||
*$$target_option*) has_opt=yes; break;; \
|
||||
esac; \
|
||||
done; \
|
||||
test $$has_opt = yes
|
||||
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
|
||||
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = packages
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-amissl.m4 \
|
||||
$(top_srcdir)/m4/curl-bearssl.m4 \
|
||||
$(top_srcdir)/m4/curl-compilers.m4 \
|
||||
$(top_srcdir)/m4/curl-confopts.m4 \
|
||||
$(top_srcdir)/m4/curl-functions.m4 \
|
||||
$(top_srcdir)/m4/curl-gnutls.m4 \
|
||||
$(top_srcdir)/m4/curl-mbedtls.m4 \
|
||||
$(top_srcdir)/m4/curl-openssl.m4 \
|
||||
$(top_srcdir)/m4/curl-override.m4 \
|
||||
$(top_srcdir)/m4/curl-reentrant.m4 \
|
||||
$(top_srcdir)/m4/curl-rustls.m4 \
|
||||
$(top_srcdir)/m4/curl-schannel.m4 \
|
||||
$(top_srcdir)/m4/curl-sectransp.m4 \
|
||||
$(top_srcdir)/m4/curl-sysconfig.m4 \
|
||||
$(top_srcdir)/m4/curl-wolfssl.m4 $(top_srcdir)/m4/libtool.m4 \
|
||||
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
|
||||
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
|
||||
$(top_srcdir)/m4/xc-am-iface.m4 \
|
||||
$(top_srcdir)/m4/xc-cc-check.m4 \
|
||||
$(top_srcdir)/m4/xc-lt-iface.m4 \
|
||||
$(top_srcdir)/m4/xc-translit.m4 \
|
||||
$(top_srcdir)/m4/xc-val-flgs.m4 \
|
||||
$(top_srcdir)/m4/zz40-xc-ovr.m4 \
|
||||
$(top_srcdir)/m4/zz50-xc-ovr.m4 \
|
||||
$(top_srcdir)/m4/zz60-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
AM_V_P = $(am__v_P_@AM_V@)
|
||||
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||
am__v_P_0 = false
|
||||
am__v_P_1 = :
|
||||
AM_V_GEN = $(am__v_GEN_@AM_V@)
|
||||
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
am__v_GEN_1 =
|
||||
AM_V_at = $(am__v_at_@AM_V@)
|
||||
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
|
||||
am__v_at_0 = @
|
||||
am__v_at_1 =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
|
||||
ctags-recursive dvi-recursive html-recursive info-recursive \
|
||||
install-data-recursive install-dvi-recursive \
|
||||
install-exec-recursive install-html-recursive \
|
||||
install-info-recursive install-pdf-recursive \
|
||||
install-ps-recursive install-recursive installcheck-recursive \
|
||||
installdirs-recursive pdf-recursive ps-recursive \
|
||||
tags-recursive uninstall-recursive
|
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
*) (install-info --version) >/dev/null 2>&1;; \
|
||||
esac
|
||||
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||
distclean-recursive maintainer-clean-recursive
|
||||
am__recursive_targets = \
|
||||
$(RECURSIVE_TARGETS) \
|
||||
$(RECURSIVE_CLEAN_TARGETS) \
|
||||
$(am__extra_recursive_targets)
|
||||
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
|
||||
distdir distdir-am
|
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||
# Read a list of newline-separated strings from the standard input,
|
||||
# and print each of them once, without duplicates. Input order is
|
||||
# *not* preserved.
|
||||
am__uniquify_input = $(AWK) '\
|
||||
BEGIN { nonempty = 0; } \
|
||||
{ items[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in items) print i; }; } \
|
||||
'
|
||||
# Make sure the list of sources is unique. This is necessary because,
|
||||
# e.g., the same source file might be shared among _SOURCES variables
|
||||
# for different programs/libraries.
|
||||
am__define_uniq_tagged_files = \
|
||||
list='$(am__tagged_files)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | $(am__uniquify_input)`
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
am__DIST_COMMON = $(srcdir)/Makefile.in README.md
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
am__relativize = \
|
||||
dir0=`pwd`; \
|
||||
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
|
||||
sed_rest='s,^[^/]*/*,,'; \
|
||||
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
|
||||
sed_butlast='s,/*[^/]*$$,,'; \
|
||||
while test -n "$$dir1"; do \
|
||||
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
|
||||
if test "$$first" != "."; then \
|
||||
if test "$$first" = ".."; then \
|
||||
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
|
||||
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
|
||||
else \
|
||||
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
|
||||
if test "$$first2" = "$$first"; then \
|
||||
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
|
||||
else \
|
||||
dir2="../$$dir2"; \
|
||||
fi; \
|
||||
dir0="$$dir0"/"$$first"; \
|
||||
fi; \
|
||||
fi; \
|
||||
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
|
||||
done; \
|
||||
reldir="$$dir2"
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
APACHECTL = @APACHECTL@
|
||||
APXS = @APXS@
|
||||
AR = @AR@
|
||||
AR_FLAGS = @AR_FLAGS@
|
||||
AS = @AS@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BLANK_AT_MAKETIME = @BLANK_AT_MAKETIME@
|
||||
CADDY = @CADDY@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CFLAG_CURL_SYMBOL_HIDING = @CFLAG_CURL_SYMBOL_HIDING@
|
||||
CONFIGURE_OPTIONS = @CONFIGURE_OPTIONS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CPPFLAG_CURL_STATICLIB = @CPPFLAG_CURL_STATICLIB@
|
||||
CSCOPE = @CSCOPE@
|
||||
CTAGS = @CTAGS@
|
||||
CURLVERSION = @CURLVERSION@
|
||||
CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
|
||||
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@
|
||||
CURL_DISABLE_DICT = @CURL_DISABLE_DICT@
|
||||
CURL_DISABLE_FILE = @CURL_DISABLE_FILE@
|
||||
CURL_DISABLE_FTP = @CURL_DISABLE_FTP@
|
||||
CURL_DISABLE_GOPHER = @CURL_DISABLE_GOPHER@
|
||||
CURL_DISABLE_HTTP = @CURL_DISABLE_HTTP@
|
||||
CURL_DISABLE_IMAP = @CURL_DISABLE_IMAP@
|
||||
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
|
||||
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
|
||||
CURL_DISABLE_MQTT = @CURL_DISABLE_MQTT@
|
||||
CURL_DISABLE_POP3 = @CURL_DISABLE_POP3@
|
||||
CURL_DISABLE_PROXY = @CURL_DISABLE_PROXY@
|
||||
CURL_DISABLE_RTSP = @CURL_DISABLE_RTSP@
|
||||
CURL_DISABLE_SMB = @CURL_DISABLE_SMB@
|
||||
CURL_DISABLE_SMTP = @CURL_DISABLE_SMTP@
|
||||
CURL_DISABLE_TELNET = @CURL_DISABLE_TELNET@
|
||||
CURL_DISABLE_TFTP = @CURL_DISABLE_TFTP@
|
||||
CURL_LT_SHLIB_VERSIONED_FLAVOUR = @CURL_LT_SHLIB_VERSIONED_FLAVOUR@
|
||||
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
|
||||
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
|
||||
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
ENABLE_SHARED = @ENABLE_SHARED@
|
||||
ENABLE_STATIC = @ENABLE_STATIC@
|
||||
ETAGS = @ETAGS@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
FILECMD = @FILECMD@
|
||||
FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@
|
||||
GCOV = @GCOV@
|
||||
GREP = @GREP@
|
||||
HAVE_BROTLI = @HAVE_BROTLI@
|
||||
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
|
||||
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
|
||||
HAVE_LIBZ = @HAVE_LIBZ@
|
||||
HAVE_OPENSSL_QUIC = @HAVE_OPENSSL_QUIC@
|
||||
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@
|
||||
HAVE_PROTO_BSDSOCKET_H = @HAVE_PROTO_BSDSOCKET_H@
|
||||
HAVE_ZSTD = @HAVE_ZSTD@
|
||||
HTTPD = @HTTPD@
|
||||
HTTPD_NGHTTPX = @HTTPD_NGHTTPX@
|
||||
IDN_ENABLED = @IDN_ENABLED@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
IPV6_ENABLED = @IPV6_ENABLED@
|
||||
LCOV = @LCOV@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBCURL_LIBS = @LIBCURL_LIBS@
|
||||
LIBCURL_NO_SHARED = @LIBCURL_NO_SHARED@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MANIFEST_TOOL = @MANIFEST_TOOL@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PERL = @PERL@
|
||||
PKGADD_NAME = @PKGADD_NAME@
|
||||
PKGADD_PKG = @PKGADD_PKG@
|
||||
PKGADD_VENDOR = @PKGADD_VENDOR@
|
||||
PKGCONFIG = @PKGCONFIG@
|
||||
RANDOM_FILE = @RANDOM_FILE@
|
||||
RANLIB = @RANLIB@
|
||||
RC = @RC@
|
||||
REQUIRE_LIB_DEPS = @REQUIRE_LIB_DEPS@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SSL_BACKENDS = @SSL_BACKENDS@
|
||||
SSL_ENABLED = @SSL_ENABLED@
|
||||
SSL_LIBS = @SSL_LIBS@
|
||||
STRIP = @STRIP@
|
||||
SUPPORT_FEATURES = @SUPPORT_FEATURES@
|
||||
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
|
||||
TEST_NGHTTPX = @TEST_NGHTTPX@
|
||||
USE_ARES = @USE_ARES@
|
||||
USE_BEARSSL = @USE_BEARSSL@
|
||||
USE_GNUTLS = @USE_GNUTLS@
|
||||
USE_HYPER = @USE_HYPER@
|
||||
USE_LIBPSL = @USE_LIBPSL@
|
||||
USE_LIBRTMP = @USE_LIBRTMP@
|
||||
USE_LIBSSH = @USE_LIBSSH@
|
||||
USE_LIBSSH2 = @USE_LIBSSH2@
|
||||
USE_MBEDTLS = @USE_MBEDTLS@
|
||||
USE_MSH3 = @USE_MSH3@
|
||||
USE_NGHTTP2 = @USE_NGHTTP2@
|
||||
USE_NGHTTP3 = @USE_NGHTTP3@
|
||||
USE_NGTCP2 = @USE_NGTCP2@
|
||||
USE_NGTCP2_CRYPTO_BORINGSSL = @USE_NGTCP2_CRYPTO_BORINGSSL@
|
||||
USE_NGTCP2_CRYPTO_GNUTLS = @USE_NGTCP2_CRYPTO_GNUTLS@
|
||||
USE_NGTCP2_CRYPTO_QUICTLS = @USE_NGTCP2_CRYPTO_QUICTLS@
|
||||
USE_NGTCP2_CRYPTO_WOLFSSL = @USE_NGTCP2_CRYPTO_WOLFSSL@
|
||||
USE_NGTCP2_H3 = @USE_NGTCP2_H3@
|
||||
USE_OPENLDAP = @USE_OPENLDAP@
|
||||
USE_OPENSSL_H3 = @USE_OPENSSL_H3@
|
||||
USE_OPENSSL_QUIC = @USE_OPENSSL_QUIC@
|
||||
USE_QUICHE = @USE_QUICHE@
|
||||
USE_RUSTLS = @USE_RUSTLS@
|
||||
USE_SCHANNEL = @USE_SCHANNEL@
|
||||
USE_SECTRANSP = @USE_SECTRANSP@
|
||||
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
|
||||
USE_WIN32_CRYPTO = @USE_WIN32_CRYPTO@
|
||||
USE_WIN32_LARGE_FILES = @USE_WIN32_LARGE_FILES@
|
||||
USE_WIN32_SMALL_FILES = @USE_WIN32_SMALL_FILES@
|
||||
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
|
||||
USE_WOLFSSH = @USE_WOLFSSH@
|
||||
USE_WOLFSSL = @USE_WOLFSSL@
|
||||
VERSION = @VERSION@
|
||||
VERSIONNUM = @VERSIONNUM@
|
||||
VSFTPD = @VSFTPD@
|
||||
ZLIB_LIBS = @ZLIB_LIBS@
|
||||
ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
libext = @libext@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
runstatedir = @runstatedir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
SUBDIRS = vms
|
||||
EXTRA_DIST = README.md \
|
||||
OS400/README.OS400 \
|
||||
OS400/rpg-examples \
|
||||
OS400/ccsidcurl.c \
|
||||
OS400/ccsidcurl.h \
|
||||
OS400/curlcl.c \
|
||||
OS400/curlmain.c \
|
||||
OS400/curl.inc.in \
|
||||
OS400/initscript.sh \
|
||||
OS400/config400.default \
|
||||
OS400/make-include.sh \
|
||||
OS400/make-lib.sh \
|
||||
OS400/make-src.sh \
|
||||
OS400/make-tests.sh \
|
||||
OS400/makefile.sh \
|
||||
OS400/os400sys.c \
|
||||
OS400/os400sys.h \
|
||||
OS400/curl.cmd
|
||||
|
||||
CHECKSRC = $(CS_$(V))
|
||||
CS_0 = @echo " RUN " $@;
|
||||
CS_1 =
|
||||
CS_ = $(CS_0)
|
||||
all: all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu packages/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu packages/Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
# into them and run 'make' without going through this Makefile.
|
||||
# To change the values of 'make' variables: instead of editing Makefiles,
|
||||
# (1) if the variable is set in 'config.status', edit 'config.status'
|
||||
# (which will cause the Makefiles to be regenerated when you run 'make');
|
||||
# (2) otherwise, pass the desired values on the 'make' command line.
|
||||
$(am__recursive_targets):
|
||||
@fail=; \
|
||||
if $(am__make_keepgoing); then \
|
||||
failcom='fail=yes'; \
|
||||
else \
|
||||
failcom='exit 1'; \
|
||||
fi; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
case "$@" in \
|
||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||
*) list='$(SUBDIRS)' ;; \
|
||||
esac; \
|
||||
for subdir in $$list; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
dot_seen=yes; \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
|
||||
ID: $(am__tagged_files)
|
||||
$(am__define_uniq_tagged_files); mkid -fID $$unique
|
||||
tags: tags-recursive
|
||||
TAGS: tags
|
||||
|
||||
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||
include_option=--etags-include; \
|
||||
empty_fix=.; \
|
||||
else \
|
||||
include_option=--include; \
|
||||
empty_fix=; \
|
||||
fi; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
$(am__define_uniq_tagged_files); \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
ctags: ctags-recursive
|
||||
|
||||
CTAGS: ctags
|
||||
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
|
||||
$(am__define_uniq_tagged_files); \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
cscopelist: cscopelist-recursive
|
||||
|
||||
cscopelist-am: $(am__tagged_files)
|
||||
list='$(am__tagged_files)'; \
|
||||
case "$(srcdir)" in \
|
||||
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
|
||||
*) sdir=$(subdir)/$(srcdir) ;; \
|
||||
esac; \
|
||||
for i in $$list; do \
|
||||
if test -f "$$i"; then \
|
||||
echo "$(subdir)/$$i"; \
|
||||
else \
|
||||
echo "$$sdir/$$i"; \
|
||||
fi; \
|
||||
done >> $(top_builddir)/cscope.files
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
distdir: $(BUILT_SOURCES)
|
||||
$(MAKE) $(AM_MAKEFLAGS) distdir-am
|
||||
|
||||
distdir-am: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
$(am__make_dryrun) \
|
||||
|| test -d "$(distdir)/$$subdir" \
|
||||
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
|
||||
$(am__relativize); \
|
||||
new_distdir=$$reldir; \
|
||||
dir1=$$subdir; dir2="$(top_distdir)"; \
|
||||
$(am__relativize); \
|
||||
new_top_distdir=$$reldir; \
|
||||
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
|
||||
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
|
||||
($(am__cd) $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$new_top_distdir" \
|
||||
distdir="$$new_distdir" \
|
||||
am__remove_distdir=: \
|
||||
am__skip_length_check=: \
|
||||
am__skip_mode_fix=: \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-recursive
|
||||
all-am: Makefile
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
install: install-recursive
|
||||
install-exec: install-exec-recursive
|
||||
install-data: install-data-recursive
|
||||
uninstall: uninstall-recursive
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-recursive
|
||||
install-strip:
|
||||
if test -z '$(STRIP)'; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
install; \
|
||||
else \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||
fi
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-recursive
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-tags
|
||||
|
||||
dvi: dvi-recursive
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-recursive
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-recursive
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-recursive
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-recursive
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-recursive
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-recursive
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-recursive
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am:
|
||||
|
||||
.MAKE: $(am__recursive_targets) install-am install-strip
|
||||
|
||||
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
|
||||
check-am clean clean-generic clean-libtool cscopelist-am ctags \
|
||||
ctags-am distclean distclean-generic distclean-libtool \
|
||||
distclean-tags distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
installdirs-am maintainer-clean maintainer-clean-generic \
|
||||
mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
|
||||
ps ps-am tags tags-am uninstall uninstall-am
|
||||
|
||||
.PRECIOUS: Makefile
|
||||
|
||||
|
||||
checksrc:
|
||||
$(CHECKSRC)(@PERL@ $(top_srcdir)/scripts/checksrc.pl -D$(srcdir) $(srcdir)/OS400/*.[ch])
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
391
third_party/curl/packages/OS400/README.OS400
vendored
Normal file
391
third_party/curl/packages/OS400/README.OS400
vendored
Normal file
@ -0,0 +1,391 @@
|
||||
|
||||
Implementation notes:
|
||||
|
||||
This is a true OS/400 ILE implementation, not a PASE implementation (for
|
||||
PASE, use AIX implementation).
|
||||
|
||||
The biggest problem with OS/400 is EBCDIC. Libcurl implements an internal
|
||||
conversion mechanism, but it has been designed for computers that have a
|
||||
single native character set. OS/400 default native character set varies
|
||||
depending on the country for which it has been localized. And more, a job
|
||||
may dynamically alter its "native" character set.
|
||||
Several characters that do not have fixed code in EBCDIC variants are
|
||||
used in libcurl strings. As a consequence, using the existing conversion
|
||||
mechanism would have lead in a localized binary library - not portable across
|
||||
countries.
|
||||
For this reason, and because libcurl was originally designed for ASCII based
|
||||
operating systems, the current OS/400 implementation uses ASCII as internal
|
||||
character set. This has been accomplished using the QADRT library and
|
||||
include files, a C and system procedures ASCII wrapper library. See IBM QADRT
|
||||
description for more information.
|
||||
This then results in libcurl being an ASCII library: any function string
|
||||
argument is taken/returned in ASCII and a C/C++ calling program built around
|
||||
QADRT may use libcurl functions as on any other platform.
|
||||
QADRT does not define ASCII wrappers for all C/system procedures: the
|
||||
OS/400 configuration header file and an additional module (os400sys.c) define
|
||||
some more of them, that are used by libcurl and that QADRT left out.
|
||||
To support all the different variants of EBCDIC, non-standard wrapper
|
||||
procedures have been added to libcurl on OS/400: they provide an additional
|
||||
CCSID (numeric Coded Character Set ID specific to OS/400) parameter for each
|
||||
string argument. Callback procedures arguments giving access to strings are
|
||||
NOT converted, so text gathered this way is (probably !) ASCII.
|
||||
|
||||
Another OS/400 problem comes from the fact that the last fixed argument of a
|
||||
vararg procedure may not be of type char, unsigned char, short or unsigned
|
||||
short. Enums that are internally implemented by the C compiler as one of these
|
||||
types are also forbidden. Libcurl uses enums as vararg procedure tagfields...
|
||||
Happily, there is a pragma forcing enums to type "int". The original libcurl
|
||||
header files are thus altered during build process to use this pragma, in
|
||||
order to force libcurl enums of being type int (the pragma disposition in use
|
||||
before inclusion is restored before resuming the including unit compilation).
|
||||
|
||||
Non-standard EBCDIC wrapper prototypes are defined in an additional header
|
||||
file: ccsidcurl.h. These should be self-explanatory to an OS/400-aware
|
||||
designer. CCSID 0 can be used to select the current job's CCSID.
|
||||
Wrapper procedures with variable arguments are described below:
|
||||
|
||||
_ curl_easy_setopt_ccsid()
|
||||
Variable arguments are a string pointer and a CCSID (unsigned int) for
|
||||
options:
|
||||
CURLOPT_ABSTRACT_UNIX_SOCKET
|
||||
CURLOPT_ACCEPT_ENCODING
|
||||
CURLOPT_ALTSVC
|
||||
CURLOPT_AWS_SIGV4
|
||||
CURLOPT_CAINFO
|
||||
CURLOPT_CAPATH
|
||||
CURLOPT_COOKIE
|
||||
CURLOPT_COOKIEFILE
|
||||
CURLOPT_COOKIEJAR
|
||||
CURLOPT_COOKIELIST
|
||||
CURLOPT_CRLFILE
|
||||
CURLOPT_CUSTOMREQUEST
|
||||
CURLOPT_DEFAULT_PROTOCOL
|
||||
CURLOPT_DNS_INTERFACE
|
||||
CURLOPT_DNS_LOCAL_IP4
|
||||
CURLOPT_DNS_LOCAL_IP6
|
||||
CURLOPT_DNS_SERVERS
|
||||
CURLOPT_DOH_URL
|
||||
CURLOPT_EGDSOCKET
|
||||
CURLOPT_FTPPORT
|
||||
CURLOPT_FTP_ACCOUNT
|
||||
CURLOPT_FTP_ALTERNATIVE_TO_USER
|
||||
CURLOPT_HAPROXY_CLIENT_IP
|
||||
CURLOPT_HSTS
|
||||
CURLOPT_INTERFACE
|
||||
CURLOPT_ISSUERCERT
|
||||
CURLOPT_KEYPASSWD
|
||||
CURLOPT_KRBLEVEL
|
||||
CURLOPT_LOGIN_OPTIONS
|
||||
CURLOPT_MAIL_AUTH
|
||||
CURLOPT_MAIL_FROM
|
||||
CURLOPT_NETRC_FILE
|
||||
CURLOPT_NOPROXY
|
||||
CURLOPT_PASSWORD
|
||||
CURLOPT_PINNEDPUBLICKEY
|
||||
CURLOPT_PRE_PROXY
|
||||
CURLOPT_PROTOCOLS_STR
|
||||
CURLOPT_PROXY
|
||||
CURLOPT_PROXYPASSWORD
|
||||
CURLOPT_PROXYUSERNAME
|
||||
CURLOPT_PROXYUSERPWD
|
||||
CURLOPT_PROXY_CAINFO
|
||||
CURLOPT_PROXY_CAPATH
|
||||
CURLOPT_PROXY_CRLFILE
|
||||
CURLOPT_PROXY_ISSUERCERT
|
||||
CURLOPT_PROXY_KEYPASSWD
|
||||
CURLOPT_PROXY_PINNEDPUBLICKEY
|
||||
CURLOPT_PROXY_SERVICE_NAME
|
||||
CURLOPT_PROXY_SSLCERT
|
||||
CURLOPT_PROXY_SSLCERTTYPE
|
||||
CURLOPT_PROXY_SSLKEY
|
||||
CURLOPT_PROXY_SSLKEYTYPE
|
||||
CURLOPT_PROXY_SSL_CIPHER_LIST
|
||||
CURLOPT_PROXY_TLS13_CIPHERS
|
||||
CURLOPT_PROXY_TLSAUTH_PASSWORD
|
||||
CURLOPT_PROXY_TLSAUTH_TYPE
|
||||
CURLOPT_PROXY_TLSAUTH_USERNAME
|
||||
CURLOPT_RANDOM_FILE
|
||||
CURLOPT_RANGE
|
||||
CURLOPT_REDIR_PROTOCOLS_STR
|
||||
CURLOPT_REFERER
|
||||
CURLOPT_REQUEST_TARGET
|
||||
CURLOPT_RTSP_SESSION_ID
|
||||
CURLOPT_RTSP_STREAM_URI
|
||||
CURLOPT_RTSP_TRANSPORT
|
||||
CURLOPT_SASL_AUTHZID
|
||||
CURLOPT_SERVICE_NAME
|
||||
CURLOPT_SOCKS5_GSSAPI_SERVICE
|
||||
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5
|
||||
CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256
|
||||
CURLOPT_SSH_KNOWNHOSTS
|
||||
CURLOPT_SSH_PRIVATE_KEYFILE
|
||||
CURLOPT_SSH_PUBLIC_KEYFILE
|
||||
CURLOPT_SSLCERT
|
||||
CURLOPT_SSLCERTTYPE
|
||||
CURLOPT_SSLENGINE
|
||||
CURLOPT_SSLKEY
|
||||
CURLOPT_SSLKEYTYPE
|
||||
CURLOPT_SSL_CIPHER_LIST
|
||||
CURLOPT_SSL_EC_CURVES
|
||||
CURLOPT_TLS13_CIPHERS
|
||||
CURLOPT_TLSAUTH_PASSWORD
|
||||
CURLOPT_TLSAUTH_TYPE
|
||||
CURLOPT_TLSAUTH_USERNAME
|
||||
CURLOPT_UNIX_SOCKET_PATH
|
||||
CURLOPT_URL
|
||||
CURLOPT_USERAGENT
|
||||
CURLOPT_USERNAME
|
||||
CURLOPT_USERPWD
|
||||
CURLOPT_XOAUTH2_BEARER
|
||||
All blob options are also supported.
|
||||
In all other cases, it ignores the ccsid parameter and behaves as
|
||||
curl_easy_setopt().
|
||||
Note that CURLOPT_ERRORBUFFER is not in the list above, since it gives the
|
||||
address of an (empty) character buffer, not the address of a string.
|
||||
CURLOPT_POSTFIELDS stores the address of static binary data (of type void *)
|
||||
and thus is not converted. If CURLOPT_COPYPOSTFIELDS is issued after
|
||||
CURLOPT_POSTFIELDSIZE != -1, the data size is adjusted according to the
|
||||
CCSID conversion result length.
|
||||
|
||||
_ curl_formadd_ccsid()
|
||||
In the variable argument list, string pointers should be followed by a (long)
|
||||
CCSID for the following options:
|
||||
CURLFORM_BUFFER
|
||||
CURLFORM_CONTENTTYPE
|
||||
CURLFORM_COPYCONTENTS
|
||||
CURLFORM_COPYNAME
|
||||
CURLFORM_FILE
|
||||
CURLFORM_FILECONTENT
|
||||
CURLFORM_FILENAME
|
||||
CURLFORM_PTRNAME
|
||||
If taken from an argument array, an additional array entry must follow each
|
||||
entry containing one of the above option. This additional entry holds the CCSID
|
||||
in its value field, and the option field is meaningless.
|
||||
It is not possible to have a string pointer and its CCSID across a function
|
||||
parameter/array boundary.
|
||||
Please note that CURLFORM_PTRCONTENTS and CURLFORM_BUFFERPTR are considered
|
||||
unconvertible strings and thus are NOT followed by a CCSID.
|
||||
|
||||
_ curl_easy_getinfo_ccsid()
|
||||
The following options are followed by a 'char * *' and a CCSID. Unlike
|
||||
curl_easy_getinfo(), the value returned in the pointer should be released with
|
||||
curl_free() after use:
|
||||
CURLINFO_CONTENT_TYPE
|
||||
CURLINFO_EFFECTIVE_URL
|
||||
CURLINFO_FTP_ENTRY_PATH
|
||||
CURLINFO_LOCAL_IP
|
||||
CURLINFO_PRIMARY_IP
|
||||
CURLINFO_REDIRECT_URL
|
||||
CURLINFO_REFERER
|
||||
CURLINFO_RTSP_SESSION_ID
|
||||
CURLINFO_SCHEME
|
||||
Likewise, the following options are followed by a struct curl_slist * * and a
|
||||
CCSID.
|
||||
CURLINFO_COOKIELIST
|
||||
CURLINFO_SSL_ENGINES
|
||||
Lists returned should be released with curl_slist_free_all() after use.
|
||||
Option CURLINFO_CERTINFO is followed by a struct curl_certinfo * * and a
|
||||
CCSID. Returned structures should be freed with curl_certinfo_free_all()
|
||||
after use.
|
||||
Other options are processed like in curl_easy_getinfo().
|
||||
|
||||
_ curl_easy_strerror_ccsid(), curl_multi_strerror_ccsid(),
|
||||
curl_share_strerror_ccsid() and curl_url_strerror_ccsid() work as their
|
||||
non-ccsid version and return a string encoded in the additional ccsid
|
||||
parameter. These strings belong to libcurl and may not be freed by the caller.
|
||||
A subsequent call to the same procedure in the same thread invalidates the
|
||||
previous result.
|
||||
|
||||
_ curl_pushheader_bynum_cssid() and curl_pushheader_byname_ccsid()
|
||||
Although the prototypes are self-explanatory, the returned string pointer
|
||||
should be released with curl_free() after use, as opposite to the non-ccsid
|
||||
versions of these procedures.
|
||||
Please note that HTTP2 is not (yet) implemented on OS/400, thus these
|
||||
functions will always return NULL.
|
||||
|
||||
_ curl_easy_option_by_name_ccsid() returns a pointer to an untranslated option
|
||||
metadata structure. As each curl_easyoption structure holds the option name in
|
||||
ASCII, the curl_easy_option_get_name_ccsid() function allows getting it in any
|
||||
supported ccsid. However the caller should release the returned pointer with
|
||||
curl_free() after use.
|
||||
|
||||
_ curl_easy_header_ccsid() works as its non-CCSID counterpart but requires an
|
||||
additional ccsid parameter specifying the name parameter encoding. The output
|
||||
hout parameter is kept in libcurl's encoding and should not be altered.
|
||||
|
||||
_ curl_from_ccsid() and curl_to_ccsid() are string encoding conversion
|
||||
functions between ASCII (latin1) and the given CCSID. The first parameter is
|
||||
the source string, the second is the CCSID and the returned value is a pointer
|
||||
to the dynamically allocated string. These functions do not impact on Curl's
|
||||
behavior and are only provided for user convenience. After use, returned values
|
||||
must be released with curl_free().
|
||||
|
||||
|
||||
Standard compilation environment does support neither autotools nor make;
|
||||
in fact, very few common utilities are available. As a consequence, the
|
||||
config-os400.h has been coded manually and the compilation scripts are
|
||||
a set of shell scripts stored in subdirectory packages/OS400.
|
||||
|
||||
The "curl" command and the test environment are currently not supported on
|
||||
OS/400.
|
||||
|
||||
|
||||
Protocols currently implemented on OS/400:
|
||||
_ DICT
|
||||
_ FILE
|
||||
_ FTP
|
||||
_ FTPS
|
||||
_ FTP with secure transmission
|
||||
_ GOPHER
|
||||
_ HTTP
|
||||
_ HTTPS
|
||||
_ IMAP
|
||||
_ IMAPS
|
||||
_ IMAP with secure transmission
|
||||
_ LDAP
|
||||
_ POP3
|
||||
_ POP3S
|
||||
_ POP3 with secure transmission
|
||||
_ RTSP
|
||||
_ SCP if libssh2 is enabled
|
||||
_ SFTP if libssh2 is enabled
|
||||
_ SMTP
|
||||
_ SMTPS
|
||||
_ SMTP with secure transmission
|
||||
_ TELNET
|
||||
_ TFTP
|
||||
|
||||
|
||||
|
||||
Compiling on OS/400:
|
||||
|
||||
These instructions targets people who knows about OS/400, compiling, IFS and
|
||||
archive extraction. Do not ask questions about these subjects if you're not
|
||||
familiar with.
|
||||
|
||||
_ As a prerequisite, QADRT development environment must be installed.
|
||||
For more information on downloading and installing the QADRT development kit,
|
||||
please see https://www.ibm.com/support/pages/node/6258183
|
||||
_ If data compression has to be supported, ZLIB development environment must
|
||||
be installed.
|
||||
_ Likewise, if SCP and SFTP protocols have to be compiled in, LIBSSH2
|
||||
developent environment must be installed.
|
||||
_ Install the curl source directory in IFS. Do NOT install it in the
|
||||
installation target directory (which defaults to /curl).
|
||||
_ Enter Qshell (QSH, not PASE)
|
||||
_ Change current directory to the curl installation directory
|
||||
_ Change current directory to ./packages/OS400
|
||||
- If you want to change the default configuration parameters like debug info
|
||||
generation, optimization level, listing option, target library, ZLIB/LIBSSH2
|
||||
availability and location, etc., copy file config400.default to
|
||||
config400.override and edit the latter. Do not edit the original default file
|
||||
as it might be overwritten by a subsequent source installation.
|
||||
_ Copy any file in the current directory to makelog (i.e.:
|
||||
cp initscript.sh makelog): this is intended to create the makelog file with
|
||||
an ASCII CCSID!
|
||||
_ Enter the command "sh makefile.sh > makelog 2>&1"
|
||||
_ Examine the makelog file to check for compilation errors. CZM0383 warnings on
|
||||
C or system standard API come from QADRT inlining and can safely be ignored.
|
||||
|
||||
Without configuration parameters override, this will produce the following
|
||||
OS/400 objects:
|
||||
_ Library CURL. All other objects will be stored in this library.
|
||||
_ Modules for all libcurl units.
|
||||
_ Binding directory CURL_A, to be used at calling program link time for
|
||||
statically binding the modules (specify BNDSRVPGM(QADRTTS QGLDCLNT QGLDBRDR)
|
||||
when creating a program using CURL_A).
|
||||
_ Service program CURL.<soname>, where <soname> is extracted from the
|
||||
lib/Makefile.am VERSION variable. To be used at calling program run-time
|
||||
when this program has dynamically bound curl at link time.
|
||||
_ Binding directory CURL. To be used to dynamically bind libcurl when linking a
|
||||
calling program.
|
||||
- CLI tool bound program CURL.
|
||||
- CLI command CURL.
|
||||
_ Source file H. It contains all the include members needed to compile a C/C++
|
||||
module using libcurl, and an ILE/RPG /copy member for support in this
|
||||
language.
|
||||
_ Standard C/C++ libcurl include members in file H.
|
||||
_ CCSIDCURL member in file H. This defines the non-standard EBCDIC wrappers for
|
||||
C and C++.
|
||||
_ CURL.INC member in file H. This defines everything needed by an ILE/RPG
|
||||
program using libcurl.
|
||||
_ IFS directory /curl/include/curl containing the C header files for IFS source
|
||||
C/C++ compilation and curl.inc.rpgle for IFS source ILE/RPG compilation.
|
||||
- IFS link /curl/bin/curl to CLI tool program.
|
||||
|
||||
|
||||
Special programming consideration:
|
||||
|
||||
QADRT being used, the following points must be considered:
|
||||
_ If static binding is used, service program QADRTTS must be linked too.
|
||||
_ The EBCDIC CCSID used by QADRT is 37 by default, NOT THE JOB'S CCSID. If
|
||||
another EBCDIC CCSID is required, it must be set via a locale through a call
|
||||
to setlocale_a (QADRT's setlocale() ASCII wrapper) with category LC_ALL or
|
||||
LC_CTYPE, or by setting environment variable QADRT_ENV_LOCALE to the locale
|
||||
object path before executing the program.
|
||||
_ Do not use original source include files unless you know what you are doing.
|
||||
Use the installed members instead (in /QSYS.LIB/CURL.LIB/H.FILE and
|
||||
/curl/include/curl).
|
||||
|
||||
|
||||
|
||||
ILE/RPG support:
|
||||
|
||||
Since most of the ILE OS/400 programmers use ILE/RPG exclusively, a
|
||||
definition /INCLUDE member is provided for this language. To include all
|
||||
libcurl definitions in an ILE/RPG module, line
|
||||
|
||||
h bnddir('CURL/CURL')
|
||||
|
||||
must figure in the program header, and line
|
||||
|
||||
d/include curl/h,curl.inc
|
||||
|
||||
in the global data section of the module's source code.
|
||||
|
||||
No vararg procedure support exists in ILE/RPG: for this reason, the following
|
||||
considerations apply:
|
||||
_ Procedures curl_easy_setopt_long(), curl_easy_setopt_object(),
|
||||
curl_easy_setopt_function(), curl_easy_setopt_offset() and
|
||||
curl_easy_setopt_blob() are all alias prototypes to curl_easy_setopt(), but
|
||||
with different parameter lists.
|
||||
_ Procedures curl_easy_getinfo_string(), curl_easy_getinfo_long(),
|
||||
curl_easy_getinfo_double(), curl_easy_getinfo_slist(),
|
||||
curl_easy_getinfo_ptr(), curl_easy_getinfo_socket() and
|
||||
curl_easy_getinfo_off_t() are all alias prototypes to curl_easy_getinfo(),
|
||||
but with different parameter lists.
|
||||
_ Procedures curl_multi_setopt_long(), curl_multi_setopt_object(),
|
||||
curl_multi_setopt_function() and curl_multi_setopt_offset() are all alias
|
||||
prototypes to curl_multi_setopt(), but with different parameter lists.
|
||||
_ Procedures curl_share_setopt_int(), curl_share_setopt_ptr() and
|
||||
curl_share_setopt_proc() are all alias prototypes to curl_share_setopt,
|
||||
but with different parameter lists.
|
||||
_ Procedure curl_easy_setopt_blob_ccsid() is an alias of
|
||||
curl_easy_setopt_ccsid() supporting blob encoding conversion.
|
||||
_ The prototype of procedure curl_formadd() allows specifying a pointer option
|
||||
and the CURLFORM_END option. This makes possible to use an option array
|
||||
without any additional definition. If some specific incompatible argument
|
||||
list is used in the ILE/RPG program, the latter must define a specialised
|
||||
alias. The same applies to curl_formadd_ccsid() too.
|
||||
_ Since V7R4M0, procedure overloading is used to emulate limited "vararg-like"
|
||||
definitions of curl_easy_setopt(), curl_multi_setopt(), curl_share_setopt()
|
||||
and curl_easy_getinfo(). Blob and CCSID alternatives are NOT included in
|
||||
overloading.
|
||||
|
||||
Since RPG cannot cast a long to a pointer, procedure curl_form_long_value()
|
||||
is provided for that purpose: this allows storing a long value in the
|
||||
curl_forms array. Please note the form API is deprecated and the MIME API
|
||||
should be used instead.
|
||||
|
||||
|
||||
CLI tool:
|
||||
|
||||
The build system provides it as a bound program, an IFS link to it and a
|
||||
simple CL command. The latter however is not able to provide a different
|
||||
parameter for each option since there are too many of those; instead,
|
||||
parameters are entered in a single field subject to quoting and escaping, in
|
||||
the same form as expected by the standard CLI program.
|
||||
Care must be taken about the program output encoding: by default, it is sent
|
||||
to the standard output and is thus subject to transcoding. It is therefore
|
||||
recommended to use option "--output" to redirect output to a specific IFS file.
|
||||
Similar problems may occur about the standard input encoding.
|
1529
third_party/curl/packages/OS400/ccsidcurl.c
vendored
Normal file
1529
third_party/curl/packages/OS400/ccsidcurl.c
vendored
Normal file
File diff suppressed because it is too large
Load Diff
113
third_party/curl/packages/OS400/ccsidcurl.h
vendored
Normal file
113
third_party/curl/packages/OS400/ccsidcurl.h
vendored
Normal file
@ -0,0 +1,113 @@
|
||||
#ifndef CURLINC_CCSIDCURL_H
|
||||
#define CURLINC_CCSIDCURL_H
|
||||
/***************************************************************************
|
||||
* _ _ ____ _
|
||||
* Project ___| | | | _ \| |
|
||||
* / __| | | | |_) | |
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
* are also available at https://curl.se/docs/copyright.html.
|
||||
*
|
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
* copies of the Software, and permit persons to whom the Software is
|
||||
* furnished to do so, under the terms of the COPYING file.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
* SPDX-License-Identifier: curl
|
||||
*
|
||||
*
|
||||
***************************************************************************/
|
||||
#include "curl.h"
|
||||
#include "easy.h"
|
||||
#include "multi.h"
|
||||
|
||||
|
||||
CURL_EXTERN char *curl_version_ccsid(unsigned int ccsid);
|
||||
CURL_EXTERN char *curl_easy_escape_ccsid(CURL *handle,
|
||||
const char *string, int length,
|
||||
unsigned int sccsid,
|
||||
unsigned int dccsid);
|
||||
CURL_EXTERN char *curl_easy_unescape_ccsid(CURL *handle, const char *string,
|
||||
int length, int *outlength,
|
||||
unsigned int sccsid,
|
||||
unsigned int dccsid);
|
||||
CURL_EXTERN struct curl_slist *curl_slist_append_ccsid(struct curl_slist *l,
|
||||
const char *data,
|
||||
unsigned int ccsid);
|
||||
CURL_EXTERN time_t curl_getdate_ccsid(const char *p, const time_t *unused,
|
||||
unsigned int ccsid);
|
||||
CURL_EXTERN curl_version_info_data *curl_version_info_ccsid(CURLversion stamp,
|
||||
unsigned int cid);
|
||||
CURL_EXTERN const char *curl_easy_strerror_ccsid(CURLcode error,
|
||||
unsigned int ccsid);
|
||||
CURL_EXTERN const char *curl_share_strerror_ccsid(CURLSHcode error,
|
||||
unsigned int ccsid);
|
||||
CURL_EXTERN const char *curl_multi_strerror_ccsid(CURLMcode error,
|
||||
unsigned int ccsid);
|
||||
CURL_EXTERN CURLcode curl_easy_getinfo_ccsid(CURL *curl, CURLINFO info, ...);
|
||||
CURL_EXTERN CURLFORMcode curl_formadd_ccsid(struct curl_httppost **httppost,
|
||||
struct curl_httppost **last_post,
|
||||
...);
|
||||
CURL_EXTERN char *curl_form_long_value(long value);
|
||||
CURL_EXTERN int curl_formget_ccsid(struct curl_httppost *form, void *arg,
|
||||
curl_formget_callback append,
|
||||
unsigned int ccsid);
|
||||
CURL_EXTERN CURLcode curl_easy_setopt_ccsid(CURL *curl, CURLoption tag, ...);
|
||||
CURL_EXTERN void curl_certinfo_free_all(struct curl_certinfo *info);
|
||||
CURL_EXTERN char *curl_pushheader_bynum_cssid(struct curl_pushheaders *h,
|
||||
size_t num, unsigned int ccsid);
|
||||
CURL_EXTERN char *curl_pushheader_byname_ccsid(struct curl_pushheaders *h,
|
||||
const char *header,
|
||||
unsigned int ccsidin,
|
||||
unsigned int ccsidout);
|
||||
CURL_EXTERN CURLcode curl_mime_name_ccsid(curl_mimepart *part,
|
||||
const char *name,
|
||||
unsigned int ccsid);
|
||||
CURL_EXTERN CURLcode curl_mime_filename_ccsid(curl_mimepart *part,
|
||||
const char *filename,
|
||||
unsigned int ccsid);
|
||||
CURL_EXTERN CURLcode curl_mime_type_ccsid(curl_mimepart *part,
|
||||
const char *mimetype,
|
||||
unsigned int ccsid);
|
||||
CURL_EXTERN CURLcode curl_mime_encoder_ccsid(curl_mimepart *part,
|
||||
const char *encoding,
|
||||
unsigned int ccsid);
|
||||
CURL_EXTERN CURLcode curl_mime_filedata_ccsid(curl_mimepart *part,
|
||||
const char *filename,
|
||||
unsigned int ccsid);
|
||||
CURL_EXTERN CURLcode curl_mime_data_ccsid(curl_mimepart *part,
|
||||
const char *data, size_t datasize,
|
||||
unsigned int ccsid);
|
||||
CURL_EXTERN CURLUcode curl_url_get_ccsid(CURLU *handle, CURLUPart what,
|
||||
char **part, unsigned int flags,
|
||||
unsigned int ccsid);
|
||||
CURL_EXTERN CURLUcode curl_url_set_ccsid(CURLU *handle, CURLUPart what,
|
||||
const char *part, unsigned int flags,
|
||||
unsigned int ccsid);
|
||||
CURL_EXTERN const struct curl_easyoption *curl_easy_option_by_name_ccsid(
|
||||
const char *name, unsigned int ccsid);
|
||||
CURL_EXTERN const char *curl_easy_option_get_name_ccsid(
|
||||
const struct curl_easyoption *option,
|
||||
unsigned int ccsid);
|
||||
CURL_EXTERN const char *curl_url_strerror_ccsid(CURLUcode error,
|
||||
unsigned int ccsid);
|
||||
CURL_EXTERN CURLHcode curl_easy_header_ccsid(CURL *easy, const char *name,
|
||||
size_t index, unsigned int origin,
|
||||
int request,
|
||||
struct curl_header **hout,
|
||||
unsigned int ccsid);
|
||||
CURL_EXTERN const char *curl_from_ccsid(const char *s, unsigned int ccsid);
|
||||
CURL_EXTERN const char *curl_to_ccsid(const char *s, unsigned int ccsid);
|
||||
CURL_EXTERN CURLcode curl_easy_setopt_RPGnum_(CURL *easy,
|
||||
CURLoption tag, curl_off_t arg);
|
||||
CURL_EXTERN CURLcode curl_multi_setopt_RPGnum_(CURLM *multi, CURLMoption tag,
|
||||
curl_off_t arg);
|
||||
|
||||
#endif
|
55
third_party/curl/packages/OS400/config400.default
vendored
Normal file
55
third_party/curl/packages/OS400/config400.default
vendored
Normal file
@ -0,0 +1,55 @@
|
||||
#!/bin/sh
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
|
||||
# Tunable configuration parameters.
|
||||
|
||||
setenv TARGETLIB 'CURL' # Target OS/400 program library.
|
||||
setenv STATBNDDIR 'CURL_A' # Static binding directory.
|
||||
setenv DYNBNDDIR 'CURL' # Dynamic binding directory.
|
||||
setenv SRVPGM "CURL.${SONAME}" # Service program.
|
||||
setenv CURLPGM 'CURL' # CLI tool bound program.
|
||||
setenv CURLCMD 'CURL' # CL command name.
|
||||
setenv CURLCLI 'CURLCL' # CL interface program.
|
||||
setenv TGTCCSID '500' # Target CCSID of objects.
|
||||
setenv DEBUG '*ALL' # Debug level.
|
||||
setenv OPTIMIZE '10' # Optimization level
|
||||
setenv OUTPUT '*NONE' # Compilation output option.
|
||||
setenv TGTRLS '*CURRENT' # Target OS release.
|
||||
setenv IFSDIR '/curl' # Installation IFS directory.
|
||||
setenv QADRTDIR '/QIBM/ProdData/qadrt' # QADRT IFS directory.
|
||||
|
||||
# Define ZLIB availability and locations.
|
||||
|
||||
setenv WITH_ZLIB 0 # Define to 1 to enable.
|
||||
setenv ZLIB_INCLUDE '/zlib/include' # ZLIB include IFS directory.
|
||||
setenv ZLIB_LIB 'ZLIB' # ZLIB library.
|
||||
setenv ZLIB_BNDDIR 'ZLIB_A' # ZLIB binding directory.
|
||||
|
||||
# Define LIBSSH2 availability and locations.
|
||||
|
||||
setenv WITH_LIBSSH2 0 # Define to 1 to enable.
|
||||
setenv LIBSSH2_INCLUDE '/libssh2/include' # LIBSSH2 include IFS directory.
|
||||
setenv LIBSSH2_LIB 'LIBSSH2' # LIBSSH2 library.
|
||||
setenv LIBSSH2_BNDDIR 'LIBSSH2_A' # LIBSSH2 binding directory.
|
32
third_party/curl/packages/OS400/curl.cmd
vendored
Normal file
32
third_party/curl/packages/OS400/curl.cmd
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
/*****************************************************************************/
|
||||
/* _ _ ____ _ */
|
||||
/* Project ___| | | | _ \| | */
|
||||
/* / __| | | | |_) | | */
|
||||
/* | (__| |_| | _ <| |___ */
|
||||
/* \___|\___/|_| \_\_____| */
|
||||
/* */
|
||||
/* Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. */
|
||||
/* */
|
||||
/* This software is licensed as described in the file COPYING, which */
|
||||
/* you should have received as part of this distribution. The terms */
|
||||
/* are also available at https://curl.se/docs/copyright.html. */
|
||||
/* */
|
||||
/* You may opt to use, copy, modify, merge, publish, distribute and/or sell */
|
||||
/* copies of the Software, and permit persons to whom the Software is */
|
||||
/* furnished to do so, under the terms of the COPYING file. */
|
||||
/* */
|
||||
/* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY */
|
||||
/* KIND, either express or implied. */
|
||||
/* */
|
||||
/* SPDX-License-Identifier: curl */
|
||||
/* */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
|
||||
/* Use program CURLCL as interface to the curl command line tool */
|
||||
|
||||
CMD PROMPT('File transfer utility')
|
||||
|
||||
PARM KWD(CMDARGS) TYPE(*CHAR) LEN(5000) VARY(*YES *INT2) +
|
||||
CASE(*MIXED) EXPR(*YES) MIN(1) +
|
||||
PROMPT('Curl command arguments')
|
3444
third_party/curl/packages/OS400/curl.inc.in
vendored
Normal file
3444
third_party/curl/packages/OS400/curl.inc.in
vendored
Normal file
File diff suppressed because it is too large
Load Diff
177
third_party/curl/packages/OS400/curlcl.c
vendored
Normal file
177
third_party/curl/packages/OS400/curlcl.c
vendored
Normal file
@ -0,0 +1,177 @@
|
||||
/***************************************************************************
|
||||
* _ _ ____ _
|
||||
* Project ___| | | | _ \| |
|
||||
* / __| | | | |_) | |
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
* are also available at https://curl.se/docs/copyright.html.
|
||||
*
|
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
* copies of the Software, and permit persons to whom the Software is
|
||||
* furnished to do so, under the terms of the COPYING file.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
* SPDX-License-Identifier: curl
|
||||
*
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
/* CL interface program to curl cli tool. */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <milib.h>
|
||||
#include <miptrnam.h>
|
||||
#include <mih/callpgmv.h>
|
||||
|
||||
#ifndef CURLPGM
|
||||
#define CURLPGM "CURL"
|
||||
#endif
|
||||
|
||||
/* Variable-length string, with 16-bit length. */
|
||||
struct vary2 {
|
||||
short len;
|
||||
char string[5000];
|
||||
};
|
||||
|
||||
/* Arguments from CL command. */
|
||||
struct arguments {
|
||||
char *pgm; /* Program name. */
|
||||
struct vary2 *cmdargs; /* Command line arguments. */
|
||||
};
|
||||
|
||||
static int
|
||||
is_ifs(char c)
|
||||
{
|
||||
return c == ' ' || c == '\t' || c == '\r' || c == '\n';
|
||||
}
|
||||
|
||||
static int
|
||||
parse_command_line(const char *cmdargs, size_t len,
|
||||
size_t *argc, char **argv,
|
||||
size_t *argsize, char *argbuf)
|
||||
{
|
||||
const char *endline = cmdargs + len;
|
||||
char quote = '\0';
|
||||
int inarg = 0;
|
||||
|
||||
*argc = 0;
|
||||
*argsize = 0;
|
||||
|
||||
while(cmdargs < endline) {
|
||||
char c = *cmdargs++;
|
||||
|
||||
if(!inarg) {
|
||||
/* Skip argument separator. */
|
||||
if(is_ifs(c))
|
||||
continue;
|
||||
|
||||
/* Start a new argument. */
|
||||
++*argc;
|
||||
if(argv)
|
||||
*argv++ = argbuf;
|
||||
inarg = 1;
|
||||
}
|
||||
|
||||
/* Check for quoting end. */
|
||||
if(quote && quote == c) {
|
||||
quote = '\0';
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Check for backslash-escaping. */
|
||||
if(quote != '\'' && c == '\\') {
|
||||
if(cmdargs >= endline) {
|
||||
fputs("Trailing backslash in command\n", stderr);
|
||||
return -1;
|
||||
}
|
||||
c = *cmdargs++;
|
||||
}
|
||||
else if(!quote && is_ifs(c)) { /* Check for end of argument. */
|
||||
inarg = 0;
|
||||
c = '\0'; /* Will store a string terminator. */
|
||||
}
|
||||
|
||||
/* Store argument character and count it. */
|
||||
if(argbuf)
|
||||
*argbuf++ = c;
|
||||
++*argsize;
|
||||
}
|
||||
|
||||
if(quote) {
|
||||
fprintf(stderr, "Unterminated quote: %c\n", quote);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Terminate last argument. */
|
||||
if(inarg) {
|
||||
if(argbuf)
|
||||
*argbuf = '\0';
|
||||
++*argsize;
|
||||
}
|
||||
|
||||
/* Terminate argument list. */
|
||||
if(argv)
|
||||
*argv = NULL;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main(int argsc, struct arguments *args)
|
||||
{
|
||||
size_t argc;
|
||||
char **argv;
|
||||
size_t argsize;
|
||||
int i;
|
||||
int exitcode;
|
||||
char library[11];
|
||||
|
||||
/* Extract current program library name. */
|
||||
for(i = 0; i < 10; i++) {
|
||||
char c = args->pgm[i];
|
||||
|
||||
if(!c || c == '/')
|
||||
break;
|
||||
|
||||
library[i] = c;
|
||||
}
|
||||
library[i] = '\0';
|
||||
|
||||
/* Measure arguments size. */
|
||||
exitcode = parse_command_line(args->cmdargs->string, args->cmdargs->len,
|
||||
&argc, NULL, &argsize, NULL);
|
||||
|
||||
if(!exitcode) {
|
||||
/* Allocate space for parsed arguments. */
|
||||
argv = (char **) malloc((argc + 1) * sizeof(*argv) + argsize);
|
||||
if(!argv) {
|
||||
fputs("Memory allocation error\n", stderr);
|
||||
exitcode = -2;
|
||||
}
|
||||
else {
|
||||
_SYSPTR pgmptr = rslvsp(WLI_PGM, (char *) CURLPGM, library, _AUTH_NONE);
|
||||
_LU_Work_Area_T *luwrka = (_LU_Work_Area_T *) _LUWRKA();
|
||||
|
||||
parse_command_line(args->cmdargs->string, args->cmdargs->len,
|
||||
&argc, argv, &argsize, (char *) (argv + argc + 1));
|
||||
|
||||
/* Call program. */
|
||||
_CALLPGMV((void *) &pgmptr, argv, argc);
|
||||
exitcode = luwrka->LU_RC;
|
||||
|
||||
free(argv);
|
||||
}
|
||||
}
|
||||
|
||||
return exitcode;
|
||||
}
|
121
third_party/curl/packages/OS400/curlmain.c
vendored
Normal file
121
third_party/curl/packages/OS400/curlmain.c
vendored
Normal file
@ -0,0 +1,121 @@
|
||||
/***************************************************************************
|
||||
* _ _ ____ _
|
||||
* Project ___| | | | _ \| |
|
||||
* / __| | | | |_) | |
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
* are also available at https://curl.se/docs/copyright.html.
|
||||
*
|
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
* copies of the Software, and permit persons to whom the Software is
|
||||
* furnished to do so, under the terms of the COPYING file.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
* SPDX-License-Identifier: curl
|
||||
*
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
/*
|
||||
* QADRT/QADRTMAIN2 substitution program.
|
||||
* This is needed because the IBM-provided QADRTMAIN2 does not
|
||||
* properly translate arguments by default or if no locale is provided.
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <iconv.h>
|
||||
#include <errno.h>
|
||||
#include <locale.h>
|
||||
|
||||
/* Do not use qadrt.h since it defines unneeded static procedures. */
|
||||
extern void QadrtInit(void);
|
||||
extern int QadrtFreeConversionTable(void);
|
||||
extern int QadrtFreeEnviron(void);
|
||||
extern char * setlocale_a(int, const char *);
|
||||
|
||||
|
||||
/* The ASCII main program. */
|
||||
extern int main_a(int argc, char * * argv);
|
||||
|
||||
/* Global values of original EBCDIC arguments. */
|
||||
int ebcdic_argc;
|
||||
char ** ebcdic_argv;
|
||||
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
int i;
|
||||
int j;
|
||||
iconv_t cd;
|
||||
size_t bytecount = 0;
|
||||
char *inbuf;
|
||||
char *outbuf;
|
||||
size_t inbytesleft;
|
||||
size_t outbytesleft;
|
||||
char dummybuf[128];
|
||||
char tocode[32];
|
||||
char fromcode[32];
|
||||
|
||||
ebcdic_argc = argc;
|
||||
ebcdic_argv = argv;
|
||||
|
||||
/* Build the encoding converter. */
|
||||
strncpy(tocode, "IBMCCSID01208", sizeof(tocode)); /* Use UTF-8. */
|
||||
strncpy(fromcode, "IBMCCSID000000000010", sizeof(fromcode));
|
||||
cd = iconv_open(tocode, fromcode);
|
||||
|
||||
/* Measure the arguments. */
|
||||
for(i = 0; i < argc; i++) {
|
||||
inbuf = argv[i];
|
||||
do {
|
||||
inbytesleft = 0;
|
||||
outbuf = dummybuf;
|
||||
outbytesleft = sizeof(dummybuf);
|
||||
j = iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft);
|
||||
bytecount += outbuf - dummybuf;
|
||||
} while(j == -1 && errno == E2BIG);
|
||||
|
||||
/* Reset the shift state. */
|
||||
iconv(cd, NULL, &inbytesleft, &outbuf, &outbytesleft);
|
||||
}
|
||||
|
||||
/* Allocate memory for the ASCII arguments and vector. */
|
||||
argv = (char **) malloc((argc + 1) * sizeof(*argv) + bytecount);
|
||||
|
||||
/* Build the vector and convert argument encoding. */
|
||||
outbuf = (char *) (argv + argc + 1);
|
||||
outbytesleft = bytecount;
|
||||
|
||||
for(i = 0; i < argc; i++) {
|
||||
argv[i] = outbuf;
|
||||
inbuf = ebcdic_argv[i];
|
||||
inbytesleft = 0;
|
||||
iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft);
|
||||
iconv(cd, NULL, &inbytesleft, &outbuf, &outbytesleft);
|
||||
}
|
||||
|
||||
iconv_close(cd);
|
||||
argv[argc] = NULL;
|
||||
|
||||
/* Try setting the locale regardless of QADRT_ENV_LOCALE. */
|
||||
setlocale_a(LC_ALL, "");
|
||||
|
||||
/* Call the program. */
|
||||
i = main_a(argc, argv);
|
||||
|
||||
/* Clean-up allocated items. */
|
||||
free((char *) argv);
|
||||
QadrtFreeConversionTable();
|
||||
QadrtFreeEnviron();
|
||||
|
||||
/* Terminate. */
|
||||
return i;
|
||||
}
|
292
third_party/curl/packages/OS400/initscript.sh
vendored
Executable file
292
third_party/curl/packages/OS400/initscript.sh
vendored
Executable file
@ -0,0 +1,292 @@
|
||||
#!/bin/sh
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
|
||||
CLcommand()
|
||||
{
|
||||
/usr/bin/system "${@}" || exit 1
|
||||
}
|
||||
|
||||
setenv()
|
||||
|
||||
{
|
||||
# Define and export.
|
||||
|
||||
eval "${1}=${2}"
|
||||
export "${1?}"
|
||||
}
|
||||
|
||||
|
||||
case "${SCRIPTDIR}" in
|
||||
/*) ;;
|
||||
*) SCRIPTDIR="$(pwd)/${SCRIPTDIR}"
|
||||
esac
|
||||
|
||||
while true
|
||||
do case "${SCRIPTDIR}" in
|
||||
*/.) SCRIPTDIR="${SCRIPTDIR%/.}";;
|
||||
*) break;;
|
||||
esac
|
||||
done
|
||||
|
||||
# The script directory is supposed to be in $TOPDIR/packages/os400.
|
||||
|
||||
TOPDIR=$(dirname "${SCRIPTDIR}")
|
||||
TOPDIR=$(dirname "${TOPDIR}")
|
||||
export SCRIPTDIR TOPDIR
|
||||
|
||||
# Extract the SONAME from the library makefile.
|
||||
|
||||
SONAME="$(sed -e '/^VERSIONCHANGE=/!d;s/^.*=\([0-9]*\).*/\1/' \
|
||||
< "${TOPDIR}/lib/Makefile.soname")"
|
||||
export SONAME
|
||||
|
||||
# Get OS/400 configuration parameters.
|
||||
|
||||
. "${SCRIPTDIR}/config400.default"
|
||||
if [ -f "${SCRIPTDIR}/config400.override" ]
|
||||
then . "${SCRIPTDIR}/config400.override"
|
||||
fi
|
||||
|
||||
# Need to get the version definitions.
|
||||
|
||||
LIBCURL_VERSION=$(grep '^#define *LIBCURL_VERSION ' \
|
||||
"${TOPDIR}/include/curl/curlver.h" |
|
||||
sed 's/.*"\(.*\)".*/\1/')
|
||||
LIBCURL_VERSION_MAJOR=$(grep '^#define *LIBCURL_VERSION_MAJOR ' \
|
||||
"${TOPDIR}/include/curl/curlver.h" |
|
||||
sed 's/^#define *LIBCURL_VERSION_MAJOR *\([^ ]*\).*/\1/')
|
||||
LIBCURL_VERSION_MINOR=$(grep '^#define *LIBCURL_VERSION_MINOR ' \
|
||||
"${TOPDIR}/include/curl/curlver.h" |
|
||||
sed 's/^#define *LIBCURL_VERSION_MINOR *\([^ ]*\).*/\1/')
|
||||
LIBCURL_VERSION_PATCH=$(grep '^#define *LIBCURL_VERSION_PATCH ' \
|
||||
"${TOPDIR}/include/curl/curlver.h" |
|
||||
sed 's/^#define *LIBCURL_VERSION_PATCH *\([^ ]*\).*/\1/')
|
||||
LIBCURL_VERSION_NUM=$(grep '^#define *LIBCURL_VERSION_NUM ' \
|
||||
"${TOPDIR}/include/curl/curlver.h" |
|
||||
sed 's/^#define *LIBCURL_VERSION_NUM *0x\([^ ]*\).*/\1/')
|
||||
LIBCURL_TIMESTAMP=$(grep '^#define *LIBCURL_TIMESTAMP ' \
|
||||
"${TOPDIR}/include/curl/curlver.h" |
|
||||
sed 's/.*"\(.*\)".*/\1/')
|
||||
export LIBCURL_VERSION
|
||||
export LIBCURL_VERSION_MAJOR LIBCURL_VERSION_MINOR LIBCURL_VERSION_PATCH
|
||||
export LIBCURL_VERSION_NUM LIBCURL_TIMESTAMP
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# OS/400 specific definitions.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
LIBIFSNAME="/QSYS.LIB/${TARGETLIB}.LIB"
|
||||
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Procedures.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
# action_needed dest [src]
|
||||
#
|
||||
# dest is an object to build
|
||||
# if specified, src is an object on which dest depends.
|
||||
#
|
||||
# exit 0 (succeeds) if some action has to be taken, else 1.
|
||||
|
||||
action_needed()
|
||||
|
||||
{
|
||||
[ ! -e "${1}" ] && return 0
|
||||
[ -n "${2}" ] || return 1
|
||||
# shellcheck disable=SC3013
|
||||
[ "${1}" -ot "${2}" ] && return 0
|
||||
return 1
|
||||
}
|
||||
|
||||
|
||||
# canonicalize_path path
|
||||
#
|
||||
# Return canonicalized path as:
|
||||
# - Absolute
|
||||
# - No . or .. component.
|
||||
|
||||
canonicalize_path()
|
||||
|
||||
{
|
||||
if expr "${1}" : '^/' > /dev/null
|
||||
then P="${1}"
|
||||
else P="$(pwd)/${1}"
|
||||
fi
|
||||
|
||||
R=
|
||||
IFSSAVE="${IFS}"
|
||||
IFS="/"
|
||||
|
||||
for C in ${P}
|
||||
do IFS="${IFSSAVE}"
|
||||
case "${C}" in
|
||||
.) ;;
|
||||
..) R="$(expr "${R}" : '^\(.*/\)..*')"
|
||||
;;
|
||||
?*) R="${R}${C}/"
|
||||
;;
|
||||
*) ;;
|
||||
esac
|
||||
done
|
||||
|
||||
IFS="${IFSSAVE}"
|
||||
echo "/$(expr "${R}" : '^\(.*\)/')"
|
||||
}
|
||||
|
||||
|
||||
# make_module module_name source_name [additional_definitions]
|
||||
#
|
||||
# Compile source name into ASCII module if needed.
|
||||
# As side effect, append the module name to variable MODULES.
|
||||
# Set LINK to "YES" if the module has been compiled.
|
||||
|
||||
make_module()
|
||||
|
||||
{
|
||||
MODULES="${MODULES} ${1}"
|
||||
MODIFSNAME="${LIBIFSNAME}/${1}.MODULE"
|
||||
action_needed "${MODIFSNAME}" "${2}" || return 0;
|
||||
SRCDIR="$(dirname "$(canonicalize_path "${2}")")"
|
||||
|
||||
# #pragma convert has to be in the source file itself, i.e.
|
||||
# putting it in an include file makes it only active
|
||||
# for that include file.
|
||||
# Thus we build a temporary file with the pragma prepended to
|
||||
# the source file and we compile that temporary file.
|
||||
|
||||
{
|
||||
echo "#line 1 \"${2}\""
|
||||
echo "#pragma convert(819)"
|
||||
echo "#line 1"
|
||||
cat "${2}"
|
||||
} > __tmpsrcf.c
|
||||
CMD="CRTCMOD MODULE(${TARGETLIB}/${1}) SRCSTMF('__tmpsrcf.c')"
|
||||
CMD="${CMD} SYSIFCOPT(*IFS64IO *ASYNCSIGNAL)"
|
||||
# CMD="${CMD} OPTION(*INCDIRFIRST *SHOWINC *SHOWSYS)"
|
||||
CMD="${CMD} OPTION(*INCDIRFIRST)"
|
||||
CMD="${CMD} LOCALETYPE(*LOCALE) FLAG(10)"
|
||||
CMD="${CMD} INCDIR('${QADRTDIR}/include'"
|
||||
CMD="${CMD} '${TOPDIR}/include/curl' '${TOPDIR}/include' '${SRCDIR}'"
|
||||
CMD="${CMD} '${TOPDIR}/packages/OS400'"
|
||||
|
||||
if [ "${WITH_ZLIB}" != "0" ]
|
||||
then CMD="${CMD} '${ZLIB_INCLUDE}'"
|
||||
fi
|
||||
|
||||
if [ "${WITH_LIBSSH2}" != "0" ]
|
||||
then CMD="${CMD} '${LIBSSH2_INCLUDE}'"
|
||||
fi
|
||||
|
||||
CMD="${CMD} ${INCLUDES})"
|
||||
CMD="${CMD} TGTCCSID(${TGTCCSID}) TGTRLS(${TGTRLS})"
|
||||
CMD="${CMD} OUTPUT(${OUTPUT})"
|
||||
CMD="${CMD} OPTIMIZE(${OPTIMIZE})"
|
||||
CMD="${CMD} DBGVIEW(${DEBUG})"
|
||||
|
||||
DEFINES="${3} 'qadrt_use_inline'"
|
||||
|
||||
if [ "${WITH_ZLIB}" != "0" ]
|
||||
then DEFINES="${DEFINES} HAVE_LIBZ"
|
||||
fi
|
||||
|
||||
if [ "${WITH_LIBSSH2}" != "0" ]
|
||||
then DEFINES="${DEFINES} USE_LIBSSH2"
|
||||
fi
|
||||
|
||||
if [ -n "${DEFINES}" ]
|
||||
then CMD="${CMD} DEFINE(${DEFINES})"
|
||||
fi
|
||||
|
||||
CLcommand "${CMD}"
|
||||
rm -f __tmpsrcf.c
|
||||
# shellcheck disable=SC2034
|
||||
LINK=YES
|
||||
}
|
||||
|
||||
|
||||
# Determine DB2 object name from IFS name.
|
||||
|
||||
db2_name()
|
||||
|
||||
{
|
||||
if [ "${2}" = 'nomangle' ]
|
||||
then basename "${1}" |
|
||||
tr 'a-z-' 'A-Z_' |
|
||||
sed -e 's/\..*//' \
|
||||
-e 's/^\(.\).*\(.........\)$/\1\2/'
|
||||
else basename "${1}" |
|
||||
tr 'a-z-' 'A-Z_' |
|
||||
sed -e 's/\..*//' \
|
||||
-e 's/^CURL_*/C/' \
|
||||
-e 's/^TOOL_*/T/' \
|
||||
-e 's/^\(.\).*\(.........\)$/\1\2/'
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# Copy IFS file replacing version info.
|
||||
|
||||
versioned_copy()
|
||||
|
||||
{
|
||||
sed -e "s/@LIBCURL_VERSION@/${LIBCURL_VERSION}/g" \
|
||||
-e "s/@LIBCURL_VERSION_MAJOR@/${LIBCURL_VERSION_MAJOR}/g" \
|
||||
-e "s/@LIBCURL_VERSION_MINOR@/${LIBCURL_VERSION_MINOR}/g" \
|
||||
-e "s/@LIBCURL_VERSION_PATCH@/${LIBCURL_VERSION_PATCH}/g" \
|
||||
-e "s/@LIBCURL_VERSION_NUM@/${LIBCURL_VERSION_NUM}/g" \
|
||||
-e "s/@LIBCURL_TIMESTAMP@/${LIBCURL_TIMESTAMP}/g" \
|
||||
< "${1}" > "${2}"
|
||||
}
|
||||
|
||||
|
||||
# Get definitions from a make file.
|
||||
# The `sed' statement works as follows:
|
||||
# - Join \nl-separated lines.
|
||||
# - Retain only lines that begins with "identifier =".
|
||||
# - Replace @...@ substitutions by shell variable references.
|
||||
# - Turn these lines into shell variable assignments.
|
||||
|
||||
get_make_vars()
|
||||
|
||||
{
|
||||
eval "$(sed -e ': begin' \
|
||||
-e '/\\$/{' \
|
||||
-e 'N' \
|
||||
-e 's/\\\n/ /' \
|
||||
-e 'b begin' \
|
||||
-e '}' \
|
||||
-e 's/[[:space:]][[:space:]]*/ /g' \
|
||||
-e '/^[A-Za-z_][A-Za-z0-9_]* *=/!d' \
|
||||
-e 's/@\([A-Za-z0-9_]*\)@/${\1}/g' \
|
||||
-e 's/ *= */=/' \
|
||||
-e 's/=\(.*[^ ]\) *$/="\1"/' \
|
||||
-e 's/\$(\([^)]*\))/${\1}/g' \
|
||||
< "${1}")"
|
||||
}
|
106
third_party/curl/packages/OS400/make-include.sh
vendored
Executable file
106
third_party/curl/packages/OS400/make-include.sh
vendored
Executable file
@ -0,0 +1,106 @@
|
||||
#!/bin/sh
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
#
|
||||
# Installation of the header files in the OS/400 library.
|
||||
#
|
||||
|
||||
SCRIPTDIR=$(dirname "${0}")
|
||||
. "${SCRIPTDIR}/initscript.sh"
|
||||
cd "${TOPDIR}/include" || exit 1
|
||||
|
||||
|
||||
# Create the OS/400 source program file for the header files.
|
||||
|
||||
SRCPF="${LIBIFSNAME}/H.FILE"
|
||||
|
||||
if action_needed "${SRCPF}"
|
||||
then CMD="CRTSRCPF FILE(${TARGETLIB}/H) RCDLEN(112)"
|
||||
CMD="${CMD} CCSID(${TGTCCSID}) TEXT('curl: Header files')"
|
||||
CLcommand "${CMD}"
|
||||
fi
|
||||
|
||||
|
||||
# Create the IFS directory for the header files.
|
||||
|
||||
IFSINCLUDE="${IFSDIR}/include/curl"
|
||||
|
||||
if action_needed "${IFSINCLUDE}"
|
||||
then mkdir -p "${IFSINCLUDE}"
|
||||
fi
|
||||
|
||||
|
||||
# Enumeration values are used as va_arg tagfields, so they MUST be
|
||||
# integers.
|
||||
|
||||
copy_hfile()
|
||||
|
||||
{
|
||||
destfile="${1}"
|
||||
srcfile="${2}"
|
||||
shift
|
||||
shift
|
||||
sed -e '1i\
|
||||
#pragma enum(int)\
|
||||
' "${@}" -e '$a\
|
||||
#pragma enum(pop)\
|
||||
' < "${srcfile}" > "${destfile}"
|
||||
}
|
||||
|
||||
# Copy the header files.
|
||||
|
||||
for HFILE in curl/*.h ${SCRIPTDIR}/ccsidcurl.h
|
||||
do case "$(basename "${HFILE}" .h)" in
|
||||
stdcheaders|typecheck-gcc)
|
||||
continue;;
|
||||
esac
|
||||
|
||||
DEST="${SRCPF}/$(db2_name "${HFILE}" nomangle).MBR"
|
||||
|
||||
if action_needed "${DEST}" "${HFILE}"
|
||||
then copy_hfile "${DEST}" "${HFILE}"
|
||||
IFSDEST="${IFSINCLUDE}/$(basename "${HFILE}")"
|
||||
rm -f "${IFSDEST}"
|
||||
ln -s "${DEST}" "${IFSDEST}"
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
# Copy the ILE/RPG header file, setting-up version number.
|
||||
|
||||
versioned_copy "${SCRIPTDIR}/curl.inc.in" "${SRCPF}/CURL.INC.MBR"
|
||||
rm -f "${IFSINCLUDE}/curl.inc.rpgle"
|
||||
ln -s "${SRCPF}/CURL.INC.MBR" "${IFSINCLUDE}/curl.inc.rpgle"
|
||||
|
||||
|
||||
# Duplicate file H as CURL to support more include path forms.
|
||||
|
||||
if action_needed "${LIBIFSNAME}/CURL.FILE"
|
||||
then :
|
||||
else CLcommand "DLTF FILE(${TARGETLIB}/CURL)"
|
||||
fi
|
||||
|
||||
CMD="CRTDUPOBJ OBJ(H) FROMLIB(${TARGETLIB}) OBJTYPE(*FILE) TOLIB(*FROMLIB)"
|
||||
CMD="${CMD} NEWOBJ(CURL) DATA(*YES)"
|
||||
CLcommand "${CMD}"
|
181
third_party/curl/packages/OS400/make-lib.sh
vendored
Executable file
181
third_party/curl/packages/OS400/make-lib.sh
vendored
Executable file
@ -0,0 +1,181 @@
|
||||
#!/bin/sh
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
#
|
||||
# libcurl compilation script for the OS/400.
|
||||
#
|
||||
|
||||
SCRIPTDIR=$(dirname "${0}")
|
||||
. "${SCRIPTDIR}/initscript.sh"
|
||||
cd "${TOPDIR}/lib" || exit 1
|
||||
|
||||
# Need to have IFS access to the mih/cipher header file.
|
||||
|
||||
if action_needed cipher.mih '/QSYS.LIB/QSYSINC.LIB/MIH.FILE/CIPHER.MBR'
|
||||
then rm -f cipher.mih
|
||||
ln -s '/QSYS.LIB/QSYSINC.LIB/MIH.FILE/CIPHER.MBR' cipher.mih
|
||||
fi
|
||||
|
||||
|
||||
# Create and compile the identification source file.
|
||||
|
||||
{
|
||||
echo '#pragma comment(user, "libcurl version '"${LIBCURL_VERSION}"'")'
|
||||
echo '#pragma comment(user, __DATE__)'
|
||||
echo '#pragma comment(user, __TIME__)'
|
||||
echo '#pragma comment(copyright, "Copyright (C) Daniel Stenberg et al. OS/400 version by P. Monnerat")'
|
||||
} > os400.c
|
||||
make_module OS400 os400.c BUILDING_LIBCURL
|
||||
LINK= # No need to rebuild service program yet.
|
||||
MODULES=
|
||||
|
||||
|
||||
# Get source list (CSOURCES variable).
|
||||
|
||||
get_make_vars Makefile.inc
|
||||
|
||||
|
||||
# Compile the sources into modules.
|
||||
|
||||
# shellcheck disable=SC2034
|
||||
INCLUDES="'$(pwd)'"
|
||||
|
||||
make_module OS400SYS "${SCRIPTDIR}/os400sys.c" BUILDING_LIBCURL
|
||||
make_module CCSIDCURL "${SCRIPTDIR}/ccsidcurl.c" BUILDING_LIBCURL
|
||||
|
||||
for SRC in ${CSOURCES}
|
||||
do MODULE=$(db2_name "${SRC}")
|
||||
make_module "${MODULE}" "${SRC}" BUILDING_LIBCURL
|
||||
done
|
||||
|
||||
|
||||
# If needed, (re)create the static binding directory.
|
||||
|
||||
if action_needed "${LIBIFSNAME}/${STATBNDDIR}.BNDDIR"
|
||||
then LINK=YES
|
||||
fi
|
||||
|
||||
if [ -n "${LINK}" ]
|
||||
then rm -rf "${LIBIFSNAME}/${STATBNDDIR}.BNDDIR"
|
||||
CMD="CRTBNDDIR BNDDIR(${TARGETLIB}/${STATBNDDIR})"
|
||||
CMD="${CMD} TEXT('LibCurl API static binding directory')"
|
||||
CLcommand "${CMD}"
|
||||
|
||||
for MODULE in ${MODULES}
|
||||
do CMD="ADDBNDDIRE BNDDIR(${TARGETLIB}/${STATBNDDIR})"
|
||||
CMD="${CMD} OBJ((${TARGETLIB}/${MODULE} *MODULE))"
|
||||
CLcommand "${CMD}"
|
||||
done
|
||||
fi
|
||||
|
||||
|
||||
# The exportation file for service program creation must be in a DB2
|
||||
# source file, so make sure it exists.
|
||||
|
||||
if action_needed "${LIBIFSNAME}/TOOLS.FILE"
|
||||
then CMD="CRTSRCPF FILE(${TARGETLIB}/TOOLS) RCDLEN(112)"
|
||||
CMD="${CMD} TEXT('curl: build tools')"
|
||||
CLcommand "${CMD}"
|
||||
fi
|
||||
|
||||
|
||||
# Gather the list of symbols to export.
|
||||
# - Unfold lines from the header files so that they contain a semicolon.
|
||||
# - Keep only CURL_EXTERN definitions.
|
||||
# - Remove the CURL_DEPRECATED and CURL_TEMP_PRINTF macro calls.
|
||||
# - Drop the parenthesized function arguments and what follows.
|
||||
# - Keep the trailing function name only.
|
||||
|
||||
EXPORTS=$(cat "${TOPDIR}"/include/curl/*.h "${SCRIPTDIR}/ccsidcurl.h" |
|
||||
sed -e 'H;s/.*//;x;s/\n//;s/.*/& /' \
|
||||
-e '/^CURL_EXTERN[[:space:]]/!d' \
|
||||
-e '/\;/!{x;d;}' \
|
||||
-e 's/ CURL_DEPRECATED([^)]*)//g' \
|
||||
-e 's/ CURL_TEMP_PRINTF([^)]*)//g' \
|
||||
-e 's/[[:space:]]*(.*$//' \
|
||||
-e 's/^.*[^A-Za-z0-9_]\([A-Za-z0-9_]*\)$/\1/')
|
||||
|
||||
|
||||
# Create the service program exportation file in DB2 member if needed.
|
||||
|
||||
BSF="${LIBIFSNAME}/TOOLS.FILE/BNDSRC.MBR"
|
||||
|
||||
if action_needed "${BSF}" Makefile.am
|
||||
then LINK=YES
|
||||
fi
|
||||
|
||||
if [ -n "${LINK}" ]
|
||||
then echo " STRPGMEXP PGMLVL(*CURRENT) SIGNATURE('LIBCURL_${SONAME}')" \
|
||||
> "${BSF}"
|
||||
for EXPORT in ${EXPORTS}
|
||||
do echo ' EXPORT SYMBOL("'"${EXPORT}"'")' >> "${BSF}"
|
||||
done
|
||||
|
||||
echo ' ENDPGMEXP' >> "${BSF}"
|
||||
fi
|
||||
|
||||
|
||||
# Build the service program if needed.
|
||||
|
||||
if action_needed "${LIBIFSNAME}/${SRVPGM}.SRVPGM"
|
||||
then LINK=YES
|
||||
fi
|
||||
|
||||
if [ -n "${LINK}" ]
|
||||
then CMD="CRTSRVPGM SRVPGM(${TARGETLIB}/${SRVPGM})"
|
||||
CMD="${CMD} SRCFILE(${TARGETLIB}/TOOLS) SRCMBR(BNDSRC)"
|
||||
CMD="${CMD} MODULE(${TARGETLIB}/OS400)"
|
||||
CMD="${CMD} BNDDIR(${TARGETLIB}/${STATBNDDIR}"
|
||||
if [ "${WITH_ZLIB}" != 0 ]
|
||||
then CMD="${CMD} ${ZLIB_LIB}/${ZLIB_BNDDIR}"
|
||||
liblist -a "${ZLIB_LIB}"
|
||||
fi
|
||||
if [ "${WITH_LIBSSH2}" != 0 ]
|
||||
then CMD="${CMD} ${LIBSSH2_LIB}/${LIBSSH2_BNDDIR}"
|
||||
liblist -a "${LIBSSH2_LIB}"
|
||||
fi
|
||||
CMD="${CMD})"
|
||||
CMD="${CMD} BNDSRVPGM(QADRTTS QGLDCLNT QGLDBRDR)"
|
||||
CMD="${CMD} TEXT('curl API library')"
|
||||
CMD="${CMD} TGTRLS(${TGTRLS})"
|
||||
CLcommand "${CMD}"
|
||||
LINK=YES
|
||||
fi
|
||||
|
||||
|
||||
# If needed, (re)create the dynamic binding directory.
|
||||
|
||||
if action_needed "${LIBIFSNAME}/${DYNBNDDIR}.BNDDIR"
|
||||
then LINK=YES
|
||||
fi
|
||||
|
||||
if [ -n "${LINK}" ]
|
||||
then rm -rf "${LIBIFSNAME}/${DYNBNDDIR}.BNDDIR"
|
||||
CMD="CRTBNDDIR BNDDIR(${TARGETLIB}/${DYNBNDDIR})"
|
||||
CMD="${CMD} TEXT('LibCurl API dynamic binding directory')"
|
||||
CLcommand "${CMD}"
|
||||
CMD="ADDBNDDIRE BNDDIR(${TARGETLIB}/${DYNBNDDIR})"
|
||||
CMD="${CMD} OBJ((*LIBL/${SRVPGM} *SRVPGM))"
|
||||
CLcommand "${CMD}"
|
||||
fi
|
101
third_party/curl/packages/OS400/make-src.sh
vendored
Executable file
101
third_party/curl/packages/OS400/make-src.sh
vendored
Executable file
@ -0,0 +1,101 @@
|
||||
#!/bin/sh
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
#
|
||||
# Command line interface tool compilation script for the OS/400.
|
||||
|
||||
SCRIPTDIR=$(dirname "${0}")
|
||||
. "${SCRIPTDIR}/initscript.sh"
|
||||
cd "${TOPDIR}/src" || exit 1
|
||||
|
||||
|
||||
# Get source lists.
|
||||
# CURL_CFILES are in the current directory.
|
||||
# CURLX_CFILES are in the lib directory and need to be recompiled because
|
||||
# some function names change using macros.
|
||||
|
||||
get_make_vars Makefile.inc
|
||||
|
||||
|
||||
# Compile the sources into modules.
|
||||
|
||||
# shellcheck disable=SC2034
|
||||
LINK=
|
||||
MODULES=
|
||||
# shellcheck disable=SC2034
|
||||
INCLUDES="'${TOPDIR}/lib'"
|
||||
|
||||
for SRC in ${CURLX_CFILES}
|
||||
do MODULE=$(db2_name "${SRC}")
|
||||
MODULE=$(db2_name "X${MODULE}")
|
||||
make_module "${MODULE}" "${SRC}"
|
||||
done
|
||||
|
||||
for SRC in ${CURL_CFILES}
|
||||
do MODULE=$(db2_name "${SRC}")
|
||||
make_module "${MODULE}" "${SRC}"
|
||||
done
|
||||
|
||||
|
||||
# Link modules into program.
|
||||
|
||||
MODULES="$(echo "${MODULES}" | sed "s/[^ ][^ ]*/${TARGETLIB}\/&/g")"
|
||||
CMD="CRTPGM PGM(${TARGETLIB}/${CURLPGM})"
|
||||
CMD="${CMD} ENTMOD(${TARGETLIB}/CURLMAIN)"
|
||||
CMD="${CMD} MODULE(${MODULES})"
|
||||
CMD="${CMD} BNDSRVPGM(${TARGETLIB}/${SRVPGM} QADRTTS)"
|
||||
CMD="${CMD} TGTRLS(${TGTRLS})"
|
||||
CLcommand "${CMD}"
|
||||
|
||||
|
||||
# Create the IFS command.
|
||||
|
||||
IFSBIN="${IFSDIR}/bin"
|
||||
|
||||
if action_needed "${IFSBIN}"
|
||||
then mkdir -p "${IFSBIN}"
|
||||
fi
|
||||
|
||||
rm -f "${IFSBIN}/curl"
|
||||
ln -s "/QSYS.LIB/${TARGETLIB}.LIB/${CURLPGM}.PGM" "${IFSBIN}/curl"
|
||||
|
||||
|
||||
# Create the CL interface program.
|
||||
|
||||
if action_needed "${LIBIFSNAME}/CURLCL.PGM" "${SCRIPTDIR}/curlcl.c"
|
||||
then CMD="CRTBNDC PGM(${TARGETLIB}/${CURLCLI})"
|
||||
CMD="${CMD} SRCSTMF('${SCRIPTDIR}/curlcl.c')"
|
||||
CMD="${CMD} DEFINE('CURLPGM=\"${CURLPGM}\"')"
|
||||
CMD="${CMD} TGTCCSID(${TGTCCSID})"
|
||||
CLcommand "${CMD}"
|
||||
fi
|
||||
|
||||
|
||||
# Create the CL command.
|
||||
|
||||
if action_needed "${LIBIFSNAME}/${CURLCMD}.CMD" "${SCRIPTDIR}/curl.cmd"
|
||||
then CMD="CRTCMD CMD(${TARGETLIB}/${CURLCMD}) PGM(${TARGETLIB}/${CURLCLI})"
|
||||
CMD="${CMD} SRCSTMF('${SCRIPTDIR}/curl.cmd')"
|
||||
CLcommand "${CMD}"
|
||||
fi
|
151
third_party/curl/packages/OS400/make-tests.sh
vendored
Executable file
151
third_party/curl/packages/OS400/make-tests.sh
vendored
Executable file
@ -0,0 +1,151 @@
|
||||
#!/bin/sh
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
#
|
||||
# tests compilation script for the OS/400.
|
||||
#
|
||||
|
||||
|
||||
SCRIPTDIR=$(dirname "${0}")
|
||||
. "${SCRIPTDIR}/initscript.sh"
|
||||
cd "${TOPDIR}/tests" || exit 1
|
||||
|
||||
|
||||
# Build programs in a directory.
|
||||
|
||||
build_all_programs()
|
||||
|
||||
{
|
||||
# Compile all programs.
|
||||
# The list is found in variable "noinst_PROGRAMS"
|
||||
|
||||
# shellcheck disable=SC2034
|
||||
INCLUDES="'$(pwd)' '${TOPDIR}/lib' '${TOPDIR}/src'"
|
||||
MODS="${1}"
|
||||
SRVPGMS="${2}"
|
||||
|
||||
# shellcheck disable=SC2154
|
||||
for PGM in ${noinst_PROGRAMS}
|
||||
do DB2PGM=$(db2_name "${PGM}")
|
||||
PGMIFSNAME="${LIBIFSNAME}/${DB2PGM}.PGM"
|
||||
|
||||
# Extract preprocessor symbol definitions from
|
||||
# compilation options for the program.
|
||||
|
||||
PGMCFLAGS="$(eval echo "\${${PGM}_CFLAGS}")"
|
||||
PGMDFNS=
|
||||
|
||||
for FLAG in ${PGMCFLAGS}
|
||||
do case "${FLAG}" in
|
||||
-D?*) # shellcheck disable=SC2001
|
||||
DEFINE="$(echo "${FLAG}" | sed 's/^..//')"
|
||||
PGMDFNS="${PGMDFNS} '${DEFINE}'"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Compile all C sources for the program into modules.
|
||||
|
||||
PGMSOURCES="$(eval echo "\${${PGM}_SOURCES}")"
|
||||
LINK=
|
||||
MODULES=
|
||||
|
||||
for SOURCE in ${PGMSOURCES}
|
||||
do case "${SOURCE}" in
|
||||
*.c) # Special processing for libxxx.c files:
|
||||
# their module name is determined
|
||||
# by the target PROGRAM name.
|
||||
|
||||
case "${SOURCE}" in
|
||||
lib*.c) MODULE="${DB2PGM}"
|
||||
;;
|
||||
*) MODULE=$(db2_name "${SOURCE}")
|
||||
;;
|
||||
esac
|
||||
|
||||
# If source is in a sibling directory,
|
||||
# prefix module name with 'X'.
|
||||
|
||||
case "${SOURCE}" in
|
||||
../*) MODULE=$(db2_name "X${MODULE}")
|
||||
;;
|
||||
esac
|
||||
|
||||
make_module "${MODULE}" "${SOURCE}" "${PGMDFNS}"
|
||||
if action_needed "${PGMIFSNAME}" "${MODIFSNAME}"
|
||||
then LINK=yes
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Link program if needed.
|
||||
|
||||
if [ -n "${LINK}" ]
|
||||
then PGMLDADD="$(eval echo "\${${PGM}_LDADD}")"
|
||||
for M in ${PGMLDADD}
|
||||
do case "${M}" in
|
||||
-*) ;; # Ignore non-module.
|
||||
*) MODULES="${MODULES} $(db2_name "${M}")"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
MODULES="$(echo "${MODULES}" |
|
||||
sed "s/[^ ][^ ]*/${TARGETLIB}\/&/g")"
|
||||
CMD="CRTPGM PGM(${TARGETLIB}/${DB2PGM})"
|
||||
CMD="${CMD} ENTMOD(${TARGETLIB}/CURLMAIN)"
|
||||
CMD="${CMD} MODULE(${MODULES} ${MODS})"
|
||||
CMD="${CMD} BNDSRVPGM(${SRVPGMS} QADRTTS)"
|
||||
CMD="${CMD} TGTRLS(${TGTRLS})"
|
||||
CLcommand "${CMD}"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
# Build programs in the server directory.
|
||||
|
||||
(
|
||||
cd server || exit 1
|
||||
get_make_vars Makefile.inc
|
||||
build_all_programs "${TARGETLIB}/OS400SYS"
|
||||
)
|
||||
|
||||
|
||||
# Build all programs in the libtest subdirectory.
|
||||
|
||||
(
|
||||
cd libtest || exit 1
|
||||
get_make_vars Makefile.inc
|
||||
|
||||
# Special case: redefine chkhostname compilation parameters.
|
||||
|
||||
# shellcheck disable=SC2034
|
||||
chkhostname_SOURCES=chkhostname.c
|
||||
# shellcheck disable=SC2034
|
||||
chkhostname_LDADD=curl_gethostname.o
|
||||
|
||||
# shellcheck disable=SC2153
|
||||
build_all_programs "" "${TARGETLIB}/${SRVPGM}"
|
||||
)
|
123
third_party/curl/packages/OS400/makefile.sh
vendored
Executable file
123
third_party/curl/packages/OS400/makefile.sh
vendored
Executable file
@ -0,0 +1,123 @@
|
||||
#!/bin/sh
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
#
|
||||
# curl compilation script for the OS/400.
|
||||
#
|
||||
#
|
||||
# This is a shell script since make is not a standard component of OS/400.
|
||||
|
||||
SCRIPTDIR=$(dirname "${0}")
|
||||
. "${SCRIPTDIR}/initscript.sh"
|
||||
cd "${TOPDIR}" || exit 1
|
||||
|
||||
|
||||
# Create the OS/400 library if it does not exist.
|
||||
|
||||
if action_needed "${LIBIFSNAME}"
|
||||
then CMD="CRTLIB LIB(${TARGETLIB}) TEXT('curl: multiprotocol support API')"
|
||||
CLcommand "${CMD}"
|
||||
fi
|
||||
|
||||
|
||||
# Create the DOCS source file if it does not exist.
|
||||
|
||||
if action_needed "${LIBIFSNAME}/DOCS.FILE"
|
||||
then CMD="CRTSRCPF FILE(${TARGETLIB}/DOCS) RCDLEN(240)"
|
||||
CMD="${CMD} CCSID(${TGTCCSID}) TEXT('Documentation texts')"
|
||||
CLcommand "${CMD}"
|
||||
fi
|
||||
|
||||
|
||||
# Copy some documentation files if needed.
|
||||
|
||||
for TEXT in "${TOPDIR}/COPYING" "${SCRIPTDIR}/README.OS400" \
|
||||
"${TOPDIR}/CHANGES" "${TOPDIR}/docs/THANKS" "${TOPDIR}/docs/FAQ" \
|
||||
"${TOPDIR}/docs/FEATURES" "${TOPDIR}/docs/SSLCERTS.md" \
|
||||
"${TOPDIR}/docs/RESOURCES" "${TOPDIR}/docs/VERSIONS.md" \
|
||||
"${TOPDIR}/docs/HISTORY.md"
|
||||
do MEMBER="$(basename "${TEXT}" .OS400)"
|
||||
MEMBER="$(basename "${MEMBER}" .md)"
|
||||
MEMBER="${LIBIFSNAME}/DOCS.FILE/$(db2_name "${MEMBER}").MBR"
|
||||
|
||||
[ -e "${TEXT}" ] || continue
|
||||
|
||||
if action_needed "${MEMBER}" "${TEXT}"
|
||||
then CMD="CPY OBJ('${TEXT}') TOOBJ('${MEMBER}') TOCCSID(${TGTCCSID})"
|
||||
CMD="${CMD} DTAFMT(*TEXT) REPLACE(*YES)"
|
||||
CLcommand "${CMD}"
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
# Create the RPGXAMPLES source file if it does not exist.
|
||||
|
||||
if action_needed "${LIBIFSNAME}/RPGXAMPLES.FILE"
|
||||
then CMD="CRTSRCPF FILE(${TARGETLIB}/RPGXAMPLES) RCDLEN(240)"
|
||||
CMD="${CMD} CCSID(${TGTCCSID}) TEXT('ILE/RPG examples')"
|
||||
CLcommand "${CMD}"
|
||||
fi
|
||||
|
||||
|
||||
# Copy RPG examples if needed.
|
||||
|
||||
for EXAMPLE in "${SCRIPTDIR}/rpg-examples"/*
|
||||
do MEMBER="$(basename "${EXAMPLE}")"
|
||||
IFSMEMBER="${LIBIFSNAME}/RPGXAMPLES.FILE/$(db2_name "${MEMBER}").MBR"
|
||||
|
||||
[ -e "${EXAMPLE}" ] || continue
|
||||
|
||||
if action_needed "${IFSMEMBER}" "${EXAMPLE}"
|
||||
then CMD="CPY OBJ('${EXAMPLE}') TOOBJ('${IFSMEMBER}')"
|
||||
CMD="${CMD} TOCCSID(${TGTCCSID}) DTAFMT(*TEXT) REPLACE(*YES)"
|
||||
CLcommand "${CMD}"
|
||||
MBRTEXT=$(sed -e '1!d;/^ \*/!d;s/^ *\* *//' \
|
||||
-e 's/ *$//;s/'"'"'/&&/g' < "${EXAMPLE}")
|
||||
CMD="CHGPFM FILE(${TARGETLIB}/RPGXAMPLES) MBR(${MEMBER})"
|
||||
CMD="${CMD} SRCTYPE(RPGLE) TEXT('${MBRTEXT}')"
|
||||
CLcommand "${CMD}"
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
# Compile the QADRTMAIN2 replacement module.
|
||||
|
||||
if action_needed "${LIBIFSNAME}/CURLMAIN.MODULE" "${SCRIPTDIR}/curlmain.c"
|
||||
then CMD="CRTCMOD MODULE(${TARGETLIB}/CURLMAIN)"
|
||||
CMD="${CMD} SRCSTMF('${SCRIPTDIR}/curlmain.c')"
|
||||
CMD="${CMD} SYSIFCOPT(*IFS64IO) LOCALETYPE(*LOCALE) FLAG(10)"
|
||||
CMD="${CMD} TGTCCSID(${TGTCCSID}) TGTRLS(${TGTRLS})"
|
||||
CMD="${CMD} OUTPUT(${OUTPUT})"
|
||||
CMD="${CMD} OPTIMIZE(${OPTIMIZE})"
|
||||
CMD="${CMD} DBGVIEW(${DEBUG})"
|
||||
CLcommand "${CMD}"
|
||||
fi
|
||||
|
||||
|
||||
# Build in each directory.
|
||||
|
||||
# for SUBDIR in include lib src tests
|
||||
for SUBDIR in include lib src
|
||||
do "${SCRIPTDIR}/make-${SUBDIR}.sh"
|
||||
done
|
1040
third_party/curl/packages/OS400/os400sys.c
vendored
Normal file
1040
third_party/curl/packages/OS400/os400sys.c
vendored
Normal file
File diff suppressed because it is too large
Load Diff
57
third_party/curl/packages/OS400/os400sys.h
vendored
Normal file
57
third_party/curl/packages/OS400/os400sys.h
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
/***************************************************************************
|
||||
* _ _ ____ _
|
||||
* Project ___| | | | _ \| |
|
||||
* / __| | | | |_) | |
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
* are also available at https://curl.se/docs/copyright.html.
|
||||
*
|
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
* copies of the Software, and permit persons to whom the Software is
|
||||
* furnished to do so, under the terms of the COPYING file.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
* SPDX-License-Identifier: curl
|
||||
*
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
/* OS/400 additional definitions. */
|
||||
|
||||
#ifndef __OS400_SYS_
|
||||
#define __OS400_SYS_
|
||||
|
||||
|
||||
/* Per-thread item identifiers. */
|
||||
|
||||
typedef enum {
|
||||
LK_GSK_ERROR,
|
||||
LK_LDAP_ERROR,
|
||||
LK_CURL_VERSION,
|
||||
LK_VERSION_INFO,
|
||||
LK_VERSION_INFO_DATA,
|
||||
LK_EASY_STRERROR,
|
||||
LK_SHARE_STRERROR,
|
||||
LK_MULTI_STRERROR,
|
||||
LK_URL_STRERROR,
|
||||
LK_ZLIB_VERSION,
|
||||
LK_ZLIB_MSG,
|
||||
LK_LAST
|
||||
} localkey_t;
|
||||
|
||||
|
||||
extern char * (* Curl_thread_buffer)(localkey_t key, long size);
|
||||
|
||||
|
||||
/* Maximum string expansion factor due to character code conversion. */
|
||||
|
||||
#define MAX_CONV_EXPANSION 4 /* Can deal with UTF-8. */
|
||||
|
||||
#endif
|
146
third_party/curl/packages/OS400/rpg-examples/HEADERAPI
vendored
Normal file
146
third_party/curl/packages/OS400/rpg-examples/HEADERAPI
vendored
Normal file
@ -0,0 +1,146 @@
|
||||
* Curl header API: extract headers post transfer
|
||||
*
|
||||
h DFTACTGRP(*NO) ACTGRP(*NEW)
|
||||
h OPTION(*NOSHOWCPY)
|
||||
h BNDDIR('CURL')
|
||||
*
|
||||
**************************************************************************
|
||||
* _ _ ____ _
|
||||
* Project ___| | | | _ \| |
|
||||
* / __| | | | |_) | |
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
* are also available at https://curl.se/docs/copyright.html.
|
||||
*
|
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
* copies of the Software, and permit persons to whom the Software is
|
||||
* furnished to do so, under the terms of the COPYING file.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF
|
||||
* ANY KIND, either express or implied.
|
||||
*
|
||||
* SPDX-License-Identifier: curl
|
||||
*
|
||||
**************************************************************************
|
||||
*
|
||||
/include H,CURL.INC
|
||||
*
|
||||
* Extract headers post transfer with the header API.
|
||||
*
|
||||
d pi
|
||||
d url 120
|
||||
*
|
||||
d urllen s 10u 0 URL length
|
||||
*
|
||||
**************************************************************************
|
||||
|
||||
urllen = trimmed_length(url: %len(url));
|
||||
|
||||
// Do the curl stuff.
|
||||
|
||||
curl_global_init(CURL_GLOBAL_ALL);
|
||||
main();
|
||||
curl_global_cleanup();
|
||||
*inlr = *on; // Exit
|
||||
*
|
||||
**************************************************************************
|
||||
* Main procedure: do the curl job.
|
||||
**************************************************************************
|
||||
*
|
||||
p main b
|
||||
d main pi
|
||||
*
|
||||
d h s * Easy handle
|
||||
d result s like(CURLcode) Curl return code
|
||||
d inz(CURLE_OUT_OF_MEMORY)
|
||||
d header ds likeds(curl_header) based(hp)
|
||||
d strp1 s * Work string pointer
|
||||
d strp2 s * Work string pointer
|
||||
d inout s 52 For error display
|
||||
|
||||
// Create and fill curl handle.
|
||||
|
||||
h = curl_easy_init();
|
||||
if h <> *NULL;
|
||||
curl_easy_setopt_ccsid(h: CURLOPT_URL: %subst(url: 1: urllen): 0);
|
||||
curl_easy_setopt(h: CURLOPT_FOLLOWLOCATION: 1);
|
||||
curl_easy_setopt(h: CURLOPT_WRITEFUNCTION: %paddr(in_data_cb)); // Ignore input data
|
||||
|
||||
// Perform the request.
|
||||
|
||||
result = curl_easy_perform(h);
|
||||
endif;
|
||||
|
||||
// Check for error and report if some.
|
||||
|
||||
if result <> CURLE_OK;
|
||||
inout = %str(curl_easy_strerror_ccsid(result: 0));
|
||||
dsply '' '*EXT' inout;
|
||||
else;
|
||||
if curl_easy_header_ccsid(h: 'Content-Type': 0: CURLH_HEADER: -1:
|
||||
hp: 0) = CURLHE_OK;
|
||||
strp2 = curl_to_ccsid(header.value: 0);
|
||||
inout = 'Content-Type: ' + %str(strp2);
|
||||
dsply inout;
|
||||
curl_free(strp2);
|
||||
endif;
|
||||
dsply ' All server headers:';
|
||||
hp = *NULL;
|
||||
dow *on;
|
||||
hp = curl_easy_nextheader(h: CURLH_HEADER: -1: hp);
|
||||
if hp = *NULL;
|
||||
leave;
|
||||
endif;
|
||||
strp1 = curl_to_ccsid(header.name: 0);
|
||||
strp2 = curl_to_ccsid(header.value: 0);
|
||||
inout = %str(strp1) + ': ' + %str(strp2) +
|
||||
' (' + %char(header.amount) + ')';
|
||||
curl_free(strp2);
|
||||
curl_free(strp1);
|
||||
dsply inout;
|
||||
enddo;
|
||||
inout = 'Done';
|
||||
dsply '' '*EXT' inout;
|
||||
curl_easy_cleanup(h); // Release handle
|
||||
endif;
|
||||
p main e
|
||||
*
|
||||
**************************************************************************
|
||||
* Dummy data input callback procedure.
|
||||
**************************************************************************
|
||||
*
|
||||
p in_data_cb b
|
||||
d in_data_cb pi 10u 0
|
||||
d ptr * value Input data pointer
|
||||
d size 10u 0 value Data element size
|
||||
d nmemb 10u 0 value Data element count
|
||||
d userdata * value User data pointer
|
||||
*
|
||||
return size * nmemb;
|
||||
p in_data_cb e
|
||||
*
|
||||
**************************************************************************
|
||||
* Get the length of right-trimmed string
|
||||
**************************************************************************
|
||||
*
|
||||
p trimmed_length b
|
||||
d trimmed_length pi 10u 0
|
||||
d string 999999 const options(*varsize)
|
||||
d length 10u 0 value
|
||||
*
|
||||
d len s 10u 0
|
||||
*
|
||||
len = %scan(X'00': string: 1: length); // Limit to zero-terminated string
|
||||
if len = 0;
|
||||
len = length + 1;
|
||||
endif;
|
||||
if len <= 1;
|
||||
return 0;
|
||||
endif;
|
||||
return %checkr(' ': string: len - 1); // Trim right
|
||||
p trimmed_length e
|
129
third_party/curl/packages/OS400/rpg-examples/HTTPPOST
vendored
Normal file
129
third_party/curl/packages/OS400/rpg-examples/HTTPPOST
vendored
Normal file
@ -0,0 +1,129 @@
|
||||
* Curl MIME post data and display response
|
||||
*
|
||||
h DFTACTGRP(*NO) ACTGRP(*NEW)
|
||||
h OPTION(*NOSHOWCPY)
|
||||
h BNDDIR('CURL')
|
||||
*
|
||||
**************************************************************************
|
||||
* _ _ ____ _
|
||||
* Project ___| | | | _ \| |
|
||||
* / __| | | | |_) | |
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
* are also available at https://curl.se/docs/copyright.html.
|
||||
*
|
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
* copies of the Software, and permit persons to whom the Software is
|
||||
* furnished to do so, under the terms of the COPYING file.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF
|
||||
* ANY KIND, either express or implied.
|
||||
*
|
||||
* SPDX-License-Identifier: curl
|
||||
*
|
||||
**************************************************************************
|
||||
*
|
||||
/include H,CURL.INC
|
||||
*
|
||||
* Example to HTTP POST data using the MIME API. Displays the response.
|
||||
*
|
||||
d pi
|
||||
d userinput 120 User data to post
|
||||
*
|
||||
d url c 'http://httpbin.org/anything'
|
||||
*
|
||||
*
|
||||
d inputlen s 10u 0 User input length
|
||||
**************************************************************************
|
||||
|
||||
inputlen = trimmed_length(userinput: %len(userinput));
|
||||
|
||||
// Do the curl stuff.
|
||||
|
||||
curl_global_init(CURL_GLOBAL_ALL);
|
||||
main();
|
||||
curl_global_cleanup();
|
||||
*inlr = *on; // Exit
|
||||
*
|
||||
**************************************************************************
|
||||
* Main procedure: do the curl job.
|
||||
**************************************************************************
|
||||
*
|
||||
p main b
|
||||
d main pi
|
||||
*
|
||||
d h s * Easy handle
|
||||
d result s like(CURLcode) Curl return code
|
||||
d inz(CURLE_OUT_OF_MEMORY)
|
||||
d errmsgp s * Error string pointer
|
||||
d response s 52 For error display
|
||||
d mime s * MIME handle
|
||||
d mimepart s * MIME part handle
|
||||
d parthdrs s * inz(*NULL) Part headers
|
||||
|
||||
// Create and fill curl handle.
|
||||
|
||||
h = curl_easy_init();
|
||||
if h <> *NULL;
|
||||
curl_easy_setopt_ccsid(h: CURLOPT_URL: url: 0);
|
||||
curl_easy_setopt(h: CURLOPT_FOLLOWLOCATION: 1);
|
||||
mime = curl_mime_init(h);
|
||||
mimepart = curl_mime_addpart(mime);
|
||||
curl_mime_name_ccsid(mimepart: 'autofield': 0);
|
||||
curl_mime_data_ccsid(mimepart: 'program-generated value':
|
||||
CURL_ZERO_TERMINATED: 0);
|
||||
mimepart = curl_mime_addpart(mime);
|
||||
curl_mime_name_ccsid(mimepart: 'userfield': 0);
|
||||
curl_mime_data_ccsid(mimepart: %subst(userinput: 1: inputlen):
|
||||
CURL_ZERO_TERMINATED: 0);
|
||||
mimepart = curl_mime_addpart(mime);
|
||||
curl_mime_name_ccsid(mimepart: 'ebcdicfield': 0);
|
||||
curl_mime_data(mimepart: %subst(userinput: 1: inputlen): inputlen);
|
||||
curl_mime_encoder_ccsid(mimepart: 'base64': 0);
|
||||
// Avoid server to convert base64 to text.
|
||||
parthdrs = curl_slist_append_ccsid(parthdrs:
|
||||
'Content-Transfer-Encoding: bit': 0);
|
||||
curl_mime_headers(mimepart: parthdrs: 1);
|
||||
curl_easy_setopt(h: CURLOPT_MIMEPOST: mime);
|
||||
|
||||
// Perform the request.
|
||||
|
||||
result = curl_easy_perform(h);
|
||||
curl_mime_free(mime);
|
||||
curl_easy_cleanup(h); // Release handle
|
||||
endif;
|
||||
|
||||
// Check for error and report if some.
|
||||
|
||||
if result <> CURLE_OK;
|
||||
errmsgp = curl_easy_strerror_ccsid(result: 0);
|
||||
response = %str(errmsgp);
|
||||
dsply '' '*EXT' response;
|
||||
endif;
|
||||
p main e
|
||||
*
|
||||
**************************************************************************
|
||||
* Get the length of right-trimmed string
|
||||
**************************************************************************
|
||||
*
|
||||
p trimmed_length b
|
||||
d trimmed_length pi 10u 0
|
||||
d string 999999 const options(*varsize)
|
||||
d length 10u 0 value
|
||||
*
|
||||
d len s 10u 0
|
||||
*
|
||||
len = %scan(X'00': string: 1: length); // Limit to zero-terminated string
|
||||
if len = 0;
|
||||
len = length + 1;
|
||||
endif;
|
||||
if len <= 1;
|
||||
return 0;
|
||||
endif;
|
||||
return %checkr(' ': string: len - 1); // Trim right
|
||||
p trimmed_length e
|
159
third_party/curl/packages/OS400/rpg-examples/INMEMORY
vendored
Normal file
159
third_party/curl/packages/OS400/rpg-examples/INMEMORY
vendored
Normal file
@ -0,0 +1,159 @@
|
||||
* Curl get in memory and count HTML tags
|
||||
*
|
||||
h DFTACTGRP(*NO) ACTGRP(*NEW)
|
||||
h OPTION(*NOSHOWCPY)
|
||||
h BNDDIR('CURL')
|
||||
*
|
||||
**************************************************************************
|
||||
* _ _ ____ _
|
||||
* Project ___| | | | _ \| |
|
||||
* / __| | | | |_) | |
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
* are also available at https://curl.se/docs/copyright.html.
|
||||
*
|
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
* copies of the Software, and permit persons to whom the Software is
|
||||
* furnished to do so, under the terms of the COPYING file.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF
|
||||
* ANY KIND, either express or implied.
|
||||
*
|
||||
* SPDX-License-Identifier: curl
|
||||
*
|
||||
**************************************************************************
|
||||
*
|
||||
/include H,CURL.INC
|
||||
*
|
||||
* Example to request the URL given as command line parameter and count
|
||||
* HTML tags in its response.
|
||||
*
|
||||
d pi
|
||||
d url 120
|
||||
*
|
||||
d countdata ds qualified based(###dummyptr) User data type
|
||||
d tagcount 10u 0 Tag counter
|
||||
d tagopen n Possible opening tag
|
||||
*
|
||||
d urllen s 10u 0 URL length
|
||||
*
|
||||
**************************************************************************
|
||||
|
||||
urllen = trimmed_length(url: %len(url));
|
||||
|
||||
// Do the curl stuff.
|
||||
|
||||
curl_global_init(CURL_GLOBAL_ALL);
|
||||
main();
|
||||
curl_global_cleanup();
|
||||
*inlr = *on; // Exit
|
||||
*
|
||||
**************************************************************************
|
||||
* Main procedure: do the curl job.
|
||||
**************************************************************************
|
||||
*
|
||||
p main b
|
||||
d main pi
|
||||
*
|
||||
d h s * Easy handle
|
||||
d result s like(CURLcode) Curl return code
|
||||
d inz(CURLE_OUT_OF_MEMORY)
|
||||
d errmsgp s * Error string pointer
|
||||
d response s 52 For error display
|
||||
d counter ds likeds(countdata) HTML tag counter
|
||||
|
||||
counter.tagcount = 0;
|
||||
counter.tagopen = *off;
|
||||
|
||||
// Create and fill curl handle.
|
||||
|
||||
h = curl_easy_init();
|
||||
if h <> *NULL;
|
||||
curl_easy_setopt_ccsid(h: CURLOPT_URL: %subst(url: 1: urllen): 0);
|
||||
curl_easy_setopt(h: CURLOPT_FOLLOWLOCATION: 1);
|
||||
curl_easy_setopt(h: CURLOPT_WRITEFUNCTION: %paddr(in_data_cb));
|
||||
curl_easy_setopt(h: CURLOPT_WRITEDATA: %addr(counter));
|
||||
|
||||
// Perform the request.
|
||||
|
||||
result = curl_easy_perform(h);
|
||||
curl_easy_cleanup(h); // Release handle
|
||||
endif;
|
||||
|
||||
// Check for error and report if some.
|
||||
|
||||
if result <> CURLE_OK;
|
||||
errmsgp = curl_easy_strerror_ccsid(result: 0);
|
||||
response = %str(errmsgp);
|
||||
dsply '' '*EXT' response;
|
||||
else;
|
||||
// Display the tag count.
|
||||
|
||||
response = 'Tag count: ' + %char(counter.tagcount);
|
||||
dsply '' '*EXT' response;
|
||||
endif;
|
||||
p main e
|
||||
*
|
||||
**************************************************************************
|
||||
* Data input callback procedure.
|
||||
**************************************************************************
|
||||
*
|
||||
p in_data_cb b
|
||||
d in_data_cb pi 10u 0
|
||||
d ptr * value Input data pointer
|
||||
d size 10u 0 value Data element size
|
||||
d nmemb 10u 0 value Data element count
|
||||
d userdata * value User data pointer
|
||||
*
|
||||
d counter ds likeds(countdata) based(userdata) HTML tag counter
|
||||
d ebcdata s * EBCDIC data pointer
|
||||
d chars s 1 based(ebcdata) dim(1000000)
|
||||
d i s 10u 0 Character position
|
||||
*
|
||||
size = size * nmemb; // The size in bytes.
|
||||
ebcdata = curl_to_ccsid(%str(ptr: size): 0); // Convert to EBCDIC.
|
||||
i = 1;
|
||||
dow i <= size;
|
||||
if counter.tagopen; // Did we see '<' ?
|
||||
counter.tagopen = *off;
|
||||
if chars(i) <> '/'; // Reject closing tag.
|
||||
counter.tagcount = counter.tagcount + 1; // Count this tag.
|
||||
endif;
|
||||
else;
|
||||
i = %scan('<': %str(ebcdata): i); // Search next possible tag.
|
||||
if i = 0;
|
||||
leave;
|
||||
endif;
|
||||
counter.tagopen = *on; // Found one: flag it.
|
||||
endif;
|
||||
i = i + 1;
|
||||
enddo;
|
||||
curl_free(ebcdata);
|
||||
return size;
|
||||
p in_data_cb e
|
||||
*
|
||||
**************************************************************************
|
||||
* Get the length of right-trimmed string
|
||||
**************************************************************************
|
||||
*
|
||||
p trimmed_length b
|
||||
d trimmed_length pi 10u 0
|
||||
d string 999999 const options(*varsize)
|
||||
d length 10u 0 value
|
||||
*
|
||||
d len s 10u 0
|
||||
*
|
||||
len = %scan(X'00': string: 1: length); // Limit to zero-terminated string
|
||||
if len = 0;
|
||||
len = length + 1;
|
||||
endif;
|
||||
if len <= 1;
|
||||
return 0;
|
||||
endif;
|
||||
return %checkr(' ': string: len - 1); // Trim right
|
||||
p trimmed_length e
|
108
third_party/curl/packages/OS400/rpg-examples/SIMPLE1
vendored
Normal file
108
third_party/curl/packages/OS400/rpg-examples/SIMPLE1
vendored
Normal file
@ -0,0 +1,108 @@
|
||||
* Curl simple URL request
|
||||
*
|
||||
h DFTACTGRP(*NO) ACTGRP(*NEW)
|
||||
h OPTION(*NOSHOWCPY)
|
||||
h BNDDIR('CURL')
|
||||
*
|
||||
**************************************************************************
|
||||
* _ _ ____ _
|
||||
* Project ___| | | | _ \| |
|
||||
* / __| | | | |_) | |
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
* are also available at https://curl.se/docs/copyright.html.
|
||||
*
|
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
* copies of the Software, and permit persons to whom the Software is
|
||||
* furnished to do so, under the terms of the COPYING file.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF
|
||||
* ANY KIND, either express or implied.
|
||||
*
|
||||
* SPDX-License-Identifier: curl
|
||||
*
|
||||
**************************************************************************
|
||||
*
|
||||
/include H,CURL.INC
|
||||
*
|
||||
* Simple example to request the URL given as command line parameter and
|
||||
* output its response.
|
||||
*
|
||||
d pi
|
||||
d url 120
|
||||
*
|
||||
d urllen s 10u 0 URL length
|
||||
*
|
||||
**************************************************************************
|
||||
*
|
||||
c eval urllen = trimmed_length(url: %len(url))
|
||||
*
|
||||
* Do the curl stuff.
|
||||
*
|
||||
c callp curl_global_init(CURL_GLOBAL_ALL)
|
||||
c callp main
|
||||
c callp curl_global_cleanup()
|
||||
c seton lr Exit
|
||||
*
|
||||
**************************************************************************
|
||||
* Main procedure: do the curl job.
|
||||
**************************************************************************
|
||||
*
|
||||
p main b
|
||||
d main pi
|
||||
*
|
||||
d h s * Easy handle
|
||||
d result s like(CURLcode) Curl return code
|
||||
d inz(CURLE_OUT_OF_MEMORY)
|
||||
d errmsgp s * Error string pointer
|
||||
d response s 52 For error display
|
||||
*
|
||||
* Create and fill curl handle.
|
||||
*
|
||||
c eval h = curl_easy_init()
|
||||
c if h <> *NULL
|
||||
c callp curl_easy_setopt_ccsid(h: CURLOPT_URL:
|
||||
c %subst(url: 1: urllen): 0)
|
||||
c callp curl_easy_setopt_long(h:
|
||||
c CURLOPT_FOLLOWLOCATION: 1)
|
||||
*
|
||||
* Perform the request.
|
||||
*
|
||||
c eval result = curl_easy_perform(h)
|
||||
c callp curl_easy_cleanup(h) Release handle
|
||||
c endif
|
||||
*
|
||||
* Check for error and report if some.
|
||||
*
|
||||
c if result <> CURLE_OK
|
||||
c eval errmsgp = curl_easy_strerror_ccsid(result: 0)
|
||||
c eval response = %str(errmsgp)
|
||||
c dsply response
|
||||
c endif
|
||||
p main e
|
||||
*
|
||||
**************************************************************************
|
||||
* Get the length of right-trimmed string
|
||||
**************************************************************************
|
||||
*
|
||||
p trimmed_length b
|
||||
d trimmed_length pi 10u 0
|
||||
d string 999999 const options(*varsize)
|
||||
d length 10u 0 value
|
||||
*
|
||||
d len s 10u 0
|
||||
*
|
||||
c eval len = %scan(X'00': string: 1: length) Limit 0-terminated
|
||||
c if len = 0
|
||||
c eval len = length + 1
|
||||
c endif
|
||||
c if len <= 1
|
||||
c return 0
|
||||
c endif
|
||||
c return %checkr(' ': string: len - 1) Trim right
|
||||
p trimmed_length e
|
108
third_party/curl/packages/OS400/rpg-examples/SIMPLE2
vendored
Normal file
108
third_party/curl/packages/OS400/rpg-examples/SIMPLE2
vendored
Normal file
@ -0,0 +1,108 @@
|
||||
* Curl simple URL request (free-format RPG)
|
||||
*
|
||||
ctl-opt dftactgrp(*NO) actgrp(*NEW)
|
||||
option(*NOSHOWCPY)
|
||||
bnddir('CURL');
|
||||
*
|
||||
**************************************************************************
|
||||
* _ _ ____ _
|
||||
* Project ___| | | | _ \| |
|
||||
* / __| | | | |_) | |
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
* are also available at https://curl.se/docs/copyright.html.
|
||||
*
|
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
* copies of the Software, and permit persons to whom the Software is
|
||||
* furnished to do so, under the terms of the COPYING file.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF
|
||||
* ANY KIND, either express or implied.
|
||||
*
|
||||
* SPDX-License-Identifier: curl
|
||||
*
|
||||
**************************************************************************
|
||||
|
||||
/include H,CURL.INC
|
||||
|
||||
* Simple free-format RPG program to request the URL given as command line
|
||||
* parameter and output its response.
|
||||
|
||||
dcl-pi *N;
|
||||
url char(120);
|
||||
end-pi;
|
||||
|
||||
dcl-s urllen int(10); // URL length
|
||||
|
||||
**************************************************************************
|
||||
|
||||
urllen = trimmed_length(url: %len(url));
|
||||
|
||||
// Do the curl stuff.
|
||||
|
||||
curl_global_init(CURL_GLOBAL_ALL);
|
||||
main();
|
||||
curl_global_cleanup();
|
||||
*inlr = *on; // Exit
|
||||
|
||||
**************************************************************************
|
||||
* Main procedure: do the curl job.
|
||||
**************************************************************************
|
||||
|
||||
dcl-proc main;
|
||||
dcl-pi *N end-pi;
|
||||
|
||||
dcl-s h pointer; // Easy handle
|
||||
dcl-s result like(CURLcode) inz(CURLE_OUT_OF_MEMORY); // Curl return code
|
||||
dcl-s errmsgp pointer; // Error string pointer
|
||||
dcl-s response char(52); // For error display
|
||||
|
||||
// Create and fill curl handle.
|
||||
|
||||
h = curl_easy_init();
|
||||
if h <> *NULL;
|
||||
curl_easy_setopt_ccsid(h: CURLOPT_URL: %subst(url: 1: urllen):
|
||||
0);
|
||||
curl_easy_setopt(h: CURLOPT_FOLLOWLOCATION: 1);
|
||||
|
||||
// Perform the request.
|
||||
|
||||
result = curl_easy_perform(h);
|
||||
curl_easy_cleanup(h); // Release handle
|
||||
endif;
|
||||
|
||||
// Check for error and report if some.
|
||||
|
||||
if result <> CURLE_OK;
|
||||
errmsgp = curl_easy_strerror_ccsid(result: 0);
|
||||
response = %str(errmsgp);
|
||||
dsply '' '*EXT' response;
|
||||
endif;
|
||||
end-proc;
|
||||
*
|
||||
**************************************************************************
|
||||
* Get the length of right-trimmed string
|
||||
**************************************************************************
|
||||
*
|
||||
dcl-proc trimmed_length;
|
||||
dcl-pi *N uns(10);
|
||||
string char(9999999) const options(*varsize);
|
||||
length uns(10) value;
|
||||
end-pi;
|
||||
|
||||
dcl-s len uns(10);
|
||||
|
||||
len = %scan(X'00': string: 1: length); // Limit to zero-terminated string
|
||||
if len = 0;
|
||||
len = length + 1;
|
||||
endif;
|
||||
if len <= 1;
|
||||
return 0;
|
||||
endif;
|
||||
return %checkr(' ': string: len - 1); // Trim right
|
||||
end-proc;
|
239
third_party/curl/packages/OS400/rpg-examples/SMTPSRCMBR
vendored
Normal file
239
third_party/curl/packages/OS400/rpg-examples/SMTPSRCMBR
vendored
Normal file
@ -0,0 +1,239 @@
|
||||
* Curl SMTP send source member as attachment
|
||||
*
|
||||
h DFTACTGRP(*NO) ACTGRP(*NEW)
|
||||
h OPTION(*NOSHOWCPY)
|
||||
h BNDDIR('CURL')
|
||||
*
|
||||
**************************************************************************
|
||||
* _ _ ____ _
|
||||
* Project ___| | | | _ \| |
|
||||
* / __| | | | |_) | |
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
* are also available at https://curl.se/docs/copyright.html.
|
||||
*
|
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
* copies of the Software, and permit persons to whom the Software is
|
||||
* furnished to do so, under the terms of the COPYING file.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF
|
||||
* ANY KIND, either express or implied.
|
||||
*
|
||||
* SPDX-License-Identifier: curl
|
||||
*
|
||||
**************************************************************************
|
||||
*
|
||||
/include H,CURL.INC
|
||||
*
|
||||
* Example to SMTP send source member as attachment via SMTP.
|
||||
*
|
||||
fRPGXAMPLESif e disk extmbr(program_name)
|
||||
f rename(RPGXAMPLES: record)
|
||||
d pi
|
||||
d url 60 SMTP server URL
|
||||
d recipient_mail 40 Recipient mail addr
|
||||
*
|
||||
d program_name c 'SMTPSRCMBR' Member name to send
|
||||
d sender_name c 'Curl' Sender name
|
||||
d sender_mail c 'curl@example.com' Sender e-mail
|
||||
d recipient_name c 'WIMC' Recipient name
|
||||
d crlf c X'0D25'
|
||||
*
|
||||
d urllen s 10u 0 URL length
|
||||
d rcptmlen s 10u 0 Recipient mail len
|
||||
*
|
||||
**************************************************************************
|
||||
|
||||
urllen = trimmed_length(url: %len(url));
|
||||
rcptmlen = trimmed_length(recipient_mail: %len(recipient_mail));
|
||||
|
||||
// Do the curl stuff.
|
||||
|
||||
curl_global_init(CURL_GLOBAL_ALL);
|
||||
main();
|
||||
curl_global_cleanup();
|
||||
*inlr = *on; // Exit
|
||||
*
|
||||
**************************************************************************
|
||||
* Main procedure: do the curl job.
|
||||
**************************************************************************
|
||||
*
|
||||
p main b
|
||||
d main pi
|
||||
*
|
||||
d h s * Easy handle
|
||||
d result s like(CURLcode) Curl return code
|
||||
d inz(CURLE_OUT_OF_MEMORY)
|
||||
d errmsgp s * Error string pointer
|
||||
d response s 52 For error display
|
||||
d headers s * inz(*NULL) Mail headers
|
||||
d rcpts s * inz(*NULL) List of recipients
|
||||
d mime s * Mail MIME structure
|
||||
d mimepart s * Mail part
|
||||
|
||||
// Create and fill curl handle.
|
||||
|
||||
h = curl_easy_init();
|
||||
if h <> *NULL;
|
||||
rcpts = curl_slist_append_ccsid(rcpts:
|
||||
%subst(recipient_mail: 1: rcptmlen): 0);
|
||||
headers = curl_slist_append_ccsid(headers: 'From: ' + sender_name +
|
||||
' <' + sender_mail + '>':
|
||||
0);
|
||||
headers = curl_slist_append_ccsid(headers: 'To: ' + recipient_name +
|
||||
' <' + %subst(recipient_mail: 1: rcptmlen) + '>': 0);
|
||||
headers = curl_slist_append_ccsid(headers: 'Subject: An ILE/RPG ' +
|
||||
'source program': 0);
|
||||
headers = curl_slist_append_ccsid(headers: 'Date: ' + mail_date():
|
||||
0);
|
||||
curl_easy_setopt_ccsid(h: CURLOPT_URL: %subst(url: 1: urllen): 0);
|
||||
curl_easy_setopt_ccsid(h: CURLOPT_MAIL_FROM: sender_mail: 0);
|
||||
curl_easy_setopt(h: CURLOPT_MAIL_RCPT: rcpts);
|
||||
curl_easy_setopt(h: CURLOPT_HTTPHEADER: headers);
|
||||
mime = curl_mime_init(h);
|
||||
mimepart = curl_mime_addpart(mime);
|
||||
curl_mime_data_ccsid(mimepart: 'Please find the ILE/RPG program ' +
|
||||
program_name + ' source code in ' +
|
||||
'attachment.' + crlf:
|
||||
CURL_ZERO_TERMINATED: 0);
|
||||
mimepart = curl_mime_addpart(mime);
|
||||
curl_mime_data_cb(mimepart: -1: %paddr(out_data_cb): *NULL: *NULL:
|
||||
*NULL);
|
||||
curl_mime_filename_ccsid(mimepart: program_name: 0);
|
||||
curl_mime_encoder_ccsid(mimepart: 'quoted-printable': 0);
|
||||
curl_easy_setopt(h: CURLOPT_MIMEPOST: mime);
|
||||
|
||||
// Perform the request.
|
||||
|
||||
setll *start RPGXAMPLES;
|
||||
result = curl_easy_perform(h);
|
||||
|
||||
// Cleanup.
|
||||
|
||||
curl_mime_free(mime);
|
||||
curl_slist_free_all(headers);
|
||||
curl_slist_free_all(rcpts);
|
||||
curl_easy_cleanup(h); // Release handle
|
||||
endif;
|
||||
|
||||
// Check for error and report if some.
|
||||
|
||||
if result <> CURLE_OK;
|
||||
errmsgp = curl_easy_strerror_ccsid(result: 0);
|
||||
response = %str(errmsgp);
|
||||
dsply '' '*EXT' response;
|
||||
else;
|
||||
response = 'Mail sent';
|
||||
dsply '' '*EXT' response;
|
||||
endif;
|
||||
p main e
|
||||
*
|
||||
**************************************************************************
|
||||
* Attachment data callback procedure.
|
||||
**************************************************************************
|
||||
*
|
||||
p out_data_cb b
|
||||
d out_data_cb pi 10u 0
|
||||
d ptr * value Output data pointer
|
||||
d size 10u 0 value Data element size
|
||||
d nmemb 10u 0 value Data element count
|
||||
d userdata * value User data pointer
|
||||
*
|
||||
d buffer s 9999999 based(ptr) Output buffer
|
||||
d line s 9999999 based(lineptr) ASCII line pointer
|
||||
d linelen s 10u 0
|
||||
d i s 10u 0 Buffer position
|
||||
*
|
||||
size = size * nmemb; // The size in bytes.
|
||||
i = 0;
|
||||
dow size - i >= %len(SRCDTA) + %len(crlf) and not %eof(RPGXAMPLES);
|
||||
read record;
|
||||
lineptr = curl_from_ccsid(%trimr(SRCDTA) + crlf: 0);
|
||||
linelen = %scan(X'00': line) - 1;
|
||||
%subst(buffer: i + 1: linelen) = %str(lineptr);
|
||||
curl_free(lineptr);
|
||||
i = i + linelen;
|
||||
enddo;
|
||||
return i;
|
||||
p out_data_cb e
|
||||
*
|
||||
**************************************************************************
|
||||
* Mail-formatted date procedure.
|
||||
**************************************************************************
|
||||
*
|
||||
p mail_date b
|
||||
d mail_date pi 50 varying
|
||||
*
|
||||
d sysval ds qualified To retrieve timezone
|
||||
d numsysval 10u 0
|
||||
d offset 10u 0
|
||||
d 100
|
||||
*
|
||||
d get_sysval pr extpgm('QWCRSVAL')
|
||||
d outdata likeds(sysval)
|
||||
d outsize 10u 0 const
|
||||
d numsysval 10u 0 const
|
||||
d name 10 const
|
||||
d errcode 10000 options(*varsize)
|
||||
*
|
||||
d now ds qualified
|
||||
d ts z
|
||||
d year 4s 0 overlay(ts: 1)
|
||||
d month 2s 0 overlay(ts: 6)
|
||||
d day 2s 0 overlay(ts: 9)
|
||||
d hour 2s 0 overlay(ts: 12)
|
||||
d minute 2 overlay(ts: 15)
|
||||
d second 2 overlay(ts: 18)
|
||||
*
|
||||
d sysvalinfo ds qualified based(sysvalinfoptr)
|
||||
d name 10
|
||||
d type 1
|
||||
d status 1
|
||||
d length 10u 0
|
||||
d value 99999
|
||||
*
|
||||
d qusec ds qualified
|
||||
d 10u 0 inz(0)
|
||||
*
|
||||
d weekday s 10u 0
|
||||
*
|
||||
now.ts = %timestamp(*SYS);
|
||||
get_sysval(sysval: %len(sysval): 1: 'QUTCOFFSET': qusec);
|
||||
sysvalinfoptr = %addr(sysval) + sysval.offset;
|
||||
weekday = %rem(%diff(now.ts: %timestamp('2001-01-01-00.00.00.000000'):
|
||||
*DAYS): 7);
|
||||
return %subst('MonTueWedThuFriSatSun': 3 * weekday + 1: 3) + ', ' +
|
||||
%char(now.day) + ' ' +
|
||||
%subst('JanFebMarAprMayJunJulAugSepOctNovDec':
|
||||
3 * now.month - 2: 3) + ' ' +
|
||||
%char(now.year) + ' ' +
|
||||
%char(now.hour) + ':' + now.minute + ':' + now.second + ' ' +
|
||||
%subst(sysvalinfo.value: 1: sysvalinfo.length);
|
||||
p mail_date e
|
||||
*
|
||||
**************************************************************************
|
||||
* Get the length of right-trimmed string
|
||||
**************************************************************************
|
||||
*
|
||||
p trimmed_length b
|
||||
d trimmed_length pi 10u 0
|
||||
d string 999999 const options(*varsize)
|
||||
d length 10u 0 value
|
||||
*
|
||||
d addrdiff s 10i 0
|
||||
d len s 10u 0
|
||||
*
|
||||
len = %scan(X'00': string: 1: length); // Limit to zero-terminated string
|
||||
if len = 0;
|
||||
len = length + 1;
|
||||
endif;
|
||||
if len <= 1;
|
||||
return 0;
|
||||
endif;
|
||||
return %checkr(' ': string: len - 1); // Trim right
|
||||
p trimmed_length e
|
12
third_party/curl/packages/README.md
vendored
Normal file
12
third_party/curl/packages/README.md
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
<!--
|
||||
Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
|
||||
SPDX-License-Identifier: curl
|
||||
-->
|
||||
|
||||
# Packages
|
||||
|
||||
This directory and all its subdirectories are for special package
|
||||
information, templates, scripts and docs. The files herein should be of use
|
||||
for those of you who want to package curl in a binary or source format for
|
||||
these platforms.
|
59
third_party/curl/packages/vms/Makefile.am
vendored
Normal file
59
third_party/curl/packages/vms/Makefile.am
vendored
Normal file
@ -0,0 +1,59 @@
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
EXTRA_DIST = \
|
||||
backup_gnv_curl_src.com \
|
||||
build_curl-config_script.com \
|
||||
build_gnv_curl.com \
|
||||
build_gnv_curl_pcsi_desc.com \
|
||||
build_gnv_curl_pcsi_text.com \
|
||||
build_gnv_curl_release_notes.com \
|
||||
build_libcurl_pc.com \
|
||||
build_vms.com \
|
||||
clean_gnv_curl.com \
|
||||
compare_curl_source.com \
|
||||
config_h.com \
|
||||
curl_crtl_init.c \
|
||||
curl_gnv_build_steps.txt \
|
||||
curl_release_note_start.txt \
|
||||
curl_startup.com \
|
||||
curlmsg.h \
|
||||
curlmsg.msg \
|
||||
curlmsg.sdl \
|
||||
curlmsg_vms.h \
|
||||
generate_config_vms_h_curl.com \
|
||||
generate_vax_transfer.com \
|
||||
gnv_conftest.c_first \
|
||||
gnv_curl_configure.sh \
|
||||
gnv_libcurl_symbols.opt \
|
||||
gnv_link_curl.com \
|
||||
macro32_exactcase.patch \
|
||||
make_gnv_curl_install.sh \
|
||||
make_pcsi_curl_kit_name.com \
|
||||
pcsi_gnv_curl_file_list.txt \
|
||||
pcsi_product_gnv_curl.com \
|
||||
readme \
|
||||
report_openssl_version.c \
|
||||
setup_gnv_curl_build.com \
|
||||
stage_curl_install.com \
|
||||
vms_eco_level.h
|
628
third_party/curl/packages/vms/Makefile.in
vendored
Normal file
628
third_party/curl/packages/vms/Makefile.in
vendored
Normal file
@ -0,0 +1,628 @@
|
||||
# Makefile.in generated by automake 1.16.5 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2021 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
VPATH = @srcdir@
|
||||
am__is_gnu_make = { \
|
||||
if test -z '$(MAKELEVEL)'; then \
|
||||
false; \
|
||||
elif test -n '$(MAKE_HOST)'; then \
|
||||
true; \
|
||||
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
||||
true; \
|
||||
else \
|
||||
false; \
|
||||
fi; \
|
||||
}
|
||||
am__make_running_with_option = \
|
||||
case $${target_option-} in \
|
||||
?) ;; \
|
||||
*) echo "am__make_running_with_option: internal error: invalid" \
|
||||
"target option '$${target_option-}' specified" >&2; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
has_opt=no; \
|
||||
sane_makeflags=$$MAKEFLAGS; \
|
||||
if $(am__is_gnu_make); then \
|
||||
sane_makeflags=$$MFLAGS; \
|
||||
else \
|
||||
case $$MAKEFLAGS in \
|
||||
*\\[\ \ ]*) \
|
||||
bs=\\; \
|
||||
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
|
||||
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
|
||||
esac; \
|
||||
fi; \
|
||||
skip_next=no; \
|
||||
strip_trailopt () \
|
||||
{ \
|
||||
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
|
||||
}; \
|
||||
for flg in $$sane_makeflags; do \
|
||||
test $$skip_next = yes && { skip_next=no; continue; }; \
|
||||
case $$flg in \
|
||||
*=*|--*) continue;; \
|
||||
-*I) strip_trailopt 'I'; skip_next=yes;; \
|
||||
-*I?*) strip_trailopt 'I';; \
|
||||
-*O) strip_trailopt 'O'; skip_next=yes;; \
|
||||
-*O?*) strip_trailopt 'O';; \
|
||||
-*l) strip_trailopt 'l'; skip_next=yes;; \
|
||||
-*l?*) strip_trailopt 'l';; \
|
||||
-[dEDm]) skip_next=yes;; \
|
||||
-[JT]) skip_next=yes;; \
|
||||
esac; \
|
||||
case $$flg in \
|
||||
*$$target_option*) has_opt=yes; break;; \
|
||||
esac; \
|
||||
done; \
|
||||
test $$has_opt = yes
|
||||
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
|
||||
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = packages/vms
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-amissl.m4 \
|
||||
$(top_srcdir)/m4/curl-bearssl.m4 \
|
||||
$(top_srcdir)/m4/curl-compilers.m4 \
|
||||
$(top_srcdir)/m4/curl-confopts.m4 \
|
||||
$(top_srcdir)/m4/curl-functions.m4 \
|
||||
$(top_srcdir)/m4/curl-gnutls.m4 \
|
||||
$(top_srcdir)/m4/curl-mbedtls.m4 \
|
||||
$(top_srcdir)/m4/curl-openssl.m4 \
|
||||
$(top_srcdir)/m4/curl-override.m4 \
|
||||
$(top_srcdir)/m4/curl-reentrant.m4 \
|
||||
$(top_srcdir)/m4/curl-rustls.m4 \
|
||||
$(top_srcdir)/m4/curl-schannel.m4 \
|
||||
$(top_srcdir)/m4/curl-sectransp.m4 \
|
||||
$(top_srcdir)/m4/curl-sysconfig.m4 \
|
||||
$(top_srcdir)/m4/curl-wolfssl.m4 $(top_srcdir)/m4/libtool.m4 \
|
||||
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
|
||||
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
|
||||
$(top_srcdir)/m4/xc-am-iface.m4 \
|
||||
$(top_srcdir)/m4/xc-cc-check.m4 \
|
||||
$(top_srcdir)/m4/xc-lt-iface.m4 \
|
||||
$(top_srcdir)/m4/xc-translit.m4 \
|
||||
$(top_srcdir)/m4/xc-val-flgs.m4 \
|
||||
$(top_srcdir)/m4/zz40-xc-ovr.m4 \
|
||||
$(top_srcdir)/m4/zz50-xc-ovr.m4 \
|
||||
$(top_srcdir)/m4/zz60-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
AM_V_P = $(am__v_P_@AM_V@)
|
||||
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||
am__v_P_0 = false
|
||||
am__v_P_1 = :
|
||||
AM_V_GEN = $(am__v_GEN_@AM_V@)
|
||||
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
am__v_GEN_1 =
|
||||
AM_V_at = $(am__v_at_@AM_V@)
|
||||
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
|
||||
am__v_at_0 = @
|
||||
am__v_at_1 =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
*) (install-info --version) >/dev/null 2>&1;; \
|
||||
esac
|
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||
am__DIST_COMMON = $(srcdir)/Makefile.in
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
APACHECTL = @APACHECTL@
|
||||
APXS = @APXS@
|
||||
AR = @AR@
|
||||
AR_FLAGS = @AR_FLAGS@
|
||||
AS = @AS@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BLANK_AT_MAKETIME = @BLANK_AT_MAKETIME@
|
||||
CADDY = @CADDY@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CFLAG_CURL_SYMBOL_HIDING = @CFLAG_CURL_SYMBOL_HIDING@
|
||||
CONFIGURE_OPTIONS = @CONFIGURE_OPTIONS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CPPFLAG_CURL_STATICLIB = @CPPFLAG_CURL_STATICLIB@
|
||||
CSCOPE = @CSCOPE@
|
||||
CTAGS = @CTAGS@
|
||||
CURLVERSION = @CURLVERSION@
|
||||
CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
|
||||
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@
|
||||
CURL_DISABLE_DICT = @CURL_DISABLE_DICT@
|
||||
CURL_DISABLE_FILE = @CURL_DISABLE_FILE@
|
||||
CURL_DISABLE_FTP = @CURL_DISABLE_FTP@
|
||||
CURL_DISABLE_GOPHER = @CURL_DISABLE_GOPHER@
|
||||
CURL_DISABLE_HTTP = @CURL_DISABLE_HTTP@
|
||||
CURL_DISABLE_IMAP = @CURL_DISABLE_IMAP@
|
||||
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
|
||||
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
|
||||
CURL_DISABLE_MQTT = @CURL_DISABLE_MQTT@
|
||||
CURL_DISABLE_POP3 = @CURL_DISABLE_POP3@
|
||||
CURL_DISABLE_PROXY = @CURL_DISABLE_PROXY@
|
||||
CURL_DISABLE_RTSP = @CURL_DISABLE_RTSP@
|
||||
CURL_DISABLE_SMB = @CURL_DISABLE_SMB@
|
||||
CURL_DISABLE_SMTP = @CURL_DISABLE_SMTP@
|
||||
CURL_DISABLE_TELNET = @CURL_DISABLE_TELNET@
|
||||
CURL_DISABLE_TFTP = @CURL_DISABLE_TFTP@
|
||||
CURL_LT_SHLIB_VERSIONED_FLAVOUR = @CURL_LT_SHLIB_VERSIONED_FLAVOUR@
|
||||
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
|
||||
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
|
||||
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
ENABLE_SHARED = @ENABLE_SHARED@
|
||||
ENABLE_STATIC = @ENABLE_STATIC@
|
||||
ETAGS = @ETAGS@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
FILECMD = @FILECMD@
|
||||
FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@
|
||||
GCOV = @GCOV@
|
||||
GREP = @GREP@
|
||||
HAVE_BROTLI = @HAVE_BROTLI@
|
||||
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
|
||||
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
|
||||
HAVE_LIBZ = @HAVE_LIBZ@
|
||||
HAVE_OPENSSL_QUIC = @HAVE_OPENSSL_QUIC@
|
||||
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@
|
||||
HAVE_PROTO_BSDSOCKET_H = @HAVE_PROTO_BSDSOCKET_H@
|
||||
HAVE_ZSTD = @HAVE_ZSTD@
|
||||
HTTPD = @HTTPD@
|
||||
HTTPD_NGHTTPX = @HTTPD_NGHTTPX@
|
||||
IDN_ENABLED = @IDN_ENABLED@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
IPV6_ENABLED = @IPV6_ENABLED@
|
||||
LCOV = @LCOV@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBCURL_LIBS = @LIBCURL_LIBS@
|
||||
LIBCURL_NO_SHARED = @LIBCURL_NO_SHARED@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MANIFEST_TOOL = @MANIFEST_TOOL@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PERL = @PERL@
|
||||
PKGADD_NAME = @PKGADD_NAME@
|
||||
PKGADD_PKG = @PKGADD_PKG@
|
||||
PKGADD_VENDOR = @PKGADD_VENDOR@
|
||||
PKGCONFIG = @PKGCONFIG@
|
||||
RANDOM_FILE = @RANDOM_FILE@
|
||||
RANLIB = @RANLIB@
|
||||
RC = @RC@
|
||||
REQUIRE_LIB_DEPS = @REQUIRE_LIB_DEPS@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SSL_BACKENDS = @SSL_BACKENDS@
|
||||
SSL_ENABLED = @SSL_ENABLED@
|
||||
SSL_LIBS = @SSL_LIBS@
|
||||
STRIP = @STRIP@
|
||||
SUPPORT_FEATURES = @SUPPORT_FEATURES@
|
||||
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
|
||||
TEST_NGHTTPX = @TEST_NGHTTPX@
|
||||
USE_ARES = @USE_ARES@
|
||||
USE_BEARSSL = @USE_BEARSSL@
|
||||
USE_GNUTLS = @USE_GNUTLS@
|
||||
USE_HYPER = @USE_HYPER@
|
||||
USE_LIBPSL = @USE_LIBPSL@
|
||||
USE_LIBRTMP = @USE_LIBRTMP@
|
||||
USE_LIBSSH = @USE_LIBSSH@
|
||||
USE_LIBSSH2 = @USE_LIBSSH2@
|
||||
USE_MBEDTLS = @USE_MBEDTLS@
|
||||
USE_MSH3 = @USE_MSH3@
|
||||
USE_NGHTTP2 = @USE_NGHTTP2@
|
||||
USE_NGHTTP3 = @USE_NGHTTP3@
|
||||
USE_NGTCP2 = @USE_NGTCP2@
|
||||
USE_NGTCP2_CRYPTO_BORINGSSL = @USE_NGTCP2_CRYPTO_BORINGSSL@
|
||||
USE_NGTCP2_CRYPTO_GNUTLS = @USE_NGTCP2_CRYPTO_GNUTLS@
|
||||
USE_NGTCP2_CRYPTO_QUICTLS = @USE_NGTCP2_CRYPTO_QUICTLS@
|
||||
USE_NGTCP2_CRYPTO_WOLFSSL = @USE_NGTCP2_CRYPTO_WOLFSSL@
|
||||
USE_NGTCP2_H3 = @USE_NGTCP2_H3@
|
||||
USE_OPENLDAP = @USE_OPENLDAP@
|
||||
USE_OPENSSL_H3 = @USE_OPENSSL_H3@
|
||||
USE_OPENSSL_QUIC = @USE_OPENSSL_QUIC@
|
||||
USE_QUICHE = @USE_QUICHE@
|
||||
USE_RUSTLS = @USE_RUSTLS@
|
||||
USE_SCHANNEL = @USE_SCHANNEL@
|
||||
USE_SECTRANSP = @USE_SECTRANSP@
|
||||
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
|
||||
USE_WIN32_CRYPTO = @USE_WIN32_CRYPTO@
|
||||
USE_WIN32_LARGE_FILES = @USE_WIN32_LARGE_FILES@
|
||||
USE_WIN32_SMALL_FILES = @USE_WIN32_SMALL_FILES@
|
||||
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
|
||||
USE_WOLFSSH = @USE_WOLFSSH@
|
||||
USE_WOLFSSL = @USE_WOLFSSL@
|
||||
VERSION = @VERSION@
|
||||
VERSIONNUM = @VERSIONNUM@
|
||||
VSFTPD = @VSFTPD@
|
||||
ZLIB_LIBS = @ZLIB_LIBS@
|
||||
ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
libext = @libext@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
runstatedir = @runstatedir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
EXTRA_DIST = \
|
||||
backup_gnv_curl_src.com \
|
||||
build_curl-config_script.com \
|
||||
build_gnv_curl.com \
|
||||
build_gnv_curl_pcsi_desc.com \
|
||||
build_gnv_curl_pcsi_text.com \
|
||||
build_gnv_curl_release_notes.com \
|
||||
build_libcurl_pc.com \
|
||||
build_vms.com \
|
||||
clean_gnv_curl.com \
|
||||
compare_curl_source.com \
|
||||
config_h.com \
|
||||
curl_crtl_init.c \
|
||||
curl_gnv_build_steps.txt \
|
||||
curl_release_note_start.txt \
|
||||
curl_startup.com \
|
||||
curlmsg.h \
|
||||
curlmsg.msg \
|
||||
curlmsg.sdl \
|
||||
curlmsg_vms.h \
|
||||
generate_config_vms_h_curl.com \
|
||||
generate_vax_transfer.com \
|
||||
gnv_conftest.c_first \
|
||||
gnv_curl_configure.sh \
|
||||
gnv_libcurl_symbols.opt \
|
||||
gnv_link_curl.com \
|
||||
macro32_exactcase.patch \
|
||||
make_gnv_curl_install.sh \
|
||||
make_pcsi_curl_kit_name.com \
|
||||
pcsi_gnv_curl_file_list.txt \
|
||||
pcsi_product_gnv_curl.com \
|
||||
readme \
|
||||
report_openssl_version.c \
|
||||
setup_gnv_curl_build.com \
|
||||
stage_curl_install.com \
|
||||
vms_eco_level.h
|
||||
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu packages/vms/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu packages/vms/Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
tags TAGS:
|
||||
|
||||
ctags CTAGS:
|
||||
|
||||
cscope cscopelist:
|
||||
|
||||
distdir: $(BUILT_SOURCES)
|
||||
$(MAKE) $(AM_MAKEFLAGS) distdir-am
|
||||
|
||||
distdir-am: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile
|
||||
installdirs:
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
if test -z '$(STRIP)'; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
install; \
|
||||
else \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||
fi
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am:
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
|
||||
cscopelist-am ctags-am distclean distclean-generic \
|
||||
distclean-libtool distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
tags-am uninstall uninstall-am
|
||||
|
||||
.PRECIOUS: Makefile
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
130
third_party/curl/packages/vms/backup_gnv_curl_src.com
vendored
Normal file
130
third_party/curl/packages/vms/backup_gnv_curl_src.com
vendored
Normal file
@ -0,0 +1,130 @@
|
||||
$! File: Backup_gnv_curl_src.com
|
||||
$!
|
||||
$! Procedure to create backup save sets for installing in a PCSI kit.
|
||||
$!
|
||||
$! To comply with most Open Source licenses, the source used for building
|
||||
$! a kit will be packaged with the distribution kit for the binary.
|
||||
$!
|
||||
$! Backup save sets are the only storage format that I can expect a
|
||||
$! VMS system to be able to extract ODS-5 filenames and directories.
|
||||
$!
|
||||
$! The make_pcsi_kit_name.com needs to be run before this procedure to
|
||||
$! properly name the files that will be created.
|
||||
$!
|
||||
$! This file is created from a template file for the purpose of making it
|
||||
$! easier to port Unix code, particularly open source code to VMS.
|
||||
$! Therefore permission is freely granted for any use.
|
||||
$!
|
||||
$! Copyright (C) John Malmberg
|
||||
$!
|
||||
$! Permission to use, copy, modify, and/or distribute this software for any
|
||||
$! purpose with or without fee is hereby granted, provided that the above
|
||||
$! copyright notice and this permission notice appear in all copies.
|
||||
$!
|
||||
$! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
$! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
$! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
$! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
$! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
$! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
$! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
$!
|
||||
$! SPDX-License-Identifier: ISC
|
||||
$!
|
||||
$!===========================================================================
|
||||
$!
|
||||
$! Save default
|
||||
$ default_dir = f$environment("DEFAULT")
|
||||
$!
|
||||
$ arch_type = f$getsyi("ARCH_NAME")
|
||||
$ arch_code = f$extract(0, 1, arch_type)
|
||||
$!
|
||||
$ if arch_code .nes. "V"
|
||||
$ then
|
||||
$ set proc/parse=extended
|
||||
$ endif
|
||||
$!
|
||||
$ ss_abort = 44
|
||||
$ status = ss_abort
|
||||
$!
|
||||
$ kit_name = f$trnlnm("GNV_PCSI_KITNAME")
|
||||
$ if kit_name .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "@MAKE_PCSI_CURL_KIT_NAME.COM has not been run."
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$ producer = f$trnlnm("GNV_PCSI_PRODUCER")
|
||||
$ if producer .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "@MAKE_PCSI_CURL_KIT_NAME.COM has not been run."
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$ filename_base = f$trnlnm("GNV_PCSI_FILENAME_BASE")
|
||||
$ if filename_base .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "@MAKE_PCSI_CURL_KIT_NAME.COM has not been run."
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$!
|
||||
$ node_swvers = f$getsyi("NODE_SWVERS")
|
||||
$ node_swvers_type = f$extract(0, 1, node_swvers)
|
||||
$ node_swvers_vers = f$extract(1, f$length(node_swvers), node_swvers)
|
||||
$ swvers_maj = f$element(0, ".", node_swvers_vers)
|
||||
$ node_swvers_min_update = f$element(1, ".", node_swvers_vers)
|
||||
$ swvers_min = f$element(0, "-", node_swvers_min_update)
|
||||
$ swvers_update = f$element(1, "-", node_swvers_min_update)
|
||||
$!
|
||||
$ if swvers_update .eqs. "-" then swvers_update = ""
|
||||
$!
|
||||
$ vms_vers = f$fao("!2ZB!2ZB!AS", 'swvers_maj', 'swvers_min', swvers_update)
|
||||
$!
|
||||
$!
|
||||
$!
|
||||
$! If available make an interchange save set
|
||||
$!-------------------------------------------
|
||||
$ interchange = ""
|
||||
$ if arch_code .eqs. "V"
|
||||
$ then
|
||||
$ interchange = "/interchange"
|
||||
$ endif
|
||||
$ if (swvers_maj .ges. "8") .and. (swvers_min .ges. 4)
|
||||
$ then
|
||||
$ interchange = "/interchange/noconvert"
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$! Move to the base directories
|
||||
$ set def [--]
|
||||
$!
|
||||
$! Put things back on error.
|
||||
$ on warning then goto all_exit
|
||||
$!
|
||||
$ current_default = f$environment("DEFAULT")
|
||||
$ my_dir = f$parse(current_default,,,"DIRECTORY") - "[" - "<" - ">" - "]"
|
||||
$!
|
||||
$ src_root = "src_root:"
|
||||
$ if f$trnlnm("src_root1") .nes. "" then src_root = "src_root1:"
|
||||
$ backup'interchange' 'src_root'[curl...]*.*;0 -
|
||||
'filename_base'_original_src.bck/sav
|
||||
$ status = $status
|
||||
$!
|
||||
$! There may be a VMS specific source kit
|
||||
$!-----------------------------------------
|
||||
$ vms_root = "vms_root:"
|
||||
$ if f$trnlnm("vms_root1") .nes. "" then vms_root = "vms_root1:"
|
||||
$ files_found = 0
|
||||
$ define/user sys$error nl:
|
||||
$ define/user sys$output nl:
|
||||
$ directory 'vms_root'[...]*.*;*/exc=*.dir
|
||||
$ if '$severity' .eq. 1 then files_found = 1
|
||||
$!
|
||||
$ if files_found .eq. 1
|
||||
$ then
|
||||
$ backup'interchange' 'vms_root'[curl...]*.*;0 -
|
||||
'filename_base'_vms_src.bck/sav
|
||||
$ status = $status
|
||||
$ endif
|
||||
$!
|
||||
$all_exit:
|
||||
$ set def 'default_dir'
|
||||
$ exit
|
153
third_party/curl/packages/vms/build_curl-config_script.com
vendored
Normal file
153
third_party/curl/packages/vms/build_curl-config_script.com
vendored
Normal file
@ -0,0 +1,153 @@
|
||||
$! build_curl-config_script.com
|
||||
$!
|
||||
$! This generates the curl-config. script from the curl-config.in file.
|
||||
$!
|
||||
$! Copyright (C) John Malmberg
|
||||
$!
|
||||
$! Permission to use, copy, modify, and/or distribute this software for any
|
||||
$! purpose with or without fee is hereby granted, provided that the above
|
||||
$! copyright notice and this permission notice appear in all copies.
|
||||
$!
|
||||
$! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
$! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
$! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
$! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
$! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
$! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
$! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
$!
|
||||
$! SPDX-License-Identifier: ISC
|
||||
$!
|
||||
$!===========================================================================
|
||||
$!
|
||||
$! Skip this if the curl-config. already exists.
|
||||
$ if f$search("[--]curl-config.") .nes. "" then goto all_exit
|
||||
$!
|
||||
$ if (f$getsyi("HW_MODEL") .lt. 1024)
|
||||
$ then
|
||||
$ arch_name = "VAX"
|
||||
$ else
|
||||
$ arch_name = ""
|
||||
$ arch_name = arch_name + f$edit(f$getsyi("ARCH_NAME"), "UPCASE")
|
||||
$ if (arch_name .eqs. "") then arch_name = "UNK"
|
||||
$ endif
|
||||
$!
|
||||
$ x_prefix = "/usr"
|
||||
$ x_exec_prefix = "/usr"
|
||||
$ x_includedir = "${prefix}/include"
|
||||
$ x_cppflag_curl_staticlib = "-DCURL_STATICLIB"
|
||||
$ x_enabled_shared = "no"
|
||||
$ x_curl_ca_bundle = ""
|
||||
$ x_cc = "cc"
|
||||
$ x_support_features = "SSL IPv6 libz NTLM"
|
||||
$ x_support_protocols1 = "DICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS LDAP"
|
||||
$ x_support_protocols2 = " LDAPS POP3 POP3S RTSP SMTP SMTPS TELNET TFTP"
|
||||
$ x_support_protocols = x_support_protocols1 + x_support_protocols2
|
||||
$ x_curlversion = "0.0.0.0"
|
||||
$ x_versionnum = ""
|
||||
$ x_libdir = "${prefix}/lib"
|
||||
$ x_require_lib_deps = ""
|
||||
$ x_enable_static = ""
|
||||
$ x_ldflags = ""
|
||||
$ part1 = "-L/usr/lib -L/SSL_LIB -lssl -lcrypto -lz"
|
||||
$ if arch_name .eqs. "VAX"
|
||||
$ then
|
||||
$ x_libcurl_libs = part1
|
||||
$ else
|
||||
$ x_libcurl_libs = part1 + " -lgssapi"
|
||||
$ endif
|
||||
$ x_libext = "a"
|
||||
$!
|
||||
$! Get the version number
|
||||
$!-----------------------
|
||||
$ i = 0
|
||||
$ open/read/error=version_loop_end vhf [--.include.curl]curlver.h
|
||||
$ version_loop:
|
||||
$ read/end=version_loop_end vhf line_in
|
||||
$ if line_in .eqs. "" then goto version_loop
|
||||
$ if f$locate("#define LIBCURL_VERSION ", line_in) .eq. 0
|
||||
$ then
|
||||
$ x_curlversion = f$element(2," ", line_in) - """" - """"
|
||||
$ i = i + 1
|
||||
$ endif
|
||||
$ if f$locate("#define LIBCURL_VERSION_NUM ", line_in) .eq. 0
|
||||
$ then
|
||||
$ x_versionnum = f$element(2," ", line_in) - """" - """"
|
||||
$ i = i + 1
|
||||
$ endif
|
||||
$ if i .lt 2 then goto version_loop
|
||||
$ version_loop_end:
|
||||
$ close vhf
|
||||
$!
|
||||
$ kit_type = "V"
|
||||
$ if f$locate("-", x_curlversion) .lt. f$length(x_curlversion)
|
||||
$ then
|
||||
$ kit_type = "D"
|
||||
$ x_prefix = "/beta"
|
||||
$ x_exec_prefix = "/beta"
|
||||
$ endif
|
||||
$!
|
||||
$ if kit_type .nes. "D"
|
||||
$ then
|
||||
$ part1 = " echo "" '--prefix=/usr' '--exec-prefix=/usr' "
|
||||
$ else
|
||||
$ part1 = " echo "" '--prefix=/beta' '--exec_prefix=/beta' "
|
||||
$ endif
|
||||
$ if arch_name .eqs. "VAX"
|
||||
$ then
|
||||
$ part3 = ""
|
||||
$ else
|
||||
$ part3 = "'--with-gssapi' "
|
||||
$ endif
|
||||
$ part2 = "'--disable-dependency-tracking' '--disable-libtool-lock' "
|
||||
$ part4 = "'--disable-ntlm-wb' '--with-ca-path=gnv$curl_ca_path'"""
|
||||
$!
|
||||
$ x_configure_options = part1 + part2 + part3 + part4
|
||||
$!
|
||||
$!
|
||||
$ open/read/error=read_loop_end c_c_in sys$disk:[--]curl-config.in
|
||||
$ create sys$disk:[--]curl-config.
|
||||
$ open/append c_c_out sys$disk:[--]curl-config.
|
||||
$read_loop:
|
||||
$ read/end=read_loop_end c_c_in line_in
|
||||
$ line_in_len = f$length(line_in)
|
||||
$ if f$locate("@", line_in) .ge. line_in_len
|
||||
$ then
|
||||
$ write c_c_out line_in
|
||||
$ goto read_loop
|
||||
$ endif
|
||||
$ i = 0
|
||||
$ line_out = ""
|
||||
$sub_loop:
|
||||
$ ! Replace between pairs of @ by alternating the elements.
|
||||
$ ! If mis-matched pairs, do not substitute anything.
|
||||
$ section1 = f$element(i, "@", line_in)
|
||||
$ if section1 .eqs. "@"
|
||||
$ then
|
||||
$ goto sub_loop_end
|
||||
$ endif
|
||||
$ i = i + 1
|
||||
$ section2 = f$element(i, "@", line_in)
|
||||
$ if section2 .eqs. "@"
|
||||
$ then
|
||||
$ goto sub_loop_end
|
||||
$ endif
|
||||
$ i = i + 1
|
||||
$ section3 = f$element(i, "@", line_in)
|
||||
$ if section3 .eqs. "@"
|
||||
$ then
|
||||
$ if line_out .eqs. "" then line_out = line_in
|
||||
$ goto sub_loop_end
|
||||
$ endif
|
||||
$ line_out = line_out + section1
|
||||
$ if f$type(x_'section2') .eqs. "STRING"
|
||||
$ then
|
||||
$ line_out = line_out + x_'section2'
|
||||
$ endif
|
||||
$ goto sub_loop
|
||||
$sub_loop_end:
|
||||
$ write c_c_out line_out
|
||||
$ goto read_loop
|
||||
$read_loop_end:
|
||||
$ close c_c_in
|
||||
$ close c_c_out
|
36
third_party/curl/packages/vms/build_gnv_curl.com
vendored
Normal file
36
third_party/curl/packages/vms/build_gnv_curl.com
vendored
Normal file
@ -0,0 +1,36 @@
|
||||
$! File: build_gnv_curl.com
|
||||
$!
|
||||
$! All in one build procedure
|
||||
$!
|
||||
$! Copyright (C) John Malmberg
|
||||
$!
|
||||
$! Permission to use, copy, modify, and/or distribute this software for any
|
||||
$! purpose with or without fee is hereby granted, provided that the above
|
||||
$! copyright notice and this permission notice appear in all copies.
|
||||
$!
|
||||
$! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
$! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
$! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
$! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
$! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
$! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
$! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
$!
|
||||
$! SPDX-License-Identifier: ISC
|
||||
$!
|
||||
$!-----------------------------------------------------------------------
|
||||
$!
|
||||
$ @setup_gnv_curl_build.com
|
||||
$!
|
||||
$ bash gnv_curl_configure.sh
|
||||
$!
|
||||
$ @clean_gnv_curl.com
|
||||
$!
|
||||
$ bash make_gnv_curl_install.sh
|
||||
$!
|
||||
$ @gnv_link_curl.com
|
||||
$!
|
||||
$ purge new_gnu:[*...]/log
|
||||
$!
|
||||
$!
|
||||
$exit
|
489
third_party/curl/packages/vms/build_gnv_curl_pcsi_desc.com
vendored
Normal file
489
third_party/curl/packages/vms/build_gnv_curl_pcsi_desc.com
vendored
Normal file
@ -0,0 +1,489 @@
|
||||
$! File: Build_GNV_CURL_PCSI_DESC.COM
|
||||
$!
|
||||
$! Build the *.pcsi$text file in the following sections:
|
||||
$! Required software dependencies.
|
||||
$! install/upgrade/postinstall steps.
|
||||
$! 1. Duplicate filenames need an alias procedure. (N/A for curl)
|
||||
$! 2. ODS-5 filenames need an alias procedure. (N/A for curl)
|
||||
$! 3. Special alias links for executables (curl. -> curl.exe)
|
||||
$! if a lot, then an alias procedure is needed.
|
||||
$! 4. Rename the files to lowercase.
|
||||
$! Move Release Notes to destination
|
||||
$! Source kit option
|
||||
$! Create directory lines
|
||||
$! Add file lines for curl.
|
||||
$! Add Link alias procedure file (N/A for curl)
|
||||
$! Add [.SYS$STARTUP]curl_startup file
|
||||
$! Add Release notes file.
|
||||
$!
|
||||
$! The file PCSI_GNV_CURL_FILE_LIST.TXT is read in to get the files other
|
||||
$! than the release notes file and the source backup file.
|
||||
$!
|
||||
$! The PCSI system can really only handle ODS-2 format filenames and
|
||||
$! assumes that there is only one source directory. It also assumes that
|
||||
$! all destination files with the same name come from the same source file.
|
||||
$! Fortunately CURL does not trip most of these issues, so those steps
|
||||
$! above are marked N/A.
|
||||
$!
|
||||
$! A rename action section is needed to make sure that the files are
|
||||
$! created in the GNV$GNU: in the correct case, and to create the alias
|
||||
$! link [usr.bin]curl. for [usr.bin]curl.exe.
|
||||
$!
|
||||
$! Copyright (C) John Malmberg
|
||||
$!
|
||||
$! Permission to use, copy, modify, and/or distribute this software for any
|
||||
$! purpose with or without fee is hereby granted, provided that the above
|
||||
$! copyright notice and this permission notice appear in all copies.
|
||||
$!
|
||||
$! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
$! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
$! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
$! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
$! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
$! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
$! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
$!
|
||||
$! SPDX-License-Identifier: ISC
|
||||
$!
|
||||
$!===========================================================================
|
||||
$!
|
||||
$ kit_name = f$trnlnm("GNV_PCSI_KITNAME")
|
||||
$ if kit_name .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "@MAKE_PCSI_CURL_KIT_NAME.COM has not been run."
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$ producer = f$trnlnm("GNV_PCSI_PRODUCER")
|
||||
$ if producer .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "@MAKE_PCSI_CURL_KIT_NAME.COM has not been run."
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$ filename_base = f$trnlnm("GNV_PCSI_FILENAME_BASE")
|
||||
$ if filename_base .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "@MAKE_PCSI_CURL_KIT_NAME.COM has not been run."
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$! Parse the kit name into components.
|
||||
$!---------------------------------------
|
||||
$ producer = f$element(0, "-", kit_name)
|
||||
$ base = f$element(1, "-", kit_name)
|
||||
$ product = f$element(2, "-", kit_name)
|
||||
$ mmversion = f$element(3, "-", kit_name)
|
||||
$ majorver = f$extract(0, 3, mmversion)
|
||||
$ minorver = f$extract(3, 2, mmversion)
|
||||
$ updatepatch = f$element(4, "-", kit_name)
|
||||
$ if updatepatch .eqs. "-" then updatepatch = ""
|
||||
$!
|
||||
$! kit type of "D" means a daily build
|
||||
$ kit_type = f$edit(f$extract(0, 1, majorver), "upcase")
|
||||
$!
|
||||
$!
|
||||
$ product_line = "product ''producer' ''base' ''product'"
|
||||
$ if updatepatch .eqs. ""
|
||||
$ then
|
||||
$ product_name = " ''majorver'.''minorver'"
|
||||
$ else
|
||||
$ product_name = " ''majorver'.''minorver'-''updatepatch'"
|
||||
$ endif
|
||||
$ product_line = product_line + " ''product_name' full;"
|
||||
$!write sys$output product_line
|
||||
$!
|
||||
$!
|
||||
$!
|
||||
$! Create the file as a VMS text file.
|
||||
$!----------------------------------------
|
||||
$ base_file = kit_name
|
||||
$ create 'base_file'.pcsi$desc
|
||||
$!
|
||||
$!
|
||||
$! Start building file.
|
||||
$!----------------------
|
||||
$ open/append pdsc 'base_file'.pcsi$desc
|
||||
$!
|
||||
$ write pdsc product_line
|
||||
$!
|
||||
$! Required product dependencies.
|
||||
$!----------------------------------
|
||||
$ vmsprd = "DEC"
|
||||
$ if base .eqs. "I64VMS" then vmsprd = "HP"
|
||||
$ vsiprd = "VSI"
|
||||
$!
|
||||
$ write pdsc " software ''vmsprd' ''base' VMS ;"
|
||||
$ arch_type = f$getsyi("ARCH_NAME")
|
||||
$ node_swvers = f$getsyi("node_swvers")
|
||||
$ vernum = f$extract(1, f$length(node_swvers), node_swvers)
|
||||
$ majver = f$element(0, ".", vernum)
|
||||
$ minverdash = f$element(1, ".", vernum)
|
||||
$ minver = f$element(0, "-", minverdash)
|
||||
$ dashver = f$element(1, "-", minverdash)
|
||||
$ if dashver .eqs. "-" then dashver = ""
|
||||
$ vmstag = majver + minver + dashver
|
||||
$ code = f$extract(0, 1, arch_type)
|
||||
$ arch_code = f$extract(0, 1, arch_type)
|
||||
$ line_out = -
|
||||
" if ((not <software ''vsiprd' ''base' VMS version minimum" + -
|
||||
" ''node_swvers'>) and" + -
|
||||
" (not <software ''vmsprd' ''base' VMS version minimum ''node_swvers'>));"
|
||||
$ write pdsc line_out
|
||||
$ write pdsc " error NEED_VMS''vmstag';"
|
||||
$ write pdsc " end if;"
|
||||
$!
|
||||
$write pdsc " software VMSPORTS ''base' ZLIB ;"
|
||||
$write pdsc -
|
||||
" if (not <software VMSPORTS ''base' ZLIB version minimum V1.2-8>) ;"
|
||||
$write pdsc " error NEED_ZLIB;"
|
||||
$write pdsc " end if;"
|
||||
$!
|
||||
$!
|
||||
$!
|
||||
$! install/upgrade/postinstall steps.
|
||||
$!-----------------------------------
|
||||
$! 1. Duplicate filenames need an alias procedure. (N/A for curl)
|
||||
$! 2. ODS-5 filenames need an alias procedure. (N/A for curl)
|
||||
$! 3. Special alias links for executables (curl. -> curl.exe)
|
||||
$! if a lot, then an alias procedure is needed.
|
||||
$! 4. Rename the files to lowercase.
|
||||
$!
|
||||
$!
|
||||
$! Alias links needed.
|
||||
$!-------------------------
|
||||
$ add_alias_lines = ""
|
||||
$ rem_alias_lines = ""
|
||||
$ line_out = ""
|
||||
$!
|
||||
$! Read through the file list to set up aliases and rename commands.
|
||||
$!---------------------------------------------------------------------
|
||||
$ open/read flst pcsi_gnv_curl_file_list.txt
|
||||
$!
|
||||
$inst_alias_loop:
|
||||
$ read/end=inst_alias_loop_end flst line_in
|
||||
$ line_in = f$edit(line_in,"compress,trim,uncomment")
|
||||
$ if line_in .eqs. "" then goto inst_alias_loop
|
||||
$ pathname = f$element(0, " ", line_in)
|
||||
$ linkflag = f$element(1, " ", line_in)
|
||||
|
||||
$ if linkflag .nes. "->" then goto inst_alias_write
|
||||
$!
|
||||
$ linktarget = f$element(2, " ", line_in)
|
||||
$ if kit_type .eqs. "D"
|
||||
$ then
|
||||
$ old_start = f$locate("[gnv.usr", pathname)
|
||||
$ if old_start .lt. f$length(pathname)
|
||||
$ then
|
||||
$ pathname = "[gnv.beta" + pathname - "[gnv.usr"
|
||||
$ linktarget = "[gnv.beta" + linktarget - "[gnv.usr"
|
||||
$ endif
|
||||
$ endif
|
||||
$ nlink = "pcsi$destination:" + pathname
|
||||
$ ntarg = "pcsi$destination:" + linktarget
|
||||
$ new_add_alias_line = -
|
||||
"""if f$search(""""''nlink'"""") .eqs. """""""" then" + -
|
||||
" set file/enter=''nlink' ''ntarg'"""
|
||||
$ if add_alias_lines .nes. ""
|
||||
$ then
|
||||
$ add_alias_lines = add_alias_lines + "," + new_add_alias_line
|
||||
$ else
|
||||
$ add_alias_lines = new_add_alias_line
|
||||
$ endif
|
||||
$!
|
||||
$ new_rem_alias_line = -
|
||||
"""if f$search(""""''nlink'"""") .nes. """""""" then" + -
|
||||
" set file/remove ''nlink';"""
|
||||
$ if rem_alias_lines .nes. ""
|
||||
$ then
|
||||
$ rem_alias_lines = rem_alias_lines + "," + new_rem_alias_line
|
||||
$ else
|
||||
$ rem_alias_lines = new_rem_alias_line
|
||||
$ endif
|
||||
$!
|
||||
$ goto inst_alias_loop
|
||||
$!
|
||||
$inst_alias_write:
|
||||
$!
|
||||
$! execute install / remove
|
||||
$ write pdsc " execute install ("
|
||||
$! add aliases
|
||||
$ i = 0
|
||||
$ex_ins_loop:
|
||||
$ line = f$element(i, ",", add_alias_lines)
|
||||
$ i = i + 1
|
||||
$ if line .eqs. "" then goto ex_ins_loop
|
||||
$ if line .eqs. "," then goto ex_ins_loop_end
|
||||
$ if line_out .nes. "" then write pdsc line_out,","
|
||||
$ line_out = line
|
||||
$ goto ex_ins_loop
|
||||
$ex_ins_loop_end:
|
||||
$ write pdsc line_out
|
||||
$ line_out = ""
|
||||
$ write pdsc " )"
|
||||
$ write pdsc " remove ("
|
||||
$! remove aliases
|
||||
$ i = 0
|
||||
$ex_rem_loop:
|
||||
$ line = f$element(i, ",", rem_alias_lines)
|
||||
$ i = i + 1
|
||||
$ if line .eqs. "" then goto ex_rem_loop
|
||||
$ if line .eqs. "," then goto ex_rem_loop_end
|
||||
$ if line_out .nes. "" then write pdsc line_out,","
|
||||
$ line_out = line
|
||||
$ goto ex_rem_loop
|
||||
$ex_rem_loop_end:
|
||||
$ write pdsc line_out
|
||||
$ line_out = ""
|
||||
$ write pdsc " ) ;"
|
||||
$!
|
||||
$! execute upgrade
|
||||
$ write pdsc " execute upgrade ("
|
||||
$ i = 0
|
||||
$ex_upg_loop:
|
||||
$ line = f$element(i, ",", rem_alias_lines)
|
||||
$ i = i + 1
|
||||
$ if line .eqs. "" then goto ex_upg_loop
|
||||
$ if line .eqs. "," then goto ex_upg_loop_end
|
||||
$ if line_out .nes. "" then write pdsc line_out,","
|
||||
$ line_out = line
|
||||
$ goto ex_upg_loop
|
||||
$ex_upg_loop_end:
|
||||
$ write pdsc line_out
|
||||
$ line_out = ""
|
||||
$! remove aliases
|
||||
$ write pdsc " ) ;"
|
||||
$!
|
||||
$! execute postinstall
|
||||
$ write pdsc " execute postinstall ("
|
||||
$ if arch_code .nes. "V"
|
||||
$ then
|
||||
$ line_out = " ""set process/parse=extended"""
|
||||
$ endif
|
||||
$ i = 0
|
||||
$ex_pins_loop:
|
||||
$ line = f$element(i, ",", add_alias_lines)
|
||||
$ i = i + 1
|
||||
$ if line .eqs. "" then goto ex_pins_loop
|
||||
$ if line .eqs. "," then goto ex_pins_loop_end
|
||||
$ if line_out .nes. "" then write pdsc line_out,","
|
||||
$ line_out = line
|
||||
$ goto ex_pins_loop
|
||||
$ex_pins_loop_end:
|
||||
$ if line_out .eqs. "" then line_out = " ""continue"""
|
||||
$! write pdsc line_out
|
||||
$! line_out = ""
|
||||
$! add aliases and follow with renames.
|
||||
$!
|
||||
$goto inst_dir
|
||||
$!
|
||||
$inst_dir_loop:
|
||||
$ read/end=inst_alias_loop_end flst line_in
|
||||
$ line_in = f$edit(line_in,"compress,trim,uncomment")
|
||||
$ if line_in .eqs. "" then goto inst_dir_loop
|
||||
$inst_dir:
|
||||
$ pathname = f$element(0, " ", line_in)
|
||||
$ if kit_type .eqs. "D"
|
||||
$ then
|
||||
$ if pathname .eqs. "[gnv]usr.dir"
|
||||
$ then
|
||||
$ pathname = "[gnv]beta.dir"
|
||||
$ else
|
||||
$ old_start = f$locate("[gnv.usr", pathname)
|
||||
$ if old_start .lt. f$length(pathname)
|
||||
$ then
|
||||
$ pathname = "[gnv.beta" + pathname - "[gnv.usr"
|
||||
$ endif
|
||||
$ endif
|
||||
$ endif
|
||||
$!
|
||||
$! Ignore the directory entries for now.
|
||||
$!-----------------------------------------
|
||||
$ filedir = f$parse(pathname,,,"DIRECTORY")
|
||||
$ if pathname .eqs. filedir then goto inst_dir_loop
|
||||
$!
|
||||
$! process .dir extensions for rename
|
||||
$! If this is not a directory then start processing files.
|
||||
$!-------------------------
|
||||
$ filetype = f$parse(pathname,,,"TYPE")
|
||||
$ filetype_u = f$edit(filetype, "upcase")
|
||||
$ filename = f$parse(pathname,,,"NAME")
|
||||
$ if filetype_u .nes. ".DIR" then goto inst_file
|
||||
$!
|
||||
$! process directory lines for rename.
|
||||
$!--------------------------------------
|
||||
$ if line_out .nes. ""
|
||||
$ then
|
||||
$ write pdsc line_out,","
|
||||
$ line_out = ""
|
||||
$ endif
|
||||
$ if arch_code .nes. "V"
|
||||
$ then
|
||||
$ if line_out .nes. "" then write pdsc line_out,","
|
||||
$ line_out = " ""rename pcsi$destination:''pathname' ''filename'.DIR"""
|
||||
$ else
|
||||
$ if line_out .nes. "" then write pdsc line_out
|
||||
$ line_out = ""
|
||||
$ endif
|
||||
$ goto inst_dir_loop
|
||||
$!
|
||||
$!
|
||||
$! process file lines for rename
|
||||
$!---------------------------------
|
||||
$inst_file_loop:
|
||||
$ read/end=inst_alias_loop_end flst line_in
|
||||
$ line_in = f$edit(line_in,"compress,trim,uncomment")
|
||||
$ if line_in .eqs. "" then goto inst_dir_loop
|
||||
$ pathname = f$element(0, " ", line_in)
|
||||
$ if kit_type .eqs. "D"
|
||||
$ then
|
||||
$ if pathname .eqs. "[gnv]usr.dir"
|
||||
$ then
|
||||
$ pathname = "[gnv]beta.dir"
|
||||
$ else
|
||||
$ old_start = f$locate("[gnv.usr", pathname)
|
||||
$ if old_start .lt. f$length(pathname)
|
||||
$ then
|
||||
$ pathname = "[gnv.beta" + pathname - "[gnv.usr"
|
||||
$ endif
|
||||
$ endif
|
||||
$ endif
|
||||
$!
|
||||
$! Filenames with $ in them are VMS special and do not need to be lowercase.
|
||||
$! --------------------------------------------------------------------------
|
||||
$ if f$locate("$", pathname) .lt. f$length(pathname) then goto inst_file_loop
|
||||
$!
|
||||
$ filetype = f$parse(pathname,,,"TYPE")
|
||||
$ filename = f$parse(pathname,,,"NAME") + filetype
|
||||
$inst_file:
|
||||
$ if arch_code .nes. "V"
|
||||
$ then
|
||||
$ if line_out .nes. "" then write pdsc line_out,","
|
||||
$ filetype = f$parse(pathname,,,"TYPE")
|
||||
$ filename = f$parse(pathname,,,"NAME") + filetype
|
||||
$ line_out = " ""rename pcsi$destination:''pathname' ''filename'"""
|
||||
$ else
|
||||
$ if line_out .nes. "" then write pdsc line_out
|
||||
$ line_out = ""
|
||||
$ endif
|
||||
$ goto inst_file_loop
|
||||
$!
|
||||
$inst_alias_loop_end:
|
||||
$!
|
||||
$write pdsc line_out
|
||||
$write pdsc " ) ;"
|
||||
$close flst
|
||||
$!
|
||||
$! Move Release Notes to destination
|
||||
$!-------------------------------------
|
||||
$write pdsc " information RELEASE_NOTES phase after ;"
|
||||
$!
|
||||
$! Source kit option
|
||||
$!---------------------
|
||||
$write pdsc " option SOURCE default 0;"
|
||||
$write pdsc " directory ""[gnv.common_src]"" PROTECTION PUBLIC ;"
|
||||
$write pdsc -
|
||||
" file ""[gnv.common_src]''filename_base'_original_src.bck"""
|
||||
$write pdsc -
|
||||
" source [common_src]''filename_base'_original_src.bck ;"
|
||||
$if f$search("gnv$gnu:[vms_src]''filename_base'_vms_src.bck") .nes. ""
|
||||
$then
|
||||
$ write pdsc " directory ""[gnv.vms_src]"" PROTECTION PUBLIC ;"
|
||||
$ write pdsc " file ""[gnv.vms_src]''filename_base'_vms_src.bck"""
|
||||
$ write pdsc " source [vms_src]''filename_base'_vms_src.bck ;"
|
||||
$endif
|
||||
$write pdsc " end option;"
|
||||
$!
|
||||
$!
|
||||
$! Read through the file list again.
|
||||
$!----------------------------------
|
||||
$open/read flst pcsi_gnv_curl_file_list.txt
|
||||
$!
|
||||
$!
|
||||
$! Create directory lines
|
||||
$!-------------------------
|
||||
$flst_dir_loop:
|
||||
$ read/end=flst_loop_end flst line_in
|
||||
$ line_in = f$edit(line_in,"compress,trim,uncomment")
|
||||
$ if line_in .eqs. "" then goto flst_dir_loop
|
||||
$!
|
||||
$ filename = f$element(0, " ", line_in)
|
||||
$ linkflag = f$element(1, " ", line_in)
|
||||
$ if linkflag .eqs. "->" then goto flst_dir_loop
|
||||
$!
|
||||
$! Ignore .dir extensions
|
||||
$!-------------------------
|
||||
$ filetype = f$edit(f$parse(filename,,,"TYPE"), "upcase")
|
||||
$ if filetype .eqs. ".DIR" then goto flst_dir_loop
|
||||
$!
|
||||
$ destname = filename
|
||||
$ if kit_type .eqs. "D"
|
||||
$ then
|
||||
$ old_start = f$locate("[gnv.usr", destname)
|
||||
$ if old_start .lt. f$length(destname)
|
||||
$ then
|
||||
$ destname = "[gnv.beta" + destname - "[gnv.usr"
|
||||
$ endif
|
||||
$ endif
|
||||
$!
|
||||
$! It should be just a directory then.
|
||||
$!-------------------------------------
|
||||
$ filedir = f$edit(f$parse(filename,,,"DIRECTORY"), "lowercase")
|
||||
$! If this is not a directory then start processing files.
|
||||
$!---------------------------------------------------------
|
||||
$ if filename .nes. filedir then goto flst_file
|
||||
$!
|
||||
$ write pdsc " directory ""''destname'"" PROTECTION PUBLIC ;"
|
||||
$ goto flst_dir_loop
|
||||
$!
|
||||
$!
|
||||
$! Add file lines for curl.
|
||||
$!---------------------------
|
||||
$flst_file_loop:
|
||||
$ read/end=flst_loop_end flst line_in
|
||||
$ line_in = f$edit(line_in,"compress,trim,uncomment")
|
||||
$ if line_in .eqs. "" then goto inst_file_loop
|
||||
$ filename = f$element(0, " ", line_in)
|
||||
$ destname = filename
|
||||
$ if kit_type .eqs. "D"
|
||||
$ then
|
||||
$ old_start = f$locate("[gnv.usr", destname)
|
||||
$ if old_start .lt. f$length(destname)
|
||||
$ then
|
||||
$ destname = "[gnv.beta" + destname - "[gnv.usr"
|
||||
$ endif
|
||||
$ endif
|
||||
$flst_file:
|
||||
$ srcfile = filename - "gnv."
|
||||
$ write pdsc " file ""''destname'"" "
|
||||
$ write pdsc " source ""''srcfile'"" ;"
|
||||
$ goto flst_file_loop
|
||||
$!
|
||||
$flst_loop_end:
|
||||
$ close flst
|
||||
$!
|
||||
$! Add Link alias procedure file (N/A for curl)
|
||||
$!------------------------------------------------
|
||||
$!
|
||||
$! Add [.SYS$STARTUP]curl_startup file
|
||||
$!---------------------------------------
|
||||
$ if kit_type .eqs. "D"
|
||||
$ then
|
||||
$ write pdsc " file ""[sys$startup]curl_daily_startup.com"""
|
||||
$ else
|
||||
$ write pdsc " file ""[sys$startup]curl_startup.com"""
|
||||
$ endif
|
||||
$ write pdsc " source [usr.lib]curl_startup.com ;"
|
||||
$!
|
||||
$! Add Release notes file.
|
||||
$!------------------------------
|
||||
$ write pdsc -
|
||||
" file ""[SYSHLP]''filename_base'.release_notes"" release notes ;"
|
||||
$!
|
||||
$! Close the product file
|
||||
$!------------------------
|
||||
$ write pdsc "end product;"
|
||||
$!
|
||||
$close pdsc
|
||||
$!
|
||||
$all_exit:
|
||||
$ exit
|
195
third_party/curl/packages/vms/build_gnv_curl_pcsi_text.com
vendored
Normal file
195
third_party/curl/packages/vms/build_gnv_curl_pcsi_text.com
vendored
Normal file
@ -0,0 +1,195 @@
|
||||
$! File: Build_GNV_curl_pcsi_text.com
|
||||
$!
|
||||
$! Build the *.pcsi$text file from the four components:
|
||||
$! 1. Generated =product header section
|
||||
$! 2. [--]readme. file from the Curl distribution, modified to fit
|
||||
$! a pcsi$text file format.
|
||||
$! 3. [--]copying file from the Curl distribution, modified to fit
|
||||
$! a pcsi$text file format.
|
||||
$! 4. Generated Producer section.
|
||||
$!
|
||||
$! Set the name of the release notes from the GNV_PCSI_FILENAME_BASE
|
||||
$!
|
||||
$! Copyright (C) John Malmberg
|
||||
$!
|
||||
$! Permission to use, copy, modify, and/or distribute this software for any
|
||||
$! purpose with or without fee is hereby granted, provided that the above
|
||||
$! copyright notice and this permission notice appear in all copies.
|
||||
$!
|
||||
$! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
$! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
$! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
$! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
$! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
$! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
$! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
$!
|
||||
$! SPDX-License-Identifier: ISC
|
||||
$!
|
||||
$!===========================================================================
|
||||
$!
|
||||
$ kit_name = f$trnlnm("GNV_PCSI_KITNAME")
|
||||
$ if kit_name .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "@MAKE_PCSI_CURL_KIT_NAME.COM has not been run."
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$ producer = f$trnlnm("GNV_PCSI_PRODUCER")
|
||||
$ if producer .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "@MAKE_PCSI_CURL_KIT_NAME.COM has not been run."
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$ producer_full_name = f$trnlnm("GNV_PCSI_PRODUCER_FULL_NAME")
|
||||
$ if producer_full_name .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "@MAKE_PCSI_CURL_KIT_NAME.COM has not been run."
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$! Parse the kit name into components.
|
||||
$!---------------------------------------
|
||||
$ producer = f$element(0, "-", kit_name)
|
||||
$ base = f$element(1, "-", kit_name)
|
||||
$ product = f$element(2, "-", kit_name)
|
||||
$ mmversion = f$element(3, "-", kit_name)
|
||||
$ majorver = f$extract(0, 3, mmversion)
|
||||
$ minorver = f$extract(3, 2, mmversion)
|
||||
$ updatepatch = f$element(4, "-", kit_name)
|
||||
$ if updatepatch .eqs. "-" then updatepatch = ""
|
||||
$!
|
||||
$!
|
||||
$ product_line = "=product ''producer' ''base' ''product'"
|
||||
$ if updatepatch .eqs. ""
|
||||
$ then
|
||||
$ product_name = " ''majorver'.''minorver'"
|
||||
$ else
|
||||
$ product_name = " ''majorver'.''minorver'-''updatepatch'"
|
||||
$ endif
|
||||
$ product_line = product_line + " ''product_name' full"
|
||||
$!
|
||||
$!
|
||||
$! If this is VAX and the file is on NFS, the names may be mangled.
|
||||
$!-----------------------------------------------------------------
|
||||
$ readme_file = ""
|
||||
$ if f$search("[--]readme.") .nes. ""
|
||||
$ then
|
||||
$ readme_file = "[--]readme."
|
||||
$ else
|
||||
$ if f$search("[--]$README.") .nes. ""
|
||||
$ then
|
||||
$ readme_file = "[--]$README."
|
||||
$ else
|
||||
$ write sys$output "Can not find readme file."
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$ endif
|
||||
$ copying_file = ""
|
||||
$ if f$search("[--]copying.") .nes. ""
|
||||
$ then
|
||||
$ copying_file = "[--]copying."
|
||||
$ else
|
||||
$ if f$search("[--]$COPYING.") .nes. ""
|
||||
$ then
|
||||
$ copying_file = "[--]$COPYING."
|
||||
$ else
|
||||
$ write sys$output "Can not find copying file."
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$ endif
|
||||
$!
|
||||
$! Create the file as a VMS text file.
|
||||
$!----------------------------------------
|
||||
$ base_file = kit_name
|
||||
$ create 'base_file'.pcsi$text
|
||||
$!
|
||||
$!
|
||||
$! Start building file.
|
||||
$!----------------------
|
||||
$ open/append ptxt 'base_file'.pcsi$text
|
||||
$ write ptxt product_line
|
||||
$!
|
||||
$!
|
||||
$! First insert the Readme file.
|
||||
$!
|
||||
$ open/read rf 'readme_file'
|
||||
$!
|
||||
$ write ptxt "1 'PRODUCT"
|
||||
$ write ptxt "=prompt ''producter' ''product' for OpenVMS"
|
||||
$!
|
||||
$rf_loop:
|
||||
$ read/end=rf_loop_end rf line_in
|
||||
$ if line_in .nes. ""
|
||||
$ then
|
||||
$! PCSI files use the first character in for their purposes.
|
||||
$!--------------------------------------------------------------
|
||||
$ first_char = f$extract(0, 1, line_in)
|
||||
$ if first_char .nes. " " then line_in = " " + line_in
|
||||
$ endif
|
||||
$ write ptxt line_in
|
||||
$ goto rf_loop
|
||||
$rf_loop_end:
|
||||
$ close rf
|
||||
$!
|
||||
$!
|
||||
$! Now add in the copying file
|
||||
$!--------------------------------
|
||||
$ write ptxt ""
|
||||
$ write ptxt "1 'NOTICE"
|
||||
$ write ptxt ""
|
||||
$!
|
||||
$ open/read cf 'copying_file'
|
||||
$!
|
||||
$cf_loop:
|
||||
$ read/end=cf_loop_end cf line_in
|
||||
$ if line_in .nes. ""
|
||||
$ then
|
||||
$! PCSI files use the first character in for their purposes.
|
||||
$!--------------------------------------------------------------
|
||||
$ first_char = f$extract(0, 1, line_in)
|
||||
$ if first_char .nes. " " then line_in = " " + line_in
|
||||
$ endif
|
||||
$ write ptxt line_in
|
||||
$ goto cf_loop
|
||||
$cf_loop_end:
|
||||
$ close cf
|
||||
$!
|
||||
$! Now we need the rest of the boiler plate.
|
||||
$!--------------------------------------------
|
||||
$ write ptxt ""
|
||||
$ write ptxt "1 'PRODUCER"
|
||||
$ write ptxt "=prompt ''producer_full_name'"
|
||||
$ write ptxt -
|
||||
"This software product is provided by ''producer_full_name' with no warranty."
|
||||
$!
|
||||
$ arch_type = f$getsyi("ARCH_NAME")
|
||||
$ node_swvers = f$getsyi("node_swvers")
|
||||
$ vernum = f$extract(1, f$length(node_swvers), node_swvers)
|
||||
$ majver = f$element(0, ".", vernum)
|
||||
$ minverdash = f$element(1, ".", vernum)
|
||||
$ minver = f$element(0, "-", minverdash)
|
||||
$ dashver = f$element(1, "-", minverdash)
|
||||
$ if dashver .eqs. "-" then dashver = ""
|
||||
$ vmstag = majver + minver + dashver
|
||||
$ code = f$extract(0, 1, arch_type)
|
||||
$!
|
||||
$ write ptxt "1 NEED_VMS''vmstag'"
|
||||
$ write ptxt -
|
||||
"=prompt OpenVMS ''vernum' or later is not installed on your system."
|
||||
$ write ptxt "This product requires OpenVMS ''vernum' or later to function."
|
||||
$ write ptxt "1 NEED_ZLIB"
|
||||
$ write ptxt "=prompt ZLIB 1.2-8 or later is not installed on your system."
|
||||
$ write ptxt "This product requires ZLIB 1.2-8 or later to function."
|
||||
$ write ptxt "1 SOURCE"
|
||||
$ write ptxt "=prompt Source modules for ''product'"
|
||||
$ write ptxt "The Source modules for ''product' will be installed."
|
||||
$ write ptxt "1 RELEASE_NOTES"
|
||||
$ write ptxt "=prompt Release notes are available in the [SYSHLP] directory."
|
||||
$!
|
||||
$ close ptxt
|
||||
$!
|
||||
$!
|
||||
$!
|
||||
$all_exit:
|
||||
$ exit
|
100
third_party/curl/packages/vms/build_gnv_curl_release_notes.com
vendored
Normal file
100
third_party/curl/packages/vms/build_gnv_curl_release_notes.com
vendored
Normal file
@ -0,0 +1,100 @@
|
||||
$! File: Build_GNV_curl_release_notes.com
|
||||
$!
|
||||
$! Build the release note file from the four components:
|
||||
$! 1. The curl_release_note_start.txt
|
||||
$! 2. The hp_ssl_release_info.txt
|
||||
$! 3. [--]readme. file from the Curl distribution.
|
||||
$! 4. The Curl_gnv-build_steps.txt.
|
||||
$!
|
||||
$! Set the name of the release notes from the GNV_PCSI_FILENAME_BASE
|
||||
$! logical name.
|
||||
$!
|
||||
$! Copyright (C) John Malmberg
|
||||
$!
|
||||
$! Permission to use, copy, modify, and/or distribute this software for any
|
||||
$! purpose with or without fee is hereby granted, provided that the above
|
||||
$! copyright notice and this permission notice appear in all copies.
|
||||
$!
|
||||
$! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
$! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
$! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
$! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
$! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
$! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
$! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
$!
|
||||
$! SPDX-License-Identifier: ISC
|
||||
$!
|
||||
$!===========================================================================
|
||||
$!
|
||||
$ base_file = f$trnlnm("GNV_PCSI_FILENAME_BASE")
|
||||
$ if base_file .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "@MAKE_PCSI_CURL_KIT_NAME.COM has not been run."
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$ curl_readme = f$search("sys$disk:[--]readme.")
|
||||
$ if curl_readme .eqs. ""
|
||||
$ then
|
||||
$ curl_readme = f$search("sys$disk:[--]$README.")
|
||||
$ endif
|
||||
$ if curl_readme .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "Can not find Curl readme file."
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$!
|
||||
$ curl_copying = f$search("sys$disk:[--]copying.")
|
||||
$ if curl_copying .eqs. ""
|
||||
$ then
|
||||
$ curl_copying = f$search("sys$disk:[--]$COPYING.")
|
||||
$ endif
|
||||
$ if curl_copying .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "Can not find Curl copying file."
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$!
|
||||
$ vms_readme = f$search("sys$disk:[]readme.")
|
||||
$ if vms_readme .eqs. ""
|
||||
$ then
|
||||
$ vms_readme = f$search("sys$disk:[]$README.")
|
||||
$ endif
|
||||
$ if vms_readme .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "Can not find VMS specific Curl readme file."
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$!
|
||||
$ curl_release_notes = f$search("sys$disk:[--]release-notes.")
|
||||
$ if curl_release_notes .eqs. ""
|
||||
$ then
|
||||
$ curl_release_notes = f$search("sys$disk:[--]$RELEASE-NOTES.")
|
||||
$ endif
|
||||
$ if curl_release_notes .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "Can not find Curl release-notes file."
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$!
|
||||
$ if f$search("sys$disk:[]hp_ssl_release_info.txt") .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "GNV_LINK_CURL.COM has not been run!"
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$!
|
||||
$ type/noheader 'curl_readme', 'vms_readme', -
|
||||
'curl_release_notes', -
|
||||
sys$disk:[]curl_release_note_start.txt, -
|
||||
sys$disk:[]hp_ssl_release_info.txt, -
|
||||
'curl_copying', -
|
||||
sys$disk:[]curl_gnv_build_steps.txt -
|
||||
/out='base_file'.release_notes
|
||||
$!
|
||||
$ purge 'base_file'.release_notes
|
||||
$ rename 'base_file.release_notes ;1
|
||||
$!
|
||||
$all_exit:
|
||||
$ exit
|
202
third_party/curl/packages/vms/build_libcurl_pc.com
vendored
Normal file
202
third_party/curl/packages/vms/build_libcurl_pc.com
vendored
Normal file
@ -0,0 +1,202 @@
|
||||
$! File: build_libcurl_pc.com
|
||||
$!
|
||||
$! Build the libcurl.pc file from the libcurl.pc.in file
|
||||
$!
|
||||
$! Copyright (C) John Malmberg
|
||||
$!
|
||||
$! Permission to use, copy, modify, and/or distribute this software for any
|
||||
$! purpose with or without fee is hereby granted, provided that the above
|
||||
$! copyright notice and this permission notice appear in all copies.
|
||||
$!
|
||||
$! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
$! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
$! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
$! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
$! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
$! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
$! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
$!
|
||||
$! SPDX-License-Identifier: ISC
|
||||
$!
|
||||
$!===========================================================================
|
||||
$!
|
||||
$! Skip this if the libcurl.pc already exists.
|
||||
$ if f$search("[--]libcurl.pc") .nes. "" then goto all_exit
|
||||
$!
|
||||
$! Need to know the kit type.
|
||||
$ kit_name = f$trnlnm("GNV_PCSI_KITNAME")
|
||||
$ if kit_name .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "@MAKE_PCSI_CURL_KIT_NAME.COM has not been run."
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$! Parse the kit name into components.
|
||||
$!---------------------------------------
|
||||
$ producer = f$element(0, "-", kit_name)
|
||||
$ base = f$element(1, "-", kit_name)
|
||||
$ product = f$element(2, "-", kit_name)
|
||||
$ mmversion = f$element(3, "-", kit_name)
|
||||
$ majorver = f$extract(0, 3, mmversion)
|
||||
$ minorver = f$extract(3, 2, mmversion)
|
||||
$ updatepatch = f$element(4, "-", kit_name)
|
||||
$ if updatepatch .eqs. "-" then updatepatch = ""
|
||||
$!
|
||||
$! kit type of "D" means a daily build
|
||||
$ kit_type = f$edit(f$extract(0, 1, majorver), "upcase")
|
||||
$!
|
||||
$ pc_file_in = "[--]libcurl^.pc.in"
|
||||
$!
|
||||
$ if f$search(pc_file_in) .eqs. ""
|
||||
$ then
|
||||
$ pc_file_in = "[--]libcurl.pc$5nin"
|
||||
$ if f$search(pc_file_in) .eqs. ""
|
||||
$ then
|
||||
$ pc_file_in = "[--]libcurl.pc_in"
|
||||
$ if f$search(pc_file_in) .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "Can not find libcurl.pc.in."
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$ endif
|
||||
$ endif
|
||||
$!
|
||||
$ if (f$getsyi("HW_MODEL") .lt. 1024)
|
||||
$ then
|
||||
$ arch_name = "VAX"
|
||||
$ else
|
||||
$ arch_name = ""
|
||||
$ arch_name = arch_name + f$edit(f$getsyi("ARCH_NAME"), "UPCASE")
|
||||
$ if (arch_name .eqs. "") then arch_name = "UNK"
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$ curl_version = "0.0.0"
|
||||
$ open/read vf [--.src]tool_version.h
|
||||
$version_loop:
|
||||
$ read vf/end=version_loop_end line_in
|
||||
$ if line_in .eqs. "" then goto version_loop
|
||||
$ key = f$element(0, " ", line_in)
|
||||
$ if key .nes. "#define" then goto version_loop
|
||||
$ name = f$element(1, " ", line_in)
|
||||
$ if name .eqs. "VERSION"
|
||||
$ then
|
||||
$ curl_version = f$element(2, " ", line_in) - """" - """"
|
||||
$ else
|
||||
$ goto version_loop
|
||||
$ endif
|
||||
$version_loop_end:
|
||||
$ close vf
|
||||
$!
|
||||
$!
|
||||
$ create [--]libcurl.pc
|
||||
$ open/append pco [--]libcurl.pc
|
||||
$ open/read pci 'pc_file_in'
|
||||
$pc_file_loop:
|
||||
$ read pci/end=pc_file_loop_end line_in
|
||||
$!
|
||||
$! blank lines
|
||||
$ if line_in .eqs. ""
|
||||
$ then
|
||||
$ write pco ""
|
||||
$ goto pc_file_loop
|
||||
$ endif
|
||||
$!
|
||||
$! comment lines
|
||||
$ key = f$extract(0, 1, line_in)
|
||||
$ if key .eqs. "#"
|
||||
$ then
|
||||
$ write pco line_in
|
||||
$ goto pc_file_loop
|
||||
$ endif
|
||||
$!
|
||||
$! Special handling for libs.
|
||||
$ if f$locate("Libs:", line_in) .eq. 0
|
||||
$ then
|
||||
$ write pco "#",line_in
|
||||
$ goto pc_file_loop
|
||||
$ endif
|
||||
$! No substitution line
|
||||
$ line_in_len = f$length(line_in)
|
||||
$ if f$locate("@", line_in) .ge. line_in_len
|
||||
$ then
|
||||
$ write pco line_in
|
||||
$ goto pc_file_loop
|
||||
$ endif
|
||||
$!
|
||||
$ if f$locate("@prefix@", line_in) .lt line_in_len
|
||||
$ then
|
||||
$ if kit_type .nes. "D"
|
||||
$ then
|
||||
$ write pco "prefix=/usr"
|
||||
$ else
|
||||
$ write pco "prefix=/beta"
|
||||
$ endif
|
||||
$ goto pc_file_loop
|
||||
$ endif
|
||||
$ if f$locate("@exec_prefix@", line_in) .lt line_in_len
|
||||
$ then
|
||||
$ if kit_type .nes. "D"
|
||||
$ then
|
||||
$ write pco "exec_prefix=/usr"
|
||||
$ else
|
||||
$ write pco "exec_prefix=/beta"
|
||||
$ endif
|
||||
$ goto pc_file_loop
|
||||
$ endif
|
||||
$ if f$locate("@libdir@", line_in) .lt line_in_len
|
||||
$ then
|
||||
$ write pco "libdir=$(exec_prefix}/lib"
|
||||
$ goto pc_file_loop
|
||||
$ endif
|
||||
$ if f$locate("@includedir@", line_in) .lt line_in_len
|
||||
$ then
|
||||
$ write pco "includedir=$(prefix}/include"
|
||||
$ goto pc_file_loop
|
||||
$ endif
|
||||
$ if f$locate("@SUPPORT_PROTOCOLS@", line_in) .lt line_in_len
|
||||
$ then
|
||||
$ proto1 = "DICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS"
|
||||
$ proto2 = " LDAP LDAPS POP3 POP3S RTSP SMTP SMTPS TELNET TFTP"
|
||||
$ proto = proto1 + proto2
|
||||
$ write pco "supported_protocols=""" + proto + """"
|
||||
$ goto pc_file_loop
|
||||
$ endif
|
||||
$ if f$locate("@SUPPORT_FEATURES@", line_in) .lt line_in_len
|
||||
$ then
|
||||
$ if arch_name .eqs. "VAX"
|
||||
$ then
|
||||
$ write pco "supported_features=""SSL libz NTLM"""
|
||||
$ else
|
||||
$ write pco "supported_features=""SSL IPv6 libz NTLM"""
|
||||
$ endif
|
||||
$ goto pc_file_loop
|
||||
$ endif
|
||||
$ if f$locate("@CURLVERSION@", line_in) .lt line_in_len
|
||||
$ then
|
||||
$ write pco "Version: ''curl_version'"
|
||||
$ goto pc_file_loop
|
||||
$ endif
|
||||
$ if f$locate("@LIBCURL_LIBS@", line_in) .lt line_in_len
|
||||
$ then
|
||||
$ if arch_name .eqs. "VAX"
|
||||
$ then
|
||||
$ write pco "Libs.private: -lssl -lcrypto -lz"
|
||||
$ else
|
||||
$ write pco "Libs.private: -lssl -lcrypto -lgssapi -lz"
|
||||
$ endif
|
||||
$ goto pc_file_loop
|
||||
$ endif
|
||||
$ if f$locate("@CPPFLAG_CURL_STATICLIB@", line_in) .lt line_in_len
|
||||
$ then
|
||||
$ write pco "Cflags: -I${includedir} -DCURL_STATICLIB"
|
||||
$ goto pc_file_loop
|
||||
$ endif
|
||||
$!
|
||||
$pc_file_loop_end:
|
||||
$ close pco
|
||||
$ close pci
|
||||
$!
|
||||
$all_exit:
|
||||
$ exit
|
1038
third_party/curl/packages/vms/build_vms.com
vendored
Normal file
1038
third_party/curl/packages/vms/build_vms.com
vendored
Normal file
File diff suppressed because it is too large
Load Diff
239
third_party/curl/packages/vms/clean_gnv_curl.com
vendored
Normal file
239
third_party/curl/packages/vms/clean_gnv_curl.com
vendored
Normal file
@ -0,0 +1,239 @@
|
||||
$! File: clean_gnv_curl.COM
|
||||
$!
|
||||
$! The GNV environment leaves behind some during the configure and build
|
||||
$! procedure that need to be cleaned up.
|
||||
$!
|
||||
$! The default is to remove all the left over stuff from running the
|
||||
$! configure script and to remove all intermediate binary files.
|
||||
$!
|
||||
$! This should be run with no parameters after the gnv_curl_configure.sh
|
||||
$! script is run.
|
||||
$!
|
||||
$! Parameter P1: REALCLEAN
|
||||
$! This removes all build products and brings the environment back to
|
||||
$! the point where the gnv_curl_configure.sh procedure needs to be run again.
|
||||
$!
|
||||
$! Copyright (C) John Malmberg
|
||||
$!
|
||||
$! Permission to use, copy, modify, and/or distribute this software for any
|
||||
$! purpose with or without fee is hereby granted, provided that the above
|
||||
$! copyright notice and this permission notice appear in all copies.
|
||||
$!
|
||||
$! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
$! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
$! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
$! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
$! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
$! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
$! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
$!
|
||||
$! SPDX-License-Identifier: ISC
|
||||
$!
|
||||
$!============================================================================
|
||||
$!
|
||||
$! Save this so we can get back.
|
||||
$ default_dir = f$environment("default")
|
||||
$!
|
||||
$!
|
||||
$! Move to where the base directory is.
|
||||
$ set def [--]
|
||||
$!
|
||||
$!
|
||||
$ file = "sys$login:sh*."
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "sys$login:make*."
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[]confdefs.h"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[]conftest.dsf"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[]conftest.lis"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[]conftest.sym"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$!
|
||||
$ file = "lcl_root:[.conf*...]*.*"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$ file = "lcl_root:[]conf*.dir
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$!
|
||||
$ file = "lcl_root:[.lib]*.out"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$ file = "lcl_root:[.lib]*.o"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$!
|
||||
$ file = "lcl_root:[.lib]*.lis"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.src]*.lis"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.src]cc_temp*."
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.src]*.dsf"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.src]*.o"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.lib]ar*."
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.lib]cc_temp*."
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[...]*.lo"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[...]*.a"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[...]*.la"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[...]*.lai"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.packages.vms]curl-*_original_src.bck"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.packages.vms]curl_d-*_original_src.bck"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.packages.vms]curl-*_vms_src.bck"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.packages.vms]curl_d-*_vms_src.bck"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.packages.vms]curl-*.release_notes"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.packages.vms]curl_d-*.release_notes"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.packages.vms]*-curl-*.pcsi$desc"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.packages.vms]*-curl_d-*.pcsi$desc"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.packages.vms]*-curl-*.pcsi$text"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.packages.vms]*-curl_d-*.pcsi$text"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$!======================================================================
|
||||
$!
|
||||
$ if p1 .nes. "REALCLEAN" then goto all_exit
|
||||
$!
|
||||
$ file = "lcl_root:[...]*.obj"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[...]Makefile."
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[...]libtool."
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[...]*.lis"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[...]POTFILES."
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[]libcurl.pc"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[]curl-config."
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[]config.h"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.src]config.h"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.src]curl."
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.tests]configurehelp.pm"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.lib]config.h"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.lib]curl_config.h"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.lib]libcurl.vers"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[]ca-bundle.h"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[]config.log"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[]config.status"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[]conftest.dangle"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[]CXX$DEMANGLER_DB."
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[]stamp-h1."
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[...]stamp-h1."
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[...]stamp-h2."
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[...]stamp-h3."
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.lib]*.a"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[...]*.spec"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[...]gnv$*.*"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[...]gnv*.opt"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.packages.vms]macro32_exactcase.exe"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.packages.vms]report_openssl_version.exe"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.packages.vms]hp_ssl_release_info.txt"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$ file = "lcl_root:[.src]curl.exe"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$!
|
||||
$all_exit:
|
||||
$!
|
||||
$! Put the default back.
|
||||
$!-----------------------
|
||||
$ set def 'default_dir'
|
||||
$!
|
||||
$ exit
|
363
third_party/curl/packages/vms/compare_curl_source.com
vendored
Normal file
363
third_party/curl/packages/vms/compare_curl_source.com
vendored
Normal file
@ -0,0 +1,363 @@
|
||||
$! Compare_curl_source.com
|
||||
$!
|
||||
$! This procedure compares the files in two directories and reports the
|
||||
$! differences. It is customized for the vmsports repository layout.
|
||||
$!
|
||||
$! It needs to be customized to the local site directories.
|
||||
$!
|
||||
$! This is used by me for these purposes:
|
||||
$! 1. Compare the original source of a project with an existing
|
||||
$! VMS port.
|
||||
$! 2. Compare the checked out repository of a project with the
|
||||
$! the local working copy to make sure they are in sync.
|
||||
$! 3. Keep a copy directory up to date. The third is needed by
|
||||
$! me because VMS Backup can create a saveset of files from a
|
||||
$! NFS mounted volume.
|
||||
$!
|
||||
$! First the files in the original source directory which is assumed to be
|
||||
$! under source code control are compared with the copy directory.
|
||||
$!
|
||||
$! Then the files are are only in the copy directory are listed.
|
||||
$!
|
||||
$! The result will five diagnostics about of files:
|
||||
$! 1. Files that are not generation 1.
|
||||
$! 2. Files missing in the copy directory.
|
||||
$! 3. Files in the copy directory not in the source directory.
|
||||
$! 4. Files different from the source directory.
|
||||
$! 5. Files that VMS DIFF can not process.
|
||||
$!
|
||||
$! This needs to be run on an ODS-5 volume.
|
||||
$!
|
||||
$! If UPDATE is given as a second parameter, files missing or different in the
|
||||
$! copy directory will be updated.
|
||||
$!
|
||||
$! By default:
|
||||
$! The directory src_root:[project_name] will be translated to something like
|
||||
$! DISK:[dir.dir.reference.project_name] and this will be used
|
||||
$! to calculate DISK:[dir.dir.vms_source.project_name] for the VMS specific
|
||||
$! source directory.
|
||||
$!
|
||||
$! The copy directory is vms_root:[project_name]
|
||||
$! The UPDATE parameter is ignored.
|
||||
$!
|
||||
$! This setting is used to make sure that the working vms directory
|
||||
$! and the repository checkout directory have the same contents.
|
||||
$!
|
||||
$! If P1 is "SRCBCK" then this
|
||||
$! The source directory tree is: src_root:[project_name]
|
||||
$! The copy directory is src_root1:[project_name]
|
||||
$!
|
||||
$! src_root1:[project_name] is used by me to work around that VMS backup will
|
||||
$! not use NFS as a source directory so I need to make a copy.
|
||||
$!
|
||||
$! This is to make sure that the backup save set for the unmodified
|
||||
$! source is up to date.
|
||||
$!
|
||||
$! If your repository checkout is not on an NFS mounted volume, you do not
|
||||
$! need to use this option or have the logical name src_root1 defined.
|
||||
$!
|
||||
$! If P1 is "VMSBCK" then this changes the two directories:
|
||||
$! The source directory is vms_root:[project_name]
|
||||
$! The copy directory is vms_root1:[project_name]
|
||||
$!
|
||||
$! vms_root:[project_name] is where I do the VMS specific edits.
|
||||
$! vms_root1:[project_name] is used by me to work around that VMS backup will
|
||||
$! not use NFS as a source directory so I need to make a copy.
|
||||
$!
|
||||
$! This is to make sure that the backup save set for the unmodified
|
||||
$! source is up to date.
|
||||
$!
|
||||
$! Copyright (C) John Malmberg
|
||||
$!
|
||||
$! Permission to use, copy, modify, and/or distribute this software for any
|
||||
$! purpose with or without fee is hereby granted, provided that the above
|
||||
$! copyright notice and this permission notice appear in all copies.
|
||||
$!
|
||||
$! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
$! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
$! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
$! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
$! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
$! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
$! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
$!
|
||||
$! SPDX-License-Identifier: ISC
|
||||
$!
|
||||
$!==========================================================================
|
||||
$!
|
||||
$! Update missing/changed files.
|
||||
$ update_file = 0
|
||||
$ if (p2 .eqs. "UPDATE")
|
||||
$ then
|
||||
$ update_file = 1
|
||||
$ endif
|
||||
$!
|
||||
$ myproc = f$environment("PROCEDURE")
|
||||
$ myprocdir = f$parse(myproc,,,"DIRECTORY") - "[" - "]" - "<" - ">"
|
||||
$ myprocdir = f$edit(myprocdir, "LOWERCASE")
|
||||
$ mydefault = f$environment("DEFAULT")
|
||||
$ mydir = f$parse(mydefault,,,"DIRECTORY")
|
||||
$ mydir = f$edit(mydir, "LOWERCASE")
|
||||
$ odelim = f$extract(0, 1, mydir)
|
||||
$ mydir = mydir - "[" - "]" - "<" - ">"
|
||||
$ mydev = f$parse(mydefault,,,"DEVICE")
|
||||
$!
|
||||
$ ref = ""
|
||||
$ if P1 .eqs. ""
|
||||
$ then
|
||||
$ ref_base_dir = myprocdir
|
||||
$ wrk_base_dir = mydir
|
||||
$ update_file = 0
|
||||
$ resultd = f$parse("src_root:",,,,"NO_CONCEAL")
|
||||
$ resultd = f$edit(resultd, "LOWERCASE")
|
||||
$ resultd = resultd - "][" - "><" - ".;" - ".."
|
||||
$ resultd_len = f$length(resultd) - 1
|
||||
$ delim = f$extract(resultd_len, 1, resultd)
|
||||
$ ref_root_base = mydir + delim
|
||||
$ resultd = resultd - ref_root_base - "reference." + "vms_source."
|
||||
$ ref = resultd + ref_base_dir
|
||||
$ wrk = "VMS_ROOT:" + odelim + wrk_base_dir
|
||||
$ resultd_len = f$length(resultd) - 1
|
||||
$ resultd = f$extract(0, resultd_len, resultd) + delim
|
||||
$ ref_root_dir = f$parse(resultd,,,"DIRECTORY")
|
||||
$ ref_root_dir = f$edit(ref_root_dir, "LOWERCASE")
|
||||
$ ref_root_dir = ref_root_dir - "[" - "]"
|
||||
$ ref_base_dir = ref_root_dir + "." + ref_base_dir
|
||||
$ endif
|
||||
$!
|
||||
$ if p1 .eqs. "SRCBCK"
|
||||
$ then
|
||||
$ ref_base_dir = "curl"
|
||||
$ wrk_base_dir = "curl"
|
||||
$ ref = "src_root:[" + ref_base_dir
|
||||
$ wrk = "src_root1:[" + wrk_base_dir
|
||||
$ if update_file
|
||||
$ then
|
||||
$ if f$search("src_root1:[000000]curl.dir") .eqs. ""
|
||||
$ then
|
||||
$ create/dir/prot=o:rwed src_root1:[curl]
|
||||
$ endif
|
||||
$ endif
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$ if p1 .eqs. "VMSBCK"
|
||||
$ then
|
||||
$ ref_base_dir = "curl"
|
||||
$ wrk_base_dir = "curl"
|
||||
$ ref = "vms_root:[" + ref_base_dir
|
||||
$ wrk = "vms_root1:[" + wrk_base_dir
|
||||
$ if update_file
|
||||
$ then
|
||||
$ if f$search("vms_root1:[000000]curl.dir") .eqs. ""
|
||||
$ then
|
||||
$ create/dir/prot=o:rwed vms_root1:[curl]
|
||||
$ endif
|
||||
$ endif
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$ if ref .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "Unknown compare type specified!"
|
||||
$ exit 44
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$! Future - check the device types involved for the
|
||||
$! the syntax to check.
|
||||
$ ODS2_SYNTAX = 0
|
||||
$ NFS_MANGLE = 0
|
||||
$ PWRK_MANGLE = 0
|
||||
$!
|
||||
$ vax = f$getsyi("HW_MODEL") .lt. 1024
|
||||
$ if vax
|
||||
$ then
|
||||
$ ODS2_SYNTAX = 1
|
||||
$ endif
|
||||
$!
|
||||
$ report_missing = 1
|
||||
$!
|
||||
$ if .not. ODS2_SYNTAX
|
||||
$ then
|
||||
$ set proc/parse=extended
|
||||
$ endif
|
||||
$!
|
||||
$loop:
|
||||
$ ref_spec = f$search("''ref'...]*.*;",1)
|
||||
$ if ref_spec .eqs. "" then goto loop_end
|
||||
$!
|
||||
$ ref_dev = f$parse(ref_spec,,,"DEVICE")
|
||||
$ ref_dir = f$parse(ref_spec,,,"DIRECTORY")
|
||||
$ ref_dir = f$edit(ref_dir, "LOWERCASE")
|
||||
$ ref_name = f$parse(ref_spec,,,"NAME")
|
||||
$ ref_type = f$parse(ref_spec,,,"TYPE")
|
||||
$!
|
||||
$!
|
||||
$ rel_path = ref_dir - "[" - ref_base_dir
|
||||
$! rel_path_len = f$length(rel_path) - 1
|
||||
$! delim = f$extract(rel_path_len, 1, rel_path)
|
||||
$! rel_path = rel_path - ".]" - ".>" - "]" - ">"
|
||||
$! rel_path = rel_path + delim
|
||||
$!
|
||||
$ if ODS2_SYNTAX
|
||||
$ then
|
||||
$! if rel_path .eqs. ".examples.scripts^.noah]"
|
||||
$! then
|
||||
$! rel_path = ".examples.scripts_noah]"
|
||||
$! endif
|
||||
$! if rel_path .eqs. ".examples.scripts^.v2]"
|
||||
$! then
|
||||
$! rel_path = ".examples.scripts_v2]"
|
||||
$! endif
|
||||
$ endif
|
||||
$!
|
||||
$ wrk_path = wrk + rel_path
|
||||
$!
|
||||
$ ref_name_type = ref_name + ref_type
|
||||
$!
|
||||
$ if ODS2_SYNTAX
|
||||
$ then
|
||||
$ endif
|
||||
$!
|
||||
$ wrk_spec = wrk_path + ref_name_type
|
||||
$!
|
||||
$!
|
||||
$ wrk_chk = f$search(wrk_spec, 0)
|
||||
$ if wrk_chk .eqs. ""
|
||||
$ then
|
||||
$ if report_missing
|
||||
$ then
|
||||
$ write sys$output "''wrk_spec' is missing"
|
||||
$ endif
|
||||
$ if update_file
|
||||
$ then
|
||||
$ copy/log 'ref_spec' 'wrk_spec'
|
||||
$ endif
|
||||
$ goto loop
|
||||
$ endif
|
||||
$!
|
||||
$ wrk_name = f$parse(wrk_spec,,,"NAME")
|
||||
$ wrk_type = f$parse(wrk_spec,,,"TYPE")
|
||||
$ wrk_fname = wrk_name + wrk_type"
|
||||
$ ref_fname = ref_name + ref_type
|
||||
$!
|
||||
$ if ref_fname .nes. wrk_fname
|
||||
$ then
|
||||
$ write sys$output "''wrk_spc' wrong name, should be ""''ref_fname'"""
|
||||
$ endif
|
||||
$!
|
||||
$ ref_type = f$edit(ref_type, "UPCASE")
|
||||
$ if ref_type .eqs. ".DIR" then goto loop
|
||||
$!
|
||||
$ if ODS2_SYNTAX
|
||||
$ then
|
||||
$ ref_fname = f$edit(ref_fname, "LOWERCASE")
|
||||
$ endif
|
||||
$!
|
||||
$! These files are in the wrong format for VMS diff, and we don't change them.
|
||||
$ ref_skip = 0
|
||||
$ if ref_type .eqs. ".PDF" then ref_skip = 1
|
||||
$ if ref_type .eqs. ".HTML" then ref_skip = 1
|
||||
$ if ref_type .eqs. ".P12" then ref_skip = 1
|
||||
$ if ref_type .eqs. "."
|
||||
$ then
|
||||
$ if f$locate("test", ref_fname) .eq. 0 then ref_skip = 1
|
||||
$ if ref_fname .eqs. "configure." then ref_skip = 1
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$ if ref_skip .ne. 0
|
||||
$ then
|
||||
$ if report_missing
|
||||
$ then
|
||||
$ write sys$output "Skipping diff of ''ref_fname'"
|
||||
$ endif
|
||||
$ goto loop
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$ wrk_ver = f$parse(wrk_chk,,,"VERSION")
|
||||
$ if wrk_ver .nes. ";1"
|
||||
$ then
|
||||
$ write sys$output "Version for ''wrk_spec' is not 1"
|
||||
$ endif
|
||||
$ set noon
|
||||
$ diff/out=nl: 'wrk_spec' 'ref_spec'
|
||||
$ if $severity .nes. "1"
|
||||
$ then
|
||||
$ write sys$output "''wrk_spec' is different from ''ref_spec'"
|
||||
$ if update_file
|
||||
$ then
|
||||
$ delete 'wrk_spec';*
|
||||
$ copy/log 'ref_spec' 'wrk_spec'
|
||||
$ endif
|
||||
$ endif
|
||||
$ set on
|
||||
$
|
||||
$!
|
||||
$ goto loop
|
||||
$loop_end:
|
||||
$!
|
||||
$!
|
||||
$missing_loop:
|
||||
$! For missing loop, check the latest generation.
|
||||
$ ref_spec = f$search("''wrk'...]*.*;")
|
||||
$ if ref_spec .eqs. "" then goto missing_loop_end
|
||||
$!
|
||||
$ ref_dev = f$parse(ref_spec,,,"DEVICE")
|
||||
$ ref_dir = f$parse(ref_spec,,,"DIRECTORY")
|
||||
$ ref_dir = f$edit(ref_dir, "LOWERCASE")
|
||||
$ ref_name = f$parse(ref_spec,,,"NAME")
|
||||
$ ref_type = f$parse(ref_spec,,,"TYPE")
|
||||
$ ref_name_type = ref_name + ref_type
|
||||
$!
|
||||
$ rel_path = ref_dir - "[" - wrk_base_dir
|
||||
$!
|
||||
$!
|
||||
$ wrk_path = ref + rel_path
|
||||
$ wrk_spec = wrk_path + ref_name + ref_type
|
||||
$ wrk_name = f$parse(wrk_spec,,,"NAME")
|
||||
$ wrk_type = f$parse(wrk_spec,,,"TYPE")
|
||||
$!
|
||||
$ wrk_fname = wrk_name + wrk_type"
|
||||
$ ref_fname = ref_name + ref_type
|
||||
$!
|
||||
$ wrk_skip = 0
|
||||
$ ref_utype = f$edit(ref_type,"UPCASE")
|
||||
$ ref_ufname = f$edit(ref_fname,"UPCASE")
|
||||
$!
|
||||
$ if wrk_skip .eq. 0
|
||||
$ then
|
||||
$ wrk_chk = f$search(wrk_spec, 0)
|
||||
$ if wrk_chk .eqs. ""
|
||||
$ then
|
||||
$ if report_missing
|
||||
$ then
|
||||
$ write sys$output "''wrk_spec' is missing"
|
||||
$ endif
|
||||
$ goto missing_loop
|
||||
$ endif
|
||||
$ else
|
||||
$ goto missing_loop
|
||||
$ endif
|
||||
$!
|
||||
$ if ref_fname .nes. wrk_fname
|
||||
$ then
|
||||
$ write sys$output "''wrk_spc' wrong name, should be ""''ref_fname'"""
|
||||
$ endif
|
||||
$!
|
||||
$ if ref_utype .eqs. ".DIR" then goto missing_loop
|
||||
$!
|
||||
$ wrk_ver = f$parse(wrk_chk,,,"VERSION")
|
||||
$ if wrk_ver .nes. ";1"
|
||||
$ then
|
||||
$ write sys$output "Version for ''wrk_spec' is not 1"
|
||||
$ endif
|
||||
$!
|
||||
$ goto missing_loop
|
||||
$!
|
||||
$!
|
||||
$missing_loop_end:
|
||||
$!
|
||||
$exit
|
1972
third_party/curl/packages/vms/config_h.com
vendored
Normal file
1972
third_party/curl/packages/vms/config_h.com
vendored
Normal file
File diff suppressed because it is too large
Load Diff
333
third_party/curl/packages/vms/curl_crtl_init.c
vendored
Normal file
333
third_party/curl/packages/vms/curl_crtl_init.c
vendored
Normal file
@ -0,0 +1,333 @@
|
||||
/***************************************************************************
|
||||
* _ _ ____ _
|
||||
* Project ___| | | | _ \| |
|
||||
* / __| | | | |_) | |
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
* are also available at https://curl.se/docs/copyright.html.
|
||||
*
|
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
* copies of the Software, and permit persons to whom the Software is
|
||||
* furnished to do so, under the terms of the COPYING file.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
* SPDX-License-Identifier: curl
|
||||
*
|
||||
***************************************************************************/
|
||||
/* File: curl_crtl_init.c
|
||||
*
|
||||
* This file makes sure that the DECC Unix settings are correct for
|
||||
* the mode the program is run in.
|
||||
*
|
||||
* The CRTL has not been initialized at the time that these routines
|
||||
* are called, so many routines can not be called.
|
||||
*
|
||||
* This is a module that provides a LIB$INITIALIZE routine that
|
||||
* will turn on some CRTL features that are not enabled by default.
|
||||
*
|
||||
* The CRTL features can also be turned on via logical names, but that
|
||||
* impacts all programs and some aren't ready, willing, or able to handle
|
||||
* those settings.
|
||||
*
|
||||
* On VMS versions that are too old to use the feature setting API, this
|
||||
* module falls back to using logical names.
|
||||
*
|
||||
* Copyright (C) John Malmberg
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*
|
||||
*/
|
||||
|
||||
/* Unix headers */
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
/* VMS specific headers */
|
||||
#include <descrip.h>
|
||||
#include <lnmdef.h>
|
||||
#include <stsdef.h>
|
||||
|
||||
#pragma member_alignment save
|
||||
#pragma nomember_alignment longword
|
||||
#pragma message save
|
||||
#pragma message disable misalgndmem
|
||||
struct itmlst_3 {
|
||||
unsigned short int buflen;
|
||||
unsigned short int itmcode;
|
||||
void *bufadr;
|
||||
unsigned short int *retlen;
|
||||
};
|
||||
#pragma message restore
|
||||
#pragma member_alignment restore
|
||||
|
||||
#ifdef __VAX
|
||||
#define ENABLE "ENABLE"
|
||||
#define DISABLE "DISABLE"
|
||||
#else
|
||||
|
||||
#define ENABLE TRUE
|
||||
#define DISABLE 0
|
||||
int decc$feature_get_index (const char *name);
|
||||
int decc$feature_set_value (int index, int mode, int value);
|
||||
#endif
|
||||
|
||||
int SYS$TRNLNM(
|
||||
const unsigned long * attr,
|
||||
const struct dsc$descriptor_s * table_dsc,
|
||||
struct dsc$descriptor_s * name_dsc,
|
||||
const unsigned char * acmode,
|
||||
const struct itmlst_3 * item_list);
|
||||
int SYS$CRELNM(
|
||||
const unsigned long * attr,
|
||||
const struct dsc$descriptor_s * table_dsc,
|
||||
const struct dsc$descriptor_s * name_dsc,
|
||||
const unsigned char * acmode,
|
||||
const struct itmlst_3 * item_list);
|
||||
|
||||
|
||||
/* Take all the fun out of simply looking up a logical name */
|
||||
static int sys_trnlnm
|
||||
(const char * logname,
|
||||
char * value,
|
||||
int value_len)
|
||||
{
|
||||
const $DESCRIPTOR(table_dsc, "LNM$FILE_DEV");
|
||||
const unsigned long attr = LNM$M_CASE_BLIND;
|
||||
struct dsc$descriptor_s name_dsc;
|
||||
int status;
|
||||
unsigned short result;
|
||||
struct itmlst_3 itlst[2];
|
||||
|
||||
itlst[0].buflen = value_len;
|
||||
itlst[0].itmcode = LNM$_STRING;
|
||||
itlst[0].bufadr = value;
|
||||
itlst[0].retlen = &result;
|
||||
|
||||
itlst[1].buflen = 0;
|
||||
itlst[1].itmcode = 0;
|
||||
|
||||
name_dsc.dsc$w_length = strlen(logname);
|
||||
name_dsc.dsc$a_pointer = (char *)logname;
|
||||
name_dsc.dsc$b_dtype = DSC$K_DTYPE_T;
|
||||
name_dsc.dsc$b_class = DSC$K_CLASS_S;
|
||||
|
||||
status = SYS$TRNLNM(&attr, &table_dsc, &name_dsc, 0, itlst);
|
||||
|
||||
if($VMS_STATUS_SUCCESS(status)) {
|
||||
|
||||
/* Null terminate and return the string */
|
||||
/*--------------------------------------*/
|
||||
value[result] = '\0';
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
/* How to simply create a logical name */
|
||||
static int sys_crelnm
|
||||
(const char * logname,
|
||||
const char * value)
|
||||
{
|
||||
int ret_val;
|
||||
const char * proc_table = "LNM$PROCESS_TABLE";
|
||||
struct dsc$descriptor_s proc_table_dsc;
|
||||
struct dsc$descriptor_s logname_dsc;
|
||||
struct itmlst_3 item_list[2];
|
||||
|
||||
proc_table_dsc.dsc$a_pointer = (char *) proc_table;
|
||||
proc_table_dsc.dsc$w_length = strlen(proc_table);
|
||||
proc_table_dsc.dsc$b_dtype = DSC$K_DTYPE_T;
|
||||
proc_table_dsc.dsc$b_class = DSC$K_CLASS_S;
|
||||
|
||||
logname_dsc.dsc$a_pointer = (char *) logname;
|
||||
logname_dsc.dsc$w_length = strlen(logname);
|
||||
logname_dsc.dsc$b_dtype = DSC$K_DTYPE_T;
|
||||
logname_dsc.dsc$b_class = DSC$K_CLASS_S;
|
||||
|
||||
item_list[0].buflen = strlen(value);
|
||||
item_list[0].itmcode = LNM$_STRING;
|
||||
item_list[0].bufadr = (char *)value;
|
||||
item_list[0].retlen = NULL;
|
||||
|
||||
item_list[1].buflen = 0;
|
||||
item_list[1].itmcode = 0;
|
||||
|
||||
ret_val = SYS$CRELNM(NULL, &proc_table_dsc, &logname_dsc, NULL, item_list);
|
||||
|
||||
return ret_val;
|
||||
}
|
||||
|
||||
|
||||
/* Start of DECC RTL Feature handling */
|
||||
|
||||
/*
|
||||
** Sets default value for a feature
|
||||
*/
|
||||
#ifdef __VAX
|
||||
static void set_feature_default(const char *name, const char *value)
|
||||
{
|
||||
sys_crelnm(name, value);
|
||||
}
|
||||
#else
|
||||
static void set_feature_default(const char *name, int value)
|
||||
{
|
||||
int index;
|
||||
|
||||
index = decc$feature_get_index(name);
|
||||
|
||||
if(index > 0)
|
||||
decc$feature_set_value (index, 0, value);
|
||||
}
|
||||
#endif
|
||||
|
||||
static void set_features(void)
|
||||
{
|
||||
int status;
|
||||
char unix_shell_name[255];
|
||||
int use_unix_settings = 1;
|
||||
|
||||
status = sys_trnlnm("GNV$UNIX_SHELL",
|
||||
unix_shell_name, sizeof unix_shell_name -1);
|
||||
if(!$VMS_STATUS_SUCCESS(status)) {
|
||||
use_unix_settings = 0;
|
||||
}
|
||||
|
||||
/* ACCESS should check ACLs or it is lying. */
|
||||
set_feature_default("DECC$ACL_ACCESS_CHECK", ENABLE);
|
||||
|
||||
/* We always want the new parse style */
|
||||
set_feature_default ("DECC$ARGV_PARSE_STYLE" , ENABLE);
|
||||
|
||||
|
||||
/* Unless we are in POSIX compliant mode, we want the old POSIX root
|
||||
* enabled.
|
||||
*/
|
||||
set_feature_default("DECC$DISABLE_POSIX_ROOT", DISABLE);
|
||||
|
||||
/* EFS charset, means UTF-8 support */
|
||||
/* VTF-7 support is controlled by a feature setting called UTF8 */
|
||||
set_feature_default ("DECC$EFS_CHARSET", ENABLE);
|
||||
set_feature_default ("DECC$EFS_CASE_PRESERVE", ENABLE);
|
||||
|
||||
/* Support timestamps when available */
|
||||
set_feature_default ("DECC$EFS_FILE_TIMESTAMPS", ENABLE);
|
||||
|
||||
/* Cache environment variables - performance improvements */
|
||||
set_feature_default ("DECC$ENABLE_GETENV_CACHE", ENABLE);
|
||||
|
||||
/* Start out with new file attribute inheritance */
|
||||
#ifdef __VAX
|
||||
set_feature_default ("DECC$EXEC_FILEATTR_INHERITANCE", "2");
|
||||
#else
|
||||
set_feature_default ("DECC$EXEC_FILEATTR_INHERITANCE", 2);
|
||||
#endif
|
||||
|
||||
/* Don't display trailing dot after files without type */
|
||||
set_feature_default ("DECC$READDIR_DROPDOTNOTYPE", ENABLE);
|
||||
|
||||
/* For standard output channels buffer output until terminator */
|
||||
/* Gets rid of output logs with single character lines in them. */
|
||||
set_feature_default ("DECC$STDIO_CTX_EOL", ENABLE);
|
||||
|
||||
/* Fix mv aa.bb aa */
|
||||
set_feature_default ("DECC$RENAME_NO_INHERIT", ENABLE);
|
||||
|
||||
if(use_unix_settings) {
|
||||
|
||||
/* POSIX requires that open files be able to be removed */
|
||||
set_feature_default ("DECC$ALLOW_REMOVE_OPEN_FILES", ENABLE);
|
||||
|
||||
/* Default to outputting Unix filenames in VMS routines */
|
||||
set_feature_default ("DECC$FILENAME_UNIX_ONLY", ENABLE);
|
||||
/* FILENAME_UNIX_ONLY Implicitly sets */
|
||||
/* decc$disable_to_vms_logname_translation */
|
||||
|
||||
set_feature_default ("DECC$FILE_PERMISSION_UNIX", ENABLE);
|
||||
|
||||
set_feature_default ("DECC$FILE_SHARING", ENABLE);
|
||||
|
||||
set_feature_default ("DECC$FILE_OWNER_UNIX", ENABLE);
|
||||
set_feature_default ("DECC$POSIX_SEEK_STREAM_FILE", ENABLE);
|
||||
|
||||
} else {
|
||||
set_feature_default("DECC$FILENAME_UNIX_REPORT", ENABLE);
|
||||
}
|
||||
|
||||
/* When reporting Unix filenames, glob the same way */
|
||||
set_feature_default ("DECC$GLOB_UNIX_STYLE", ENABLE);
|
||||
|
||||
/* The VMS version numbers on Unix filenames is incompatible with most */
|
||||
/* ported packages. */
|
||||
set_feature_default("DECC$FILENAME_UNIX_NO_VERSION", ENABLE);
|
||||
|
||||
/* The VMS version numbers on Unix filenames is incompatible with most */
|
||||
/* ported packages. */
|
||||
set_feature_default("DECC$UNIX_PATH_BEFORE_LOGNAME", ENABLE);
|
||||
|
||||
/* Set strtol to proper behavior */
|
||||
set_feature_default("DECC$STRTOL_ERANGE", ENABLE);
|
||||
|
||||
/* Commented here to prevent future bugs: A program or user should */
|
||||
/* never ever enable DECC$POSIX_STYLE_UID. */
|
||||
/* It will probably break all code that accesses UIDs */
|
||||
/* do_not_set_default ("DECC$POSIX_STYLE_UID", TRUE); */
|
||||
}
|
||||
|
||||
|
||||
/* Some boilerplate to force this to be a proper LIB$INITIALIZE section */
|
||||
|
||||
#pragma nostandard
|
||||
#pragma extern_model save
|
||||
#ifdef __VAX
|
||||
#pragma extern_model strict_refdef "LIB$INITIALIZE" nowrt, long, nopic
|
||||
#else
|
||||
#pragma extern_model strict_refdef "LIB$INITIALIZE" nowrt, long
|
||||
# if __INITIAL_POINTER_SIZE
|
||||
# pragma __pointer_size __save
|
||||
# pragma __pointer_size 32
|
||||
# else
|
||||
# pragma __required_pointer_size __save
|
||||
# pragma __required_pointer_size 32
|
||||
# endif
|
||||
#endif
|
||||
/* Set our contribution to the LIB$INITIALIZE array */
|
||||
void (* const iniarray[])(void) = {set_features, } ;
|
||||
#ifndef __VAX
|
||||
# if __INITIAL_POINTER_SIZE
|
||||
# pragma __pointer_size __restore
|
||||
# else
|
||||
# pragma __required_pointer_size __restore
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
** Force a reference to LIB$INITIALIZE to ensure it
|
||||
** exists in the image.
|
||||
*/
|
||||
int LIB$INITIALIZE(void);
|
||||
#ifdef __DECC
|
||||
#pragma extern_model strict_refdef
|
||||
#endif
|
||||
int lib_init_ref = (int) LIB$INITIALIZE;
|
||||
#ifdef __DECC
|
||||
#pragma extern_model restore
|
||||
#pragma standard
|
||||
#endif
|
290
third_party/curl/packages/vms/curl_gnv_build_steps.txt
vendored
Normal file
290
third_party/curl/packages/vms/curl_gnv_build_steps.txt
vendored
Normal file
@ -0,0 +1,290 @@
|
||||
From File: curl_gnv_build_steps.txt
|
||||
|
||||
Copyright (C) John Malmberg
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
SPDX-License-Identifier: ISC
|
||||
|
||||
Currently building Curl using GNV takes longer than building Curl via DCL.
|
||||
The GNV procedure actually uses the same configure and makefiles that
|
||||
Unix builds use.
|
||||
|
||||
Building CURL on OpenVMS using GNV requires GNV V2.1-2 or the updated
|
||||
images that are available via anonymous FTP at encompasserve.org in the gnv
|
||||
directory. It also requires the GNV Bash 4.2.45 kit as an update from the
|
||||
same location or from the sourceforge.net GNV project.
|
||||
|
||||
The HP C 7.x compiler was used for building the GNV version.
|
||||
|
||||
The source kits are provided in backup savesets inside of the PCSI install kit.
|
||||
|
||||
Backup save sets are currently the only distribution medium that I can be
|
||||
sure is installed on a target VMS system that will correctly unpack files
|
||||
with extended character sets in them. You may need to adjust the ownership
|
||||
of the restored files, since /Interchange/noconvert was not available at the
|
||||
time that this document was written.
|
||||
|
||||
[gnv.common_src]curl_*_original_src.bck is the original source of the curl kit
|
||||
as provided by the curl project. [gnv.vms_src]curl-*_vms_src.bck, if present,
|
||||
has the OpenVMS specific files that are used for building that are not yet in
|
||||
the curl source kits for that release distributed https://curl.se
|
||||
|
||||
These backup savesets should be restored to different directory trees on
|
||||
an ODS-5 volume(s) which are referenced by concealed rooted logical names.
|
||||
|
||||
SRC_ROOT: is for the source files common to all platforms.
|
||||
VMS_ROOT: is for the source files that are specific to OpenVMS.
|
||||
Note, you should create the VMS_ROOT: directory tree even if it is
|
||||
initially empty. This is where you should put edits if you are
|
||||
making changes.
|
||||
LCL_ROOT: is manually created to have the same base and sub-directories as
|
||||
SRC_ROOT: and VMS_ROOT:
|
||||
|
||||
The logical name REF_ROOT: may be defined to be a search list for
|
||||
VMS_ROOT:,SRC_ROOT:
|
||||
|
||||
The logical name PRJ_ROOT: is defined to be a search list for
|
||||
LCL_ROOT:,VMS_ROOT:,SRC_ROOT:
|
||||
|
||||
For the make install process to work, it must have write access to the
|
||||
directories referenced by the GNU: logical name.
|
||||
|
||||
In future releases of GNV, and with GNV Bash 4.3.30 installed, this name
|
||||
should be GNV$GNU:
|
||||
|
||||
As directly updating those directories would probably be disruptive to other
|
||||
users of the system and require elevated privilege, this can be handled by
|
||||
creating a separate directory tree to install into which can be referenced
|
||||
by the concealed rooted logical name new_gnu:. A concealed logical name of
|
||||
OLD_GNU: can be set up to reference the real GNV directory tree.
|
||||
|
||||
Then a local copy of the GNU/GNV$GNU logical names can be set up as a search
|
||||
list such as NEW_GNU:,OLD_GNU:
|
||||
|
||||
The directory NEW_GNU:[usr] should be created. The make install phase should
|
||||
create all the other directories.
|
||||
|
||||
The make install process may abort if curl is already because it can not
|
||||
uninstall the older version of curl because it does not have permission.
|
||||
|
||||
The file stage_curl_install.com is used set up a new_gnu: directory tree
|
||||
for testing. The PCSI kitting procedure uses these files as input.
|
||||
|
||||
These files do not create the directories in the VMS_ROOT and LCL_ROOT
|
||||
directory trees. You can create them with commands similar to:
|
||||
|
||||
$ create/dir lcl_root:[curl]/prot=w:re
|
||||
$ copy src_root:[curl...]*.dir -
|
||||
lcl_root:[curl...]/prot=(o:rwed,w:re)
|
||||
$ create/dir vms_root:[curl]/prot=w:re
|
||||
$ copy src_root:[curl...]*.dir -
|
||||
vms_root:[curl...]/prot=(o:rwed,w:re)
|
||||
|
||||
One of the ways with to protect the source from being modified is to have
|
||||
the directories under src_root: owned by a user or resource where the build
|
||||
username only has read access to it.
|
||||
|
||||
|
||||
Note to builders:
|
||||
|
||||
GNV currently has a bug where configure scripts take a long time to run.
|
||||
Some of the configure steps take a while to complete, and on a 600 Mhz
|
||||
DS10 with IDE disks, taking an hour to run the CURL configure is normal.
|
||||
|
||||
The following messages can be ignored and may get fixed in a future version
|
||||
of GNV. The GNV$*.OPT files are used to find the libraries as many have
|
||||
different names on VMS than on Unix. The Bash environment variable
|
||||
GNV_CC_QUALIFIERS can override all other settings for the C Compiler.
|
||||
|
||||
? cc: No support for switch -warnprotos
|
||||
? cc: Unrecognized file toomanyargs
|
||||
? cc: Warning: library "ssl" not found
|
||||
? cc: Warning: library "crypto" not found
|
||||
? cc: Warning: library "gssapi" not found
|
||||
? cc: Warning: library "z" not found
|
||||
u unimplemented switch - ignored
|
||||
|
||||
|
||||
With these search lists set up and the properly, curl can be built by
|
||||
setting your default to PRJ_ROOT:[curl.packages.vms] and then issuing
|
||||
either the command:
|
||||
|
||||
$ @pcsi_product_gnv_curl.com
|
||||
|
||||
or
|
||||
|
||||
$ @build_gnv_curl.com.
|
||||
|
||||
The GNV configure procedure takes considerably longer than the DCL build
|
||||
procedure takes. It is of use for testing the GNV build environment, and
|
||||
may not have been kept up to date.
|
||||
|
||||
The pcsi_product_gnv_curl.com needs the following logical names which
|
||||
are described in the section below:
|
||||
|
||||
gnv_pcsi_producer
|
||||
gnv_pcsi_producer_full_name
|
||||
stage_root
|
||||
vms_root1 (Optional if vms_root is on a NFS volume)
|
||||
src_root1 (Optional if src_root is on a NFS volume)
|
||||
|
||||
The pcsi_product_gnv_curl.com is described in more detail below. It does
|
||||
the following steps. The build steps are only done if they are needed to
|
||||
allow using either DCL or GNV based building procedures.
|
||||
|
||||
$ @build_vms list
|
||||
|
||||
$ @gnv_link_curl.com
|
||||
|
||||
$ @build_gnv_curl_release_notes.com
|
||||
|
||||
$ @backup_gnv_curl_src.com
|
||||
|
||||
$ @build_gnv_curl_pcsi_desc.com
|
||||
|
||||
$ @build_gnv_curl_pcsi_text.com
|
||||
|
||||
$ @stage_curl_install remove
|
||||
$ @stage_curl_install
|
||||
|
||||
Then builds the kit.
|
||||
|
||||
The build_gnv_curl.com command procedure does the following:
|
||||
|
||||
$ @setup_gnv_curl_build.com
|
||||
|
||||
$ bash gnv_curl_configure.sh
|
||||
|
||||
$ @clean_gnv_curl.com
|
||||
|
||||
$ bash make_gnv_curl_install.sh
|
||||
|
||||
$ @gnv_link_curl.com
|
||||
|
||||
$ @stage_curl_install.com
|
||||
|
||||
$ purge new_gnu:[*...]/log
|
||||
|
||||
To clean up after a GNV based build to start over, the following commands are
|
||||
used:
|
||||
|
||||
$ bash
|
||||
bash$ cd ../..
|
||||
bash$ make clean
|
||||
bash$ exit
|
||||
|
||||
Then run the @clean_gnv_curl.com. Use the parameter "realclean" if you are
|
||||
going to run the setup_gnv_curl_build.com and configure script again.
|
||||
|
||||
$ @clean_gnv_curl.com realclean
|
||||
|
||||
If new public symbols have been added, adjust the file gnv_libcurl_symbols.opt
|
||||
to have the new symbols. If the symbols are longer than 32 characters,
|
||||
then they will need to have the original be exact case CRC shortened and
|
||||
an alias in upper case with CRC shortened, in addition to having an exact
|
||||
case truncated alias and an uppercase truncated alias.
|
||||
|
||||
The *.EXE files are not moved to the new_gnu: directory.
|
||||
|
||||
After you are satisfied with the results of your build, you can move the
|
||||
files from new_gnu: to old_gnu: at your convenience.
|
||||
|
||||
Building a PCSI kit for an architecture takes the following steps after
|
||||
making sure that you have a working build environment.
|
||||
|
||||
Note that it requires manually creating two logical names as described
|
||||
below. It is intentional that they be manually set. This is for
|
||||
branding the PCSI kit based on who is making the kit.
|
||||
|
||||
1. Make sure that you have a staging directory that can be referenced
|
||||
by the path STAGE_ROOT:[KIT]
|
||||
|
||||
2. Edit the file curl_release_note_start.txt or other text files to
|
||||
reflect any changes.
|
||||
|
||||
3. Define the logical name GNV_PCSI_PRODUCER to indicate who is making
|
||||
the distribution. For making updates to an existing open source
|
||||
kit you may need to keep the producer the same.
|
||||
|
||||
4. Define the logical name GNV_PCSI_PRODUCER_FULL_NAME to be your full
|
||||
name or full name of your company.
|
||||
|
||||
5. If you are producing an update kit, then update the file
|
||||
vms_eco_level.h by changing the value for the VMS_ECO_LEVEL macro.
|
||||
This file is currently only used in building the PCSI kit.
|
||||
|
||||
6. Edit the file PCSI_GNV_CURL_FILE_LIST.TXT if there are new files added
|
||||
to the kit. These files should all be ODS-2 legal filenames and
|
||||
directories.
|
||||
|
||||
A limitation of the PCSI kitting procedure is that when selecting files,
|
||||
it tends to ignore the directory structure and assumes that all files
|
||||
with the same name are the same file, so every file placed in the kit
|
||||
must have a unique name. Then a procedure needs to be added to the kit
|
||||
to create an alias link on install and remove the link on remove.
|
||||
|
||||
Since at this time curl does not need this alias procedure, the steps
|
||||
to automatically build it are not included here.
|
||||
|
||||
While newer versions of PCSI can support ODS-5 filenames, not all versions
|
||||
of PCSI on systems that have ODS-5 filenames do. So as a post install
|
||||
step, the PCSI kit built by these steps does a rename to the correct
|
||||
case as a post install step.
|
||||
|
||||
7. Edit the build_curl_pcsi_desc.com and build_curl_pcsi_text.com if you
|
||||
have changed the version of ZLIB that curl is built against.
|
||||
|
||||
8. Prepare to backup the files for building the kit.
|
||||
|
||||
Note that if src_root: or vms_root: are NFS mounted disks, the
|
||||
step of backing up the source files will probably hang or fail.
|
||||
|
||||
You need to copy the source files to VMS mounted disks and create
|
||||
logical names SRC_ROOT1 and VMS_ROOT1 to work around this to
|
||||
reference local disks. Make sure src_root1:[000000] and
|
||||
vms_root1:[000000] exist and can be written to.
|
||||
|
||||
The command procedure compare_curl_source can be used to check
|
||||
those directories and keep them up to date.
|
||||
|
||||
@compare_curl_source.com SRCBCK UPDATE
|
||||
|
||||
This compares the reference project source with the backup
|
||||
staging directory for it and updates with any changes.
|
||||
|
||||
@compare_curl_source.com VMSBCK UPDATE
|
||||
|
||||
This compares the VMS specific source with the backup
|
||||
staging directory for it and updates with any changes.
|
||||
|
||||
Leave off "UPDATE" to just check without doing any changes.
|
||||
|
||||
If you are not using NFS mounted disks and do not want to have a
|
||||
separate directory for staging the sources for backup make sure
|
||||
that src_root1: and vms_root1: do not exist.
|
||||
|
||||
9. Build the PCSI kit with @pcsi_product_gnv_curl.com
|
||||
|
||||
The following message is normal:
|
||||
%PCSI-I-CANNOTVAL, cannot validate
|
||||
EAGLE$DQA0:[stage_root.][kit]VMSPORTS-AXPVMS-CURL-V0731-0-1.PCSI;1
|
||||
-PCSI-I-NOTSIGNED, product kit is not signed and therefore has
|
||||
no manifest file
|
||||
|
||||
This will result in an uncompressed kit for the target platform.
|
||||
On Alpha and Integrity, the pcsi_product_gnv_curl.com can be used with
|
||||
the "COMPRESSED" parameter to build both a compressed and uncompressed
|
||||
kits.
|
||||
|
||||
Good Luck.
|
77
third_party/curl/packages/vms/curl_release_note_start.txt
vendored
Normal file
77
third_party/curl/packages/vms/curl_release_note_start.txt
vendored
Normal file
@ -0,0 +1,77 @@
|
||||
From file: CURL_RELEASE_NOTE_START.TXT
|
||||
|
||||
Note: These kits are produced by a hobbyist and are providing any support
|
||||
or any commitment to supply bug fixes or future releases. This code is
|
||||
as-is with no warranties.
|
||||
|
||||
The testing of this build of curl was minimal and involved building some of
|
||||
the sample and test programs, accessing a public HTTPS: website, doing a
|
||||
form post of some VMS test files, and FTP upload of some text files.
|
||||
|
||||
Due to the way that PCSI identifies packages, if you install a package from
|
||||
one producer and then want to upgrade it from another producer, you will
|
||||
probably need to uninstall the previous package first.
|
||||
|
||||
OpenVMS specific building and kitting instructions are after the standard
|
||||
curl readme file.
|
||||
|
||||
This product may be available for your platform in a PCSI kit. The source kit
|
||||
contains files for building CURL using GNV or with a DCL procedure.
|
||||
|
||||
The GNV based build creates a libcurl share imaged which is supplied in the
|
||||
PCSI kit.
|
||||
|
||||
This version of CURL will return VMS compatible status codes when run from
|
||||
DCL and Unix compatible exit codes and messages when run with the SHELL
|
||||
environment variable set.
|
||||
|
||||
This port of Curl uses the OpenSSL, Ldap, and Kerberos V5 that are bundled
|
||||
with OpenVMS or supplied as updates by HP. Ldap and Kerberos are not available
|
||||
on the VAX platform. See section below for a special note about HP OpenSSL
|
||||
on Alpha and IA64.
|
||||
|
||||
The supplied CURL_STARTUP.COM procedure that is installed in
|
||||
[VMS$COMMON.SYS$STARTUP] can be put in your VMS startup procedure to install
|
||||
the GNV$LIBCURL shared image and create logical names GNV$LIBCURL to reference
|
||||
it. It will create the GNV$CURL_INCLUDE logical name for build procedures
|
||||
to access the header files.
|
||||
|
||||
Normally to use curl from DCL, just create a foreign command as:
|
||||
curl :== $gnv$gnu:[usr.bin]gnv$curl.exe
|
||||
|
||||
If you need to work around having the older HP SSL kit installed, then
|
||||
for DCL create this command procedure:
|
||||
|
||||
$ create/dir gnv$gnu:[vms_bin]/prot=w:re
|
||||
$ create gnv$gnu:[vms_bin]curl.com
|
||||
$ curl := $gnv$gnu:[usr.bin]gnv$curl.exe
|
||||
$ define/user ssl$libcrypto_shr32 gnv$curl_ssl_libcryptoshr32
|
||||
$ curl "''p1'" "''p2'" "''p3'" "''p4'" "''p5'" "''p6'" "''p7'" "''p8'"
|
||||
^Z
|
||||
|
||||
Then you can use: curl :== @gnv$gnu:[vms_bin]curl.com to run curl.
|
||||
|
||||
For the HP SSL work around to work for GNV do the following:
|
||||
$ create/dir gnv$gnu:[usr.local.bin]/prot=w:re
|
||||
$ create gnv$gnu:[usr.local.bin]curl.
|
||||
#! /bin/sh
|
||||
dcl @gnv\$gnu:[vms_bin]curl.com $*
|
||||
^Z
|
||||
|
||||
Similar workarounds will be needed for any program linked with GNV$LIBCURL
|
||||
until the HP OpenSSL is upgraded to the current 1.4 version or later.
|
||||
|
||||
If you are installing a "daily" build instead of a release build of Curl, some
|
||||
things have been changed so that it can be installed at the same time as
|
||||
a production build without conflicts.
|
||||
|
||||
The CURL_DAILY_STARTUP.COM will be supplied instead of CURL_STARTUP.COM.
|
||||
This file is actually not used with the daily package and is provided as
|
||||
a preview of what the next CURL_STARTUP.COM will be for the next release.
|
||||
Do not run it.
|
||||
|
||||
The files that are normally installed in [VMS$COMMON.GNV.usr], for the
|
||||
daily build are installed in [VMS$COMMON.GNV.beta] directory.
|
||||
|
||||
To use the daily GNV$LIBCURL image, you will need to define the logical
|
||||
name GNV$LIBCURL to the image.
|
98
third_party/curl/packages/vms/curl_startup.com
vendored
Normal file
98
third_party/curl/packages/vms/curl_startup.com
vendored
Normal file
@ -0,0 +1,98 @@
|
||||
$! File: curl_Startup.com
|
||||
$!
|
||||
$! Procedure to setup the CURL libraries for use by programs from the
|
||||
$! VMS SYSTARTUP*.COM procedure.
|
||||
$!
|
||||
$! Copyright (C) John Malmberg
|
||||
$!
|
||||
$! Permission to use, copy, modify, and/or distribute this software for any
|
||||
$! purpose with or without fee is hereby granted, provided that the above
|
||||
$! copyright notice and this permission notice appear in all copies.
|
||||
$!
|
||||
$! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
$! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
$! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
$! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
$! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
$! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
$! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
$!
|
||||
$! SPDX-License-Identifier: ISC
|
||||
$!
|
||||
$!========================================================================
|
||||
$!
|
||||
$!
|
||||
$! GNV$GNU if needed.
|
||||
$ if f$trnlnm("GNV$GNU") .eqs. ""
|
||||
$ then
|
||||
$ x = f$trnlnm("GNU","LNM$SYSTEM_TABLE")
|
||||
$ if x .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "GNV must be started up before this procedure.
|
||||
$ exit 44
|
||||
$ endif
|
||||
$ define/system/exec/trans=conc GNV$GNU 'x'
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$ myproc = f$environment("procedure")
|
||||
$!
|
||||
$! ZLIB needed.
|
||||
$ if f$trnlnm("GNV$LIBZSHR32") .eqs. ""
|
||||
$ then
|
||||
$ zlib_startup = f$parse("gnv$zlib_startup.com;0", myproc,,,)
|
||||
$ if f$search(zlib_startup) .nes. ""
|
||||
$ then
|
||||
$ @'zlib_startup
|
||||
$ else
|
||||
$ write sys$output "ZLIB package not found and is required."
|
||||
$ exit 44
|
||||
$ endif
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$ curl_ssl_libcrypto32 = ""
|
||||
$ curl_ssl_libssl32 = ""
|
||||
$ gnv_ssl_libcrypto32 = "gnv$gnu:[lib]ssl$libcrypto_shr32.exe"
|
||||
$ gnv_ssl_libssl32 = "gnv$gnu:[lib]ssl$libssl_shr32.exe"
|
||||
$ if f$search(gnv_ssl_libcrypto32) .nes. ""
|
||||
$ then
|
||||
$ curl_ssl_libcrypto32 = gnv_ssl_libcrypto32
|
||||
$ curl_ssl_libssl32 = gnv_ssl_libssl32
|
||||
$ else
|
||||
$ hp_ssl_libcrypto32 = "sys$share:ssl$libcrypto_shr32.exe"
|
||||
$ hp_ssl_libssl32 = "sys$share:ssl$libssl_shr32.exe"
|
||||
$ if f$search(hp_ssl_libcrypto32) .nes. ""
|
||||
$ then
|
||||
$ curl_ssl_libcrypto32 = hp_ssl_libcrypto32
|
||||
$ curl_ssl_libssl32 = hp_ssl_libssl32
|
||||
$ else
|
||||
$ write sys$output "HP SSL package not found and is required."
|
||||
$ endif
|
||||
$ endif
|
||||
$!
|
||||
$ define/system/exec gnv$curl_ssl_libcryptoshr32 'curl_ssl_libcrypto32'
|
||||
$ define/system/exec gnv$curl_ssl_libsslshr32 'curl_ssl_libssl32'
|
||||
$!
|
||||
$!
|
||||
$! CURL setup
|
||||
$ define/system/exec gnv$libcurl gnv$gnu:[usr.lib]GNV$LIBCURL.EXE
|
||||
$ define/system/exec gnv$curl_include gnv$gnu:[usr.include.curl]
|
||||
$ if .not. f$file_attributes("gnv$libcurl", "known")
|
||||
$ then
|
||||
$ install ADD gnv$libcurl/OPEN/SHARE/HEADER
|
||||
$ else
|
||||
$ install REPLACE gnv$libcurl/OPEN/SHARE/HEADER
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$ curl_exe = "gnv$gnu:[usr.bin]gnv$curl.exe"
|
||||
$ if .not. f$file_attributes(curl_exe, "known")
|
||||
$ then
|
||||
$ install ADD 'curl_exe'/OPEN/SHARE/HEADER
|
||||
$ else
|
||||
$ install REPLACE 'curl_exe'/OPEN/SHARE/HEADER
|
||||
$ endif
|
||||
$!
|
||||
$all_exit:
|
||||
$ exit
|
143
third_party/curl/packages/vms/curlmsg.h
vendored
Normal file
143
third_party/curl/packages/vms/curlmsg.h
vendored
Normal file
@ -0,0 +1,143 @@
|
||||
#ifndef HEADER_CURLMSG_H
|
||||
#define HEADER_CURLMSG_H
|
||||
/***************************************************************************
|
||||
* _ _ ____ _
|
||||
* Project ___| | | | _ \| |
|
||||
* / __| | | | |_) | |
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
* are also available at https://curl.se/docs/copyright.html.
|
||||
*
|
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
* copies of the Software, and permit persons to whom the Software is
|
||||
* furnished to do so, under the terms of the COPYING file.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
* SPDX-License-Identifier: curl
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
#pragma __member_alignment __save
|
||||
#pragma __nomember_alignment
|
||||
|
||||
/* */
|
||||
/* CURLMSG.H */
|
||||
/* */
|
||||
/* SDL File Generated by VAX-11 Message V04-00 on 3-SEP-2008 13:33:54.09 */
|
||||
/* */
|
||||
/* THESE VMS ERROR CODES ARE GENERATED BY TAKING APART THE CURL.H */
|
||||
/* FILE AND PUTTING ALL THE CURLE_* ENUM STUFF INTO THIS FILE, */
|
||||
/* CURLMSG.MSG. AN .SDL FILE IS CREATED FROM THIS FILE WITH */
|
||||
/* MESSAGE/SDL. THE .H FILE IS CREATED USING THE FREEWARE SDL TOOL */
|
||||
/* AGAINST THE .SDL FILE WITH SDL/ALPHA/LANG=CC COMMAND. */
|
||||
/* */
|
||||
/* WITH THE EXCEPTION OF CURLE_OK, ALL OF THE MESSAGES ARE AT */
|
||||
/* THE ERROR SEVERITY LEVEL. WITH THE EXCEPTION OF */
|
||||
/* PEER_FAILED_VERIF, WHICH IS A SHORTENED FORM OF */
|
||||
/* PEER_FAILED_VERIFICATION, THESE ARE THE SAME NAMES AS THE */
|
||||
/* CURLE_ ONES IN INCLUDE/CURL.H. THE MESSAGE UTILITY MANUAL STATES */
|
||||
/* "THE COMBINED LENGTH OF THE PREFIX AND THE MESSAGE SYMBOL NAME CANNOT */
|
||||
/* EXCEED 31 CHARACTERS." WITH A PREFIX OF FIVE THAT LEAVES US WITH 26 */
|
||||
/* FOR THE MESSAGE NAME. */
|
||||
/* */
|
||||
/* IF YOU UPDATE THIS FILE, UPDATE CURLMSG_VMS.H SO THAT THEY ARE IN SYNC */
|
||||
/* */
|
||||
|
||||
#define CURL_FACILITY 3841
|
||||
#define CURL_OK 251756553
|
||||
#define CURL_UNSUPPORTED_PROTOCOL 251756562
|
||||
#define CURL_FAILED_INIT 251756570
|
||||
#define CURL_URL_MALFORMAT 251756578
|
||||
#define CURL_OBSOLETE4 251756586
|
||||
#define CURL_COULDNT_RESOLVE_PROXY 251756594
|
||||
#define CURL_COULDNT_RESOLVE_HOST 251756602
|
||||
#define CURL_COULDNT_CONNECT 251756610
|
||||
#define CURL_WEIRD_SERVER_REPLY 251756618
|
||||
#define CURL_FTP_WEIRD_SERVER_REPLY CURL_WEIRD_SERVER_REPLY
|
||||
#define CURL_FTP_ACCESS_DENIED 251756626
|
||||
#define CURL_OBSOLETE10 251756634
|
||||
#define CURL_FTP_WEIRD_PASS_REPLY 251756642
|
||||
#define CURL_OBSOLETE12 251756650
|
||||
#define CURL_FTP_WEIRD_PASV_REPLY 251756658
|
||||
#define CURL_FTP_WEIRD_227_FORMAT 251756666
|
||||
#define CURL_FTP_CANT_GET_HOST 251756674
|
||||
#define CURL_OBSOLETE16 251756682
|
||||
#define CURL_FTP_COULDNT_SET_TYPE 251756690
|
||||
#define CURL_PARTIAL_FILE 251756698
|
||||
#define CURL_FTP_COULDNT_RETR_FILE 251756706
|
||||
#define CURL_OBSOLETE20 251756714
|
||||
#define CURL_QUOTE_ERROR 251756722
|
||||
#define CURL_HTTP_RETURNED_ERROR 251756730
|
||||
#define CURL_WRITE_ERROR 251756738
|
||||
#define CURL_OBSOLETE24 251756746
|
||||
#define CURL_UPLOAD_FAILED 251756754
|
||||
#define CURL_READ_ERROR 251756762
|
||||
#define CURL_OUT_OF_MEMORY 251756770
|
||||
#define CURL_OPERATION_TIMEOUTED 251756778
|
||||
#define CURL_OBSOLETE29 251756786
|
||||
#define CURL_FTP_PORT_FAILED 251756794
|
||||
#define CURL_FTP_COULDNT_USE_REST 251756802
|
||||
#define CURL_OBSOLETE32 251756810
|
||||
#define CURL_RANGE_ERROR 251756818
|
||||
#define CURL_HTTP_POST_ERROR 251756826
|
||||
#define CURL_SSL_CONNECT_ERROR 251756834
|
||||
#define CURL_BAD_DOWNLOAD_RESUME 251756842
|
||||
#define CURL_FILE_COULDNT_READ_FILE 251756850
|
||||
#define CURL_LDAP_CANNOT_BIND 251756858
|
||||
#define CURL_LDAP_SEARCH_FAILED 251756866
|
||||
#define CURL_OBSOLETE40 251756874
|
||||
#define CURL_FUNCTION_NOT_FOUND 251756882
|
||||
#define CURL_ABORTED_BY_CALLBACK 251756890
|
||||
#define CURL_BAD_FUNCTION_ARGUMENT 251756898
|
||||
#define CURL_OBSOLETE44 251756906
|
||||
#define CURL_INTERFACE_FAILED 251756914
|
||||
#define CURL_OBSOLETE46 251756922
|
||||
#define CURL_TOO_MANY_REDIRECTS 251756930
|
||||
#define CURL_UNKNOWN_TELNET_OPTION 251756938
|
||||
#define CURL_TELNET_OPTION_SYNTAX 251756946
|
||||
#define CURL_OBSOLETE50 251756954
|
||||
#define CURL_PEER_FAILED_VERIF 251756962
|
||||
#define CURL_GOT_NOTHING 251756970
|
||||
#define CURL_SSL_ENGINE_NOTFOUND 251756978
|
||||
#define CURL_SSL_ENGINE_SETFAILED 251756986
|
||||
#define CURL_SEND_ERROR 251756994
|
||||
#define CURL_RECV_ERROR 251757002
|
||||
#define CURL_OBSOLETE57 251757010
|
||||
#define CURL_SSL_CERTPROBLEM 251757018
|
||||
#define CURL_SSL_CIPHER 251757026
|
||||
#define CURL_SSL_CACERT 251757034
|
||||
#define CURL_BAD_CONTENT_ENCODING 251757042
|
||||
#define CURL_LDAP_INVALID_URL 251757050
|
||||
#define CURL_FILESIZE_EXCEEDED 251757058
|
||||
#define CURL_USE_SSL_FAILED 251757066
|
||||
#define CURL_SEND_FAIL_REWIND 251757074
|
||||
#define CURL_SSL_ENGINE_INITFAILED 251757082
|
||||
#define CURL_LOGIN_DENIED 251757090
|
||||
#define CURL_TFTP_NOTFOUND 251757098
|
||||
#define CURL_TFTP_PERM 251757106
|
||||
#define CURL_REMOTE_DISK_FULL 251757114
|
||||
#define CURL_TFTP_ILLEGAL 251757122
|
||||
#define CURL_TFTP_UNKNOWNID 251757130
|
||||
#define CURL_REMOTE_FILE_EXISTS 251757138
|
||||
#define CURL_TFTP_NOSUCHUSER 251757146
|
||||
#define CURL_CONV_FAILED 251757154
|
||||
#define CURL_CONV_REQD 251757162
|
||||
#define CURL_SSL_CACERT_BADFILE 251757170
|
||||
#define CURL_REMOTE_FILE_NOT_FOUND 251757178
|
||||
#define CURL_SSH 251757186
|
||||
#define CURL_SSL_SHUTDOWN_FAILED 251757194
|
||||
#define CURL_AGAIN 251757202
|
||||
#define CURL_SSL_CRL_BADFILE 251757210
|
||||
#define CURL_SSL_ISSUER_ERROR 251757218
|
||||
#define CURL_CURL_LAST 251757226
|
||||
|
||||
#pragma __member_alignment __restore
|
||||
|
||||
#endif /* HEADER_CURLMSG_H */
|
134
third_party/curl/packages/vms/curlmsg.msg
vendored
Normal file
134
third_party/curl/packages/vms/curlmsg.msg
vendored
Normal file
@ -0,0 +1,134 @@
|
||||
!***************************************************************************
|
||||
! _ _ ____ _
|
||||
! Project ___| | | | _ \| |
|
||||
! / __| | | | |_) | |
|
||||
! | (__| |_| | _ <| |___
|
||||
! \___|\___/|_| \_\_____|
|
||||
!
|
||||
! Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
!
|
||||
! This software is licensed as described in the file COPYING, which
|
||||
! you should have received as part of this distribution. The terms
|
||||
! are also available at https://curl.se/docs/copyright.html.
|
||||
!
|
||||
! You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
! copies of the Software, and permit persons to whom the Software is
|
||||
! furnished to do so, under the terms of the COPYING file.
|
||||
!
|
||||
! This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
! KIND, either express or implied.
|
||||
!
|
||||
! SPDX-License-Identifier: curl
|
||||
!
|
||||
!##########################################################################
|
||||
!
|
||||
! These VMS error codes are generated by taking apart the curl.h
|
||||
! file and putting all the CURLE_* enum stuff into this file,
|
||||
! CURLMSG.MSG. An .SDL file is created from this file with
|
||||
! MESSAGE/SDL. The .H file is created using the freeware SDL tool
|
||||
! against the .SDL file with SDL/ALPHA/LANG=CC command.
|
||||
!
|
||||
! With the exception of CURLE_OK, all of the messages are at
|
||||
! the error severity level. With the exception of
|
||||
! PEER_FAILED_VERIF, which is a shortened form of
|
||||
! PEER_FAILED_VERIFICATION, these are the same names as the
|
||||
! CURLE_ ones in include/curl.h. The Message Utility manual states
|
||||
! "The combined length of the prefix and the message symbol name cannot
|
||||
! exceed 31 characters." With a prefix of five that leaves us with 26
|
||||
! for the message name.
|
||||
!
|
||||
! If you update this file also update curlmsg_vms.h so that they are in sync
|
||||
!
|
||||
.TITLE CURLMSG Message files
|
||||
.FACILITY CURL,1793 /PREFIX=CURL_
|
||||
.BASE 1
|
||||
.SEVERITY SUCCESS
|
||||
OK <normal successful completion>
|
||||
|
||||
.SEVERITY ERROR
|
||||
UNSUPPORTED_PROTOCOL <unsupported protocol>
|
||||
FAILED_INIT <failed init>
|
||||
URL_MALFORMAT <URL malformat>
|
||||
OBSOLETE4 <obsolete error code>
|
||||
COULDNT_RESOLVE_PROXY <could not resolve proxy>
|
||||
COULDNT_RESOLVE_HOST <could not resolve host>
|
||||
COULDNT_CONNECT <could not connect>
|
||||
WEIRD_SERVER_REPLY <weird server reply>
|
||||
FTP_ACCESS_DENIED <FTP access denied>
|
||||
OBSOLETE10 <obsolete error code>
|
||||
FTP_WEIRD_PASS_REPLY <FTP weird PASS reply>
|
||||
OBSOLETE12 <obsolete error code>
|
||||
FTP_WEIRD_PASV_REPLY <FTP weird PASV reply>
|
||||
FTP_WEIRD_227_FORMAT <FTP weird 227 format>
|
||||
FTP_CANT_GET_HOST <FTP can not get host>
|
||||
OBSOLETE16 <obsolete error code>
|
||||
FTP_COULDNT_SET_TYPE <FTP could not set type>
|
||||
PARTIAL_FILE <partial file>
|
||||
FTP_COULDNT_RETR_FILE <FTP could not RETR file>
|
||||
OBSOLETE20 <obsolete error code>
|
||||
QUOTE_ERROR <quote command error>
|
||||
HTTP_RETURNED_ERROR <HTTP returned error>
|
||||
WRITE_ERROR <write error>
|
||||
OBSOLETE24 <obsolete error code>
|
||||
UPLOAD_FAILED <failed upload command>
|
||||
READ_ERROR <read error, could not open/read file>
|
||||
OUT_OF_MEMORY <out of memory>
|
||||
OPERATION_TIMEOUTED <operation timed out, timeout time was reached>
|
||||
OBSOLETE29 <obsolete error code>
|
||||
FTP_PORT_FAILED <FTP PORT operation failed>
|
||||
FTP_COULDNT_USE_REST <FTP REST command failed>
|
||||
OBSOLETE32 <obsolete error code>
|
||||
RANGE_ERROR <RANGE command error>
|
||||
HTTP_POST_ERROR <HTTP POST error>
|
||||
SSL_CONNECT_ERROR <SSL connect error>
|
||||
BAD_DOWNLOAD_RESUME <bad download resume>
|
||||
FILE_COULDNT_READ_FILE <FILE could not read file>
|
||||
LDAP_CANNOT_BIND <LDAP cannot bind>
|
||||
LDAP_SEARCH_FAILED <LDAP search failed>
|
||||
OBSOLETE40 <obsolete error code>
|
||||
FUNCTION_NOT_FOUND <function not found>
|
||||
ABORTED_BY_CALLBACK <aborted by callback>
|
||||
BAD_FUNCTION_ARGUMENT <bad function argument>
|
||||
OBSOLETE44 <obsolete error code>
|
||||
INTERFACE_FAILED <CURLOPT_INTERFACE failed>
|
||||
OBSOLETE46 <obsolete error code>
|
||||
TOO_MANY_REDIRECTS <too many redirects>
|
||||
UNKNOWN_TELNET_OPTION <unknown TELNET option>
|
||||
TELNET_OPTION_SYNTAX <malformed TELNET option syntax>
|
||||
OBSOLETE50 <obsolete error code>
|
||||
PEER_FAILED_VERIF <peer certificate or fingerprint failed>
|
||||
GOT_NOTHING <got nothing>
|
||||
SSL_ENGINE_NOTFOUND <SSL crypto engine not found>
|
||||
SSL_ENGINE_SETFAILED <SSL can not set SSL crypto engine as default>
|
||||
SEND_ERROR <SEND error, failure sending network data>
|
||||
RECV_ERROR <RECV error, failure receiving network data>
|
||||
OBSOLETE57 <obsolete error code>
|
||||
SSL_CERTPROBLEM <SSL problem with the local certificate>
|
||||
SSL_CIPHER <SSL CIPHER, could not use specified cipher>
|
||||
SSL_CACERT <SSL CACERT, problem with the CA cert (path?)>
|
||||
BAD_CONTENT_ENCODING <unrecognized transfer encoding>
|
||||
LDAP_INVALID_URL <LDAP invalid url>
|
||||
FILESIZE_EXCEEDED <maximum file size exceeded>
|
||||
USE_SSL_FAILED <requested FTP SSL level failed>
|
||||
SEND_FAIL_REWIND <sending data requires a rewind that failed>
|
||||
SSL_ENGINE_INITFAILED <failed to initialise ENGINE>
|
||||
LOGIN_DENIED <user or password not accepted. failed to login>
|
||||
TFTP_NOTFOUND <file not found on server>
|
||||
TFTP_PERM <permission problem on server>
|
||||
REMOTE_DISK_FULL <out of disk space on server>
|
||||
TFTP_ILLEGAL <illegal TFTP operation>
|
||||
TFTP_UNKNOWNID <unknown transfer ID>
|
||||
REMOTE_FILE_EXISTS <file already exists>
|
||||
TFTP_NOSUCHUSER <no such user>
|
||||
CONV_FAILED <conversion failed>
|
||||
CONV_REQD <caller must register conversion callbacks>
|
||||
SSL_CACERT_BADFILE <could not load CACERT file>
|
||||
REMOTE_FILE_NOT_FOUND <remote file not found>
|
||||
SSH <unspecified error from the SSH layer>
|
||||
SSL_SHUTDOWN_FAILED <failed to shut down the SSL connection>
|
||||
AGAIN <socket not ready, wait and try again>
|
||||
SSL_CRL_BADFILE <could not load CRL file, missing or wrong format>
|
||||
SSL_ISSUER_ERROR <issuer check failed>
|
||||
CURL_LAST <CURLMSG.MSG is out of sync with the source code>
|
||||
|
||||
.END
|
116
third_party/curl/packages/vms/curlmsg.sdl
vendored
Normal file
116
third_party/curl/packages/vms/curlmsg.sdl
vendored
Normal file
@ -0,0 +1,116 @@
|
||||
|
||||
|
||||
MODULE $CURDEF;
|
||||
|
||||
/*
|
||||
/* This SDL File Generated by VAX-11 Message V04-00 on 3-SEP-2008 13:33:54.09
|
||||
/*
|
||||
/* $ID: CURLMSG.MSG,V 1.7 2008-05-30 23:51:09 CURLVMS EXP $
|
||||
/*
|
||||
/* THESE VMS ERROR CODES ARE GENERATED BY TAKING APART THE CURL.H
|
||||
/* FILE AND PUTTING ALL THE CURLE_* ENUM STUFF INTO THIS FILE,
|
||||
/* CURLMSG.MSG. AN .SDL FILE IS CREATED FROM THIS FILE WITH
|
||||
/* MESSAGE/SDL. THE .H FILE IS CREATED USING THE FREEWARE SDL TOOL
|
||||
/* AGAINST THE .SDL FILE WITH SDL/ALPHA/LANG=CC COMMAND.
|
||||
/*
|
||||
/* WITH THE EXCEPTION OF CURLE_OK, ALL OF THE MESSAGES ARE AT
|
||||
/* THE ERROR SEVERITY LEVEL. WITH THE EXCEPTION OF
|
||||
/* PEER_FAILED_VERIF, WHICH IS A SHORTENED FORM OF
|
||||
/* PEER_FAILED_VERIFICATION, THESE ARE THE SAME NAMES AS THE
|
||||
/* CURLE_ ONES IN INCLUDE/CURL.H. THE MESSAGE UTILITY MANUAL STATES
|
||||
/* "THE COMBINED LENGTH OF THE PREFIX AND THE MESSAGE SYMBOL NAME CANNOT
|
||||
/* EXCEED 31 CHARACTERS." WITH A PREFIX OF FIVE THAT LEAVES US WITH 26
|
||||
/* FOR THE MESSAGE NAME.
|
||||
/*
|
||||
/* IF YOU UPDATE THIS FILE ALSO UPDATE CURLMSG_VMS.H SO THAT THEY ARE IN SYNC
|
||||
/*
|
||||
CONSTANT
|
||||
"FACILITY" EQUALS 3841 PREFIX "CURL" TAG ""
|
||||
,"OK" EQUALS %X0F018009 PREFIX "CURL" TAG ""
|
||||
,"UNSUPPORTED_PROTOCOL" EQUALS %X0F018012 PREFIX "CURL" TAG ""
|
||||
,"FAILED_INIT" EQUALS %X0F01801A PREFIX "CURL" TAG ""
|
||||
,"URL_MALFORMAT" EQUALS %X0F018022 PREFIX "CURL" TAG ""
|
||||
,"OBSOLETE4" EQUALS %X0F01802A PREFIX "CURL" TAG ""
|
||||
,"COULDNT_RESOLVE_PROXY" EQUALS %X0F018032 PREFIX "CURL" TAG ""
|
||||
,"COULDNT_RESOLVE_HOST" EQUALS %X0F01803A PREFIX "CURL" TAG ""
|
||||
,"COULDNT_CONNECT" EQUALS %X0F018042 PREFIX "CURL" TAG ""
|
||||
,"WEIRD_SERVER_REPLY" EQUALS %X0F01804A PREFIX "CURL" TAG ""
|
||||
,"FTP_WEIRD_SERVER_REPLY" EQUALS %X0F01804A PREFIX "CURL" TAG ""
|
||||
,"FTP_ACCESS_DENIED" EQUALS %X0F018052 PREFIX "CURL" TAG ""
|
||||
,"OBSOLETE10" EQUALS %X0F01805A PREFIX "CURL" TAG ""
|
||||
,"FTP_WEIRD_PASS_REPLY" EQUALS %X0F018062 PREFIX "CURL" TAG ""
|
||||
,"OBSOLETE12" EQUALS %X0F01806A PREFIX "CURL" TAG ""
|
||||
,"FTP_WEIRD_PASV_REPLY" EQUALS %X0F018072 PREFIX "CURL" TAG ""
|
||||
,"FTP_WEIRD_227_FORMAT" EQUALS %X0F01807A PREFIX "CURL" TAG ""
|
||||
,"FTP_CANT_GET_HOST" EQUALS %X0F018082 PREFIX "CURL" TAG ""
|
||||
,"OBSOLETE16" EQUALS %X0F01808A PREFIX "CURL" TAG ""
|
||||
,"FTP_COULDNT_SET_TYPE" EQUALS %X0F018092 PREFIX "CURL" TAG ""
|
||||
,"PARTIAL_FILE" EQUALS %X0F01809A PREFIX "CURL" TAG ""
|
||||
,"FTP_COULDNT_RETR_FILE" EQUALS %X0F0180A2 PREFIX "CURL" TAG ""
|
||||
,"OBSOLETE20" EQUALS %X0F0180AA PREFIX "CURL" TAG ""
|
||||
,"QUOTE_ERROR" EQUALS %X0F0180B2 PREFIX "CURL" TAG ""
|
||||
,"HTTP_RETURNED_ERROR" EQUALS %X0F0180BA PREFIX "CURL" TAG ""
|
||||
,"WRITE_ERROR" EQUALS %X0F0180C2 PREFIX "CURL" TAG ""
|
||||
,"OBSOLETE24" EQUALS %X0F0180CA PREFIX "CURL" TAG ""
|
||||
,"UPLOAD_FAILED" EQUALS %X0F0180D2 PREFIX "CURL" TAG ""
|
||||
,"READ_ERROR" EQUALS %X0F0180DA PREFIX "CURL" TAG ""
|
||||
,"OUT_OF_MEMORY" EQUALS %X0F0180E2 PREFIX "CURL" TAG ""
|
||||
,"OPERATION_TIMEOUTED" EQUALS %X0F0180EA PREFIX "CURL" TAG ""
|
||||
,"OBSOLETE29" EQUALS %X0F0180F2 PREFIX "CURL" TAG ""
|
||||
,"FTP_PORT_FAILED" EQUALS %X0F0180FA PREFIX "CURL" TAG ""
|
||||
,"FTP_COULDNT_USE_REST" EQUALS %X0F018102 PREFIX "CURL" TAG ""
|
||||
,"OBSOLETE32" EQUALS %X0F01810A PREFIX "CURL" TAG ""
|
||||
,"RANGE_ERROR" EQUALS %X0F018112 PREFIX "CURL" TAG ""
|
||||
,"HTTP_POST_ERROR" EQUALS %X0F01811A PREFIX "CURL" TAG ""
|
||||
,"SSL_CONNECT_ERROR" EQUALS %X0F018122 PREFIX "CURL" TAG ""
|
||||
,"BAD_DOWNLOAD_RESUME" EQUALS %X0F01812A PREFIX "CURL" TAG ""
|
||||
,"FILE_COULDNT_READ_FILE" EQUALS %X0F018132 PREFIX "CURL" TAG ""
|
||||
,"LDAP_CANNOT_BIND" EQUALS %X0F01813A PREFIX "CURL" TAG ""
|
||||
,"LDAP_SEARCH_FAILED" EQUALS %X0F018142 PREFIX "CURL" TAG ""
|
||||
,"OBSOLETE40" EQUALS %X0F01814A PREFIX "CURL" TAG ""
|
||||
,"FUNCTION_NOT_FOUND" EQUALS %X0F018152 PREFIX "CURL" TAG ""
|
||||
,"ABORTED_BY_CALLBACK" EQUALS %X0F01815A PREFIX "CURL" TAG ""
|
||||
,"BAD_FUNCTION_ARGUMENT" EQUALS %X0F018162 PREFIX "CURL" TAG ""
|
||||
,"OBSOLETE44" EQUALS %X0F01816A PREFIX "CURL" TAG ""
|
||||
,"INTERFACE_FAILED" EQUALS %X0F018172 PREFIX "CURL" TAG ""
|
||||
,"OBSOLETE46" EQUALS %X0F01817A PREFIX "CURL" TAG ""
|
||||
,"TOO_MANY_REDIRECTS" EQUALS %X0F018182 PREFIX "CURL" TAG ""
|
||||
,"UNKNOWN_TELNET_OPTION" EQUALS %X0F01818A PREFIX "CURL" TAG ""
|
||||
,"TELNET_OPTION_SYNTAX" EQUALS %X0F018192 PREFIX "CURL" TAG ""
|
||||
,"OBSOLETE50" EQUALS %X0F01819A PREFIX "CURL" TAG ""
|
||||
,"PEER_FAILED_VERIF" EQUALS %X0F0181A2 PREFIX "CURL" TAG ""
|
||||
,"GOT_NOTHING" EQUALS %X0F0181AA PREFIX "CURL" TAG ""
|
||||
,"SSL_ENGINE_NOTFOUND" EQUALS %X0F0181B2 PREFIX "CURL" TAG ""
|
||||
,"SSL_ENGINE_SETFAILED" EQUALS %X0F0181BA PREFIX "CURL" TAG ""
|
||||
,"SEND_ERROR" EQUALS %X0F0181C2 PREFIX "CURL" TAG ""
|
||||
,"RECV_ERROR" EQUALS %X0F0181CA PREFIX "CURL" TAG ""
|
||||
,"OBSOLETE57" EQUALS %X0F0181D2 PREFIX "CURL" TAG ""
|
||||
,"SSL_CERTPROBLEM" EQUALS %X0F0181DA PREFIX "CURL" TAG ""
|
||||
,"SSL_CIPHER" EQUALS %X0F0181E2 PREFIX "CURL" TAG ""
|
||||
,"SSL_CACERT" EQUALS %X0F0181EA PREFIX "CURL" TAG ""
|
||||
,"BAD_CONTENT_ENCODING" EQUALS %X0F0181F2 PREFIX "CURL" TAG ""
|
||||
,"LDAP_INVALID_URL" EQUALS %X0F0181FA PREFIX "CURL" TAG ""
|
||||
,"FILESIZE_EXCEEDED" EQUALS %X0F018202 PREFIX "CURL" TAG ""
|
||||
,"USE_SSL_FAILED" EQUALS %X0F01820A PREFIX "CURL" TAG ""
|
||||
,"SEND_FAIL_REWIND" EQUALS %X0F018212 PREFIX "CURL" TAG ""
|
||||
,"SSL_ENGINE_INITFAILED" EQUALS %X0F01821A PREFIX "CURL" TAG ""
|
||||
,"LOGIN_DENIED" EQUALS %X0F018222 PREFIX "CURL" TAG ""
|
||||
,"TFTP_NOTFOUND" EQUALS %X0F01822A PREFIX "CURL" TAG ""
|
||||
,"TFTP_PERM" EQUALS %X0F018232 PREFIX "CURL" TAG ""
|
||||
,"REMOTE_DISK_FULL" EQUALS %X0F01823A PREFIX "CURL" TAG ""
|
||||
,"TFTP_ILLEGAL" EQUALS %X0F018242 PREFIX "CURL" TAG ""
|
||||
,"TFTP_UNKNOWNID" EQUALS %X0F01824A PREFIX "CURL" TAG ""
|
||||
,"REMOTE_FILE_EXISTS" EQUALS %X0F018252 PREFIX "CURL" TAG ""
|
||||
,"TFTP_NOSUCHUSER" EQUALS %X0F01825A PREFIX "CURL" TAG ""
|
||||
,"CONV_FAILED" EQUALS %X0F018262 PREFIX "CURL" TAG ""
|
||||
,"CONV_REQD" EQUALS %X0F01826A PREFIX "CURL" TAG ""
|
||||
,"SSL_CACERT_BADFILE" EQUALS %X0F018272 PREFIX "CURL" TAG ""
|
||||
,"REMOTE_FILE_NOT_FOUND" EQUALS %X0F01827A PREFIX "CURL" TAG ""
|
||||
,"SSH" EQUALS %X0F018282 PREFIX "CURL" TAG ""
|
||||
,"SSL_SHUTDOWN_FAILED" EQUALS %X0F01828A PREFIX "CURL" TAG ""
|
||||
,"AGAIN" EQUALS %X0F018292 PREFIX "CURL" TAG ""
|
||||
,"SSL_CRL_BADFILE" EQUALS %X0F01829A PREFIX "CURL" TAG ""
|
||||
,"SSL_ISSUER_ERROR" EQUALS %X0F0182A2 PREFIX "CURL" TAG ""
|
||||
,"CURL_LAST" EQUALS %X0F0182AA PREFIX "CURL" TAG ""
|
||||
;
|
||||
END_MODULE;
|
143
third_party/curl/packages/vms/curlmsg_vms.h
vendored
Normal file
143
third_party/curl/packages/vms/curlmsg_vms.h
vendored
Normal file
@ -0,0 +1,143 @@
|
||||
#ifndef HEADER_CURLMSG_VMS_H
|
||||
#define HEADER_CURLMSG_VMS_H
|
||||
/***************************************************************************
|
||||
* _ _ ____ _
|
||||
* Project ___| | | | _ \| |
|
||||
* / __| | | | |_) | |
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
* are also available at https://curl.se/docs/copyright.html.
|
||||
*
|
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
* copies of the Software, and permit persons to whom the Software is
|
||||
* furnished to do so, under the terms of the COPYING file.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
* SPDX-License-Identifier: curl
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
/* */
|
||||
/* CURLMSG_VMS.H */
|
||||
/* */
|
||||
/* This defines the necessary bits to change CURLE_* error codes to VMS */
|
||||
/* style error codes. CURLMSG.H is built from CURLMSG.SDL which is built */
|
||||
/* from CURLMSG.MSG. The vms_cond array is used to return VMS errors by */
|
||||
/* putting the VMS error codes into the array offset based on CURLE_* code. */
|
||||
/* */
|
||||
/* If you update CURLMSG.MSG make sure to update this file to match. */
|
||||
/* */
|
||||
|
||||
#include "curlmsg.h"
|
||||
|
||||
/*
|
||||
#define FAC_CURL 0xC01
|
||||
#define FAC_SYSTEM 0
|
||||
#define MSG_NORMAL 0
|
||||
*/
|
||||
|
||||
/*
|
||||
#define SEV_WARNING 0
|
||||
#define SEV_SUCCESS 1
|
||||
#define SEV_ERROR 2
|
||||
#define SEV_INFO 3
|
||||
#define SEV_FATAL 4
|
||||
*/
|
||||
|
||||
static const long vms_cond[] =
|
||||
{
|
||||
CURL_OK,
|
||||
CURL_UNSUPPORTED_PROTOCOL,
|
||||
CURL_FAILED_INIT,
|
||||
CURL_URL_MALFORMAT,
|
||||
CURL_OBSOLETE4,
|
||||
CURL_COULDNT_RESOLVE_PROXY,
|
||||
CURL_COULDNT_RESOLVE_HOST,
|
||||
CURL_COULDNT_CONNECT,
|
||||
CURL_WEIRD_SERVER_REPLY,
|
||||
CURL_FTP_ACCESS_DENIED,
|
||||
CURL_OBSOLETE10,
|
||||
CURL_FTP_WEIRD_PASS_REPLY,
|
||||
CURL_OBSOLETE12,
|
||||
CURL_FTP_WEIRD_PASV_REPLY,
|
||||
CURL_FTP_WEIRD_227_FORMAT,
|
||||
CURL_FTP_CANT_GET_HOST,
|
||||
CURL_OBSOLETE16,
|
||||
CURL_FTP_COULDNT_SET_TYPE,
|
||||
CURL_PARTIAL_FILE,
|
||||
CURL_FTP_COULDNT_RETR_FILE,
|
||||
CURL_OBSOLETE20,
|
||||
CURL_QUOTE_ERROR,
|
||||
CURL_HTTP_RETURNED_ERROR,
|
||||
CURL_WRITE_ERROR,
|
||||
CURL_OBSOLETE24,
|
||||
CURL_UPLOAD_FAILED,
|
||||
CURL_READ_ERROR,
|
||||
CURL_OUT_OF_MEMORY,
|
||||
CURL_OPERATION_TIMEOUTED,
|
||||
CURL_OBSOLETE29,
|
||||
CURL_FTP_PORT_FAILED,
|
||||
CURL_FTP_COULDNT_USE_REST,
|
||||
CURL_OBSOLETE32,
|
||||
CURL_RANGE_ERROR,
|
||||
CURL_HTTP_POST_ERROR,
|
||||
CURL_SSL_CONNECT_ERROR,
|
||||
CURL_BAD_DOWNLOAD_RESUME,
|
||||
CURL_FILE_COULDNT_READ_FILE,
|
||||
CURL_LDAP_CANNOT_BIND,
|
||||
CURL_LDAP_SEARCH_FAILED,
|
||||
CURL_OBSOLETE40,
|
||||
CURL_FUNCTION_NOT_FOUND,
|
||||
CURL_ABORTED_BY_CALLBACK,
|
||||
CURL_BAD_FUNCTION_ARGUMENT,
|
||||
CURL_OBSOLETE44,
|
||||
CURL_INTERFACE_FAILED,
|
||||
CURL_OBSOLETE46,
|
||||
CURL_TOO_MANY_REDIRECTS,
|
||||
CURL_UNKNOWN_TELNET_OPTION,
|
||||
CURL_TELNET_OPTION_SYNTAX,
|
||||
CURL_OBSOLETE50,
|
||||
CURL_PEER_FAILED_VERIF,
|
||||
CURL_GOT_NOTHING,
|
||||
CURL_SSL_ENGINE_NOTFOUND,
|
||||
CURL_SSL_ENGINE_SETFAILED,
|
||||
CURL_SEND_ERROR,
|
||||
CURL_RECV_ERROR,
|
||||
CURL_OBSOLETE57,
|
||||
CURL_SSL_CERTPROBLEM,
|
||||
CURL_SSL_CIPHER,
|
||||
CURL_SSL_CACERT,
|
||||
CURL_BAD_CONTENT_ENCODING,
|
||||
CURL_LDAP_INVALID_URL,
|
||||
CURL_FILESIZE_EXCEEDED,
|
||||
CURL_USE_SSL_FAILED,
|
||||
CURL_SEND_FAIL_REWIND,
|
||||
CURL_SSL_ENGINE_INITFAILED,
|
||||
CURL_LOGIN_DENIED,
|
||||
CURL_TFTP_NOTFOUND,
|
||||
CURL_TFTP_PERM,
|
||||
CURL_REMOTE_DISK_FULL,
|
||||
CURL_TFTP_ILLEGAL,
|
||||
CURL_TFTP_UNKNOWNID,
|
||||
CURL_REMOTE_FILE_EXISTS,
|
||||
CURL_TFTP_NOSUCHUSER,
|
||||
CURL_CONV_FAILED,
|
||||
CURL_CONV_REQD,
|
||||
CURL_SSL_CACERT_BADFILE,
|
||||
CURL_REMOTE_FILE_NOT_FOUND,
|
||||
CURL_SSH,
|
||||
CURL_SSL_SHUTDOWN_FAILED,
|
||||
CURL_AGAIN,
|
||||
CURLE_SSL_CRL_BADFILE,
|
||||
CURLE_SSL_ISSUER_ERROR,
|
||||
CURL_CURL_LAST
|
||||
};
|
||||
|
||||
#endif /* HEADER_CURLMSG_VMS_H */
|
450
third_party/curl/packages/vms/generate_config_vms_h_curl.com
vendored
Normal file
450
third_party/curl/packages/vms/generate_config_vms_h_curl.com
vendored
Normal file
@ -0,0 +1,450 @@
|
||||
$! File: GENERATE_CONFIG_H_CURL.COM
|
||||
$!
|
||||
$! Curl like most open source products uses a variant of a config.h file.
|
||||
$! Depending on the curl version, this could be config.h or curl_config.h.
|
||||
$!
|
||||
$! For GNV based builds, the configure script is run and that produces
|
||||
$! a [curl_]config.h file. Configure scripts on VMS generally do not
|
||||
$! know how to do everything, so there is also a [-.lib]config-vms.h file
|
||||
$! that has VMS specific code that compensates for bugs in some of the
|
||||
$! VMS shared images.
|
||||
$!
|
||||
$! This generates a [curl_]config.h file and also a config_vms.h file,
|
||||
$! which is used to supplement that file. Note that the config_vms.h file
|
||||
$! and the [.lib]config-vms.h file do two different tasks and that the
|
||||
$! filenames are slightly different.
|
||||
$!
|
||||
$! Copyright (C) John Malmberg
|
||||
$!
|
||||
$! Permission to use, copy, modify, and/or distribute this software for any
|
||||
$! purpose with or without fee is hereby granted, provided that the above
|
||||
$! copyright notice and this permission notice appear in all copies.
|
||||
$!
|
||||
$! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
$! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
$! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
$! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
$! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
$! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
$! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
$!
|
||||
$! SPDX-License-Identifier: ISC
|
||||
$!
|
||||
$!=========================================================================
|
||||
$!
|
||||
$! Allow arguments to be grouped together with comma or separated by spaces
|
||||
$! Do no know if we will need more than 8.
|
||||
$args = "," + p1 + "," + p2 + "," + p3 + "," + p4 + ","
|
||||
$args = args + p5 + "," + p6 + "," + p7 + "," + p8 + ","
|
||||
$!
|
||||
$! Provide lower case version to simplify parsing.
|
||||
$args_lower = f$edit(args, "LOWERCASE")
|
||||
$!
|
||||
$args_len = f$length(args)
|
||||
$!
|
||||
$if (f$getsyi("HW_MODEL") .lt. 1024)
|
||||
$then
|
||||
$ arch_name = "VAX"
|
||||
$else
|
||||
$ arch_name = ""
|
||||
$ arch_name = arch_name + f$edit(f$getsyi("ARCH_NAME"), "UPCASE")
|
||||
$ if (arch_name .eqs. "") then arch_name = "UNK"
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$nossl = 0
|
||||
$nohpssl = 1
|
||||
$hpssl = 0
|
||||
$libidn = 0
|
||||
$libssh2 = 0
|
||||
$noldap = 0
|
||||
$nozlib = 0
|
||||
$nokerberos = 0
|
||||
$!
|
||||
$! First check to see if SSL is disabled.
|
||||
$!---------------------------------------
|
||||
$if f$locate(",nossl,", args_lower) .lt. args_len then nossl = 1
|
||||
$if .not. nossl
|
||||
$then
|
||||
$!
|
||||
$! ssl$* logicals means HP ssl is present
|
||||
$!----------------------------------------
|
||||
$ if f$trnlnm("ssl$root") .nes. ""
|
||||
$ then
|
||||
$ nohpssl = 0
|
||||
$ hpssl = 1
|
||||
$ endif
|
||||
$!
|
||||
$! HP defines OPENSSL as SSL$INCLUDE as a convenience for linking.
|
||||
$! As it is a violation of VMS standards for this to be provided,
|
||||
$! some sites may have removed it, but if present, assume that
|
||||
$! it indicates which OpenSSL to use.
|
||||
$!------------------------------------
|
||||
$ openssl_lnm = f$trnlnm("OPENSSL")
|
||||
$ if (openssl_lnm .nes. "SYS$INCLUDE")
|
||||
$ then
|
||||
$! Non HP SSL is installed, default to use it.
|
||||
$ nohpssl = 1
|
||||
$ hpssl = 0
|
||||
$ endif
|
||||
$!
|
||||
$! Now check to see if hpssl has been specifically disabled
|
||||
$!----------------------------------------------------------
|
||||
$ if f$locate(",nohpssl,", args_lower) .lt. args_len
|
||||
$ then
|
||||
$ nohpssl = 1
|
||||
$ hpssl = 0
|
||||
$ endif
|
||||
$!
|
||||
$! Finally check to see if hp ssl has been specifically included.
|
||||
$!----------------------------------------------------------------
|
||||
$ if f$locate(",nohpssl,", args_lower) .lt. args_len
|
||||
$ then
|
||||
$ nohpssl = 1
|
||||
$ hpssl = 0
|
||||
$ endif
|
||||
$endif
|
||||
$!
|
||||
$! Did someone port LIBIDN in the GNV compatible way?
|
||||
$!------------------------------------------------------
|
||||
$if f$trnlnm("GNV$LIBIDNSHR") .nes. ""
|
||||
$then
|
||||
$ write sys$output "NOTICE: A LIBIDN port has been detected."
|
||||
$ write sys$output " This port of curl for VMS has not been tested with it."
|
||||
$ if f$locate(",libidn,", args_lower) .lt. args_len
|
||||
$ then
|
||||
$ libidn = 1
|
||||
$ endif
|
||||
$ if .not. libidn
|
||||
$ then
|
||||
$ write sys$output " LIBIDN support is not enabled."
|
||||
$ write sys$output "Run with the ""libidn"" parameter to attempt to use."
|
||||
$ else
|
||||
$ write sys$output " Untested LIBIDN support requested."
|
||||
$ endif
|
||||
$endif
|
||||
$!
|
||||
$! Did someone port LIBSSH2 in the GNV compatible way?
|
||||
$!------------------------------------------------------
|
||||
$if f$trnlnm("GNV$LIBSSH2SHR") .nes. ""
|
||||
$then
|
||||
$ write sys$output "NOTICE: A LIBSSH2 port has been detected."
|
||||
$ write sys$output " This port of curl for VMS has not been tested with it."
|
||||
$ if f$locate(",libssh2,", args_lower) .lt. args_len
|
||||
$ then
|
||||
$ libssh2 = 1
|
||||
$ endif
|
||||
$ if .not. libssh2
|
||||
$ then
|
||||
$ write sys$output " LIBSSH2 support is not enabled."
|
||||
$ write sys$output "Run with the ""libssh2"" parameter to attempt to use."
|
||||
$ else
|
||||
$ write sys$output " Untested LIBSSH2 support requested."
|
||||
$ endif
|
||||
$endif
|
||||
$!
|
||||
$! LDAP suppressed?
|
||||
$if f$locate(",noldap,", args_lower) .lt. args_len
|
||||
$then
|
||||
$ noldap = 1
|
||||
$endif
|
||||
$if f$search("SYS$SHARE:LDAP$SHR.EXE") .eqs. ""
|
||||
$then
|
||||
$ noldap = 1
|
||||
$endif
|
||||
$!
|
||||
$if f$locate(",nokerberos,", args_lower) .lt. args_len then nokerberos = 1
|
||||
$if .not. nokerberos
|
||||
$then
|
||||
$! If kerberos is installed: sys$share:gss$rtl.exe exists.
|
||||
$ if f$search("sys$shsare:gss$rtl.exe") .eqs. ""
|
||||
$ then
|
||||
$ nokerberos = 1
|
||||
$ endif
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$! Is GNV compatible LIBZ present?
|
||||
$!------------------------------------------------------
|
||||
$if f$trnlnm("GNV$LIBZSHR") .nes. ""
|
||||
$then
|
||||
$ if f$locate(",nozlib,", args_lower) .lt. args_len
|
||||
$ then
|
||||
$ nozlib = 1
|
||||
$ endif
|
||||
$! if .not. nozlib
|
||||
$! then
|
||||
$! write sys$output " GNV$LIBZSHR support is enabled."
|
||||
$! else
|
||||
$! write sys$output " GNV$LIBZSHR support is disabled by nozlib."
|
||||
$! endif
|
||||
$else
|
||||
$ nozlib = 1
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$! Start the configuration file.
|
||||
$! Need to do a create and then an append to make the file have the
|
||||
$! typical file attributes of a VMS text file.
|
||||
$create sys$disk:[curl.lib]config_vms.h
|
||||
$open/append cvh sys$disk:[curl.lib]config_vms.h
|
||||
$!
|
||||
$! Write the defines to prevent multiple includes.
|
||||
$! These are probably not needed in this case,
|
||||
$! but are best practice to put on all header files.
|
||||
$write cvh "#ifndef __CONFIG_VMS_H__"
|
||||
$write cvh "#define __CONFIG_VMS_H__"
|
||||
$write cvh ""
|
||||
$write cvh "/* Define cpu-machine-OS */"
|
||||
$!
|
||||
$! Curl uses an OS macro to set the build environment.
|
||||
$!----------------------------------------------------
|
||||
$! Now the DCL builds usually say xxx-HP-VMS and configure scripts
|
||||
$! may put DEC or COMPAQ or HP for the middle part.
|
||||
$!
|
||||
$write cvh "#if defined(__alpha)"
|
||||
$write cvh "#define OS ""ALPHA-HP-VMS"""
|
||||
$write cvh "#elif defined(__vax)"
|
||||
$write cvh "#define OS ""VAX-HP-VMS"""
|
||||
$write cvh "#elif defined(__ia64)"
|
||||
$write cvh "#define OS ""IA64-HP-VMS""
|
||||
$write cvh "#else"
|
||||
$write cvh "#define OS ""UNKNOWN-HP-VMS""
|
||||
$write cvh "#endif"
|
||||
$write cvh ""
|
||||
$!
|
||||
$! We are now setting this on the GNV build, so also do this
|
||||
$! for compatibility.
|
||||
$write cvh "/* Location of default ca path */"
|
||||
$write cvh "#define curl_ca_path ""gnv$curl_ca_path"""
|
||||
$!
|
||||
$! NTLM_WB_ENABLED requires fork() but configure does not know this
|
||||
$! We have to disable this in the configure command line.
|
||||
$! config_h.com finds that configure defaults to it being enabled so
|
||||
$! reports it. So we need to turn it off here.
|
||||
$!
|
||||
$write cvh "#ifdef NTLM_WB_ENABLED"
|
||||
$write cvh "#undef NTLM_WB_ENABLED"
|
||||
$write cvh "#endif"
|
||||
$!
|
||||
$! The config_h.com finds a bunch of default disable commands in
|
||||
$! configure and will incorrectly disable these options. The config_h.com
|
||||
$! is a generic procedure and it would break more things to try to fix it
|
||||
$! to special case it for curl. So we will fix it here.
|
||||
$!
|
||||
$! We do them all here, even the ones that config_h.com currently gets correct.
|
||||
$!
|
||||
$write cvh "#ifdef CURL_DISABLE_COOKIES"
|
||||
$write cvh "#undef CURL_DISABLE_COOKIES"
|
||||
$write cvh "#endif"
|
||||
$write cvh "#ifdef CURL_DISABLE_DICT"
|
||||
$write cvh "#undef CURL_DISABLE_DICT"
|
||||
$write cvh "#endif"
|
||||
$write cvh "#ifdef CURL_DISABLE_FILE"
|
||||
$write cvh "#undef CURL_DISABLE_FILE"
|
||||
$write cvh "#endif"
|
||||
$write cvh "#ifdef CURL_DISABLE_FTP"
|
||||
$write cvh "#undef CURL_DISABLE_FTP"
|
||||
$write cvh "#endif"
|
||||
$write cvh "#ifdef CURL_DISABLE_GOPHER"
|
||||
$write cvh "#undef CURL_DISABLE_GOPHER"
|
||||
$write cvh "#endif"
|
||||
$write cvh "#ifdef CURL_DISABLE_HTTP"
|
||||
$write cvh "#undef CURL_DISABLE_HTTP"
|
||||
$write cvh "#endif"
|
||||
$write cvh "#ifdef CURL_DISABLE_IMAP"
|
||||
$write cvh "#undef CURL_DISABLE_IMAP"
|
||||
$write cvh "#endif"
|
||||
$if .not. noldap
|
||||
$then
|
||||
$ write cvh "#ifdef CURL_DISABLE_LDAP"
|
||||
$ write cvh "#undef CURL_DISABLE_LDAP"
|
||||
$ write cvh "#endif"
|
||||
$ if .not. nossl
|
||||
$ then
|
||||
$ write cvh "#ifdef CURL_DISABLE_LDAPS"
|
||||
$ write cvh "#undef CURL_DISABLE_LDAPS"
|
||||
$ write cvh "#endif"
|
||||
$ endif
|
||||
$endif
|
||||
$write cvh "#ifdef CURL_DISABLE_LIBCURL_OPTION"
|
||||
$write cvh "#undef CURL_DISABLE_LIBCURL_OPTION"
|
||||
$write cvh "#endif"
|
||||
$write cvh "#ifndef __VAX"
|
||||
$write cvh "#ifdef CURL_DISABLE_NTLM"
|
||||
$write cvh "#undef CURL_DISABLE_NTLM"
|
||||
$write cvh "#endif"
|
||||
$write cvh "#else"
|
||||
$! NTLM needs long long or int64 support, missing from DECC C.
|
||||
$write cvh "#ifdef __DECC
|
||||
$write cvh "#ifndef CURL_DISABLE_NTLM"
|
||||
$write cvh "#define CURL_DISABLE_NTLM 1"
|
||||
$write cvh "#endif"
|
||||
$write cvh "#endif"
|
||||
$write cvh "#endif"
|
||||
$write cvh "#ifdef CURL_DISABLE_POP3"
|
||||
$write cvh "#undef CURL_DISABLE_POP3"
|
||||
$write cvh "#endif"
|
||||
$write cvh "#ifdef CURL_DISABLE_PROXY"
|
||||
$write cvh "#undef CURL_DISABLE_PROXY"
|
||||
$write cvh "#endif"
|
||||
$write cvh "#ifdef CURL_DISABLE_RTSP"
|
||||
$write cvh "#undef CURL_DISABLE_RTSP"
|
||||
$write cvh "#endif"
|
||||
$write cvh "#ifdef CURL_DISABLE_SMTP"
|
||||
$write cvh "#undef CURL_DISABLE_SMTP"
|
||||
$write cvh "#endif"
|
||||
$write cvh "#ifdef CURL_DISABLE_TELNET"
|
||||
$write cvh "#undef CURL_DISABLE_TELNET"
|
||||
$write cvh "#endif"
|
||||
$write cvh "#ifdef CURL_DISABLE_TFTP"
|
||||
$write cvh "#undef CURL_DISABLE_TFTP"
|
||||
$write cvh "#endif"
|
||||
$write cvh "#ifdef CURL_DISABLE_POP3"
|
||||
$write cvh "#undef CURL_DISABLE_POP3"
|
||||
$write cvh "#endif"
|
||||
$if .not. nossl
|
||||
$then
|
||||
$ write cvh "#ifdef CURL_DISABLE_TLS_SRP"
|
||||
$ write cvh "#undef CURL_DISABLE_TLS_SRP"
|
||||
$ write cvh "#endif"
|
||||
$!
|
||||
$endif
|
||||
$write cvh "#ifdef CURL_DISABLE_VERBOSE_STRINGS"
|
||||
$write cvh "#undef CURL_DISABLE_VERBOSE_STRINGS"
|
||||
$write cvh "#endif"
|
||||
$!
|
||||
$! configure defaults to USE_*, a real configure on VMS chooses different.
|
||||
$write cvh "#ifdef USE_ARES"
|
||||
$write cvh "#undef USE_ARES"
|
||||
$write cvh "#endif"
|
||||
$write cvh "#ifdef USE_WOLFSSL"
|
||||
$write cvh "#undef USE_WOLFSSL"
|
||||
$write cvh "#endif"
|
||||
$write cvh "#ifdef USE_GNUTLS"
|
||||
$write cvh "#undef USE_GNUTLS"
|
||||
$write cvh "#endif"
|
||||
$write cvh "#ifdef USE_LIBRTMP"
|
||||
$write cvh "#undef USE_LIBRTMP"
|
||||
$write cvh "#endif"
|
||||
$write cvh "#ifdef USE_MANUAL"
|
||||
$write cvh "#undef USE_MANUAL"
|
||||
$write cvh "#endif"
|
||||
$write cvh "#ifdef USE_NGHTTP2"
|
||||
$write cvh "#undef USE_NGHTTP2"
|
||||
$write cvh "#endif"
|
||||
$write cvh "#ifdef USE_OPENLDAP"
|
||||
$write cvh "#undef USE_OPENLDAP"
|
||||
$write cvh "#endif"
|
||||
$write cvh "#ifdef USE_THREADS_POSIX"
|
||||
$write cvh "#undef USE_THREADS_POSIX"
|
||||
$write cvh "#endif"
|
||||
$write cvh "#ifdef USE_TLS_SRP"
|
||||
$write cvh "#undef USE_TLS_SRP"
|
||||
$write cvh "#endif"
|
||||
$write cvh "#ifdef USE_UNIX_SOCKETS"
|
||||
$write cvh "#undef USE_UNIX_SOCKETS"
|
||||
$write cvh "#endif"
|
||||
$!
|
||||
$write cvh "#ifndef HAVE_OLD_GSSMIT"
|
||||
$write cvh "#define gss_nt_service_name GSS_C_NT_HOSTBASED_SERVICE"
|
||||
$write cvh "#endif"
|
||||
$!
|
||||
$!
|
||||
$! Note:
|
||||
$! The CURL_EXTERN_SYMBOL is used for platforms that need the compiler
|
||||
$! to know about universal symbols. VMS does not need this support so
|
||||
$! we do not set it here.
|
||||
$!
|
||||
$!
|
||||
$! I can not figure out where the C compiler is finding the ALLOCA.H file
|
||||
$! in the text libraries, so CONFIG_H.COM can not find it either.
|
||||
$! Usually the header file name is the module name in the text library.
|
||||
$! It does not appear to hurt anything to not find header file, so we
|
||||
$! are not overriding it here.
|
||||
$!
|
||||
$!
|
||||
$! Check to see if OpenSSL is present.
|
||||
$!----------------------------------
|
||||
$ssl_include = f$trnlnm("OPENSSL")
|
||||
$if ssl_include .eqs. ""
|
||||
$then
|
||||
$ ssl_include = f$trnlnm("ssl$include")
|
||||
$endif
|
||||
$if ssl_include .eqs. "" then nossl = 1
|
||||
$!
|
||||
$if .not. nossl
|
||||
$then
|
||||
$!
|
||||
$ write cvh "#ifndef USE_OPENSSL"
|
||||
$ write cvh "#define USE_OPENSSL 1"
|
||||
$ write cvh "#endif"
|
||||
$ if arch_name .eqs. "VAX"
|
||||
$ then
|
||||
$ old_mes = f$environment("message")
|
||||
$ set message/notext/nofaci/noseve/noident
|
||||
$ search/output=nla0: ssl$include:*.h CONF_MFLAGS_IGNORE_MISSING_FILE
|
||||
$ status = $severity
|
||||
$ set message'old_mes'
|
||||
$ if status .nes. "1"
|
||||
$ then
|
||||
$ write cvh "#define VMS_OLD_SSL 1"
|
||||
$ endif
|
||||
$ endif
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$! LibIDN not ported to VMS at this time.
|
||||
$! This is for international domain name support.
|
||||
$! Allow explicit experimentation.
|
||||
$if libidn
|
||||
$then
|
||||
$ write cvh "#define HAVE_IDNA_STRERROR 1"
|
||||
$ write cvh "#define HAVE_IDNA_FREE 1"
|
||||
$ write cvh "#define HAVE_IDNA_FREE_H 1"
|
||||
$ write cvh "#define HAVE_LIBIDN 1"
|
||||
$else
|
||||
$ write cvh "#ifdef HAVE_LIBIDN"
|
||||
$ write cvh "#undef HAVE_LIBIDN"
|
||||
$ write cvh "#endif"
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$! LibSSH2 not ported to VMS at this time.
|
||||
$! Allow explicit experimentation.
|
||||
$if libssh2
|
||||
$then
|
||||
$ write cvh "#define HAVE_LIBSSH2_EXIT 1"
|
||||
$ write cvh "#define HAVE_LIBSSH2_INIT 1"
|
||||
$ write cvh "#define HAVE_LIBSSH2_SCP_SEND64 1"
|
||||
$ write cvh "#define HAVE_LIBSSH2_SESSION_HANDSHAKE 1"
|
||||
$ write cvh "#define HAVE_LIBSSH2_VERSION 1
|
||||
$!
|
||||
$ write cvh "#ifndef USE_LIBSSH2"
|
||||
$ write cvh "#define USE_LIBSSH2 1"
|
||||
$ write cvh "#endif"
|
||||
$else
|
||||
$ write cvh "#ifdef USE_LIBSSH2"
|
||||
$ write cvh "#undef USE_LIBSSH2"
|
||||
$ write cvh "#endif"
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$!
|
||||
$if .not. nozlib
|
||||
$then
|
||||
$ write cvh "#define HAVE_LIBZ 1"
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$! Suppress a message in curl_gssapi.c compile.
|
||||
$write cvh "#pragma message disable notconstqual"
|
||||
$!
|
||||
$! Close out the file
|
||||
$!
|
||||
$write cvh ""
|
||||
$write cvh "#endif /* __CONFIG_VMS_H__ */"
|
||||
$close cvh
|
||||
$!
|
||||
$all_exit:
|
||||
$exit
|
273
third_party/curl/packages/vms/generate_vax_transfer.com
vendored
Normal file
273
third_party/curl/packages/vms/generate_vax_transfer.com
vendored
Normal file
@ -0,0 +1,273 @@
|
||||
$! File: generate_vax_transfer.com
|
||||
$!
|
||||
$! File to generate and compile the VAX transfer vectors from reading in the
|
||||
$! Alpha/Itanium gnv_libcurl_symbols.opt file.
|
||||
$!
|
||||
$! This procedure patches the VAX Macro32 assembler to be case sensitive
|
||||
$! and then compiles the generated
|
||||
$!
|
||||
$! The output of this procedure is:
|
||||
$! gnv_libcurl_xfer.mar_exact
|
||||
$! gnv_libcurl_xfer.obj
|
||||
$! gnv_libcurl_xfer.opt
|
||||
$! macro32_exactcase.exe
|
||||
$!
|
||||
$! Copyright (C) John Malmberg
|
||||
$!
|
||||
$! Permission to use, copy, modify, and/or distribute this software for any
|
||||
$! purpose with or without fee is hereby granted, provided that the above
|
||||
$! copyright notice and this permission notice appear in all copies.
|
||||
$!
|
||||
$! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
$! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
$! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
$! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
$! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
$! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
$! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
$!
|
||||
$! SPDX-License-Identifier: ISC
|
||||
$!
|
||||
$!============================================================================
|
||||
$!
|
||||
$! Save this so we can get back.
|
||||
$ default_dir = f$environment("default")
|
||||
$!
|
||||
$ on warning then goto all_exit
|
||||
$!
|
||||
$! Want hard tabs in the generated file.
|
||||
$ tab[0,8] = 9
|
||||
$!
|
||||
$! This procedure is used on VAX only
|
||||
$ if (f$getsyi("HW_MODEL") .ge. 1024)
|
||||
$ then
|
||||
$ write sys$output "This procedure is only used on VAX."
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$! Get the libcurl version to generate the ident string.
|
||||
$! ident string is max of 31 characters.
|
||||
$!
|
||||
$ ident_string = "unknown"
|
||||
$ open/read cver [-.-.include.curl]curlver.h
|
||||
$cver_loop:
|
||||
$ read/end=cver_loop_end cver line_in
|
||||
$ line_in = f$edit(line_in, "COMPRESS,TRIM")
|
||||
$ if line_in .eqs. "" then goto cver_loop
|
||||
$ code = f$extract(0, 1, line_in)
|
||||
$ if code .nes. "#" then goto cver_loop
|
||||
$ directive = f$element(0, " ", line_in)
|
||||
$ if directive .nes. "#define" then goto cver_loop
|
||||
$ name = f$element(1, " ", line_in)
|
||||
$ if name .nes. "LIBCURL_VERSION" then goto cver_loop
|
||||
$ ident_string = f$element(2, " ", line_in) - "" - ""
|
||||
$cver_loop_end:
|
||||
$ close cver
|
||||
$!
|
||||
$ open/read aopt gnv_libcurl_symbols.opt
|
||||
$!
|
||||
$! Write out the header
|
||||
$ gosub do_header
|
||||
$!
|
||||
$ open/append vopt gnv_libcurl_xfer.mar_exact
|
||||
$ write vopt tab,".IDENT /", ident_string, "/"
|
||||
$!
|
||||
$ write vopt tab, ".PSECT LIBCURL_XFERVECTORS -"
|
||||
$ write vopt tab,tab,tab, "PIC,USR,CON,REL,GBL,SHR,EXE,RD,NOWRT,QUAD"
|
||||
$ write vopt ""
|
||||
$ write vopt tab, "SPARE", tab, "; never delete this spare"
|
||||
$ write vopt ";"
|
||||
$ write vopt ";", tab, "Exact case and upper case transfer vectors"
|
||||
$!
|
||||
$ alias_count = 0
|
||||
$vector_loop:
|
||||
$!
|
||||
$! Read in symbol_vector
|
||||
$!
|
||||
$ read/end=vector_loop_end aopt line_in
|
||||
$ line = f$edit(line_in, "UNCOMMENT,COMPRESS,TRIM")
|
||||
$ if line .eqs. "" then goto vector_loop
|
||||
$!
|
||||
$ line_u = f$edit(line, "UPCASE")
|
||||
$ key = f$element(0, "=", line_u)
|
||||
$ if (key .eqs. "SYMBOL_VECTOR")
|
||||
$ then
|
||||
$ symbol_string = f$element(1, "=", line) - "("
|
||||
$ symbol_type = f$element(2, "=", line_u) - ")"
|
||||
$ symbol_name = f$element(1, "/", symbol_string)
|
||||
$ if symbol_type .nes. "PROCEDURE"
|
||||
$ then
|
||||
$ write sys$output "%CURLBUILD-W-NOTPROC, " + -
|
||||
$ "This procedure can only handle procedure vectors"
|
||||
$ write sys$output -
|
||||
"Data vectors require manual construction for which this procedure or"
|
||||
$ write sys$output -
|
||||
"the shared library needs to be updated to resolve."
|
||||
$ write sys$output -
|
||||
"the preferred solution is to have a procedure return the address of the "
|
||||
$ write sys$output -
|
||||
"the variable instead of having a variable, as if the size of the variable "
|
||||
write sys$output -
|
||||
"changes, the symbol vector is no longer backwards compatible."
|
||||
$ endif
|
||||
$ if (symbol_name .eqs. "/")
|
||||
$ then
|
||||
$ symbol_name = symbol_string
|
||||
$ write vopt tab, symbol_type, tab, symbol_name
|
||||
$ else
|
||||
$ alias_count = alias_count + 1
|
||||
$ symbol_alias = f$element(0, "/", symbol_string)
|
||||
$ write vopt -
|
||||
tab, "''symbol_type_U", tab, symbol_name, tab, symbol_alias
|
||||
$ endif
|
||||
$ endif
|
||||
$ goto vector_loop
|
||||
$vector_loop_end:
|
||||
$!
|
||||
$! End of pass one, second pass needed if aliases exist
|
||||
$ close aopt
|
||||
$!
|
||||
$ if alias_count .eq. 0 then goto finish_file
|
||||
$!
|
||||
$! Start pass 2, write stub routine header
|
||||
$!
|
||||
$ open/read aopt gnv_libcurl_symbols.opt
|
||||
$!
|
||||
$alias_loop:
|
||||
$!
|
||||
$! Read in symbol_vector
|
||||
$!
|
||||
$ read/end=alias_loop_end aopt line_in
|
||||
$ line = f$edit(line_in, "UNCOMMENT,COMPRESS,TRIM")
|
||||
$ if line .eqs. "" then goto alias_loop
|
||||
$!
|
||||
$ line_u = f$edit(line, "UPCASE")
|
||||
$ key = f$element(0, "=", line_u)
|
||||
$ if (key .eqs. "SYMBOL_VECTOR")
|
||||
$ then
|
||||
$ symbol_string = f$element(1, "=", line) - "("
|
||||
$ symbol_type = f$element(2, "=", line_u) - ")"
|
||||
$ symbol_name = f$element(1, "/", symbol_string)
|
||||
$ if (symbol_name .eqs. "/")
|
||||
$ then
|
||||
$ symbol_name = symbol_string
|
||||
$ else
|
||||
$ alias_count = alias_count + 1
|
||||
$ symbol_alias = f$element(0, "/", symbol_string)
|
||||
$ write vopt tab, ".ENTRY", tab, symbol_alias, ", ^M<>"
|
||||
$ endif
|
||||
$ endif
|
||||
$ goto alias_loop
|
||||
$! read in symbol_vector
|
||||
$! if not alias, then loop
|
||||
$! write out subroutine name
|
||||
$!
|
||||
$alias_loop_end:
|
||||
$!
|
||||
$ write vopt tab, "MOVL #1, R0"
|
||||
$ write vopt tab, "RET"
|
||||
$!
|
||||
$finish_file:
|
||||
$!
|
||||
$ write vopt ""
|
||||
$ write vopt tab, ".END"
|
||||
$!
|
||||
$ close aopt
|
||||
$ close vopt
|
||||
$!
|
||||
$! Patch the Macro32 compiler
|
||||
$!----------------------------
|
||||
$ patched_macro = "sys$disk:[]macro32_exactcase.exe"
|
||||
$ if f$search(patched_macro) .eqs. ""
|
||||
$ then
|
||||
$ copy sys$system:macro32.exe 'patched_macro'
|
||||
$ patch @macro32_exactcase.patch
|
||||
$ endif
|
||||
$ define/user macro32 'patched_macro'
|
||||
$ macro/object=gnv_libcurl_xfer.obj gnv_libcurl_xfer.mar_exact
|
||||
$!
|
||||
$! Create the option file for linking the shared image.
|
||||
$ create gnv_libcurl_xfer.opt
|
||||
$ open/append lco gnv_libcurl_xfer.opt
|
||||
$ write lco "gsmatch=lequal,1,1"
|
||||
$ write lco "cluster=transfer_vector,,,''default_dir'gnv_libcurl_xfer"
|
||||
$ write lco "collect=libcurl_global, libcurl_xfervectors"
|
||||
$ close lco
|
||||
$!
|
||||
$!
|
||||
$ goto all_exit
|
||||
$!
|
||||
$! Process the header
|
||||
$do_header:
|
||||
$!
|
||||
$! Force the mode of the file to same as text editor generated.
|
||||
$ create gnv_libcurl_xfer.mar_exact
|
||||
$deck
|
||||
; File: gnv_libcurl_xfer.mar_exact
|
||||
;
|
||||
; VAX transfer vectors
|
||||
;
|
||||
; This needs to be compiled with a specialized patch on Macro32 to make it
|
||||
; preserve the case of symbols instead of converting it to uppercase.
|
||||
;
|
||||
; This patched Macro32 requires all directives to be in upper case.
|
||||
;
|
||||
; There are three sets of symbols for transfer vectors here.
|
||||
;
|
||||
; The first for upper case which matches the tradition method of generating
|
||||
; VAX transfer vectors.
|
||||
;
|
||||
; The second is the exact case for compatibility with open source C programs
|
||||
; that expect exact case symbols in images. These are separated because a
|
||||
; previous kit had only upper case symbols.
|
||||
;
|
||||
; The third is the routine stub that is used to resolve part of the upper
|
||||
; case transfer vectors, with exact case entry symbols.
|
||||
;
|
||||
; When you add routines, you need to add them after the second set of transfer
|
||||
; vectors for both upper and exact case, and then additional entry points
|
||||
; in upper case added to stub routines.
|
||||
;
|
||||
;*************************************************************************
|
||||
|
||||
.TITLE libcurl_xfer - Transfer vector for libcurl
|
||||
.DISABLE GLOBAL
|
||||
|
||||
;
|
||||
; Macro to generate a transfer vector entry
|
||||
;
|
||||
.MACRO PROCEDURE NAME
|
||||
.EXTRN 'NAME
|
||||
.ALIGN QUAD
|
||||
.TRANSFER 'NAME
|
||||
.MASK 'NAME
|
||||
JMP 'NAME+2
|
||||
.ENDM
|
||||
|
||||
.MACRO PROCEDUREU NAME NAMEU
|
||||
.EXTRN 'NAME
|
||||
.ALIGN QUAD
|
||||
.TRANSFER 'NAMEU
|
||||
.MASK 'NAME
|
||||
JMP 'NAME+2
|
||||
|
||||
.ENDM
|
||||
;
|
||||
;
|
||||
; Macro to reserve a spare entry.
|
||||
;
|
||||
.MACRO SPARE
|
||||
.ALIGN QUAD
|
||||
.ALIGN QUAD
|
||||
.QUAD 0
|
||||
.ENDM
|
||||
|
||||
$EOD
|
||||
$!
|
||||
$!
|
||||
$ return
|
||||
$!
|
||||
$all_exit:
|
||||
$set def 'default_dir'
|
||||
$exit '$status'
|
58
third_party/curl/packages/vms/gnv_conftest.c_first
vendored
Normal file
58
third_party/curl/packages/vms/gnv_conftest.c_first
vendored
Normal file
@ -0,0 +1,58 @@
|
||||
/* File: GNV$CONFTEST.C_FIRST
|
||||
*
|
||||
* Copyright (C) John Malmberg
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*
|
||||
* SPDX-License-Identifier: ISC
|
||||
*
|
||||
*/
|
||||
|
||||
/* This is needed for Configure tests to get the correct exit status */
|
||||
void __posix_exit(int __status);
|
||||
#define exit(__p1) __posix_exit(__p1)
|
||||
|
||||
/* Fake pass the test to find a standard ldap routine that we know is */
|
||||
/* present on VMS, but with the wrong case for the symbol */
|
||||
char ldap_url_parse(void) {return 0;}
|
||||
|
||||
/* These are to pass the test that does not use headers */
|
||||
/* Because configure does an #undef which keeps us from using #define */
|
||||
/* char CRYPTO_add_lock(void) {return 0;} */
|
||||
char SSL_connect(void) {return 0;}
|
||||
char ENGINE_init(void) {return 0;}
|
||||
char RAND_status(void) {return 0;}
|
||||
/* char RAND_screen(void) {return 0;} In headers, but not present */
|
||||
char CRYPTO_cleanup_all_ex_data(void) {return 0;}
|
||||
char SSL_get_shutdown(void) {return 0;}
|
||||
char ENGINE_load_builtin_engines (void) {return 0;}
|
||||
|
||||
/* And these are to pass the test that uses headers. */
|
||||
/* Because the HP OpenSSL transfer vectors are currently in Upper case only */
|
||||
#pragma message disable macroredef
|
||||
#define CRYPTO_add_lock CRYPTO_ADD_LOCK
|
||||
#define SSL_connect SSL_CONNECT
|
||||
#define ENGINE_init ENGINE_INIT
|
||||
#define RAND_status RAND_STATUS
|
||||
/* #define RAND_screen RAND_SCREEN */
|
||||
#define CRYPTO_cleanup_all_ex_data CRYPTO_CLEANUP_ALL_EX_DATA
|
||||
#define SSL_get_shutdown SSL_GET_SHUTDOWN
|
||||
#define ENGINE_load_builtin_engines ENGINE_LOAD_BUILTIN_ENGINES
|
||||
|
||||
/* Can not use the #define macro to fix the case on CRYPTO_lock because */
|
||||
/* there is a macro CRYPTO_LOCK that is a number */
|
||||
|
||||
/* After all the work to get configure to pass the CRYPTO_LOCK tests,
|
||||
* it turns out that VMS does not have the CRYPTO_LOCK symbol in the
|
||||
* transfer vector, even though it is in the header file.
|
||||
*/
|
44
third_party/curl/packages/vms/gnv_curl_configure.sh
vendored
Executable file
44
third_party/curl/packages/vms/gnv_curl_configure.sh
vendored
Executable file
@ -0,0 +1,44 @@
|
||||
# File: gnv_curl_configure.sh
|
||||
#
|
||||
# Set up and run the configure script for Curl so that it can find the
|
||||
# proper options for VMS.
|
||||
#
|
||||
# Copyright (C) John Malmberg
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
# purpose with or without fee is hereby granted, provided that the above
|
||||
# copyright notice and this permission notice appear in all copies.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
#
|
||||
# SPDX-License-Identifier: ISC
|
||||
#
|
||||
#==========================================================================
|
||||
#
|
||||
# POSIX exit mode is needed for Unix shells.
|
||||
export GNV_CC_MAIN_POSIX_EXIT=1
|
||||
#
|
||||
# Where to look for the helper files.
|
||||
export GNV_OPT_DIR=.
|
||||
#
|
||||
# How to find the SSL library files.
|
||||
export LIB_OPENSSL=/SSL_LIB
|
||||
#
|
||||
# Override configure adding -std1 which is too strict for what curl
|
||||
# actually wants.
|
||||
export GNV_CC_QUALIFIERS=/STANDARD=RELAXED
|
||||
#
|
||||
# Set the directory to where the Configure script actually is.
|
||||
cd ../..
|
||||
#
|
||||
#
|
||||
./configure --prefix=/usr --exec-prefix=/usr --disable-dependency-tracking \
|
||||
--disable-libtool-lock --with-gssapi --disable-ntlm-wb \
|
||||
--with-ca-path=gnv\$curl_ca_path
|
||||
#
|
181
third_party/curl/packages/vms/gnv_libcurl_symbols.opt
vendored
Normal file
181
third_party/curl/packages/vms/gnv_libcurl_symbols.opt
vendored
Normal file
@ -0,0 +1,181 @@
|
||||
! File GNV$LIBCURL_SYMBOLS.OPT
|
||||
!
|
||||
! This file must be manually maintained to allow upward compatibility
|
||||
! The SYMBOL_VECTORs are set up so that applications can be compiled
|
||||
! with either case sensitive symbol names or the default of uppercase.
|
||||
! This is because many of the Open Source applications that would call
|
||||
! the LIBCURL library need to be built with case sensitive names.
|
||||
!
|
||||
! Automatic generation is currently not practical because the order of
|
||||
! the entries are important for upward compatibility.
|
||||
!
|
||||
! The GSMATCH is manually set to the major version of 1, with the minor
|
||||
! version being the next two sections multiplied by a power of 10 to
|
||||
! become the minor version.
|
||||
! So LIBCURL 7.18.1 becomes 1,718010.
|
||||
! And a future LIBCURL of 7.18.2 would be 1,718020 if new routines were added.
|
||||
!
|
||||
! This leaves some spare digits for minor patches.
|
||||
!
|
||||
! Note that the GSMATCH does not need to have any real relationship to the
|
||||
! actual package version number.
|
||||
!
|
||||
! New SYMBOL_VECTORs must be added to the end of this list, and added
|
||||
! in pairs for both exact and with an uppercase alias.
|
||||
! If the public symbol is more than 31 characters long, then a special
|
||||
! shortened symbol will be exported, and three aliases should be created,
|
||||
! The aliases will be the special shortened uppercase alias, and both
|
||||
! upper and lowercase versions of a truncated name (preferred) or a
|
||||
! modified manually shortened name if a truncated name will not be
|
||||
! unique.
|
||||
!
|
||||
! Routines can not be removed, the functionality must be maintained.
|
||||
! If a new routine is supplied where the arguments are incompatible with
|
||||
! the older version, both versions are needed to be maintained.
|
||||
! The old version can be given a different name, but must be in the same
|
||||
! SYMBOL_VECTOR positions in this file.
|
||||
!
|
||||
! Changing the number of parameters for an existing routine does not require
|
||||
! maintaining multiple versions as long as the routine can be called with
|
||||
! the old number of parameters.
|
||||
!
|
||||
! Copyright (C) John Malmberg
|
||||
!
|
||||
! Permission to use, copy, modify, and/or distribute this software for any
|
||||
! purpose with or without fee is hereby granted, provided that the above
|
||||
! copyright notice and this permission notice appear in all copies.
|
||||
!
|
||||
! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
!
|
||||
! SPDX-License-Identifier: ISC
|
||||
!============================================================================
|
||||
GSMATCH=LEQUAL,1,719050
|
||||
CASE_SENSITIVE=YES
|
||||
SYMBOL_VECTOR=(curl_strequal=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_STREQUAL/curl_strequal=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_strnequal=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_STRNEQUAL/curl_strnequal=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_formadd=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_FORMADD/curl_formadd=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_formget=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_FORMGET/curl_formget=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_formfree=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_FORMFREE/curl_formfree=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_getenv=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_GETENV/curl_getenv=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_version=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_VERSION/curl_version=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_easy_escape=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_EASY_ESCAPE/curl_easy_escape=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_escape=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_ESCAPE/curl_escape=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_easy_unescape=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_EASY_UNESCAPE/curl_easy_unescape=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_unescape=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_UNESCAPE/curl_unescape=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_free=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_FREE/curl_free=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_global_init=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_GLOBAL_INIT/curl_global_init=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_global_init_mem=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_GLOBAL_INIT_MEM/curl_global_init_mem=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_global_cleanup=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_GLOBAL_CLEANUP/curl_global_cleanup=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_slist_append=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_SLIST_APPEND/curl_slist_append=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_slist_free_all=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_SLIST_FREE_ALL/curl_slist_free_all=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_getdate=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_GETDATE/curl_getdate=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_share_init=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_SHARE_INIT/curl_share_init=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_share_setopt=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_SHARE_SETOPT/curl_share_setopt=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_share_cleanup=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_SHARE_CLEANUP/curl_share_cleanup=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_version_info=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_VERSION_INFO/curl_version_info=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_easy_strerror=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_EASY_STRERROR/curl_easy_strerror=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_share_strerror=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_SHARE_STRERROR/curl_share_strerror=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_easy_pause=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_EASY_PAUSE/curl_easy_pause=PROCEDURE)
|
||||
!
|
||||
! easy.h
|
||||
SYMBOL_VECTOR=(curl_easy_init=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_EASY_INIT/curl_easy_init=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_easy_setopt=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_EASY_SETOPT/curl_easy_setopt=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_easy_perform=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_EASY_PERFORM/curl_easy_perform=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_easy_cleanup=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_EASY_CLEANUP/curl_easy_cleanup=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_easy_getinfo=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_EASY_GETINFO/curl_easy_getinfo=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_easy_duphandle=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_EASY_DUPHANDLE/curl_easy_duphandle=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_easy_reset=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_EASY_RESET/curl_easy_reset=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_easy_recv=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_EASY_RECV/curl_easy_recv=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_easy_send=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_EASY_SEND/curl_easy_send=PROCEDURE)
|
||||
!
|
||||
! multi.h
|
||||
SYMBOL_VECTOR=(curl_multi_init=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_MULTI_INIT/curl_multi_init=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_multi_add_handle=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_MULTI_ADD_HANDLE/curl_multi_add_handle=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_multi_remove_handle=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_MULTI_REMOVE_HANDLE/curl_multi_remove_handle=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_multi_fdset=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_MULTI_FDSET/curl_multi_fdset=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_multi_perform=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_MULTI_PERFORM/curl_multi_perform=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_multi_cleanup=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_MULTI_CLEANUP/curl_multi_cleanup=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_multi_info_read=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_MULTI_INFO_READ/curl_multi_info_read=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_multi_strerror=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_MULTI_STRERROR/curl_multi_strerror=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_multi_socket=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_MULTI_SOCKET/curl_multi_socket=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_multi_socket_action=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_MULTI_SOCKET_ACTION/curl_multi_socket_action=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_multi_socket_all=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_MULTI_SOCKET_ALL/curl_multi_socket_all=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_multi_timeout=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_MULTI_TIMEOUT/curl_multi_timeout=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_multi_setopt=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_MULTI_SETOPT/curl_multi_setopt=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_multi_assign=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_MULTI_ASSIGN/curl_multi_assign=PROCEDURE)
|
||||
!
|
||||
! mprintf.h
|
||||
SYMBOL_VECTOR=(curl_mprintf=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_MPRINTF/curl_mprintf=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_mfprintf=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_MFPRINTF/curl_mfprintf=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_msprintf=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_MSPRINTF/curl_msprintf=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_msnprintf=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_MSNPRINTF/curl_msnprintf=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_mvprintf=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_MVPRINTF/curl_mvprintf=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_mvfprintf=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_MVFPRINTF/curl_mvfprintf=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_mvsprintf=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_MVSPRINTF/curl_mvsprintf=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_mvsnprintf=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_MVSNPRINTF/curl_mvsnprintf=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_maprintf=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_MAPRINTF/curl_maprintf=PROCEDURE)
|
||||
SYMBOL_VECTOR=(curl_mvaprintf=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CURL_MVAPRINTF/curl_mvaprintf=PROCEDURE)
|
851
third_party/curl/packages/vms/gnv_link_curl.com
vendored
Normal file
851
third_party/curl/packages/vms/gnv_link_curl.com
vendored
Normal file
@ -0,0 +1,851 @@
|
||||
$! File: gnv_link_curl.com
|
||||
$!
|
||||
$! File to build images using gnv$libcurl.exe
|
||||
$!
|
||||
$! Copyright (C) John Malmberg
|
||||
$!
|
||||
$! Permission to use, copy, modify, and/or distribute this software for any
|
||||
$! purpose with or without fee is hereby granted, provided that the above
|
||||
$! copyright notice and this permission notice appear in all copies.
|
||||
$!
|
||||
$! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
$! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
$! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
$! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
$! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
$! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
$! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
$!
|
||||
$! SPDX-License-Identifier: ISC
|
||||
$!
|
||||
$!============================================================================
|
||||
$!
|
||||
$! Save this so we can get back.
|
||||
$ default_dir = f$environment("default")
|
||||
$ define/job gnv_packages_vms 'default_dir'
|
||||
$!
|
||||
$ on warning then goto all_exit
|
||||
$!
|
||||
$! On VAX, we need to generate a Macro transfer vector.
|
||||
$ parse_style = "TRADITIONAL"
|
||||
$ if (f$getsyi("HW_MODEL") .lt. 1024)
|
||||
$ then
|
||||
$ @generate_vax_transfer.com
|
||||
$ arch_name = "VAX"
|
||||
$ else
|
||||
$ arch_name = ""
|
||||
$ arch_name = arch_name + f$edit(f$getsyi("ARCH_NAME"), "UPCASE")
|
||||
$ if (arch_name .eqs. "") then arch_name = "UNK"
|
||||
$!
|
||||
$! Extended parsing option starts with VMS 7.3-1.
|
||||
$! There is no 7.4, so that simplifies the parse a bit.
|
||||
$!
|
||||
$ node_swvers = f$getsyi("node_swvers")
|
||||
$ version_patch = f$extract(1, f$length(node_swvers), node_swvers)
|
||||
$ maj_ver = f$element(0, ".", version_patch)
|
||||
$ min_ver_patch = f$element(1, ".", version_patch)
|
||||
$ min_ver = f$element(0, "-", min_ver_patch)
|
||||
$ patch = f$element(1, "-", min_ver_patch)
|
||||
$ if patch .eqs. "-" then patch = ""
|
||||
$ parse_x = 0
|
||||
$ if maj_ver .ges. "8"
|
||||
$ then
|
||||
$ parse_x = 1
|
||||
$ else
|
||||
$ if maj_ver .eqs. "7" .and. min_ver .ges. "3" .and. patch .nes. ""
|
||||
$ then
|
||||
$ parse_x = 1
|
||||
$ endif
|
||||
$ endif
|
||||
$ if parse_x
|
||||
$ then
|
||||
$ parse_style = f$getjpi("", "parse_style_perm")
|
||||
$ endif
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$! Move to where the base directories.
|
||||
$ set def [--]
|
||||
$!
|
||||
$!
|
||||
$! Build the Message file.
|
||||
$!--------------------------
|
||||
$ if f$search("[.packages.vms]curlmsg.obj") .eqs. ""
|
||||
$ then
|
||||
$ message [.packages.vms]curlmsg.msg/object=[.packages.vms]
|
||||
$ endif
|
||||
$ if f$search("gnv$curlmsg.exe") .eqs. ""
|
||||
$ then
|
||||
$ link/share=gnv$curlmsg.exe [.packages.vms]curlmsg.obj
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$! Need to build the common init module.
|
||||
$!-------------------------------------------
|
||||
$ cflags = "/list/show=(expan,includ)"
|
||||
$ init_obj = "[.packages.vms]curl_crtl_init.obj"
|
||||
$ if f$search(init_obj) .eqs. ""
|
||||
$ then
|
||||
$ cc'cflags' 'default_dir'curl_crtl_init.c/obj='init_obj'
|
||||
$ endif
|
||||
$ purge 'init_obj'
|
||||
$ rename 'init_obj' ;1
|
||||
$!
|
||||
$!
|
||||
$! Need to build the module to test the HP OpenSSL version
|
||||
$!--------------------------------------------------------
|
||||
$ if arch_name .nes. "VAX"
|
||||
$ then
|
||||
$ rpt_obj = "[.packages.vms]report_openssl_version.obj
|
||||
$ if f$search(rpt_obj) .eqs. ""
|
||||
$ then
|
||||
$ cc'cflags' 'default_dir'report_openssl_version.c/obj='rpt_obj'
|
||||
$ endif
|
||||
$ purge 'rpt_obj'
|
||||
$ rename 'rpt_obj' ;1
|
||||
$!
|
||||
$ link/exe='default_dir'report_openssl_version.exe 'rpt_obj'
|
||||
$ report_openssl_version := $'default_dir'report_openssl_version.exe
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$ base_link_opt_file = "[.packages.vms.''arch_name']gnv_libcurl_linker.opt"
|
||||
$ share_link_opt_file = "[.packages.vms.''arch_name']gnv_ssl_libcurl_linker.opt"
|
||||
$ if f$search(base_link_opt_file) .eqs. ""
|
||||
$ then
|
||||
$ base_link_opt_file = "[.packages.vms]gnv_libcurl_linker.opt"
|
||||
$ share_link_opt_file = "[.packages.vms]gnv_ssl_libcurl_linker.opt"
|
||||
$ if f$search(base_link_opt_file) .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "Can not find base library option file!"
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$ endif
|
||||
$!
|
||||
$! Create the a new option file with special fixup for HP SSL
|
||||
$! For a shared image, we always want ZLIB and 32 bit HPSSL
|
||||
$!
|
||||
$ if f$search("gnv$libzshr32") .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "VMSPORTS/GNV LIBZ Shared image not found!"
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$! Need to check the version of the HP SSL shared image.
|
||||
$!
|
||||
$! VAX platform can not be checked this way, it appears symbol lookup
|
||||
$! was disabled. VAX has not been updated in a while.
|
||||
$ if arch_name .eqs. "VAX"
|
||||
$ then
|
||||
$ hp_ssl_libcrypto32 = "sys$common:[syslib]ssl$libcrypto_shr32.exe"
|
||||
$ hp_ssl_libssl32 = "sys$common:[syslib]ssl$libssl_shr32.exe"
|
||||
$ if f$search(hp_ssl_libcrypto32) .nes. ""
|
||||
$ then
|
||||
$ use_hp_ssl = 1
|
||||
$ curl_ssl_libcrypto32 = hp_ssl_libcrypto32
|
||||
$ curl_ssl_libssl32 = hp_ssl_libssl32
|
||||
$ curl_ssl_version = "OpenSSL/0.9.6g"
|
||||
$ else
|
||||
$ write sys$output "HP OpenSSL Shared images not found!"
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$ else
|
||||
$!
|
||||
$! Minimum HP version we can use reports:
|
||||
$! "OpenSSL 0.9.8w 23 Apr 2012"
|
||||
$!
|
||||
$ use_hp_ssl = 0
|
||||
$ hp_ssl_libcrypto32 = "sys$share:ssl$libcrypto_shr32.exe"
|
||||
$ hp_ssl_libssl32 = "sys$share:ssl$libssl_shr32.exe"
|
||||
$ if f$search(hp_ssl_libcrypto32) .nes. ""
|
||||
$ then
|
||||
$ curl_ssl_libcrypto32 = hp_ssl_libcrypto32
|
||||
$ curl_ssl_libssl32 = hp_ssl_libssl32
|
||||
$ report_openssl_version 'hp_ssl_libcrypto32' hp_ssl_version
|
||||
$ endif
|
||||
$!
|
||||
$ if f$type(hp_ssl_version) .eqs. "STRING"
|
||||
$ then
|
||||
$ curl_ssl_version = hp_ssl_version
|
||||
$ full_version = f$element(1, " ", hp_ssl_version)
|
||||
$ ver_maj = f$element(0, ".", full_version)
|
||||
$ ver_min = f$element(1, ".", full_version)
|
||||
$ ver_patch = f$element(2, ".", full_version)
|
||||
$! ! ver_patch is typically both a number and some letters
|
||||
$ ver_patch_len = f$length(ver_patch)
|
||||
$ ver_patchltr = ""
|
||||
$ver_patch_loop:
|
||||
$ ver_patchltr_c = f$extract(ver_patch_len - 1, 1, ver_patch)
|
||||
$ if ver_patchltr_c .les. "9" then goto ver_patch_loop_end
|
||||
$ ver_patchltr = ver_patchltr_c + ver_patchltr
|
||||
$ ver_patch_len = ver_patch_len - 1
|
||||
$ goto ver_patch_loop
|
||||
$ver_patch_loop_end:
|
||||
$ ver_patchnum = ver_patch - ver_patchltr
|
||||
$ if 'ver_maj' .ge. 0
|
||||
$ then
|
||||
$ if 'ver_min' .ge. 9
|
||||
$ then
|
||||
$ if 'ver_patchnum' .ge. 8
|
||||
$ then
|
||||
$ if ver_patchltr .ges. "w" then use_hp_ssl = 1
|
||||
$ endif
|
||||
$ endif
|
||||
$ endif
|
||||
$set nover
|
||||
$ if use_hp_ssl .eq. 0
|
||||
$ then
|
||||
$ write sys$output -
|
||||
" HP OpenSSL version of ""''hp_ssl_version'"" is too old for shared libcurl!"
|
||||
$ endif
|
||||
$ else
|
||||
$ write sys$output "Unable to get version of HP OpenSSL"
|
||||
$ endif
|
||||
$!
|
||||
$ gnv_ssl_libcrypto32 = "gnv$gnu:[lib]ssl$libcrypto_shr32.exe"
|
||||
$ gnv_ssl_libssl32 = "gnv$gnu:[lib]ssl$libssl_shr32.exe"
|
||||
$ if f$search(gnv_ssl_libcrypto32) .nes. ""
|
||||
$ then
|
||||
$ report_openssl_version 'gnv_ssl_libcrypto32' gnv_ssl_version
|
||||
$ endif
|
||||
$!
|
||||
$ use_gnv_ssl = 0
|
||||
$ if f$type(gnv_ssl_version) .eqs. "STRING"
|
||||
$ then
|
||||
$ gnv_full_version = f$element(1, " ", gnv_ssl_version)
|
||||
$ gnv_ver_maj = f$element(0, ".", gnv_full_version)
|
||||
$ gnv_ver_min = f$element(1, ".", gnv_full_version)
|
||||
$ gnv_ver_patch = f$element(2, ".", gnv_full_version)
|
||||
$ gnv_ver_patch_len = f$length(gnv_ver_patch)
|
||||
$ gnv_ver_patchnum = f$extract(0, gnv_ver_patch_len - 1, gnv_ver_patch)
|
||||
$ gnv_ver_patchltr = f$extract(gnv_ver_patch_len - 1, 1, gnv_ver_patch)
|
||||
$ if 'gnv_ver_maj' .ge. 0
|
||||
$ then
|
||||
$ if 'gnv_ver_min' .ge. 9
|
||||
$ then
|
||||
$ if 'gnv_ver_patchnum' .ge. 8
|
||||
$ then
|
||||
$ if gnv_ver_patchltr .ges. "w" then use_gnv_ssl = 1
|
||||
$ endif
|
||||
$ endif
|
||||
$ endif
|
||||
$ if use_gnv_ssl .eq. 0
|
||||
$ then
|
||||
$ write sys$output -
|
||||
"GNV OpenSSL version of ""''gnv_ssl_version'" is too old for shared libcurl!"
|
||||
$ endif
|
||||
$!
|
||||
$! Prefer to break the tie with the lowest supported version
|
||||
$! For simplicity, if the GNV image is present, it will be used.
|
||||
$! Version tuple is not a simple compare.
|
||||
$!
|
||||
$ if use_gnv_ssl .eq. 1 then
|
||||
$ curl_ssl_libcrypto32 = gnv_ssl_libcrypto32
|
||||
$ curl_ssl_libssl32 = gnv_ssl_libssl32
|
||||
$ curl_ssl_version = gnv_ssl_version
|
||||
$ use_hp_ssl = 0
|
||||
$ endif
|
||||
!$!
|
||||
$ else
|
||||
$ write sys$output "Unable to get version of GNV OpenSSL"
|
||||
$ endif
|
||||
$!
|
||||
$! Need to write a release note section about HP OpenSSL
|
||||
$!
|
||||
$create 'default_dir'hp_ssl_release_info.txt
|
||||
$deck
|
||||
This package is built on with the OpenSSL version listed below and requires
|
||||
the shared images from the HP OpenSSL product that is kitted with that
|
||||
version or a compatible later version.
|
||||
|
||||
For Alpha and IA64 platforms, see the url below to register to get the
|
||||
download URL. The kit will be HP 1.4-467 or later.
|
||||
https://h41379.www4.hpe.com/openvms/products/ssl/ssl.html
|
||||
|
||||
For VAX, use the same registration, but remove the kit name from any of the
|
||||
download URLs provided and put in CPQ-VAXVMS-SSL-V0101-B-1.PCSI-DCX_VAXEXE
|
||||
|
||||
If your system can not be upgraded to a compatible version of OpenSSL, then
|
||||
you can extract the two shared images from the kit and place them in the
|
||||
[vms$common.gnv.lib]directory of the volume that you are installing GNV and
|
||||
or GNV compatible components like Curl.
|
||||
|
||||
If GNV is installed, you must run the GNV startup procedure before these steps
|
||||
and before installing Curl.
|
||||
|
||||
|
||||
1. make sure that [vms$common.gnv.lib] exists by using the following
|
||||
commands. We want the directory to be in lowercase except on VAX.
|
||||
|
||||
$SET PROCESS/PARSE=extend !If not VAX.
|
||||
$CREATE/DIR device:[vms$common.gnv.lib]/prot=w:re
|
||||
|
||||
2. Extract the ssl$crypto_shr32.exe and ssl$libssl_shr32.exe images.
|
||||
|
||||
$PRODUCT EXTRACT FILE -
|
||||
/select=(ssl$libcrypto_shr32.exe,ssl$libssl_shr32.exe)-
|
||||
/source=device:[dir] -
|
||||
/options=noconfirm -
|
||||
/destination=device:[vms$common.gnv.lib] SSL
|
||||
|
||||
The [vms$common.sys$startup}curl_startup.com procedure will then configure
|
||||
libcurl to use these shared images instead of the system ones.
|
||||
|
||||
When you upgrade SSL on VMS to the newer version of HP SSL, then these copies
|
||||
should be deleted.
|
||||
|
||||
$eod
|
||||
$!
|
||||
$ open/append sslr 'default_dir'hp_ssl_release_info.txt
|
||||
$ write sslr "OpenSSL version used for building this kit: ",curl_ssl_version
|
||||
$ write sslr ""
|
||||
$ close sslr
|
||||
$!
|
||||
$!
|
||||
$! LIBZ
|
||||
$ libzshr_line = ""
|
||||
$ try_shr = "gnv$libzshr32"
|
||||
$ if f$search(try_shr) .nes. ""
|
||||
$ then
|
||||
$ libzshr_line = "''try_shr'/share"
|
||||
$ else
|
||||
$ write sys$output "''try_shr' image not found!"
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$ gssrtlshr_line = ""
|
||||
$ if arch_name .nes. "VAX"
|
||||
$ then
|
||||
$ try_shr = "sys$share:gss$rtl"
|
||||
$ if f$search("''try_shr'.exe") .nes. ""
|
||||
$ then
|
||||
$ gssrtlshr_line = "''try_shr'/share"
|
||||
$ else
|
||||
$ write sys$output "''try_shr' image not found!"
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$!
|
||||
$ if f$search(share_link_opt_file) .eqs. ""
|
||||
$ then
|
||||
$ create 'share_link_opt_file'
|
||||
$ open/append slopt 'share_link_opt_file'
|
||||
$ if libzshr_line .nes. "" then write slopt libzshr_line
|
||||
$ if gssrtlshr_line .nes. "" then write slopt gssrtlshr_line
|
||||
$ write slopt "gnv$curl_ssl_libcryptoshr32/share"
|
||||
$ write slopt "gnv$curl_ssl_libsslshr32/share"
|
||||
$ close slopt
|
||||
$ endif
|
||||
$!
|
||||
$! DCL build puts curllib in architecture directory
|
||||
$! GNV build uses the makefile.
|
||||
$ libfile = "[.packages.vms.''arch_name']curllib.olb"
|
||||
$ if f$search(libfile) .nes. ""
|
||||
$ then
|
||||
$ olb_file = libfile
|
||||
$ else
|
||||
$ ! GNV based build
|
||||
$ libfile = "[.lib.^.libs]libcurl.a"
|
||||
$ if f$search(libfile) .nes. ""
|
||||
$ then
|
||||
$ olb_file = libfile
|
||||
$ else
|
||||
$ write sys$output -
|
||||
"Can not build shared image, libcurl object library not found!"
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$ endif
|
||||
$!
|
||||
$gnv_libcurl_share = "''default_dir'gnv$libcurl.exe"
|
||||
$!
|
||||
$ if f$search(gnv_libcurl_share) .eqs. ""
|
||||
$ then
|
||||
$ if arch_name .nes. "VAX"
|
||||
$ then
|
||||
$ define/user gnv$curl_ssl_libcryptoshr32 'curl_ssl_libcrypto32'
|
||||
$ define/user gnv$curl_ssl_libsslshr32 'curl_ssl_libssl32'
|
||||
$ link/dsf='default_dir'gnv$libcurl.dsf/share='gnv_libcurl_share' -
|
||||
/map='default_dir'gnv$libcurl.map -
|
||||
gnv_packages_vms:gnv_libcurl_symbols.opt/opt,-
|
||||
'olb_file'/lib,-
|
||||
'share_link_opt_file'/opt
|
||||
$ else
|
||||
$! VAX will not allow the logical name hack for the
|
||||
$! SSL libcryto library, it is pulling it in twice if I try it.
|
||||
$ link/share='gnv_libcurl_share'/map='default_dir'gnv$libcurl.map -
|
||||
gnv_packages_vms:gnv_libcurl_xfer.opt/opt,-
|
||||
'olb_file'/lib,-
|
||||
'base_link_opt_file'/opt
|
||||
$ endif
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$ if f$search("[.src]curl-tool_main.o") .nes. ""
|
||||
$ then
|
||||
$! From src/makefile.inc:
|
||||
$! # libcurl has sources that provide functions named curlx_* that aren't
|
||||
$! # part of the official API, but we reuse the code here to avoid
|
||||
$! # duplication.
|
||||
$!
|
||||
$!
|
||||
$ if f$search("[.src]curl.exe") .eqs. ""
|
||||
$ then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.src]curl.exe/dsf=[.src]curl.dsf -
|
||||
[.src]curl-tool_main.o, [.src]curl-tool_binmode.o, -
|
||||
[.src]curl-tool_bname.o, [.src]curl-tool_cb_dbg.o, -
|
||||
[.src]curl-tool_cb_hdr.o, [.src]curl-tool_cb_prg.o, -
|
||||
[.src]curl-tool_cb_rea.o, [.src]curl-tool_cb_see.o, -
|
||||
[.src]curl-tool_cb_wrt.o, [.src]curl-tool_cfgable.o, -
|
||||
[.src]curl-tool_convert.o, [.src]curl-tool_dirhie.o, -
|
||||
[.src]curl-tool_doswin.o, [.src]curl-tool_easysrc.o, -
|
||||
[.src]curl-tool_formparse.o, [.src]curl-tool_getparam.o, -
|
||||
[.src]curl-tool_getpass.o, [.src]curl-tool_help.o, -
|
||||
[.src]curl-tool_helpers.o, [.src]curl-tool_homedir.o, -
|
||||
[.src]curl-tool_hugehelp.o, [.src]curl-tool_libinfo.o, -
|
||||
[.src]curl-tool_mfiles.o, -
|
||||
[.src]curl-tool_msgs.o, [.src]curl-tool_operate.o, -
|
||||
[.src]curl-tool_operhlp.o, -
|
||||
[.src]curl-tool_paramhlp.o, [.src]curl-tool_parsecfg.o, -
|
||||
[.src]curl-tool_setopt.o, [.src]curl-tool_sleep.o, -
|
||||
[.src]curl-tool_urlglob.o, [.src]curl-tool_util.o, -
|
||||
[.src]curl-tool_vms.o, [.src]curl-tool_writeenv.o, -
|
||||
[.src]curl-tool_writeout.o, [.src]curl-tool_xattr.o, -
|
||||
[.src]curl-strtoofft.o, [.src]curl-strdup.o, [.src]curl-strcase.o, -
|
||||
[.src]curl-nonblock.o, gnv_packages_vms:curlmsg.obj,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
gnv_packages_vms:curl_crtl_init.obj
|
||||
$ endif
|
||||
$ else
|
||||
$ curl_exe = "[.src]curl.exe"
|
||||
$ curl_dsf = "[.src]curl.dsf"
|
||||
$ curl_main = "[.packages.vms.''arch_name']tool_main.obj"
|
||||
$ curl_src = "[.packages.vms.''arch_name']curlsrc.olb"
|
||||
$ curl_lib = "[.packages.vms.''arch_name']curllib.olb"
|
||||
$ strcase = "strcase"
|
||||
$ nonblock = "nonblock"
|
||||
$ warnless = "warnless"
|
||||
$!
|
||||
$! Extended parse style requires special quoting
|
||||
$!
|
||||
$ if (arch_name .nes. "VAX") .and. (parse_style .eqs. "EXTENDED")
|
||||
$ then
|
||||
$ strcase = """strcase"""
|
||||
$ nonblock = """nonblock"""
|
||||
$ warnless = """warnless"""
|
||||
$ endif
|
||||
$ if f$search(curl_exe) .eqs. ""
|
||||
$ then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe='curl_exe'/dsf='curl_dsf' -
|
||||
'curl_main','curl_src'/lib, -
|
||||
'curl_lib'/library/include=-
|
||||
('strcase','nonblock','warnless'),-
|
||||
gnv_packages_vms:curlmsg.obj,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
gnv_packages_vms:curl_crtl_init.obj
|
||||
$ endif
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$!
|
||||
$! in6addr_missing so skip building:
|
||||
$! [.server]sws.o
|
||||
$! [.server]sockfilt.o
|
||||
$! [.server]tftpd.o
|
||||
$!
|
||||
$!
|
||||
$ target = "10-at-a-time"
|
||||
$ if f$search("[.docs.examples]''target'.o") .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "examples not built"
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$ if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$ then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$ target = "anyauthput"
|
||||
$ if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$ then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$ target = "certinfo"
|
||||
$ if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$ then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$ target = "cookie_interface"
|
||||
$ if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$ then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$ target = "debug"
|
||||
$ if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$ then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$ target = "fileupload"
|
||||
$ if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$ then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$ target = "fopen"
|
||||
$ if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$ then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$target = "ftpget"
|
||||
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$target = "ftpgetresp"
|
||||
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$target = "ftpupload"
|
||||
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$target = "getinfo"
|
||||
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$target = "getinmemory"
|
||||
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$target = "http-post"
|
||||
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$target = "httpcustomheader"
|
||||
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$target = "httpput"
|
||||
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$target = "https"
|
||||
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$target = "multi-app"
|
||||
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$target = "multi-debugcallback"
|
||||
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$target = "multi-double"
|
||||
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$target = "multi-post"
|
||||
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$target = "multi-single"
|
||||
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$target = "persistent"
|
||||
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$target = "post-callback"
|
||||
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$target = "postit2"
|
||||
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$target = "sendrecv"
|
||||
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$target = "sepheaders"
|
||||
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$target = "simple"
|
||||
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$target = "simplepost"
|
||||
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$endif
|
||||
$!
|
||||
$!
|
||||
$target = "simplessl"
|
||||
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
|
||||
$then
|
||||
$ define/user gnv$libcurl 'gnv_libcurl_share'
|
||||
$ link'ldebug'/exe=[.docs.examples]'target'.exe-
|
||||
/dsf=[.docs.examples]'target'.dsf -
|
||||
[.docs.examples]'target'.o,-
|
||||
gnv$'target'.opt/opt,-
|
||||
sys$input:/opt
|
||||
gnv$libcurl/share
|
||||
$endif
|
||||
$!
|
||||
$! =============== End of docs/examples =========================
|
||||
$!
|
||||
$!
|
||||
$all_exit:
|
||||
$set def 'default_dir'
|
||||
$exit '$status'
|
||||
$!
|
11
third_party/curl/packages/vms/macro32_exactcase.patch
vendored
Normal file
11
third_party/curl/packages/vms/macro32_exactcase.patch
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
macro32_exactcase.exe
|
||||
SE EC
|
||||
^X00000001
|
||||
RE /I
|
||||
^X00012B1D
|
||||
'BICB2 #^X00000020,R3'
|
||||
EXIT
|
||||
'BICB2 #^X00000000,R3'
|
||||
EXI
|
||||
U
|
||||
EXI
|
44
third_party/curl/packages/vms/make_gnv_curl_install.sh
vendored
Executable file
44
third_party/curl/packages/vms/make_gnv_curl_install.sh
vendored
Executable file
@ -0,0 +1,44 @@
|
||||
# File: make_gnv_curl_install.sh
|
||||
#
|
||||
# Set up and run the make script for Curl.
|
||||
#
|
||||
# This makes the library, the curl binary and attempts an install.
|
||||
# A search list should be set up for GNU (GNV$GNU).
|
||||
#
|
||||
# Copyright (C) John Malmberg
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
# purpose with or without fee is hereby granted, provided that the above
|
||||
# copyright notice and this permission notice appear in all copies.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
#
|
||||
# SPDX-License-Identifier: ISC
|
||||
#
|
||||
#==========================================================================
|
||||
#
|
||||
#
|
||||
# Needed VMS build setups for GNV.
|
||||
export GNV_OPT_DIR=.
|
||||
export GNV_CC_QUALIFIERS=/DEBUG/OPTIMIZE/STANDARD=RELAXED\
|
||||
/float=ieee_float/ieee_mode=denorm_results
|
||||
export GNV_CXX_QUALIFIERS=/DEBUG/OPTIMIZE/float=ieee/ieee_mode=denorm_results
|
||||
export GNV_CC_NO_INC_PRIMARY=1
|
||||
#
|
||||
#
|
||||
# POSIX exit mode is needed for Unix shells.
|
||||
export GNV_CC_MAIN_POSIX_EXIT=1
|
||||
make
|
||||
cd ../..
|
||||
# adjust the libcurl.pc file, GNV currently ignores the Lib: line.
|
||||
# but is noisy about it, so we just remove it.
|
||||
sed -e 's/^Libs:/#Libs:/g' libcurl.pc > libcurl.pc_new
|
||||
rm libcurl.pc
|
||||
mv libcurl.pc_new libcurl.pc
|
||||
make install
|
188
third_party/curl/packages/vms/make_pcsi_curl_kit_name.com
vendored
Normal file
188
third_party/curl/packages/vms/make_pcsi_curl_kit_name.com
vendored
Normal file
@ -0,0 +1,188 @@
|
||||
$! File: MAKE_PCSI_CURL_KIT_NAME.COM
|
||||
$!
|
||||
$! Calculates the PCSI kit name for use in building an installation kit.
|
||||
$! PCSI is HP's PolyCenter Software Installation Utility.
|
||||
$!
|
||||
$! The results are stored in as logical names so that other procedures
|
||||
$! can use them.
|
||||
$!
|
||||
$! Copyright (C) John Malmberg
|
||||
$!
|
||||
$! Permission to use, copy, modify, and/or distribute this software for any
|
||||
$! purpose with or without fee is hereby granted, provided that the above
|
||||
$! copyright notice and this permission notice appear in all copies.
|
||||
$!
|
||||
$! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
$! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
$! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
$! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
$! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
$! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
$! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
$!
|
||||
$! SPDX-License-Identifier: ISC
|
||||
$!
|
||||
$!========================================================================
|
||||
$!
|
||||
$! Save default
|
||||
$ default_dir = f$environment("DEFAULT")
|
||||
$!
|
||||
$! Move to the base directories
|
||||
$ set def [--]
|
||||
$!
|
||||
$! Put things back on error.
|
||||
$ on warning then goto all_exit
|
||||
$!
|
||||
$! The producer is the name or common abbreviation for the entity that is
|
||||
$! making the kit. It must be set as a logical name before running this
|
||||
$! procedure.
|
||||
$!
|
||||
$! HP documents the producer as the legal owner of the software, but for
|
||||
$! open source work, it should document who is creating the package for
|
||||
$! distribution.
|
||||
$!
|
||||
$ producer = f$trnlnm("GNV_PCSI_PRODUCER")
|
||||
$ if producer .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "The logical name GNV_PCSI_PRODUCER needs to be defined."
|
||||
$ write sys$output "This should be set to the common abbreviation or name of"
|
||||
$ write sys$output "the entity creating this kit. If you are an individual"
|
||||
$ write sys$output "then use your initials."
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$ producer_full_name = f$trnlnm("GNV_PCSI_PRODUCER_FULL_NAME")
|
||||
$ if producer_full_name .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "The logical name GNV_PCSI_PRODUCER_FULL_NAME needs to"
|
||||
$ write sys$output "be defined. This should be set to the full name of"
|
||||
$ write sys$output "the entity creating this kit. If you are an individual"
|
||||
$ write sys$output "then use your name."
|
||||
$ write sys$output "EX: DEFINE GNV_PCSI_PRODUCER_FULL_NAME ""First M. Last"""
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$!
|
||||
$ write sys$output "*****"
|
||||
$ write sys$output "***** Producer = ''producer'"
|
||||
$ write sys$output "*****"
|
||||
$!
|
||||
$!
|
||||
$! Base is one of 'VMS', 'AXPVMS', 'I64VMS', 'VAXVMS' and indicates what
|
||||
$! binaries are in the kit. A kit with just 'VMS' can be installed on all
|
||||
$! architectures.
|
||||
$!
|
||||
$ base = "VMS"
|
||||
$ arch_type = f$getsyi("ARCH_NAME")
|
||||
$ code = f$extract(0, 1, arch_type)
|
||||
$ if (code .eqs. "I") then base = "I64VMS"
|
||||
$ if (code .eqs. "V") then base = "VAXVMS"
|
||||
$ if (code .eqs. "A") then base = "AXPVMS"
|
||||
$!
|
||||
$!
|
||||
$ product = "curl"
|
||||
$!
|
||||
$!
|
||||
$! We need to get the version from curlver_h. It will have a line like
|
||||
$! #define LIBCURL_VERSION "7.31.0"
|
||||
$! or
|
||||
$! #define LIBCURL_VERSION "7.32.0-20130731".
|
||||
$!
|
||||
$! The dash indicates that this is a daily pre-release.
|
||||
$!
|
||||
$!
|
||||
$ open/read/error=version_loop_end vhf [.include.curl]curlver.h
|
||||
$ version_loop:
|
||||
$ read vhf line_in
|
||||
$ if line_in .eqs. "" then goto version_loop
|
||||
$ if f$locate("#define LIBCURL_VERSION ", line_in) .ne. 0
|
||||
$ then
|
||||
$ goto version_loop
|
||||
$ endif
|
||||
$ raw_version = f$element(2," ", line_in) - """" - """"
|
||||
$ version_loop_end:
|
||||
$ close vhf
|
||||
$!
|
||||
$!
|
||||
$ eco_level = ""
|
||||
$ if f$search("''default_dir'vms_eco_level.h") .nes. ""
|
||||
$ then
|
||||
$ open/read ef 'default_dir'vms_eco_level.h
|
||||
$ecolevel_loop:
|
||||
$ read/end=ecolevel_loop_end ef line_in
|
||||
$ prefix = f$element(0, " ", line_in)
|
||||
$ if prefix .nes. "#define" then goto ecolevel_loop
|
||||
$ key = f$element(1, " ", line_in)
|
||||
$ value = f$element(2, " ", line_in) - """" - """"
|
||||
$ if key .eqs. "VMS_ECO_LEVEL"
|
||||
$ then
|
||||
$ eco_level = "''value'"
|
||||
$ if eco_level .eqs. "0"
|
||||
$ then
|
||||
$ eco_level = ""
|
||||
$ else
|
||||
$ eco_level = "E" + eco_level
|
||||
$ endif
|
||||
$ goto ecolevel_loop_end
|
||||
$ endif
|
||||
$ goto ecolevel_loop
|
||||
$ecolevel_loop_end:
|
||||
$ close ef
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$! This translates to V0732-0 or D0732-0
|
||||
$! We encode the snapshot date into the version as an ECO since a daily
|
||||
$! can never have an ECO.
|
||||
$!
|
||||
$! version_type = 'V' for a production release, and 'D' for a build from a
|
||||
$! daiy snapshot of the curl source.
|
||||
$ majorver = f$element(0, ".", raw_version)
|
||||
$ minorver = f$element(1, ".", raw_version)
|
||||
$ raw_update = f$element(2, ".", raw_version)
|
||||
$ update = f$element(0, "-", raw_update)
|
||||
$ if update .eqs. "0" then update = ""
|
||||
$ daily_tag = f$element(1, "-", raw_update)
|
||||
$ vtype = "V"
|
||||
$ patch = ""
|
||||
$ if daily_tag .nes. "-"
|
||||
$ then
|
||||
$ vtype = "D"
|
||||
$ daily_tag_len = f$length(daily_tag)
|
||||
$ daily_tag = f$extract(4, daily_tag_len - 4, daily_tag)
|
||||
$ patch = vtype + daily_tag
|
||||
$ product = product + "_d"
|
||||
$ else
|
||||
$ daily_tag = ""
|
||||
$ if eco_level .nes. "" then patch = eco_level
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$ version_fao = "!2ZB!2ZB"
|
||||
$ mmversion = f$fao(version_fao, 'majorver', 'minorver')
|
||||
$ version = vtype + "''mmversion'"
|
||||
$ if update .nes. "" .or. patch .nes. ""
|
||||
$ then
|
||||
$! The presence of a patch implies an update
|
||||
$ if update .eqs. "" .and. patch .nes. "" then update = "0"
|
||||
$ version = version + "-" + update + patch
|
||||
$ fversion = version
|
||||
$ else
|
||||
$ fversion = version
|
||||
$ version = version + "-"
|
||||
$ endif
|
||||
$!
|
||||
$! Kit type 1 is complete kit, the only type that this procedure will make.
|
||||
$ kittype = 1
|
||||
$!
|
||||
$! Write out a logical name for the resulting base kit name.
|
||||
$ name = "''producer'-''base'-''product'-''version'-''kittype'"
|
||||
$ define GNV_PCSI_KITNAME "''name'"
|
||||
$ fname = "''product'-''fversion'"
|
||||
$ define GNV_PCSI_FILENAME_BASE "''fname'"
|
||||
$ write sys$output "*****"
|
||||
$ write sys$output "***** GNV_PCSI_KITNAME = ''name'."
|
||||
$ write sys$output "***** GNV_PCSI_FILENAME_BASE = ''fname'."
|
||||
$ write sys$output "*****"
|
||||
$!
|
||||
$all_exit:
|
||||
$ set def 'default_dir'
|
||||
$ exit '$status'
|
125
third_party/curl/packages/vms/pcsi_gnv_curl_file_list.txt
vendored
Normal file
125
third_party/curl/packages/vms/pcsi_gnv_curl_file_list.txt
vendored
Normal file
@ -0,0 +1,125 @@
|
||||
! File: PCSI_GNV_CURL_FILE_LIST.TXT
|
||||
!
|
||||
! File list for building a PCSI kit.
|
||||
! Very simple format so that the parsing logic can be simple.
|
||||
! links first, directory second, and files third.
|
||||
!
|
||||
! link -> file tells procedure to create/remove a link on install/uninstall
|
||||
! If more than one link, consider using an alias file.
|
||||
!
|
||||
! [xxx.yyy]foo.dir is a directory file for the rename phase.
|
||||
! [xxx.yyy.foo] is a directory file for the create phase.
|
||||
! Each subdirectory needs to be on its own pair of lines.
|
||||
!
|
||||
! [xxx.yyy]file.ext is a file for the rename and add phases.
|
||||
!
|
||||
! Copyright (C) John Malmberg
|
||||
!
|
||||
! Permission to use, copy, modify, and/or distribute this software for any
|
||||
! purpose with or without fee is hereby granted, provided that the above
|
||||
! copyright notice and this permission notice appear in all copies.
|
||||
!
|
||||
! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
!
|
||||
! SPDX-License-Identifier: ISC
|
||||
!
|
||||
!============================================================================
|
||||
[gnv.usr.bin]curl. -> [gnv.usr.bin]gnv$curl.exe
|
||||
[gnv.usr.bin]curl.exe -> [gnv.usr.bin]gnv$curl.exe
|
||||
[gnv]
|
||||
[000000]gnv.dir
|
||||
[gnv.usr]
|
||||
[gnv]usr.dir
|
||||
[gnv.usr]bin.dir
|
||||
[gnv.usr.bin]
|
||||
[gnv.usr]include.dir
|
||||
[gnv.usr.include]
|
||||
[gnv.usr.include]curl.dir
|
||||
[gnv.usr.include.curl]
|
||||
[gnv.usr]lib.dir
|
||||
[gnv.usr.lib]
|
||||
[gnv.usr.lib]pkgconfig.dir
|
||||
[gnv.usr.lib.pkgconfig]
|
||||
[gnv.usr]share.dir
|
||||
[gnv.usr.share]
|
||||
[gnv.usr.share]man.dir
|
||||
[gnv.usr.share.man]
|
||||
[gnv.usr.share.man]man1.dir
|
||||
[gnv.usr.share.man.man1]
|
||||
[gnv.usr.share.man]man3.dir
|
||||
[gnv.usr.share.man.man3]
|
||||
[gnv.usr.bin]curl-config.
|
||||
[gnv.usr.bin]gnv$curl.exe
|
||||
[gnv.usr.include.curl]curl.h
|
||||
[gnv.usr.include.curl]system.h
|
||||
[gnv.usr.include.curl]curlver.h
|
||||
[gnv.usr.include.curl]easy.h
|
||||
[gnv.usr.include.curl]mprintf.h
|
||||
[gnv.usr.include.curl]multi.h
|
||||
[gnv.usr.include.curl]stdcheaders.h
|
||||
[gnv.usr.include.curl]typecheck-gcc.h
|
||||
[gnv.usr.lib]gnv$libcurl.exe
|
||||
[gnv.usr.lib]gnv$curlmsg.exe
|
||||
[gnv.usr.lib.pkgconfig]libcurl.pc
|
||||
[gnv.usr.share.man.man1]curl-config.1
|
||||
[gnv.usr.share.man.man1]curl.1
|
||||
[gnv.usr.share.man.man3]curl_easy_cleanup.3
|
||||
[gnv.usr.share.man.man3]curl_easy_duphandle.3
|
||||
[gnv.usr.share.man.man3]curl_easy_escape.3
|
||||
[gnv.usr.share.man.man3]curl_easy_getinfo.3
|
||||
[gnv.usr.share.man.man3]curl_easy_init.3
|
||||
[gnv.usr.share.man.man3]curl_easy_pause.3
|
||||
[gnv.usr.share.man.man3]curl_easy_perform.3
|
||||
[gnv.usr.share.man.man3]curl_easy_recv.3
|
||||
[gnv.usr.share.man.man3]curl_easy_reset.3
|
||||
[gnv.usr.share.man.man3]curl_easy_send.3
|
||||
[gnv.usr.share.man.man3]curl_easy_setopt.3
|
||||
[gnv.usr.share.man.man3]curl_easy_strerror.3
|
||||
[gnv.usr.share.man.man3]curl_easy_unescape.3
|
||||
[gnv.usr.share.man.man3]curl_escape.3
|
||||
[gnv.usr.share.man.man3]curl_formadd.3
|
||||
[gnv.usr.share.man.man3]curl_formfree.3
|
||||
[gnv.usr.share.man.man3]curl_formget.3
|
||||
[gnv.usr.share.man.man3]curl_free.3
|
||||
[gnv.usr.share.man.man3]curl_getdate.3
|
||||
[gnv.usr.share.man.man3]curl_getenv.3
|
||||
[gnv.usr.share.man.man3]curl_global_cleanup.3
|
||||
[gnv.usr.share.man.man3]curl_global_init.3
|
||||
[gnv.usr.share.man.man3]curl_global_init_mem.3
|
||||
[gnv.usr.share.man.man3]curl_mprintf.3
|
||||
[gnv.usr.share.man.man3]curl_multi_add_handle.3
|
||||
[gnv.usr.share.man.man3]curl_multi_assign.3
|
||||
[gnv.usr.share.man.man3]curl_multi_cleanup.3
|
||||
[gnv.usr.share.man.man3]curl_multi_fdset.3
|
||||
[gnv.usr.share.man.man3]curl_multi_info_read.3
|
||||
[gnv.usr.share.man.man3]curl_multi_init.3
|
||||
[gnv.usr.share.man.man3]curl_multi_perform.3
|
||||
[gnv.usr.share.man.man3]curl_multi_remove_handle.3
|
||||
[gnv.usr.share.man.man3]curl_multi_setopt.3
|
||||
[gnv.usr.share.man.man3]curl_multi_socket.3
|
||||
[gnv.usr.share.man.man3]curl_multi_socket_action.3
|
||||
[gnv.usr.share.man.man3]curl_multi_strerror.3
|
||||
[gnv.usr.share.man.man3]curl_multi_timeout.3
|
||||
[gnv.usr.share.man.man3]curl_multi_wait.3
|
||||
[gnv.usr.share.man.man3]curl_share_cleanup.3
|
||||
[gnv.usr.share.man.man3]curl_share_init.3
|
||||
[gnv.usr.share.man.man3]curl_share_setopt.3
|
||||
[gnv.usr.share.man.man3]curl_share_strerror.3
|
||||
[gnv.usr.share.man.man3]curl_slist_append.3
|
||||
[gnv.usr.share.man.man3]curl_slist_free_all.3
|
||||
[gnv.usr.share.man.man3]curl_strequal.3
|
||||
[gnv.usr.share.man.man3]curl_unescape.3
|
||||
[gnv.usr.share.man.man3]curl_version.3
|
||||
[gnv.usr.share.man.man3]curl_version_info.3
|
||||
[gnv.usr.share.man.man3]libcurl-easy.3
|
||||
[gnv.usr.share.man.man3]libcurl-errors.3
|
||||
[gnv.usr.share.man.man3]libcurl-multi.3
|
||||
[gnv.usr.share.man.man3]libcurl-share.3
|
||||
[gnv.usr.share.man.man3]libcurl-tutorial.3
|
||||
[gnv.usr.share.man.man3]libcurl.3
|
197
third_party/curl/packages/vms/pcsi_product_gnv_curl.com
vendored
Normal file
197
third_party/curl/packages/vms/pcsi_product_gnv_curl.com
vendored
Normal file
@ -0,0 +1,197 @@
|
||||
$! File: PCSI_PRODUCT_GNV_CURL.COM
|
||||
$!
|
||||
$! This command file packages up the product CURL into a sequential
|
||||
$! format kit
|
||||
$!
|
||||
$! Copyright (C) John Malmberg
|
||||
$!
|
||||
$! Permission to use, copy, modify, and/or distribute this software for any
|
||||
$! purpose with or without fee is hereby granted, provided that the above
|
||||
$! copyright notice and this permission notice appear in all copies.
|
||||
$!
|
||||
$! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
$! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
$! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
$! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
$! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
$! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
$! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
$!
|
||||
$! SPDX-License-Identifier: ISC
|
||||
$!
|
||||
$!=========================================================================
|
||||
$!
|
||||
$! Save default
|
||||
$ default_dir = f$environment("DEFAULT")
|
||||
$!
|
||||
$! Put things back on error.
|
||||
$ on warning then goto all_exit
|
||||
$!
|
||||
$!
|
||||
$ can_build = 1
|
||||
$ producer = f$trnlnm("GNV_PCSI_PRODUCER")
|
||||
$ if producer .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "GNV_PCSI_PRODUCER logical name has not been set."
|
||||
$ can_build = 0
|
||||
$ endif
|
||||
$ producer_full_name = f$trnlnm("GNV_PCSI_PRODUCER_FULL_NAME")
|
||||
$ if producer_full_name .eqs. ""
|
||||
$ then
|
||||
$ write sys$output -
|
||||
"GNV_PCSI_PRODUCER_FULL_NAME logical name has not been set."
|
||||
$ can_build = 0
|
||||
$ endif
|
||||
$ stage_root_name = f$trnlnm("STAGE_ROOT")
|
||||
$ if stage_root_name .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "STAGE_ROOT logical name has not been set."
|
||||
$ can_build = 0
|
||||
$ endif
|
||||
$!
|
||||
$ if (can_build .eq. 0)
|
||||
$ then
|
||||
$ write sys$output "Not able to build a kit."
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$!
|
||||
$! Make sure that the kit name is up to date for this build
|
||||
$!----------------------------------------------------------
|
||||
$ @MAKE_PCSI_CURL_KIT_NAME.COM
|
||||
$!
|
||||
$!
|
||||
$! Make sure that the image is built
|
||||
$!----------------------------------
|
||||
$ arch_name = f$edit(f$getsyi("arch_name"),"UPCASE")
|
||||
$ if f$search("[--.src]curl.exe") .eqs. ""
|
||||
$ then
|
||||
$ build_it = 1
|
||||
$ libfile = "[.packages.vms.''arch_name']curllib.olb"
|
||||
$ if f$search(libfile) .nes. ""
|
||||
$ then
|
||||
$ build_it = 0
|
||||
$ else
|
||||
$ ! GNV based build
|
||||
$ libfile = "[.lib.^.libs]libcurl.a"
|
||||
$ if f$search(libfile) .nes. ""
|
||||
$ then
|
||||
$ build_it = 0;
|
||||
$ endif
|
||||
$ endif
|
||||
$ if build_it .eq. 1
|
||||
$ then
|
||||
$ @build_vms list
|
||||
$ endif
|
||||
$ @gnv_link_curl.com
|
||||
$ endif
|
||||
$!
|
||||
$! Make sure that the release note file name is up to date
|
||||
$!---------------------------------------------------------
|
||||
$ @BUILD_GNV_CURL_RELEASE_NOTES.COM
|
||||
$!
|
||||
$!
|
||||
$! Make sure that the source has been backed up.
|
||||
$!----------------------------------------------
|
||||
$ arch_type = f$getsyi("ARCH_NAME")
|
||||
$ arch_code = f$extract(0, 1, arch_type)
|
||||
$ @backup_gnv_curl_src.com
|
||||
$!
|
||||
$! Regenerate the PCSI description file.
|
||||
$!--------------------------------------
|
||||
$ @BUILD_GNV_CURL_PCSI_DESC.COM
|
||||
$!
|
||||
$! Regenerate the PCSI Text file.
|
||||
$!---------------------------------
|
||||
$ @BUILD_GNV_CURL_PCSI_TEXT.COM
|
||||
$!
|
||||
$!
|
||||
$! Parse the kit name into components.
|
||||
$!---------------------------------------
|
||||
$ kit_name = f$trnlnm("GNV_PCSI_KITNAME")
|
||||
$ if kit_name .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "@MAKE_PCSI_CURL_KIT_NAME.COM has not been run."
|
||||
$ goto all_exit
|
||||
$ endif
|
||||
$ producer = f$element(0, "-", kit_name)
|
||||
$ base = f$element(1, "-", kit_name)
|
||||
$ product_name = f$element(2, "-", kit_name)
|
||||
$ mmversion = f$element(3, "-", kit_name)
|
||||
$ majorver = f$extract(0, 3, mmversion)
|
||||
$ minorver = f$extract(3, 2, mmversion)
|
||||
$ updatepatch = f$element(4, "-", kit_name)
|
||||
$ if updatepatch .eqs. "" then updatepatch = ""
|
||||
$!
|
||||
$ version_fao = "!AS.!AS"
|
||||
$ mmversion = f$fao(version_fao, "''majorver'", "''minorver'")
|
||||
$ if updatepatch .nes. ""
|
||||
$ then
|
||||
$ version = "''mmversion'" + "-" + updatepatch
|
||||
$ else
|
||||
$ version = "''mmversion'"
|
||||
$ endif
|
||||
$!
|
||||
$ @stage_curl_install remove
|
||||
$ @stage_curl_install
|
||||
$!
|
||||
$! Move to the base directories
|
||||
$ set def [--]
|
||||
$ current_default = f$environment("DEFAULT")
|
||||
$ my_dir = f$parse(current_default,,,"DIRECTORY") - "[" - "<" - ">" - "]"
|
||||
$!
|
||||
$!
|
||||
$!
|
||||
$ source = "''default_dir'"
|
||||
$ src1 = "new_gnu:[usr.bin],"
|
||||
$ src2 = "new_gnu:[usr.include.curl],"
|
||||
$ src3 = "new_gnu:[usr.lib],"
|
||||
$ src4 = "new_gnu:[usr.lib.pkgconfig],"
|
||||
$ src5 = "new_gnu:[usr.share.man.man1],"
|
||||
$ src6 = "new_gnu:[usr.share.man.man3],"
|
||||
$ src7 = "new_gnu:[vms_src],"
|
||||
$ src8 = "new_gnu:[common_src],"
|
||||
$ src9 = "prj_root:[''my_dir'],prj_root:[''my_dir'.src]"
|
||||
$ gnu_src = src1 + src2 + src3 + src4 + src5 + src6 + src7 + src8 + src9
|
||||
$!
|
||||
$!
|
||||
$ base = ""
|
||||
$ if arch_name .eqs. "ALPHA" then base = "AXPVMS"
|
||||
$ if arch_name .eqs. "IA64" then base = "I64VMS"
|
||||
$ if arch_name .eqs. "VAX" then base = "VAXVMS"
|
||||
$!
|
||||
$ if base .eqs. "" then exit 44
|
||||
$!
|
||||
$ pcsi_option = "/option=noconfirm"
|
||||
$ if arch_code .eqs. "V"
|
||||
$ then
|
||||
$ pcsi_option = ""
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$product package 'product_name' -
|
||||
/base='base' -
|
||||
/producer='producer' -
|
||||
/source='source' -
|
||||
/destination=STAGE_ROOT:[KIT] -
|
||||
/material=('gnu_src','source') -
|
||||
/format=sequential 'pcsi_option'
|
||||
$!
|
||||
$!
|
||||
$! VAX can not do a compressed kit.
|
||||
$! ZIP -9 "-V" does a better job, so no reason to normally build a compressed
|
||||
$! kit.
|
||||
$!----------------------------------
|
||||
$if p1 .eqs. "COMPRESSED"
|
||||
$then
|
||||
$ if arch_code .nes. "V"
|
||||
$ then
|
||||
$ product copy /options=(novalidate, noconfirm) /format=compressed -
|
||||
'product_name' -
|
||||
/source=stage_root:[kit]/dest=stage_root:[kit] -
|
||||
/version='version'/base='base'
|
||||
$ endif
|
||||
$endif
|
||||
$!
|
||||
$all_exit:
|
||||
$ set def 'default_dir'
|
||||
$ exit
|
228
third_party/curl/packages/vms/readme
vendored
Normal file
228
third_party/curl/packages/vms/readme
vendored
Normal file
@ -0,0 +1,228 @@
|
||||
_ _ ____ _
|
||||
___| | | | _ \| |
|
||||
/ __| | | | |_) | |
|
||||
( (__| |_| | _ <| |___
|
||||
\___|\___/|_| \_\_____|
|
||||
for OpenVMS
|
||||
|
||||
History:
|
||||
|
||||
9-MAR-2004, Created this readme. file. Marty Kuhrt (MSK).
|
||||
15-MAR-2004, MSK, Updated to reflect the new files in this directory.
|
||||
14-FEB-2005, MSK, removed config-vms.h_with* file comments
|
||||
10-FEB-2010, SMS. General update.
|
||||
14-Jul-2013, JEM, General Update, add GNV build information.
|
||||
|
||||
|
||||
The release notes installed by the PCSI kit consist of this file and the
|
||||
curl_gnv_build_steps.txt and other useful information.
|
||||
|
||||
Prerequisites:
|
||||
|
||||
OpenVMS V7.0 or later (any platform)
|
||||
DECC V6.5 or later
|
||||
OpenSSL or hp SSL, if you want SSL support
|
||||
|
||||
What is Here:
|
||||
|
||||
This directory contains the following files for a DCL based build.
|
||||
|
||||
backup_gnv_curl_src.com This procedure backs up the source modules for
|
||||
creating a PCSI kit.
|
||||
|
||||
build_curl-config_script.com
|
||||
Procedure to create the curl-config script.
|
||||
|
||||
build_gnv_curl.com This procedure does a build of curl using the
|
||||
GNV utilities and then uses DCL tools to build
|
||||
the libcurl shared image. The setup_gnv_curl_build.com
|
||||
procedure must be run first.
|
||||
|
||||
build_gnv_curl_pcsi_desc.com
|
||||
This procedure builds the pcsi$desc file for
|
||||
creating a PCSI based package.
|
||||
|
||||
build_gnv_curl_pcsi_text.com
|
||||
This procedure builds the pcsi$text file for
|
||||
creating a PCSI based package.
|
||||
|
||||
build_gnv_curl_release_notes.com
|
||||
This procedure creates the release notes for
|
||||
a PCSI kit based on curl_release_note_start.txt,
|
||||
this readme file, and the curl_gnv_build_steps.txt
|
||||
|
||||
build_libcurl_pc.com Procedure to create a libcurl.pc file.
|
||||
|
||||
build_vms.com DCL based build procedure.
|
||||
|
||||
clean_gnv_curl.com This procedure cleans up the files generated by
|
||||
a GNV based build.
|
||||
|
||||
config_h.com DCL based procedure used by build_vms.com
|
||||
to run generate the curl_config.h file.
|
||||
This is a generic procedure that does most
|
||||
of the work for generating config.h files.
|
||||
|
||||
compare_curl_source.com Procedure to compare the working directory
|
||||
with a repository directory or a backup staging
|
||||
directory.
|
||||
|
||||
curl_crtl_init.c A special pre-initialization routine to for
|
||||
programs to behave more Unix like when run
|
||||
under GNV.
|
||||
|
||||
curl_gnv_build_steps.txt
|
||||
Detailed instructions on how to built curl using
|
||||
GNV and how to build the libcurl shared image and
|
||||
PCSI kit.
|
||||
|
||||
curl_release_note_start.txt
|
||||
The first part of the curl release notes.
|
||||
|
||||
curl_startup.com A procedure run at VMS startup to install the
|
||||
libcurl shared image and to set up the needed
|
||||
logical names.
|
||||
|
||||
curlmsg.h C header defining curl status code macros.
|
||||
|
||||
curlmsg.msg Error message source for curlmsg.h and curlmsg.sdl.
|
||||
|
||||
curlmsg.sdl SDL source defining curl status code constants.
|
||||
|
||||
curlmsg_vms.h Mapping of curl status codes to VMS-form codes.
|
||||
|
||||
generate_config_vms_h_curl.com
|
||||
DCL procedure to generate the curl specific
|
||||
definitions for curl_config.h that config_h.com
|
||||
can not properly generate.
|
||||
|
||||
generate_vax_transfer.com
|
||||
DCL procedure to read an Alpha/IA64 symbol vector
|
||||
linker option file and generate the VAX transfer
|
||||
vector modules.
|
||||
|
||||
gnv_conftest.c_first A helper file for the configure script.
|
||||
|
||||
gnv_curl_configure.sh A script to run the configure script with the
|
||||
options needed for VMS.
|
||||
|
||||
gnv_libcurl_symbols.opt The symbol vectors needed for Alpha and IA64
|
||||
libcurl shared image.
|
||||
|
||||
gnv_link_curl.com Links the libcurl shared image and then links a curl
|
||||
image to use the libcurl.
|
||||
|
||||
macro32_exactcase.patch The patch file needed to modify VAX Macro32 to be
|
||||
case sensitive and case preserving.
|
||||
|
||||
Makefile.am curl kit file list for this directory.
|
||||
|
||||
Makefile.in curl kit makefile source for this directory.
|
||||
|
||||
make_gnv_curl_install.sh
|
||||
Script to do a make install using GNV after running
|
||||
the configure script.
|
||||
|
||||
make_pcsi_curl_kit_name.com
|
||||
This generates the name of the PCSI kit based on
|
||||
the version of curl being built.
|
||||
|
||||
pcsi_gnv_curl_file_list.txt
|
||||
This is a text file describing what files should
|
||||
be included in a PCSI kit.
|
||||
|
||||
pcsi_product_gnv_curl.com
|
||||
This generates the PCSI kit after the libcurl
|
||||
shared image has been made.
|
||||
|
||||
readme. This file.
|
||||
|
||||
report_openssl_version.c
|
||||
Program to check that the openssl version is new
|
||||
enough for building a shared libcurl image.
|
||||
|
||||
setup_gnv_curl_build.com
|
||||
This procedure sets up symbols and logical names
|
||||
for a GNV build environment and also copies some
|
||||
helper files.
|
||||
|
||||
stage_curl_install.com This procedure sets up new_gnu: directory tree to
|
||||
for testing the install and building the PCSI kit.
|
||||
It takes a "remove" option to remove all the staged
|
||||
files.
|
||||
|
||||
vms_eco_level.h This sets the ECO level for the PCSI kit name.
|
||||
|
||||
|
||||
How to Build:
|
||||
|
||||
The GNV based build and the DCL based build procedures are not compatible
|
||||
and you must make sure that none of the build files are present before
|
||||
running a different type of build. Use the "REALCLEAN" option for
|
||||
BUILD_VMS.COM and the "REALCLEAN" option for clean_gnv_curl.com.
|
||||
|
||||
The (brute-force) DCL based builder is [.packages.vms]build_vms.com.
|
||||
Comments in this procedure describe various optional parameters which
|
||||
enable or disable optional program features, or which control the build
|
||||
in other ways. Product files (.EXE, .H, .LIS, .MAP, .OBJ, .OLB, ...)
|
||||
should be produced in an architecture-specific subdirectory under this
|
||||
directory ([.ALPHA], [.IA64], [.VAX]).
|
||||
|
||||
The file curl_gnv_build_steps.txt contains information on building using
|
||||
the GNV tool kit, building a shared libcurl, and producing a PCSI kit for
|
||||
distribution. The curl_gnv_build_steps.text is included in the release
|
||||
notes file of the PCSI kit.
|
||||
|
||||
The building with 64 bit pointers does not currently work.
|
||||
|
||||
The build procedure will detect if HP OpenSSL, LDAP, and Kerberos are
|
||||
installed and default to building with them.
|
||||
|
||||
The build procedure will also detect if a compatible ZLIB shared image
|
||||
is installed from a PCSI kit and default to using it.
|
||||
|
||||
Example build commands:
|
||||
|
||||
@ [.packages.vms]build_vms.com CLEAN
|
||||
@ [.packages.vms]build_vms.com LARGE LDAP
|
||||
submit /noprint [.packages.vms]build_vms.com /param = (LARGE, LDAP)
|
||||
|
||||
The build_vms.com procedure does not build the shared image file or the PCSI
|
||||
kit. If you have built a curl with ZLIB and HPSSL support as well as if
|
||||
LDAP and Kerberos installed, you can use the GNV_LINK_CURL.COM file.
|
||||
|
||||
The GNV_LINK_CURL.COM contains information on how to link and run with a newer
|
||||
version of HP SSL than what may be install on an Alpha or IA64 based system.
|
||||
|
||||
To build the PCSI kit, follow the instructions in the file
|
||||
curl_gnv_build_steps.txt.
|
||||
|
||||
Other Notes:
|
||||
|
||||
This release fixes known bugs #22, and #57 in the [curl.docs]known_bugs.
|
||||
file.
|
||||
|
||||
The libcurl formdata.c module and Curl tools post form now have some
|
||||
understanding of VMS file types. Files will be posted in STREAM_LF format.
|
||||
|
||||
The Curl tool now has some understanding of VMS file types and will upload the
|
||||
files in STREAM_LF format.
|
||||
|
||||
When CURL is uploading a VARIABLE format VMS file, it is less efficient as in
|
||||
order to get the file size, it will first read the entire file once, and then
|
||||
read the file again for the actual upload.
|
||||
|
||||
The Curl tool will now always download files into STREAM_LF format. Even if a
|
||||
file by that name with a different format already exists. This is needed to
|
||||
allow interrupted downloads to be continued.
|
||||
|
||||
|
||||
The libcurl file module still does not understand VMS file types and requires
|
||||
the input files to be in STREAM_LF to work property.
|
||||
|
||||
The test suites are not supported as of 7.11.0.
|
||||
|
||||
The curlmsg.sdl and curlmsg.h files are generated from curlmsg.msg.
|
||||
This is not done automatically, since the .MSG file is a hand edit
|
||||
of the relevant stuff from the curl.h file. If you want to do this
|
||||
yourself you'll need the SDL package from the freeware collection.
|
100
third_party/curl/packages/vms/report_openssl_version.c
vendored
Normal file
100
third_party/curl/packages/vms/report_openssl_version.c
vendored
Normal file
@ -0,0 +1,100 @@
|
||||
/* File: report_openssl_version.c
|
||||
*
|
||||
* This file dynamically loads the openssl shared image to report the
|
||||
* version string.
|
||||
*
|
||||
* It will optionally place that version string in a DCL symbol.
|
||||
*
|
||||
* Usage: report_openssl_version <shared_image> [<dcl_symbol>]
|
||||
*
|
||||
* Copyright (C) John Malmberg
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*
|
||||
* SPDX-License-Identifier: ISC
|
||||
*
|
||||
*/
|
||||
|
||||
#include <dlfcn.h>
|
||||
#include <openssl/opensslv.h>
|
||||
#include <openssl/crypto.h>
|
||||
|
||||
#include <string.h>
|
||||
#include <descrip.h>
|
||||
#include <libclidef.h>
|
||||
#include <stsdef.h>
|
||||
#include <errno.h>
|
||||
|
||||
unsigned long LIB$SET_SYMBOL(
|
||||
const struct dsc$descriptor_s * symbol,
|
||||
const struct dsc$descriptor_s * value,
|
||||
const unsigned long * table_type);
|
||||
|
||||
int main(int argc, char ** argv) {
|
||||
|
||||
|
||||
void * libptr;
|
||||
const char * (*ssl_version)(int t);
|
||||
const char * version;
|
||||
|
||||
if(argc < 1) {
|
||||
puts("report_openssl_version filename");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
libptr = dlopen(argv[1], 0);
|
||||
|
||||
ssl_version = (const char * (*)(int))dlsym(libptr, "SSLeay_version");
|
||||
if(ssl_version == NULL) {
|
||||
ssl_version = (const char * (*)(int))dlsym(libptr, "ssleay_version");
|
||||
if(ssl_version == NULL) {
|
||||
ssl_version = (const char * (*)(int))dlsym(libptr, "SSLEAY_VERSION");
|
||||
}
|
||||
}
|
||||
|
||||
dlclose(libptr);
|
||||
|
||||
if(ssl_version == NULL) {
|
||||
puts("Unable to lookup version of OpenSSL");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
version = ssl_version(SSLEAY_VERSION);
|
||||
|
||||
puts(version);
|
||||
|
||||
/* Was a symbol argument given? */
|
||||
if(argc > 1) {
|
||||
int status;
|
||||
struct dsc$descriptor_s symbol_dsc;
|
||||
struct dsc$descriptor_s value_dsc;
|
||||
const unsigned long table_type = LIB$K_CLI_LOCAL_SYM;
|
||||
|
||||
symbol_dsc.dsc$a_pointer = argv[2];
|
||||
symbol_dsc.dsc$w_length = strlen(argv[2]);
|
||||
symbol_dsc.dsc$b_dtype = DSC$K_DTYPE_T;
|
||||
symbol_dsc.dsc$b_class = DSC$K_CLASS_S;
|
||||
|
||||
value_dsc.dsc$a_pointer = (char *)version; /* Cast ok */
|
||||
value_dsc.dsc$w_length = strlen(version);
|
||||
value_dsc.dsc$b_dtype = DSC$K_DTYPE_T;
|
||||
value_dsc.dsc$b_class = DSC$K_CLASS_S;
|
||||
|
||||
status = LIB$SET_SYMBOL(&symbol_dsc, &value_dsc, &table_type);
|
||||
if(!$VMS_STATUS_SUCCESS(status)) {
|
||||
exit(status);
|
||||
}
|
||||
}
|
||||
|
||||
exit(0);
|
||||
}
|
286
third_party/curl/packages/vms/setup_gnv_curl_build.com
vendored
Normal file
286
third_party/curl/packages/vms/setup_gnv_curl_build.com
vendored
Normal file
@ -0,0 +1,286 @@
|
||||
$! File: setup_gnv_curl_build.com
|
||||
$!
|
||||
$! Set up build environment for building Curl under GNV on VMS.
|
||||
$!
|
||||
$! GNV needs some files moved into the other directories to help with
|
||||
$! the configure script and the build.
|
||||
$!
|
||||
$! Copyright (C) John Malmberg
|
||||
$!
|
||||
$! Permission to use, copy, modify, and/or distribute this software for any
|
||||
$! purpose with or without fee is hereby granted, provided that the above
|
||||
$! copyright notice and this permission notice appear in all copies.
|
||||
$!
|
||||
$! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
$! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
$! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
$! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
$! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
$! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
$! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
$!
|
||||
$! SPDX-License-Identifier: ISC
|
||||
$!
|
||||
$!=======================================================================
|
||||
$!
|
||||
$! Save this so we can get back.
|
||||
$ default_dir = f$environment("default")
|
||||
$!
|
||||
$! Move to where the Configure script is.
|
||||
$ set def [--]
|
||||
$!
|
||||
$! Get the path to where the Configure script is.
|
||||
$ base_dir = f$environment("default")
|
||||
$!
|
||||
$! Allow arguments to be grouped together with comma or separated by spaces
|
||||
$! Do no know if we will need more than 8.
|
||||
$ args = "," + p1 + "," + p2 + "," + p3 + "," + p4 + ","
|
||||
$ args = args + p5 + "," + p6 + "," + p7 + "," + p8 + ","
|
||||
$!
|
||||
$! Provide lower case version to simplify parsing.
|
||||
$ args_lower = f$edit(args, "LOWERCASE,COLLAPSE")
|
||||
$!
|
||||
$ args_len = f$length(args)
|
||||
$ args_lower_len = f$length(args_lower)
|
||||
$!
|
||||
$ tests = 0
|
||||
$ if f$locate(",test", args_lower) .lt. args_lower_len
|
||||
$ then
|
||||
$ tests = 1
|
||||
$ endif
|
||||
$!
|
||||
$ examples = 0
|
||||
$ if f$locate(",exam", args_lower) .lt. args_lower_len
|
||||
$ then
|
||||
$ examples = 1
|
||||
$ endif
|
||||
$!
|
||||
$! We want detailed build logs.
|
||||
$ clist = "/list/show=(expan,includ)"
|
||||
$!
|
||||
$! We want full symbol names in exact case. Need a common
|
||||
$! repository for all directories.
|
||||
$ cnames = "/names=(shortened,as_is)/repository=''base_dir'"
|
||||
$!
|
||||
$! Set the compiler options for GNV CC wrapper to inherit.
|
||||
$ cc :== cc'clist''cnames'/nested_include_directory=none
|
||||
$ cxx :== cxx'clist''cnames'/nested_include_directory=none
|
||||
$ pointer_size = "32"
|
||||
$! Note 64 bit pointers requires all libraries to either have
|
||||
$! 64 bit pointers or have #pragma directives.
|
||||
$! Currently building curl on VMS with 64 bit pointers does not work.
|
||||
$!
|
||||
$! A logical name to make it easier to find some of the hacks.
|
||||
$ define/job gnv_hacks 'base_dir'
|
||||
$!
|
||||
$! A logical name to find the [.packages.vms] directory where we started.
|
||||
$ define/job gnv_packages_vms 'default_dir'
|
||||
$!
|
||||
$! Kerberos headers:
|
||||
$ if f$trnlnm("gssapi") .eqs. ""
|
||||
$ then
|
||||
$ if f$search("sys$sysroot:[kerberos]include.dir") .nes. ""
|
||||
$ then
|
||||
$ define/job gssapi sys$sysroot:[kerberos.include]
|
||||
$ endif
|
||||
$ endif
|
||||
$!
|
||||
$! OpenSSL headers
|
||||
$ if f$trnlnm("openssl") .eqs. ""
|
||||
$ then
|
||||
$ if f$trnlnm("ssl$include") .nes. ""
|
||||
$ then
|
||||
$ define/job openssl ssl$include:
|
||||
$ endif
|
||||
$ endif
|
||||
$!
|
||||
$! C compiler include path.
|
||||
$ define/job decc$system_include prj_root:[.include.curl],-
|
||||
[-.packages.vms],-
|
||||
ssl$include:,gnv$gnu:[usr.include],-
|
||||
gnv$gnu:[usr.include.libz],gnv$gnu:[include],-
|
||||
gnv$zlib_include:,-
|
||||
sys$sysroot:[kerberos.include]
|
||||
$!
|
||||
$! Set up an include list for the compiler to find all the header files
|
||||
$! that they need.
|
||||
$!
|
||||
$ define/job decc$user_include src_root:[.include.curl]
|
||||
$ define ssl_lib sys$library:
|
||||
$!
|
||||
$! Calculate what is needed in the option files
|
||||
$ libzshr_line = ""
|
||||
$ try_shr = "gnv$libzshr''pointer_size'"
|
||||
$ if f$search(try_shr) .nes. "" then libzshr_line = "''try_shr'/share"
|
||||
$ if (libzshr_line .eqs. "")
|
||||
$ then
|
||||
$ try_shr = "sys$share:" + try_shr
|
||||
$ if f$search("''try_shr'.exe") .nes. ""
|
||||
$ then
|
||||
$ libzshr_line = "''try_shr'/share"
|
||||
$ endif
|
||||
$ endif
|
||||
$!
|
||||
$! Kerberos
|
||||
$ gssrtlshr_line = ""
|
||||
$ try_shr = "sys$share:gss$rtl"
|
||||
$ if f$search("''try_shr'.exe") .nes. ""
|
||||
$ then
|
||||
$ gssrtlshr_line = "''try_shr'/share"
|
||||
$ endif
|
||||
$!
|
||||
$! HP OpenSSL
|
||||
$ libcryptoshr_line = ""
|
||||
$ try_shr = "sys$share:ssl$libcrypto_shr''pointer_size'"
|
||||
$ if f$search("''try_shr'.exe") .nes. ""
|
||||
$ then
|
||||
$ libcryptoshr_line = "''try_shr'/share"
|
||||
$ endif
|
||||
$!
|
||||
$ libsslshr_line = ""
|
||||
$ try_shr = "sys$share:ssl$libssl_shr''pointer_size'"
|
||||
$ if f$search("''try_shr'.exe") .nes. ""
|
||||
$ then
|
||||
$ libsslshr_line = "''try_shr'/share"
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$! Copy over the gnv$conftest* files to base directory.
|
||||
$!-----------------------------------------------------
|
||||
$ copy 'default_dir'gnv_conftest.c_first 'base_dir'gnv$conftest.c_first
|
||||
$ create 'base_dir'gnv$conftest.opt
|
||||
$ open/append opt 'base_dir'gnv$conftest.opt
|
||||
$ if libzshr_line .nes. "" then write opt libzshr_line
|
||||
$ if libcryptoshr_line .nes. "" then write opt libcryptoshr_line
|
||||
$ if libsslshr_line .nes. "" then write opt libsslshr_line
|
||||
$ close opt
|
||||
$ purge 'base_dir'gnv$conftest.*
|
||||
$ rename 'base_dir'gnv$conftest.* ;1
|
||||
$!
|
||||
$!
|
||||
$!
|
||||
$! GNV helper files for building the test curl binary.
|
||||
$!-----------------------------------------------
|
||||
$ create [.src]gnv$curl.opt
|
||||
$ open/append opt [.src]gnv$curl.opt
|
||||
$ write opt "gnv_packages_vms:curlmsg.obj"
|
||||
$ if libzshr_line .nes. "" then write opt libzshr_line
|
||||
$ if gssrtlshr_line .nes. "" then write opt gssrtlshr_line
|
||||
$ if libcryptoshr_line .nes. "" then write opt libcryptoshr_line
|
||||
$ if libsslshr_line .nes. "" then write opt libsslshr_line
|
||||
$ close opt
|
||||
$ purge [.src]gnv$*.*
|
||||
$ rename [.src]gnv$*.* ;1
|
||||
$!
|
||||
$!
|
||||
$! Create the libcurl
|
||||
$!------------------------------------------------------
|
||||
$ create 'default_dir'gnv_libcurl_linker.opt
|
||||
$ open/append opt 'default_dir'gnv_libcurl_linker.opt
|
||||
$ if libzshr_line .nes. "" then write opt libzshr_line
|
||||
$ if gssrtlshr_line .nes. "" then write opt gssrtlshr_line
|
||||
$ if libcryptoshr_line .nes. "" then write opt libcryptoshr_line
|
||||
$ if libsslshr_line .nes. "" then write opt libsslshr_line
|
||||
$ close opt
|
||||
$!
|
||||
$!
|
||||
$! Create the template linker file
|
||||
$!---------------------------------
|
||||
$ create 'default_dir'gnv_template_linker.opt
|
||||
$ open/append opt 'default_dir'gnv_template_linker.opt
|
||||
$ write opt "gnv_vms_common:vms_curl_init_unix.obj"
|
||||
$ if libzshr_line .nes. "" then write opt libzshr_line
|
||||
$ if gssrtlshr_line .nes. "" then write opt gssrtlshr_line
|
||||
$ if libcryptoshr_line .nes. "" then write opt libcryptoshr_line
|
||||
$ if libsslshr_line .nes. "" then write opt libsslshr_line
|
||||
$ close opt
|
||||
$!
|
||||
$! Copy over the gnv$*.opt files for [.docs.examples]
|
||||
$!----------------------------------------------------
|
||||
$ if examples .ne. 0
|
||||
$ then
|
||||
$ example_apps = "10-at-a-time,anyauthput,certinfo,cookie_interface,debug"
|
||||
$ example_apps = example_apps + ",fileupload,fopen,ftpget,ftpgetresp"
|
||||
$ example_apps = example_apps + ",ftpupload,getinfo,getinmemory"
|
||||
$ example_apps = example_apps + ",http-post,httpcustomheader,httpput"
|
||||
$ example_apps = example_apps + ",https,multi-app,multi-debugcallback"
|
||||
$ example_apps = example_apps + ",multi-double,multi-post,multi-single"
|
||||
$ example_apps = example_apps + ",persistent,post-callback,postit2"
|
||||
$ example_apps = example_apps + ",sendrecv,sepheaders,simple,simplepost"
|
||||
$ example_apps = example_apps + ",simplessl"
|
||||
$!
|
||||
$ i = 0
|
||||
$example_loop:
|
||||
$ ap_name = f$element(i, ",", example_apps)
|
||||
$ if ap_name .eqs. "," then goto example_loop_end
|
||||
$ if ap_name .eqs. "" then goto example_loop_end
|
||||
$ copy 'default_dir'gnv_template_linker.opt -
|
||||
[.docs.examples]gnv$'ap_name'.opt
|
||||
$ i = i + 1
|
||||
$ goto example_loop
|
||||
$example_loop_end:
|
||||
$!
|
||||
$! clean up the copy.
|
||||
$ purge [.docs.examples]gnv$*.opt
|
||||
$ rename [.docs.examples]gnv$*.opt ;1
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$ if tests .ne. 0
|
||||
$ then
|
||||
$ libtest_apps = "lib500,lib501,lib502,lib503,lib504,lib505,lib506,lib507"
|
||||
$ libtest_apps = libtest_apps + ",lib508,lib510,lib511,lib512,lib513,lib514"
|
||||
$ libtest_apps = libtest_apps + ",lib515,lib516,lib517,lib518,lib519,lib520"
|
||||
$ libtest_apps = libtest_apps + ",lib521,lib523,lib524,lib525,lib526,lib527"
|
||||
$ libtest_apps = libtest_apps + ",lib529,lib530,lib532,lib533,lib536,lib537"
|
||||
$ libtest_apps = libtest_apps + ",lib539,lib540,lib541,lib542,lib543,lib544"
|
||||
$ libtest_apps = libtest_apps + ",lib545,lib547,lib548,lib549,lib552,lib553"
|
||||
$ libtest_apps = libtest_apps + ",lib554,lib555,lib556,lib557,lib558,lib559"
|
||||
$ libtest_apps = libtest_apps + ",lib560,lib562,lib564"
|
||||
$ i = 0
|
||||
$libtest_loop:
|
||||
$ ap_name = f$element(i, ",", libtest_apps)
|
||||
$ if ap_name .eqs. "," then goto libtest_loop_end
|
||||
$ if ap_name .eqs. "" then goto libtest_loop_end
|
||||
$ copy 'default_dir'gnv_template_linker.opt -
|
||||
[.tests.libtest]gnv$'ap_name'.opt
|
||||
$ i = i + 1
|
||||
$ goto libtest_loop
|
||||
$libtest_loop_end:
|
||||
$!
|
||||
$! clean up the copy.
|
||||
$ purge [.tests.libtest]gnv$*.opt
|
||||
$ rename [.tests.libtest]gnv$*.opt ;1
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$! Build the Message file.
|
||||
$!--------------------------
|
||||
$ if f$search("[.packages.vms]curlmsg.obj") .eqs. ""
|
||||
$ then
|
||||
$ message [.packages.vms]curlmsg.msg/object=[.packages.vms]
|
||||
$ endif
|
||||
$ if f$search("gnv$curlmsg.exe") .eqs. ""
|
||||
$ then
|
||||
$ link/share=gnv$curlmsg.exe [.packages.vms]curlmsg.obj
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$!
|
||||
$! Need to build the common init module.
|
||||
$!-------------------------------------------
|
||||
$ init_obj = "[.packages.vms]curl_crtl_init.obj"
|
||||
$ if f$search(init_obj) .eqs. ""
|
||||
$ then
|
||||
$ cc'cflags' 'default_dir'curl_crtl_init.c/obj='init_obj'
|
||||
$ purge 'init_obj'
|
||||
$ rename 'init_obj' ;1
|
||||
$ endif
|
||||
$!
|
||||
$all_exit:
|
||||
$!
|
||||
$ set def 'default_dir'
|
||||
$!
|
||||
$! Verify can break things in bash, especially in Configure scripts.
|
||||
$ set nover
|
||||
$ exit
|
170
third_party/curl/packages/vms/stage_curl_install.com
vendored
Normal file
170
third_party/curl/packages/vms/stage_curl_install.com
vendored
Normal file
@ -0,0 +1,170 @@
|
||||
$! File: stage_curl_install.com
|
||||
$!
|
||||
$! This updates or removes the GNV$CURL.EXE and related files for the
|
||||
$! new_gnu:[*...] directory tree for running the self tests.
|
||||
$!
|
||||
$! The files installed/removed are:
|
||||
$! [usr.bin]gnv$curl.exe
|
||||
$! [usr.bin]curl-config.
|
||||
$! [usr.lib]gnv$libcurl.exe
|
||||
$! [usr.bin]curl. hard link for [usr.bin]gnv$curl.exe
|
||||
$! [usr.include.curl]curl.h
|
||||
$! [usr.include.curl]curlver.h
|
||||
$! [usr.include.curl]easy.h
|
||||
$! [usr.include.curl]mprintf.h
|
||||
$! [usr.include.curl]multi.h
|
||||
$! [usr.include.curl]stdcheaders.h
|
||||
$! [usr.include.curl]typecheck-gcc.h
|
||||
$! [usr.lib.pkgconfig]libcurl.pc
|
||||
$! [usr.share.man.man1]curl-config.1
|
||||
$! [usr.share.man.man1]curl.1
|
||||
$! [usr.share.man.man3]curl*.3
|
||||
$! [usr.share.man.man3]libcurl*.3
|
||||
$! Future: A symbolic link to the release notes?
|
||||
$!
|
||||
$! Copyright (C) John Malmberg
|
||||
$!
|
||||
$! Permission to use, copy, modify, and/or distribute this software for any
|
||||
$! purpose with or without fee is hereby granted, provided that the above
|
||||
$! copyright notice and this permission notice appear in all copies.
|
||||
$!
|
||||
$! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
$! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
$! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
$! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
$! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
$! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
$! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
$!
|
||||
$! SPDX-License-Identifier: ISC
|
||||
$!
|
||||
$!===========================================================================
|
||||
$!
|
||||
$ arch_type = f$getsyi("ARCH_NAME")
|
||||
$ arch_code = f$extract(0, 1, arch_type)
|
||||
$!
|
||||
$ if arch_code .nes. "V"
|
||||
$ then
|
||||
$ set proc/parse=extended
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$! If the first parameter begins with "r" or "R" then this is to
|
||||
$! remove the files instead of installing them.
|
||||
$ remove_filesq = f$edit(p1, "upcase,trim")
|
||||
$ remove_filesq = f$extract(0, 1, remove_filesq)
|
||||
$ remove_files = 0
|
||||
$ if remove_filesq .eqs. "R" then remove_files = 1
|
||||
$!
|
||||
$!
|
||||
$! If we are staging files, make sure that the libcurl.pc and curl-config
|
||||
$! files are present.
|
||||
$ if remove_files .eq. 0
|
||||
$ then
|
||||
$ if f$search("[--]libcurl.pc") .eqs. ""
|
||||
$ then
|
||||
$ @build_libcurl_pc.com
|
||||
$ endif
|
||||
$ if f$search("[--]curl-config") .eqs. ""
|
||||
$ then
|
||||
$ @build_curl-config_script.com
|
||||
$ endif
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$! Dest dirs
|
||||
$!------------------
|
||||
$ dest_dirs1 = "[usr],[usr.bin],[usr.include],[usr.include.curl]"
|
||||
$ dest_dirs2 = ",[usr.bin],[usr.lib.pkgconfig],[usr.share]"
|
||||
$ dest_dirs3 = ",[usr.share.man],[usr.share.man.man1],[usr.share.man.man3]"
|
||||
$ dest_dirs = dest_dirs1 + dest_dirs2 + dest_dirs3
|
||||
$!
|
||||
$!
|
||||
$! Alias links needed.
|
||||
$!-------------------------
|
||||
$ source_curl = "gnv$curl.exe"
|
||||
$ dest_curl = "[bin]gnv$curl.exe"
|
||||
$ curl_links = "[bin]curl."
|
||||
$ new_gnu = "new_gnu:"
|
||||
$!
|
||||
$!
|
||||
$! Create the directories if they do not exist
|
||||
$!---------------------------------------------
|
||||
$ i = 0
|
||||
$curl_dir_loop:
|
||||
$ this_dir = f$element(i, ",", dest_dirs)
|
||||
$ i = i + 1
|
||||
$ if this_dir .eqs. "" then goto curl_dir_loop
|
||||
$ if this_dir .eqs. "," then goto curl_dir_loop_end
|
||||
$! Just create the directories, do not delete them.
|
||||
$! --------------------------------------------------
|
||||
$ if remove_files .eq. 0
|
||||
$ then
|
||||
$ create/dir 'new_gnu''this_dir'/prot=(o:rwed)
|
||||
$ endif
|
||||
$ goto curl_dir_loop
|
||||
$curl_dir_loop_end:
|
||||
$!
|
||||
$!
|
||||
$! Need to add in the executable file
|
||||
$!-----------------------------------
|
||||
$ if remove_files .eq. 0
|
||||
$ then
|
||||
$ copy [--.src]curl.exe 'new_gnu'[usr.bin]gnv$curl.exe/prot=w:re
|
||||
$ copy [--]curl-config. 'new_gnu'[usr.bin]curl-config./prot=w:re
|
||||
$ copy sys$disk:[]gnv$libcurl.exe 'new_gnu'[usr.lib]gnv$libcurl.exe/prot=w:re
|
||||
$ endif
|
||||
$!
|
||||
$ if remove_files .eq. 0
|
||||
$ then
|
||||
$ set file/enter='new_gnu'[bin]curl. 'new_gnu'[usr.bin]gnv$curl.exe
|
||||
$ else
|
||||
$ file = "''new_gnu'[bin]curl."
|
||||
$ if f$search(file) .nes. "" then set file/remove 'file';*
|
||||
$ endif
|
||||
$!
|
||||
$!
|
||||
$ if remove_files .eq. 0
|
||||
$ then
|
||||
$ copy [--.include.curl]curl.h 'new_gnu'[usr.include.curl]curl.h
|
||||
$ copy [--.include.curl]system.h -
|
||||
'new_gnu'[usr.include.curl]system.h
|
||||
$ copy [--.include.curl]curlver.h -
|
||||
'new_gnu'[usr.include.curl]curlver.h
|
||||
$ copy [--.include.curl]easy.h -
|
||||
'new_gnu'[usr.include.curl]easy.h
|
||||
$ copy [--.include.curl]mprintf.h -
|
||||
'new_gnu'[usr.include.curl]mprintf.h
|
||||
$ copy [--.include.curl]multi.h -
|
||||
'new_gnu'[usr.include.curl]multi.h
|
||||
$ copy [--.include.curl]stdcheaders.h -
|
||||
'new_gnu'[usr.include.curl]stdcheaders.h
|
||||
$ copy [--.include.curl]typecheck-gcc.h -
|
||||
'new_gnu'[usr.include.curl]typecheck-gcc.h
|
||||
$ copy [--]libcurl.pc 'new_gnu'[usr.lib.pkgconfig]libcurl.pc
|
||||
$!
|
||||
$ copy [--.docs]curl-config.1 'new_gnu'[usr.share.man.man1]curl-config.1
|
||||
$ copy [--.docs]curl.1 'new_gnu'[usr.share.man.man1]curl.1
|
||||
$!
|
||||
$ copy [--.docs.libcurl]*.3 -
|
||||
'new_gnu'[usr.share.man.man3]*.3
|
||||
$!
|
||||
$ else
|
||||
$ file = "''new_gnu'[usr.bin]curl-config."
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$ file = "''new_gnu'[usr.bin]gnv$curl.exe"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$ file = "''new_gnu'[usr.lib]gnv$libcurl.exe"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$ file = "''new_gnu'[usr.include.curl]*.h"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$ file = "''new_gnu'[usr.share.man.man1]curl-config.1"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$ file = "''new_gnu'[usr.share.man.man1]curl.1"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$ file = "''new_gnu'[usr.share.man.man3]curl*.3"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$ file = "''new_gnu'[usr.share.man.man3]libcurl*.3"
|
||||
$ if f$search(file) .nes. "" then delete 'file';*
|
||||
$ endif
|
||||
$!
|
30
third_party/curl/packages/vms/vms_eco_level.h
vendored
Normal file
30
third_party/curl/packages/vms/vms_eco_level.h
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
/* File: vms_eco_level.h
|
||||
*
|
||||
* Copyright (C) John Malmberg
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*
|
||||
* SPDX-License-Identifier: ISC
|
||||
*
|
||||
*/
|
||||
|
||||
/* This file should be incremented for each ECO that is kit */
|
||||
/* for a specific curl x.y-z release. */
|
||||
/* When any part of x.y-z is incremented, the ECO should be set back to 0 */
|
||||
|
||||
#ifndef _VMS_ECO_LEVEL_H
|
||||
#define _VMS_ECO_LEVEL_H
|
||||
|
||||
#define VMS_ECO_LEVEL "0"
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user