Annotation of embedaddon/curl/packages/vms/make_pcsi_curl_kit_name.com, revision 1.1

1.1     ! misho       1: $! File: MAKE_PCSI_CURL_KIT_NAME.COM
        !             2: $!
        !             3: $! $Id$
        !             4: $!
        !             5: $! Calculates the PCSI kit name for use in building an installation kit.
        !             6: $! PCSI is HP's PolyCenter Software Installation Utility.
        !             7: $!
        !             8: $! The results are stored in as logical names so that other procedures
        !             9: $! can use them.
        !            10: $!
        !            11: $! Copyright 2009 - 2020, John Malmberg
        !            12: $!
        !            13: $! Permission to use, copy, modify, and/or distribute this software for any
        !            14: $! purpose with or without fee is hereby granted, provided that the above
        !            15: $! copyright notice and this permission notice appear in all copies.
        !            16: $!
        !            17: $! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
        !            18: $! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
        !            19: $! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
        !            20: $! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
        !            21: $! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
        !            22: $! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
        !            23: $! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
        !            24: $!
        !            25: $! 11-Jun-2009 J. Malmberg
        !            26: $!
        !            27: $!========================================================================
        !            28: $!
        !            29: $! Save default
        !            30: $ default_dir = f$environment("DEFAULT")
        !            31: $!
        !            32: $! Move to the base directories
        !            33: $ set def [--]
        !            34: $!
        !            35: $! Put things back on error.
        !            36: $ on warning then goto all_exit
        !            37: $!
        !            38: $! The producer is the name or common abbreviation for the entity that is
        !            39: $! making the kit.  It must be set as a logical name before running this
        !            40: $! procedure.
        !            41: $!
        !            42: $! HP documents the producer as the legal owner of the software, but for
        !            43: $! open source work, it should document who is creating the package for
        !            44: $! distribution.
        !            45: $!
        !            46: $ producer = f$trnlnm("GNV_PCSI_PRODUCER")
        !            47: $ if producer .eqs. ""
        !            48: $ then
        !            49: $   write sys$output "The logical name GNV_PCSI_PRODUCER needs to be defined."
        !            50: $   write sys$output "This should be set to the common abbreviation or name of"
        !            51: $   write sys$output "the entity creating this kit.  If you are an individual"
        !            52: $   write sys$output "then use your initials."
        !            53: $   goto all_exit
        !            54: $ endif
        !            55: $ producer_full_name = f$trnlnm("GNV_PCSI_PRODUCER_FULL_NAME")
        !            56: $ if producer_full_name .eqs. ""
        !            57: $ then
        !            58: $   write sys$output "The logical name GNV_PCSI_PRODUCER_FULL_NAME needs to"
        !            59: $   write sys$output "be defined.  This should be set to the full name of"
        !            60: $   write sys$output "the entity creating this kit.  If you are an individual"
        !            61: $   write sys$output "then use your name."
        !            62: $   write sys$output "EX: DEFINE GNV_PCSI_PRODUCER_FULL_NAME ""First M. Last"""
        !            63: $   goto all_exit
        !            64: $ endif
        !            65: $!
        !            66: $ write sys$output "*****"
        !            67: $ write sys$output "***** Producer = ''producer'"
        !            68: $ write sys$output "*****"
        !            69: $!
        !            70: $!
        !            71: $! Base is one of 'VMS', 'AXPVMS', 'I64VMS', 'VAXVMS' and indicates what
        !            72: $! binaries are in the kit.  A kit with just 'VMS' can be installed on all
        !            73: $! architectures.
        !            74: $!
        !            75: $ base = "VMS"
        !            76: $ arch_type = f$getsyi("ARCH_NAME")
        !            77: $ code = f$extract(0, 1, arch_type)
        !            78: $ if (code .eqs. "I") then base = "I64VMS"
        !            79: $ if (code .eqs. "V") then base = "VAXVMS"
        !            80: $ if (code .eqs. "A") then base = "AXPVMS"
        !            81: $!
        !            82: $!
        !            83: $ product = "curl"
        !            84: $!
        !            85: $!
        !            86: $! We need to get the version from curlver_h.  It will have a line like
        !            87: $! #define LIBCURL_VERSION "7.31.0"
        !            88: $!   or
        !            89: $! #define LIBCURL_VERSION "7.32.0-20130731".
        !            90: $!
        !            91: $! The dash indicates that this is a daily pre-release.
        !            92: $!
        !            93: $!
        !            94: $ open/read/error=version_loop_end vhf [.include.curl]curlver.h
        !            95: $ version_loop:
        !            96: $   read vhf line_in
        !            97: $   if line_in .eqs. "" then goto version_loop
        !            98: $   if f$locate("#define LIBCURL_VERSION ", line_in) .ne. 0
        !            99: $   then
        !           100: $       goto version_loop
        !           101: $   endif
        !           102: $   raw_version = f$element(2," ", line_in) - """" - """"
        !           103: $ version_loop_end:
        !           104: $ close vhf
        !           105: $!
        !           106: $!
        !           107: $ eco_level = ""
        !           108: $ if f$search("''default_dir'vms_eco_level.h") .nes. ""
        !           109: $ then
        !           110: $   open/read ef 'default_dir'vms_eco_level.h
        !           111: $ecolevel_loop:
        !           112: $       read/end=ecolevel_loop_end ef line_in
        !           113: $       prefix = f$element(0, " ", line_in)
        !           114: $       if prefix .nes. "#define" then goto ecolevel_loop
        !           115: $       key = f$element(1, " ", line_in)
        !           116: $       value = f$element(2, " ", line_in) - """" - """"
        !           117: $       if key .eqs. "VMS_ECO_LEVEL"
        !           118: $       then
        !           119: $           eco_level = "''value'"
        !           120: $           if eco_level .eqs. "0"
        !           121: $           then
        !           122: $               eco_level = ""
        !           123: $           else
        !           124: $               eco_level = "E" + eco_level
        !           125: $           endif
        !           126: $           goto ecolevel_loop_end
        !           127: $       endif
        !           128: $       goto ecolevel_loop
        !           129: $ecolevel_loop_end:
        !           130: $   close ef
        !           131: $ endif
        !           132: $!
        !           133: $!
        !           134: $! This translates to V0732-0 or D0732-0
        !           135: $! We encode the snapshot date into the version as an ECO since a daily
        !           136: $! can never have an ECO.
        !           137: $!
        !           138: $! version_type = 'V' for a production release, and 'D' for a build from a
        !           139: $! daiy snapshot of the curl source.
        !           140: $ majorver = f$element(0, ".", raw_version)
        !           141: $ minorver = f$element(1, ".", raw_version)
        !           142: $ raw_update = f$element(2, ".", raw_version)
        !           143: $ update = f$element(0, "-", raw_update)
        !           144: $ if update .eqs. "0" then update = ""
        !           145: $ daily_tag = f$element(1, "-", raw_update)
        !           146: $ vtype = "V"
        !           147: $ patch = ""
        !           148: $ if daily_tag .nes. "-"
        !           149: $ then
        !           150: $   vtype = "D"
        !           151: $   daily_tag_len = f$length(daily_tag)
        !           152: $   daily_tag = f$extract(4, daily_tag_len - 4, daily_tag)
        !           153: $   patch = vtype + daily_tag
        !           154: $   product = product + "_d"
        !           155: $ else
        !           156: $   daily_tag = ""
        !           157: $   if eco_level .nes. "" then patch = eco_level
        !           158: $ endif
        !           159: $!
        !           160: $!
        !           161: $ version_fao = "!2ZB!2ZB"
        !           162: $ mmversion = f$fao(version_fao, 'majorver', 'minorver')
        !           163: $ version = vtype + "''mmversion'"
        !           164: $ if update .nes. "" .or. patch .nes. ""
        !           165: $ then
        !           166: $!  The presence of a patch implies an update
        !           167: $   if update .eqs. "" .and. patch .nes. "" then update = "0"
        !           168: $   version = version + "-" + update + patch
        !           169: $   fversion = version
        !           170: $ else
        !           171: $   fversion = version
        !           172: $   version = version + "-"
        !           173: $ endif
        !           174: $!
        !           175: $! Kit type 1 is complete kit, the only type that this procedure will make.
        !           176: $ kittype = 1
        !           177: $!
        !           178: $! Write out a logical name for the resulting base kit name.
        !           179: $ name = "''producer'-''base'-''product'-''version'-''kittype'"
        !           180: $ define GNV_PCSI_KITNAME "''name'"
        !           181: $ fname = "''product'-''fversion'"
        !           182: $ define GNV_PCSI_FILENAME_BASE "''fname'"
        !           183: $ write sys$output "*****"
        !           184: $ write sys$output "***** GNV_PCSI_KITNAME = ''name'."
        !           185: $ write sys$output "***** GNV_PCSI_FILENAME_BASE = ''fname'."
        !           186: $ write sys$output "*****"
        !           187: $!
        !           188: $all_exit:
        !           189: $ set def 'default_dir'
        !           190: $ exit '$status'

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>