Diff
Not logged in

Differences From Artifact [c16bb4baaf]:

To Artifact [63920e2496]:


637
638
639
640
641
642
643
644
645
646
647





648
649
650
651
652
653
654




655
656
657
658
659

660
661
662
663
664
665
666
637
638
639
640
641
642
643




644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672







-
-
-
-
+
+
+
+
+







+
+
+
+





+







      error "unsupported language"
    }
  }

  #
  # NOTE: This procedure verifies the platform specified by the caller.  The
  #       platform argument must be an empty string -OR- one of the literal
  #       strings "win32-arm", "win32-x86", "win64-arm64", "win64-ia64", or
  #       "win64-x64".  An empty string means that the associated entity does
  #       not require a specific platform.  Upon failure, a script error will
  #       be raised.  The return value is undefined.
  #       strings "neutral", "win32-arm", "win32-x86", "win64-arm64",
  #       "win64-ia64", or "win64-x64".  An empty string means that the
  #       associated entity does not require a specific platform.  Upon
  #       failure, a script error will be raised.  The return value is
  #       undefined.
  #
  proc verifyPlatform { platform varName } {
    switch -exact -- $platform {
      "" {
        #
        # NOTE: This platform name is supported; however, the name needs
        #       to be normalized to "neutral".
        #
        # TODO: In the future, the empty string may mean "automatically
        #       detect" the necessary platform instead of always being
        #       mapped to "neutral".
        #
        if {[string length $varName] > 0} then {
          upvar 1 $varName newPlatform; set newPlatform neutral
        }
      }
      neutral -
      win32-arm -
      win32-x86 -
      win64-arm64 -
      win64-ia64 -
      win64-x64 {
        #
        # NOTE: This platform name is supported verbatim, do nothing.
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882








883
884
885
886
887
888
889
874
875
876
877
878
879
880








881
882
883
884
885
886
887
888
889
890
891
892
893
894
895







-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+







  #
  # NOTE: This procedure checks if there is a higher version available of the
  #       specified package on the package file server.  The language argument
  #       must be one of the literal strings "eagle", "tcl", or "client".  The
  #       version argument must be one of the literal strings "8.4", "8.5", or
  #       "8.6" when the language is "tcl" -OR- the literal string "1.0" when
  #       the language is either "eagle" or "client".  The platform argument
  #       must be an empty string -OR- one of the literal strings "win32-arm",
  #       "win32-x86", "win64-arm64", "win64-ia64", or "win64-x64".  An empty
  #       string means that the associated package does not require a specific
  #       platform.  The packageName argument is a directory name relative to
  #       the language and version-specific directory on the package file
  #       server and may be an empty string.  The usePgp argument should be
  #       non-zero when an OpenPGP signature file needs to be downloaded and
  #       verified for the downloaded file.
  #       must be an empty string -OR- one of the literal strings "neutral",
  #       "win32-arm", "win32-x86", "win64-arm64", "win64-ia64", or
  #       "win64-x64".  An empty string means that the associated package
  #       does not require a specific platform.  The packageName argument is
  #       a directory name relative to the language and version-specific
  #       directory on the package file server and may be an empty string.
  #       The usePgp argument should be non-zero when an OpenPGP signature
  #       file needs to be downloaded and verified for the downloaded file.
  #
  # <public>
  proc checkForHigherVersion { language version platform packageName usePgp } {
    variable clientDirectory
    variable persistentRootDirectory
    variable temporaryRootDirectory

937
938
939
940
941
942
943
944

945
946
947
948
949
950
951
943
944
945
946
947
948
949

950
951
952
953
954
955
956
957







-
+







  #       downloaded, this procedure assumes the corresponding data file was
  #       already downloaded (i.e. since OpenPGP needs both to perform the
  #       signature checks).  The language argument must be one of the
  #       literal strings "eagle", "tcl", or "client".  The version argument
  #       must be one of the literal strings "8.4", "8.5", or "8.6" when the
  #       language is "tcl" -OR- the literal string "1.0" when the language
  #       is either "eagle" or "client".  The platform argument must be an
  #       empty string -OR- one of the literal strings "win32-arm",
  #       empty string -OR- one of the literal strings "neutral", "win32-arm",
  #       "win32-x86", "win64-arm64", "win64-ia64", or "win64-x64".  An empty
  #       string means that the associated package does not require a specific
  #       platform.  The fileName argument is a file name relative to the
  #       language and version-specific directory on the package file server.
  #       The localFileName argument is the file name where the downloaded
  #       file should be written.  The usePgp argument should be non-zero when
  #       an OpenPGP signature file needs to be downloaded and verified for
990
991
992
993
994
995
996
997
998
999
1000




1001
1002
1003
1004
1005
1006
1007
996
997
998
999
1000
1001
1002




1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013







-
-
-
-
+
+
+
+







  # NOTE: This procedure attempts to download a list of files, optionally
  #       persistening them for subsequent uses by the target language.
  #       The language argument must be one of the literal strings "eagle",
  #       "tcl", or "client".  The version argument must be one of the
  #       literal strings "8.4", "8.5", or "8.6" when the language is "tcl"
  #       -OR- the literal string "1.0" when the language is either "eagle"
  #       or "client".  The platform argument must be an empty string -OR-
  #       one of the literal strings "win32-arm", "win32-x86", "win64-arm64",
  #       "win64-ia64", or "win64-x64".  An empty string means that the
  #       associated package does not require a specific platform.  The
  #       fileNames argument must be a well-formed list of file names to
  #       one of the literal strings "neutral", "win32-arm", "win32-x86",
  #       "win64-arm64", "win64-ia64", or "win64-x64".  An empty string means
  #       that the associated package does not require a specific platform.
  #       The fileNames argument must be a well-formed list of file names to
  #       download, each one relative to the language and version-specific
  #       directory on the package file server.  The options argument must
  #       be a dictionary of name/value pairs.  The -persistent option should
  #       be non-zero if the downloaded files should be saved to permanent
  #       storage for subsequent use.  The -usePgp option should be non-zero
  #       when an OpenPGP signature file needs to be downloaded and verified
  #       for each downloaded file.  The -useAutoPath option should be