Overview
Comment: | Initial work on the package uploader client. Add procedures to permit programmatically signing package files. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
9f66ed055c20006933fc14990ac20dfb |
User & Date: | mistachkin on 2016-12-17 05:07:29 |
Other Links: | manifest | tags |
Context
2016-12-17
| ||
05:31 | Add stub file for the package uploader tool. check-in: 6240d4658d user: mistachkin tags: trunk | |
05:07 | Initial work on the package uploader client. Add procedures to permit programmatically signing package files. check-in: 9f66ed055c user: mistachkin tags: trunk | |
2016-11-15
| ||
05:31 | Initial work on supporting packages that have multiple historical versions that reside in the same directory. check-in: 6dad700159 user: mistachkin tags: trunk | |
Changes
Modified client/1.0/neutral/pkgr.eagle from [e66cb55376] to [46ce6d2906].
︙ | ︙ | |||
105 106 107 108 109 110 111 112 113 114 115 116 117 118 | proc $procName $procArgs [appendArgs $procPreBody $procBody] return [uplevel 1 [list $procName] $args] } } # # NOTE: This procedure returns a formatted, possibly version-specific, # package name, for use in logging. The package argument is the # name of the package. The version argument is the version of the # package. # proc formatPackageName { package version } { | > > > > > > > > > > > > > | 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | proc $procName $procArgs [appendArgs $procPreBody $procBody] return [uplevel 1 [list $procName] $args] } } # # NOTE: This procedure returns a string argument value, which may contain # spaces, for use with the [exec] command. The value argument is # the string value to format as an [exec] argument. # proc formatExecArgument { value } { if {[isEagle]} then { return [appendArgs \" $value \"] } else { return $value } } # # NOTE: This procedure returns a formatted, possibly version-specific, # package name, for use in logging. The package argument is the # name of the package. The version argument is the version of the # package. # proc formatPackageName { package version } { |
︙ | ︙ | |||
364 365 366 367 368 369 370 | # file to verify. # # <public> proc verifyOpenPgpSignature { fileName } { variable openPgpVerifyCommand if {[isEagle]} then { | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 | # file to verify. # # <public> proc verifyOpenPgpSignature { fileName } { variable openPgpVerifyCommand if {[isEagle]} then { set fileName [formatExecArgument $fileName] if {[catch { eval exec -success Success [subst $openPgpVerifyCommand] }] == 0} then { return true } } else { if {[catch { eval exec [subst $openPgpVerifyCommand] 2>@1 }] == 0} then { return true } } return false } # # NOTE: This procedure returns the name of the file containing the OpenPGP # passphrase. This procedure is only used when creating an OpenPGP # signature. There are no arguments. # proc getOpenPgpPassphraseFile {} { global env if {[info exists env(GPG_PASSPHRASE_FILE)]} then { set fileName [file normalize $env(GPG_PASSPHRASE_FILE)] if {[file exists $fileName]} then { return $fileName } else { error "cannot sign with OpenPGP: passphrase file does not exist" } } else { error "cannot sign with OpenPGP: passphrase file is not configured" } } # # NOTE: This procedure attempts to create an OpenPGP signature for the # specified (named) file. Non-zero is only returned if the OpenPGP # signature is created successfully. A script error should not be # raised by this procedure. The fileName argument must be the fully # qualified path and file name of the file to be signed. # # <public> proc createOpenPgpSignature { fileName } { global env variable openPgpSignCommand if {[isEagle]} then { set fileName [formatExecArgument $fileName] if {[catch { eval exec -success Success [subst $openPgpSignCommand] }] == 0} then { return true } } else { if {[catch { eval exec [subst $openPgpSignCommand] 2>@1 }] == 0} then { return true } } return false } # # NOTE: This procedure attempts to import the OpenPGP keys contained in # the specified (named) file. Non-zero is only returned if the |
︙ | ︙ | |||
402 403 404 405 406 407 408 | variable openPgpImportPattern if {[string length $varName] > 0} then { upvar 1 $varName result } if {[isEagle]} then { | | | 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 | variable openPgpImportPattern if {[string length $varName] > 0} then { upvar 1 $varName result } if {[isEagle]} then { set fileName [formatExecArgument $fileName] if {[catch { eval exec -nocarriagereturns -stdout output -stderr error \ [subst $openPgpImportCommand] } result] == 0} then { set result [appendArgs $output $error] } else { |
︙ | ︙ | |||
1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 | # to the implementation of OpenPGP in use. # variable openPgpVerifyCommand; # DEFAULT: gpg2 --verify {${fileName}} if {![info exists openPgpVerifyCommand]} then { set openPgpVerifyCommand {gpg2 --verify {${fileName}}} } # # NOTE: Verify that the package script matches the current language # when called from the [package unknown] handler? # variable strictUnknownLanguage; # DEFAULT: true | > > > > > > > > > > > > > > > > > > | 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 | # to the implementation of OpenPGP in use. # variable openPgpVerifyCommand; # DEFAULT: gpg2 --verify {${fileName}} if {![info exists openPgpVerifyCommand]} then { set openPgpVerifyCommand {gpg2 --verify {${fileName}}} } # # NOTE: The command to use when creating OpenPGP signatures for the # downloaded package scripts. This must be configured according # to the implementation of OpenPGP in use. # variable openPgpSignCommand; # DEFAULT: gpg2 --detach-sign ... if {![info exists openPgpSignCommand]} then { set openPgpSignCommand "" append openPgpSignCommand {gpg2 --detach-sign --armor} append openPgpSignCommand \ { --passphrase-file [formatExecArgument [getOpenPgpPassphraseFile]]} append openPgpSignCommand { --batch --yes {${fileName}}} } # # NOTE: Verify that the package script matches the current language # when called from the [package unknown] handler? # variable strictUnknownLanguage; # DEFAULT: true |
︙ | ︙ |
Modified client/1.0/neutral/pkgr.eagle.asc from [8833d23a74] to [4f9aea824a].
1 2 3 4 | -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Eagle Package Repository | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Eagle Package Repository iQIcBAABCAAGBQJYVMeqAAoJEFAslq9JXcLZ7TMP/i1uqLXgToUaI4sFV8hoxPWQ buaSI3nfNLJvv8jVJAfe7VolYJw9v0FHpeDTcVToVUDlcGy8W561stkgYn96f4tZ C7jLGhqtv5IpESjXDm/1bf8QoJrLShx74W68/o1ae4uhlpPYxZg5vcSYFNS09h+r BGNNza0rZS/4elml92cbsfc/h3Qn2A9chu34eiF0TC4zhCknrmU4LKD3yhlqpJWT cDIGyKUecW+mSXJGltmmJL+IgO+tNwA72q91sJ3ZIsaEFdYMENZkwva9l7LxoK3j tqJqknv6a8H1V9PKN9c+qUROq0c5+biwhgldfg1JTLD5ah1YcrZNB9idUen/ftf+ QTQnx3nYPLl7fnMiM6S6svWZjSdZ98Fnpu4Jr1F3Im4DSp6wQcILYruGah9ac49Z XB/yFpiit7ZhoTH1IVNYYQMdqbf/Wb6WBO5q4CxA000C6ANrk2Cm7Xh5wFlTafg3 VsEzRNhOLfu8dO2CaOzTIfRo4QhwDJl9yDauei4sPo0J2FmbPTyMBnBwz/X14Gcv st5sFAIsryfSx2c3rDpnj8aFHcQLi0DuB8QCR0p4aSKVb2lenmZfcA85PZYD662v 2x/41sP//rajbEz3YjJlnoK19acDwJSU6uFuvLEqklnd7TDFHl1YtnVVD6wvfSxV F67DBCIaQLgfEMK45lzv =waFs -----END PGP SIGNATURE----- |
Modified client/1.0/neutral/pkgr.eagle.harpy from [33fe6beb55] to [c814762109].
︙ | ︙ | |||
17 18 19 20 21 22 23 | THE ASSOCIATED SOFTWARE MAY NOT WORK PROPERLY IF THIS FILE IS ALTERED. --> <Certificate xmlns="https://eagle.to/2011/harpy" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Protocol>None</Protocol> <Vendor>Mistachkin Systems</Vendor> | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | THE ASSOCIATED SOFTWARE MAY NOT WORK PROPERLY IF THIS FILE IS ALTERED. --> <Certificate xmlns="https://eagle.to/2011/harpy" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Protocol>None</Protocol> <Vendor>Mistachkin Systems</Vendor> <Id>b26eb0c0-d25c-485f-9228-064fdd1f781a</Id> <HashAlgorithm>SHA512</HashAlgorithm> <EntityType>Script</EntityType> <TimeStamp>2016-12-17T05:04:57.1298828Z</TimeStamp> <Duration>-1.00:00:00</Duration> <Key>0x9559f6017247e3e2</Key> <Signature> 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 </Signature> </Certificate> |
Modified client/1.0/neutral/pkgr.eagle.harpy.asc from [342a1a6138] to [e6c0f2e243].
1 2 3 4 | -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Eagle Package Repository | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Eagle Package Repository iQIcBAABCAAGBQJYVMetAAoJEFAslq9JXcLZE/8QAJY8LtO8YUPPhTY+RPAPw7vZ R5W/eCOJ1Qy185xjLVYeb6V0ULxEAgY7iNw4mAkF7dZl1oQ56Xhao4L2sH4+nsMx q/BU0Y/Bk0StpHpRvw10bWl/iVo4W2qK07gXepgL9zpI5pl/lJerSJA3LHd6RD8T Au/2dw6d/N4ozkc3BTZf4PVZCKfLzVdQ1hEbpDTVlWd0fDS9sEywdML/OKgMzvbG YfJrTwjF8sf3urJDbBolFxV430mdbIbLPyvkUCCiOjC3oJi0766B2Xsz+95fY16y fMa8T96R2atRPCOolDN5jdIvCkP3VRKlts6OoNZ7nojiS0SsDsREgt5cEFWieXYg JFf0Ln5wqjAWxRLl/MlZw2qoN4VQKD9OyS/m/lncNQ4udP4/AIeuQIIeJ0e/pjuQ 7jiYm9ZCyBcFT7ncU1gZjp9zQar4hWY1oF79RfiwAhno8Rz1CwAFNGKaJ7nenx+7 /orx8qcDMFZnPh0fsLQJ2f+Z7TTFmLDuYvA8tDHZRWF4RO//+HYec2KZYIay1ZHI 6RiaNzwjNKI2RF9yJUS+6tGhhu1ck2MR5IXuQ9QFLXqke15qwkpMdKUTxu8N2K/L FToN9rn9WfC6O1TeUGZkYr7q9hgZ7hBCn0iiLikrgafxuSVQ5eQCRyLD+04vn3nX cXMvYolWIL6QiREGHpsW =zSis -----END PGP SIGNATURE----- |