curl/packages/vms
Daniel Stenberg 265b14d6b3
metalink: remove
Warning: this will make existing curl command lines that use metalink to
stop working.

Reasons for removal:

1. We've found several security problems and issues involving the
   metalink support in curl. The issues are not detailed here. When
   working on those, it become apparent to the team that several of the
   problems are due to the system design, metalink library API and what
   the metalink RFC says. They are very hard to fix on the curl side
   only.

2. The metalink usage with curl was only very briefly documented and was
   not following the "normal" curl usage pattern in several ways, making
   it surprising and non-intuitive which could lead to further security
   issues.

3. The metalink library was last updated 6 years ago and wasn't so
   active the years before that either. An unmaintained library means
   there's a security problem waiting to happen. This is probably reason
   enough.

4. Metalink requires an XML parsing library, which is complex code (even
   the smaller alternatives) and to this day often gets security
   updates.

5. Metalink is not a widely used curl feature. In the 2020 curl user
   survey, only 1.4% of the responders said that they'd are using it. In
   2021 that number was 1.2%. Searching the web also show very few
   traces of it being used, even with other tools.

6. The torrent format and associated technology clearly won for
   downloading large files from multiple sources in parallel.

Cloes #7176
2021-06-07 08:14:25 +02:00
..
Makefile.am curl.se: new home 2020-11-04 23:59:47 +01:00
backup_gnv_curl_src.com copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
build_curl-config_script.com VMS: Updates for 0740-0D1220 2014-12-21 16:55:28 +01:00
build_gnv_curl.com copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
build_gnv_curl_pcsi_desc.com copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
build_gnv_curl_pcsi_text.com copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
build_gnv_curl_release_notes.com copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
build_libcurl_pc.com copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
build_vms.com all: fix codespell errors 2020-05-25 19:44:04 +00:00
clean_gnv_curl.com copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
compare_curl_source.com copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
config_h.com configure: remove use of RETSIGTYPE 2021-04-07 16:01:05 +02:00
curl_crtl_init.c curl.se: new home 2020-11-04 23:59:47 +01:00
curl_gnv_build_steps.txt curl.se: new home 2020-11-04 23:59:47 +01:00
curl_release_note_start.txt Building_vms_pcsi_kit 2013-08-07 12:16:08 +02:00
curl_startup.com copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
curlmsg.h curl.se: new home 2020-11-04 23:59:47 +01:00
curlmsg.msg curl.se: new home 2020-11-04 23:59:47 +01:00
curlmsg.sdl errors: new alias CURLE_WEIRD_SERVER_REPLY (8) 2016-09-07 21:24:27 -04:00
curlmsg_vms.h curl.se: new home 2020-11-04 23:59:47 +01:00
generate_config_vms_h_curl.com define: re-add CURL_DISABLE_NTLM and corresponding ifdefs 2021-06-02 08:55:00 +02:00
generate_vax_transfer.com copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
gnv_conftest.c_first copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
gnv_curl_configure.sh copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
gnv_libcurl_symbols.opt copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
gnv_link_curl.com metalink: remove 2021-06-07 08:14:25 +02:00
macro32_exactcase.patch Add in the files needed to build libcurl shared images on VMS. 2013-08-01 13:51:52 +02:00
make_gnv_curl_install.sh copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
make_pcsi_curl_kit_name.com copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
pcsi_gnv_curl_file_list.txt copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
pcsi_product_gnv_curl.com copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
readme misc: assorted typo fixes 2020-12-26 23:54:25 +01:00
report_openssl_version.c Add in the files needed to build libcurl shared images on VMS. 2013-08-01 13:51:52 +02:00
setup_gnv_curl_build.com copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
stage_curl_install.com copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
vms_eco_level.h copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00

readme

                             _   _ ____  _
                         ___| | | |  _ \| |
                        / __| | | | |_) | |
                       ( (__| |_| |  _ <| |___
                        \___|\___/|_| \_\_____|
                             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.