Skip to content

Instantly share code, notes, and snippets.

@antimon2
Last active September 7, 2021 12:10
Show Gist options
  • Save antimon2/f07e0a2d182ba061d3960ff550ca6b71 to your computer and use it in GitHub Desktop.
Save antimon2/f07e0a2d182ba061d3960ff550ca6b71 to your computer and use it in GitHub Desktop.
JSON3.ParseAndVerifyVersionsJson.jl
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:28.500Z",
"end_time": "2021-09-07T20:00:29.810000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "versioninfo()",
"execution_count": 1,
"outputs": [
{
"output_type": "stream",
"text": "Julia Version 1.6.2\nCommit 1b93d53fc4 (2021-07-14 15:36 UTC)\nPlatform Info:\n OS: Linux (x86_64-pc-linux-gnu)\n CPU: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz\n WORD_SIZE: 64\n LIBM: libopenlibm\n LLVM: libLLVM-11.0.1 (ORCJIT, skylake)\n",
"name": "stdout"
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:30.662Z",
"end_time": "2021-09-07T20:00:30.543000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "# ]activate .",
"execution_count": 2,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:31.036Z",
"end_time": "2021-09-07T20:00:30.945000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "# ]add JSON3\nusing JSON3",
"execution_count": 3,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "read from https://julialang-s3.julialang.org/bin/versions.json"
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:32.182Z",
"end_time": "2021-09-07T20:00:32.177000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "using Downloads: Downloads",
"execution_count": 4,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:34.240Z",
"end_time": "2021-09-07T20:00:37.125000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "versions_json_src = read(Downloads.download(\"https://julialang-s3.julialang.org/bin/versions.json\"), String);",
"execution_count": 5,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.580Z",
"end_time": "2021-09-07T20:00:48.726000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "versions_json_simple = JSON3.read(versions_json_src)",
"execution_count": 6,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 6,
"data": {
"text/plain": "JSON3.Object{Base.CodeUnits{UInt8, String}, Vector{UInt64}} with 100 entries:\n Symbol(\"0.6.0\") => {…\n Symbol(\"1.0.3\") => {…\n Symbol(\"1.5.4\") => {…\n Symbol(\"1.5.0-beta1\") => {…\n Symbol(\"1.2.0\") => {…\n Symbol(\"0.7.0-rc1\") => {…\n Symbol(\"1.3.1\") => {…\n Symbol(\"0.7.0\") => {…\n Symbol(\"0.3.5\") => {…\n Symbol(\"1.4.1\") => {…\n Symbol(\"1.6.2\") => {…\n Symbol(\"0.4.5\") => {…\n Symbol(\"0.2.1\") => {…\n Symbol(\"0.6.0-rc3\") => {…\n Symbol(\"0.5.0-rc2\") => {…\n Symbol(\"0.5.2\") => {…\n Symbol(\"1.2.0-rc2\") => {…\n Symbol(\"0.7.0-rc2\") => {…\n Symbol(\"0.3.6\") => {…\n Symbol(\"1.0.5\") => {…\n Symbol(\"0.4.6\") => {…\n Symbol(\"1.3.0-rc2\") => {…\n Symbol(\"1.6.0\") => {…\n Symbol(\"0.5.0\") => {…\n Symbol(\"1.1.0-rc1\") => {…\n ⋮ => ⋮"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.582Z",
"end_time": "2021-09-07T20:00:51.986000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "versions_json_dict = JSON3.read(versions_json_src, Dict{VersionNumber, Any})\n# versions_json_dict = JSON3.read(versions_json_src, Dict{VersionNumber, JSON3.Object})",
"execution_count": 7,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 7,
"data": {
"text/plain": "Dict{VersionNumber, Any} with 100 entries:\n v\"0.6.0\" => Dict{String, Any}(\"files\"=>Any[Dict{String, Any}(\"triplet\"=…\n v\"1.0.3\" => Dict{String, Any}(\"files\"=>Any[Dict{String, Any}(\"triplet\"=…\n v\"1.5.4\" => Dict{String, Any}(\"files\"=>Any[Dict{String, Any}(\"triplet\"=…\n v\"1.5.0-beta1\" => Dict{String, Any}(\"files\"=>Any[Dict{String, Any}(\"triplet\"=…\n v\"1.2.0\" => Dict{String, Any}(\"files\"=>Any[Dict{String, Any}(\"triplet\"=…\n v\"0.7.0-rc1\" => Dict{String, Any}(\"files\"=>Any[Dict{String, Any}(\"triplet\"=…\n v\"1.3.1\" => Dict{String, Any}(\"files\"=>Any[Dict{String, Any}(\"triplet\"=…\n v\"0.7.0\" => Dict{String, Any}(\"files\"=>Any[Dict{String, Any}(\"triplet\"=…\n v\"1.4.1\" => Dict{String, Any}(\"files\"=>Any[Dict{String, Any}(\"triplet\"=…\n v\"0.3.5\" => Dict{String, Any}(\"files\"=>Any[Dict{String, Any}(\"triplet\"=…\n v\"1.6.2\" => Dict{String, Any}(\"files\"=>Any[Dict{String, Any}(\"triplet\"=…\n v\"0.4.5\" => Dict{String, Any}(\"files\"=>Any[Dict{String, Any}(\"triplet\"=…\n v\"0.2.1\" => Dict{String, Any}(\"files\"=>Any[Dict{String, Any}(\"triplet\"=…\n v\"0.6.0-rc3\" => Dict{String, Any}(\"files\"=>Any[Dict{String, Any}(\"triplet\"=…\n v\"0.5.0-rc2\" => Dict{String, Any}(\"files\"=>Any[Dict{String, Any}(\"triplet\"=…\n v\"0.5.2\" => Dict{String, Any}(\"files\"=>Any[Dict{String, Any}(\"triplet\"=…\n v\"1.2.0-rc2\" => Dict{String, Any}(\"files\"=>Any[Dict{String, Any}(\"triplet\"=…\n v\"0.7.0-rc2\" => Dict{String, Any}(\"files\"=>Any[Dict{String, Any}(\"triplet\"=…\n v\"0.3.6\" => Dict{String, Any}(\"files\"=>Any[Dict{String, Any}(\"triplet\"=…\n v\"1.0.5\" => Dict{String, Any}(\"files\"=>Any[Dict{String, Any}(\"triplet\"=…\n v\"0.4.6\" => Dict{String, Any}(\"files\"=>Any[Dict{String, Any}(\"triplet\"=…\n v\"1.3.0-rc2\" => Dict{String, Any}(\"files\"=>Any[Dict{String, Any}(\"triplet\"=…\n v\"1.6.0\" => Dict{String, Any}(\"files\"=>Any[Dict{String, Any}(\"triplet\"=…\n v\"0.5.0\" => Dict{String, Any}(\"files\"=>Any[Dict{String, Any}(\"triplet\"=…\n v\"1.1.0-rc1\" => Dict{String, Any}(\"files\"=>Any[Dict{String, Any}(\"triplet\"=…\n ⋮ => ⋮"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.584Z",
"end_time": "2021-09-07T20:00:52.704000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "version_170b4_json = versions_json_simple[Symbol(\"1.7.0-beta4\")]",
"execution_count": 8,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 8,
"data": {
"text/plain": "JSON3.Object{Base.CodeUnits{UInt8, String}, SubArray{UInt64, 1, Vector{UInt64}, Tuple{UnitRange{Int64}}, true}} with 2 entries:\n :files => JSON3.Object[{…\n :stable => false"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.585Z",
"end_time": "2021-09-07T20:00:53.519000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "JSON3.generate_type(version_170b4_json)",
"execution_count": 9,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 9,
"data": {
"text/plain": "NamedTuple{(:files, :stable), Tuple{Vector{NamedTuple{(:triplet, :kind, :arch, :asc, :sha256, :size, :version, :os, :url), Tuple{String, String, String, Union{Nothing, String}, String, Int64, String, String, String}}}, Bool}}"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.587Z",
"end_time": "2021-09-07T20:00:54.957000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "unique([JSON3.generate_type(_json) for _json in values(versions_json_simple)])",
"execution_count": 10,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 10,
"data": {
"text/plain": "2-element Vector{DataType}:\n NamedTuple{(:files, :stable), Tuple{Vector{NamedTuple{(:triplet, :kind, :arch, :asc, :sha256, :size, :version, :os, :url), Tuple{String, String, String, Union{Nothing, String}, String, Int64, String, String, String}}}, Bool}}\n NamedTuple{(:files, :stable), Tuple{Vector{NamedTuple{(:triplet, :kind, :arch, :sha256, :size, :version, :os, :url), Tuple{String, String, String, String, Int64, String, String, String}}}, Bool}}"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.588Z",
"end_time": "2021-09-07T20:00:55.771000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "kindslist = unique(f.kind for v in values(versions_json_simple) for f in v.files)",
"execution_count": 11,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 11,
"data": {
"text/plain": "2-element Vector{String}:\n \"archive\"\n \"installer\""
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.589Z",
"end_time": "2021-09-07T20:00:55.909000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "archslist = unique(f.arch for v in values(versions_json_simple) for f in v.files)",
"execution_count": 12,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 12,
"data": {
"text/plain": "5-element Vector{String}:\n \"x86_64\"\n \"i686\"\n \"aarch64\"\n \"armv7l\"\n \"powerpc64le\""
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.590Z",
"end_time": "2021-09-07T20:00:56.037000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "oslist = unique(f.os for v in values(versions_json_simple) for f in v.files)",
"execution_count": 13,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 13,
"data": {
"text/plain": "4-element Vector{String}:\n \"linux\"\n \"mac\"\n \"winnt\"\n \"freebsd\""
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.592Z",
"end_time": "2021-09-07T20:00:56.038000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "using StructTypes",
"execution_count": 14,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.593Z",
"end_time": "2021-09-07T20:00:56.070000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "abstract type Kind end\n\nKind(v) = Kind(Val(Symbol(v)), v)\nfor kind in kindslist\n @eval struct $(Symbol(uppercasefirst(kind))) <: Kind end\n @eval Kind(::Val{$(QuoteNode(Symbol(kind)))}, @nospecialize(_)) = $(Symbol(uppercasefirst(kind)))()\n @eval Base.string(::$(Symbol(uppercasefirst(kind)))) = $(kind)\nend\n\nstruct KindOther{S} <: Kind end\nKind(::Val{S}, @nospecialize(v)) where {S} = KindOther{S}()\nBase.string(::KindOther{S}) where {S} = string(S)",
"execution_count": 15,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.595Z",
"end_time": "2021-09-07T20:00:56.685000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "subtypes(Kind)",
"execution_count": 16,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 16,
"data": {
"text/plain": "3-element Vector{Any}:\n Archive\n Installer\n KindOther"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.596Z",
"end_time": "2021-09-07T20:00:57.607000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "[Kind(kind) for kind in [kindslist; \"other\"]]",
"execution_count": 17,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 17,
"data": {
"text/plain": "3-element Vector{Kind}:\n Archive()\n Installer()\n KindOther{:other}()"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.596Z",
"end_time": "2021-09-07T20:00:57.617000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "abstract type Arch end\n\nArch(v) = Arch(Val(Symbol(v)), v)\nfor arch in archslist\n @eval struct $(Symbol(uppercasefirst(arch))) <: Arch end\n @eval Arch(::Val{$(QuoteNode(Symbol(arch)))}, @nospecialize(_)) = $(Symbol(uppercasefirst(arch)))()\n @eval Base.string(::$(Symbol(uppercasefirst(arch)))) = $(arch)\nend\n\nstruct ArchOther{S} <: Arch end\nArch(::Val{S}, @nospecialize(_)) where {S} = ArchOther{S}()\nBase.string(::ArchOther{S}) where {S} = string(S)",
"execution_count": 18,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.597Z",
"end_time": "2021-09-07T20:00:58.512000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "[Arch(arch) for arch in [archslist; \"unknown\"]]",
"execution_count": 19,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 19,
"data": {
"text/plain": "6-element Vector{Arch}:\n X86_64()\n I686()\n Aarch64()\n Armv7l()\n Powerpc64le()\n ArchOther{:unknown}()"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.598Z",
"end_time": "2021-09-07T20:00:58.521000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "abstract type Os end\n\nOs(v) = Os(Val(Symbol(v)), v)\nfor os in oslist\n @eval struct $(Symbol(uppercasefirst(os))) <: Os end\n @eval Os(::Val{$(QuoteNode(Symbol(os)))}, @nospecialize(_)) = $(Symbol(uppercasefirst(os)))()\n @eval Base.string(::$(Symbol(uppercasefirst(os)))) = $(os)\nend\n\nstruct OsOther{S} <: Os end\nOs(::Val{S}, @nospecialize(_)) where {S} = OsOther{S}()\nBase.string(::OsOther{S}) where {S} = string(S)",
"execution_count": 20,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.599Z",
"end_time": "2021-09-07T20:00:59.362000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "[Os(os) for os in [oslist; \"sunos\"]]",
"execution_count": 21,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 21,
"data": {
"text/plain": "5-element Vector{Os}:\n Linux()\n Mac()\n Winnt()\n Freebsd()\n OsOther{:sunos}()"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.600Z",
"end_time": "2021-09-07T20:00:59.411000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "[string(Os(os)) for os in [oslist; \"sunos\"]]",
"execution_count": 22,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 22,
"data": {
"text/plain": "5-element Vector{String}:\n \"linux\"\n \"mac\"\n \"winnt\"\n \"freebsd\"\n \"sunos\""
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.601Z",
"end_time": "2021-09-07T20:00:59.412000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "StructTypes.StructType(::Type{<:Kind}) = StructTypes.StringType()",
"execution_count": 23,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.602Z",
"end_time": "2021-09-07T20:00:59.413000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "StructTypes.StructType(::Type{<:Arch}) = StructTypes.StringType()",
"execution_count": 24,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.603Z",
"end_time": "2021-09-07T20:00:59.414000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "StructTypes.StructType(::Type{<:Os}) = StructTypes.StringType()",
"execution_count": 25,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.604Z",
"end_time": "2021-09-07T20:00:59.415000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "abstract type FileInfo end",
"execution_count": 26,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.605Z",
"end_time": "2021-09-07T20:00:59.417000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "struct FileInfoSimple <: FileInfo\n triplet::String\n kind::Kind\n arch::Arch\n sha256::String\n size::Int64\n version::VersionNumber\n os::Os\n url::String\nend",
"execution_count": 27,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.605Z",
"end_time": "2021-09-07T20:00:59.419000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "struct FileInfoFull <: FileInfo\n triplet::String\n kind::Kind\n arch::Arch\n asc::String\n sha256::String\n size::Int64\n version::VersionNumber\n os::Os\n url::String\nend",
"execution_count": 28,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.606Z",
"end_time": "2021-09-07T20:00:59.419000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "StructTypes.StructType(::Type{<:FileInfo}) = StructTypes.CustomStruct()",
"execution_count": 29,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.607Z",
"end_time": "2021-09-07T20:00:59.420000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "StructTypes.StructType(::Type{<:Union{FileInfoSimple, FileInfoFull}}) = StructTypes.Struct()",
"execution_count": 30,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.608Z",
"end_time": "2021-09-07T20:00:59.613000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "sub_json_src = \"\"\"\n{\n \"triplet\": \"x86_64-apple-darwin14\",\n \"kind\": \"archive\",\n \"arch\": \"x86_64\",\n \"sha256\": \"1ff7bd41f396ba3f34dc17c26b78d11adeadfafdea537f7ad17020ef812a39a0\",\n \"size\": 82685247,\n \"version\": \"1.0.5\",\n \"os\": \"mac\",\n \"url\": \"https://julialang-s3.julialang.org/bin/mac/x64/1.0/julia-1.0.5-mac64.dmg\"\n}\n\"\"\"",
"execution_count": 31,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 31,
"data": {
"text/plain": "\"{\\n \\\"triplet\\\": \\\"x86_64-apple-darwin14\\\",\\n \\\"kind\\\": \\\"archive\\\",\\n \\\"arch\\\": \\\"x86_64\\\",\\n \\\"sha256\\\": \\\"1ff7bd41f396ba3f34dc17c26b78d11adeadfafdea537f7ad17020ef812a39a0\\\",\\n \\\"size\\\": 82685247,\\n \\\"version\\\": \\\"1.0.5\\\",\\n \\\"os\\\": \\\"mac\\\",\\n \\\"url\\\": \\\"https://julialang-s3.julialang.org/bin/mac/x64/1.0/julia-1.0.5-mac64.dmg\\\"\\n}\\n\""
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.609Z",
"end_time": "2021-09-07T20:01:00.819000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "JSON3.read(sub_json_src, FileInfoSimple)",
"execution_count": 32,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 32,
"data": {
"text/plain": "FileInfoSimple(\"x86_64-apple-darwin14\", Archive(), X86_64(), \"1ff7bd41f396ba3f34dc17c26b78d11adeadfafdea537f7ad17020ef812a39a0\", 82685247, v\"1.0.5\", Mac(), \"https://julialang-s3.julialang.org/bin/mac/x64/1.0/julia-1.0.5-mac64.dmg\")"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.611Z",
"end_time": "2021-09-07T20:01:00.820000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "StructTypes.lowertype(::Type{<:FileInfo}) = NamedTuple",
"execution_count": 33,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.612Z",
"end_time": "2021-09-07T20:01:00.823000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "FileInfoSimple(; triplet, kind, arch, sha256, size, version, os, url) = \n FileInfoSimple(triplet, Kind(kind), Arch(arch), sha256, Int64(size), VersionNumber(version), Os(os), url)",
"execution_count": 34,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 34,
"data": {
"text/plain": "FileInfoSimple"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.613Z",
"end_time": "2021-09-07T20:01:00.827000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "FileInfoFull(; triplet, kind, arch, asc, sha256, size, version, os, url) = \n FileInfoFull(triplet, Kind(kind), Arch(arch), asc, sha256, Int64(size), VersionNumber(version), Os(os), url)",
"execution_count": 35,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 35,
"data": {
"text/plain": "FileInfoFull"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.614Z",
"end_time": "2021-09-07T20:01:00.828000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "StructTypes.construct(::Type{FileInfo}, obj) = haskey(obj, :asc) ? FileInfoFull(;obj...) : FileInfoSimple(;obj...)",
"execution_count": 36,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.615Z",
"end_time": "2021-09-07T20:01:01.784000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "JSON3.read(sub_json_src, FileInfo)",
"execution_count": 37,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 37,
"data": {
"text/plain": "FileInfoSimple(\"x86_64-apple-darwin14\", Archive(), X86_64(), \"1ff7bd41f396ba3f34dc17c26b78d11adeadfafdea537f7ad17020ef812a39a0\", 82685247, v\"1.0.5\", Mac(), \"https://julialang-s3.julialang.org/bin/mac/x64/1.0/julia-1.0.5-mac64.dmg\")"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.616Z",
"end_time": "2021-09-07T20:01:01.785000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "struct VersionInfo\n files::Vector{FileInfo}\n stable::Bool\nend",
"execution_count": 38,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.617Z",
"end_time": "2021-09-07T20:01:01.786000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "StructTypes.StructType(::Type{VersionInfo}) = StructTypes.Struct()",
"execution_count": 39,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:00:44.618Z",
"end_time": "2021-09-07T20:01:05.165000+09:00"
},
"scrolled": false,
"trusted": true
},
"cell_type": "code",
"source": "versions_json_dict_f = JSON3.read(versions_json_src, Dict{VersionNumber, VersionInfo})",
"execution_count": 40,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 40,
"data": {
"text/plain": "Dict{VersionNumber, VersionInfo} with 100 entries:\n v\"0.6.0\" => VersionInfo(FileInfo[FileInfoFull(\"x86_64-linux-gnu\", Archi…\n v\"1.0.3\" => VersionInfo(FileInfo[FileInfoFull(\"x86_64-linux-gnu\", Archi…\n v\"1.5.4\" => VersionInfo(FileInfo[FileInfoFull(\"x86_64-linux-gnu\", Archi…\n v\"1.5.0-beta1\" => VersionInfo(FileInfo[FileInfoFull(\"x86_64-linux-gnu\", Archi…\n v\"1.2.0\" => VersionInfo(FileInfo[FileInfoFull(\"x86_64-linux-gnu\", Archi…\n v\"0.7.0-rc1\" => VersionInfo(FileInfo[FileInfoFull(\"x86_64-linux-gnu\", Archi…\n v\"1.3.1\" => VersionInfo(FileInfo[FileInfoFull(\"x86_64-linux-gnu\", Archi…\n v\"0.7.0\" => VersionInfo(FileInfo[FileInfoFull(\"x86_64-linux-gnu\", Archi…\n v\"1.4.1\" => VersionInfo(FileInfo[FileInfoFull(\"x86_64-linux-gnu\", Archi…\n v\"0.3.5\" => VersionInfo(FileInfo[FileInfoSimple(\"x86_64-linux-gnu\", Arc…\n v\"1.6.2\" => VersionInfo(FileInfo[FileInfoFull(\"x86_64-linux-gnu\", Archi…\n v\"0.4.5\" => VersionInfo(FileInfo[FileInfoFull(\"x86_64-linux-gnu\", Archi…\n v\"0.2.1\" => VersionInfo(FileInfo[FileInfoSimple(\"x86_64-apple-darwin14\"…\n v\"0.6.0-rc3\" => VersionInfo(FileInfo[FileInfoFull(\"x86_64-linux-gnu\", Archi…\n v\"0.5.0-rc2\" => VersionInfo(FileInfo[FileInfoFull(\"x86_64-linux-gnu\", Archi…\n v\"0.5.2\" => VersionInfo(FileInfo[FileInfoFull(\"x86_64-linux-gnu\", Archi…\n v\"1.2.0-rc2\" => VersionInfo(FileInfo[FileInfoFull(\"x86_64-linux-gnu\", Archi…\n v\"0.7.0-rc2\" => VersionInfo(FileInfo[FileInfoFull(\"x86_64-linux-gnu\", Archi…\n v\"0.3.6\" => VersionInfo(FileInfo[FileInfoSimple(\"x86_64-linux-gnu\", Arc…\n v\"1.0.5\" => VersionInfo(FileInfo[FileInfoFull(\"x86_64-linux-gnu\", Archi…\n v\"0.4.6\" => VersionInfo(FileInfo[FileInfoFull(\"x86_64-linux-gnu\", Archi…\n v\"1.3.0-rc2\" => VersionInfo(FileInfo[FileInfoFull(\"x86_64-linux-gnu\", Archi…\n v\"1.6.0\" => VersionInfo(FileInfo[FileInfoFull(\"x86_64-linux-gnu\", Archi…\n v\"0.5.0\" => VersionInfo(FileInfo[FileInfoFull(\"x86_64-linux-gnu\", Archi…\n v\"1.1.0-rc1\" => VersionInfo(FileInfo[FileInfoFull(\"x86_64-linux-gnu\", Archi…\n ⋮ => ⋮"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:01:43.339Z",
"end_time": "2021-09-07T20:01:43.478000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "vinfo_v170b4 = versions_json_dict_f[v\"1.7.0-beta4\"]",
"execution_count": 42,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 42,
"data": {
"text/plain": "VersionInfo(FileInfo[FileInfoFull(\"x86_64-linux-gnu\", Archive(), X86_64(), \"-----BEGIN PGP SIGNATURE-----\\n\\niQJLBAABCgA1FiEENnPfUp2QSUd/drN1ZuPH3APW5JUFAmEpuS8XHGJ1aWxkYm90\\nQGp1bGlhbGFuZy5vcmcACgkQZuPH3APW5JWJ9w/+IiX83xPmcypwRLQ+CksIgeaM\\njq0QY5YLtRuOm6355RtplFalx0WKO17KOxJaSEKEQkZeJNcI0BE1FWIub3mtXVCE\\njWhJyQAcJd/WsAOw17+hwFQV2+6Aqy1eY4mQ6vwRwn85BlsbgtzEip6FEJOQ9fRd\\nxphA/GkT2SYlu687GpKnzzR76x6z1yGH/cbIrLKBYPrlZ0yDvcQ/1P17VeEsfwZ3\\npbOyTwo7qGTcSjaEniSjdSM3C2MsTIIPdhcs3XGaZl0jfmKarKrFlkJn7pSAW034\\nkhJx1r+Nmdcn1/JJXKdIVHlCH8vMooVEE6C7B22ujdX021GhTzVHzif6EpCfxdxn\\nyb8pK5OKVwQj8lX5YApSZGKBZIaB9TYUuqLW+OSN/sSunIc+FllYXJJTnFSD9KIc\\nhHYS5hJfv7tAuD/uesEbWkH2oNd2jBu0M1AcR627LqGhYsCxrPkGklOC6RXZU57n\\ncX7egZDHkl2iPhGNqSyabDLa5f5IKt4j1eYTv3Uwc4tuAamMHEcBUwfurkKqj46T\\nf2+1lvgAyrTCZ4kbGvW0jKE1s/1xMX1hDKwknn+ZAMaXBrSzQTx6UTdYT4UvnHcs\\nsLgIFvlBo3rFjOolBwwaISn0C8z3hSUSUBVIn+Yu5WtcCyLR+zsGYmieooe8QKD1\\n8KPNUowwJ6+dVBiOESk=\\n=Y4+g\\n-----END PGP SIGNATURE-----\\n\", \"4ae6cbd9378d63bdf75c74c8785068a18926638de4913d32cfab8ef0409f1e6e\", 121012380, v\"1.7.0-beta4\", Linux(), \"https://julialang-s3.julialang.org/bin/linux/x64/1.7/julia-1.7.0-beta4-linux-x86_64.tar.gz\"), FileInfoFull(\"i686-linux-gnu\", Archive(), I686(), \"-----BEGIN PGP SIGNATURE-----\\n\\niQJLBAABCgA1FiEENnPfUp2QSUd/drN1ZuPH3APW5JUFAmEptjIXHGJ1aWxkYm90\\nQGp1bGlhbGFuZy5vcmcACgkQZuPH3APW5JUWVA/7B9/zeN1B1/TsfW1/ZdW5iTNm\\n+9fyKAHgN5gbWyNAJekRpqiio1vvK4H3DAFuz6bONHH6kiuXvfWmuQUBh+aywvP6\\nn/CgOpcxxSqKfzpx5r9etqk3EnOuxPi6WMt0G0Mi04oGAPv82ecvFJDy70fbhG1t\\nKa/1knDwt7pB//BGmq4a0VYutrPy/d+kY7a9r9/4LdR3N2HdmGM2ttvxYqUoACrz\\nd0NNZMOWZJl2B5j3UGQvq74PdxTlGov/NKU4h4YjgPxZjBgdwIsqFiaLCGoRd+Wb\\nz66OSNKhmBxk1VoAVIBBCuDdRoL4xgX99X1mzqYvcZOYqga10vFjrTK9oAprzoqc\\nhpwKYsWCHKSU5s+YDaN1umbw1v4VHB2WzktsOILECUOOKansDXI8CmXfVIdzkkCk\\noCLHth4P2r3rpxgASmYtiryrvkG7+DPjSqk7WujdPYcW90MdgjhR+heNhbjuYcjH\\nolNq7B5YGd/q4flVsIqWAiLdL/irgt2tFc/IsM9wC7Y47vQmDX4+DzUJ0ScManCH\\nJenjjU88iE963ICJB18oiUdNWr1YtlChO7iElJz4wX0RlV6PtRgPbfQheYGdpRQK\\nQCdYrLCGdFNoGz5iMPXepfURfLVqK6SGAgFue+ZAypQN3qHC+Gf3kUBv1YEHS7W2\\ncUqhw3Yo3gizEXsRJi4=\\n=QtIH\\n-----END PGP SIGNATURE-----\\n\", \"62ff97c5df5972ed1647d7a58307829081b5f8840f44fe94f691c9302f9ae624\", 116479313, v\"1.7.0-beta4\", Linux(), \"https://julialang-s3.julialang.org/bin/linux/x86/1.7/julia-1.7.0-beta4-linux-i686.tar.gz\"), FileInfoFull(\"aarch64-linux-gnu\", Archive(), Aarch64(), \"-----BEGIN PGP SIGNATURE-----\\n\\niQJLBAABCgA1FiEENnPfUp2QSUd/drN1ZuPH3APW5JUFAmEptvQXHGJ1aWxkYm90\\nQGp1bGlhbGFuZy5vcmcACgkQZuPH3APW5JUkphAAzPTlX1Iry9o47Hh5W+TGpTwG\\nomODJVtXzmsfL5fMp5EMU//TKTfPlvKRl73vMFbbLKu8pZIO0aibxOXDCwO1DkgM\\n4guJ08EppCtIEUt3tit0thJcwQyTxnvn6SlAuL2iDZvj0BUTCTdqRdgJCS16eqTp\\ndXIRBDPi57aZiStulZpfPcFRvqrOSSQ5/X79f1d9Z1OSHG3JU5Agw/3IVbkrmvlK\\nk80vtulzXQVmuCcu666a2EPWMKuMr4tS3X9vWjew5F6sl1DACDSTKPGTfKxnWi3r\\nHh43GmB8FE6aAUoMa5uWQZOlnsdHf+ZfZKYVSzuIxh7/mIZZyC04BB1R5siNiZZr\\nrWSP9d+oeZEXPiXcOx2xF4BM7PutKt9Rv43MCwjcMEn9gtymH4esAcdwDQhJ72Uo\\n3XMdL2MSMXJ8e4Pa6eFXQfgb+Z7UZW/R2TzcTWGF4cPhn1/tnniO6qOncGRJ5dFQ\\nsn23oBwve5LqMMn/wirO18O+jVVPnIp8d0bl+MlV2ymZKOSXbSSab+YMuL1ndFB3\\n8VMxDQWPxVb1khdT0ruv2n1Ffeokh14ByIZQpOOnkggpToAFhr/Zy7l4FVSwrqd2\\nCzNkqRc7bNfbAFLYqIkEhPsPJ4j068TEm+bKyakOBAIbruI/0duNEM+5AAN+fzCW\\nvpqO1AhxvjP32ewWp+Y=\\n=5OSa\\n-----END PGP SIGNATURE-----\\n\", \"d57efd789e33da133ef0e3e52bd90f34046c6b86ecec669d592b69e5d73d5bb5\", 113784395, v\"1.7.0-beta4\", Linux(), \"https://julialang-s3.julialang.org/bin/linux/aarch64/1.7/julia-1.7.0-beta4-linux-aarch64.tar.gz\"), FileInfoFull(\"armv7l-linux-gnueabihf\", Archive(), Armv7l(), \"-----BEGIN PGP SIGNATURE-----\\n\\niQJLBAABCgA1FiEENnPfUp2QSUd/drN1ZuPH3APW5JUFAmEk/AoXHGJ1aWxkYm90\\nQGp1bGlhbGFuZy5vcmcACgkQZuPH3APW5JUquhAAsHMP9x/9X+IHRgLt1D7UBWij\\nTB4QymUSBjJiBk2nszMRCzk/2iEF14l2Gyrdw6hDneFJZZ9fwOeEAjRm/s/YrJQW\\nmraMZlo/zKWLH8jK6Q71bJuAKdUBmA+VIW+ViOXedy3jx0xJpvcE9uVS6Byj0soj\\nooxat4BHW8ESZq/4raveK7cSwJKbrz9Zs0ZUt7VwJlZivJteQnPVIa5VUp2MfcYR\\nT26WcXHix8gRoh49LYA+Y0BvwbfqL91wnfHC8UpXM8xPl/90rnK6z1q6KGAh19Xu\\nEDTC6u4R//05Y3i1EQwpR2j3gZsgWLM+nQEk/h7uwjc4RPEACQyy5Gy5QUrRJO6a\\ndH9UB3Kks3y89jx0uZXH3v6G6/a6jE4ATV7cwiUsAuLzMgdRKQrURjJXYtpuO2/r\\nn73WArYWOGOfhgCjCROO5xvfkJVQ3n1I8YTYON7HdtUyuDeztAsVTolHWv0DxdQB\\njc/ktw3yIUjweeESzKYiPw8/LQ16yJaMJRq7S2oDvNShIs25BkddYtxz4uBNmkLn\\n1n9YBDDz4NK4VoHm3tdvplRw53HI0p1aVUNUltg6fgEJViRrhLnTFl6W1fy3YTuI\\n2T0+4g2t7+gB5mkzA4c3UkehGLU/AtoU2eSa3vbyN7vV499PUaZw3xAFzqKYbQaK\\n5rlbvlXbS8YtyQtDdh8=\\n=Z5lW\\n-----END PGP SIGNATURE-----\\n\", \"2d334d098a65eb704c57a24c773d27665353e35ae726ff7bd0807035f449223b\", 108122932, v\"1.7.0-beta4\", Linux(), \"https://julialang-s3.julialang.org/bin/linux/armv7l/1.7/julia-1.7.0-beta4-linux-armv7l.tar.gz\"), FileInfoFull(\"powerpc64le-linux-gnu\", Archive(), Powerpc64le(), \"-----BEGIN PGP SIGNATURE-----\\n\\niQJLBAABCgA1FiEENnPfUp2QSUd/drN1ZuPH3APW5JUFAmEpv+8XHGJ1aWxkYm90\\nQGp1bGlhbGFuZy5vcmcACgkQZuPH3APW5JUPMxAAtH7BJBPhnlmPqfBd79XmDE5i\\nQaubS11UvtyZqoyJV2gcrWCMgEelpC3VAGlLhwsI3ZEH3Fzd4oDSOdzdqwBzfdnS\\n9cBXQFc9vM5wwtDAmaBXpPH7pMGPDRIHMc39YLT/PPCaDiQNQIiXmveS9djqXq6I\\npEMk3ETFiou4+qpe8LZiVBJyEbN9EVUVmRfuLsa4foZy4tnpgNIfxF8+J1azSAva\\n37app+QY6cOB6XCemAe9dHf0MV+Hk8ZW7peAs1bVAkI9tkXhqD9Dz4WfbCSciC3N\\n+emAwEvJEbiw9bFXuyHeo97HKZN3YYzcKbeXELkRWp2bd0XSAS6HXTvtGAnj7S1k\\nfpADy9FVaaNA/g23ovw3HP4eZ1TmLDIqkKeTYz0oDBUE86qMC7/m/Ry9ktqbcsmy\\nwFqFFeW7ZWJIlmjjUmDVBOnatwTh80C7mF7WGeJJNDB03Engxe76VuR+mthK7GHA\\npXBPZ57tYoYmfCg0zQEosirw1haU2ae0ddP4rVy2USgw2oGsTPfhAWNQa1AcKZ8g\\nh/Bh9t48W9NT1iBEg3nzZYaypOkIhlYgj73fNZY1lp9jXkkJOSgal7cxE/4mg3T8\\nly4/aDhWBn9luKxTscnjnc53DVpp3bAFewL3e6SNVr7tZHifOqGZNaiH2zbO3sZl\\nEjq8pi5PgWtGHdnFC/0=\\n=n5MJ\\n-----END PGP SIGNATURE-----\\n\", \"d939660db67be971ce4871f0f4a44c30de63c787fd219b6dcc099eebfaee76d1\", 106288016, v\"1.7.0-beta4\", Linux(), \"https://julialang-s3.julialang.org/bin/linux/ppc64le/1.7/julia-1.7.0-beta4-linux-ppc64le.tar.gz\"), FileInfoFull(\"x86_64-linux-musl\", Archive(), X86_64(), \"-----BEGIN PGP SIGNATURE-----\\n\\niQJLBAABCgA1FiEENnPfUp2QSUd/drN1ZuPH3APW5JUFAmEtIJwXHGJ1aWxkYm90\\nQGp1bGlhbGFuZy5vcmcACgkQZuPH3APW5JUiZQ//Vj+bf3ADz4wuKkZM3rNsiQyF\\nLWkBvD8r+gYyPA3Pzb/yW3PK9UG/be4YmxmdXqaH9YIClArP/gEmYTWoVV9jplSB\\nJQrP+mttJGQKMq63XPAnH4R6ynyufCgsGakpBoG4xBaP3J1bQYcjoUMOo3eiUuZd\\nbmCjWsadRI4WErALokcxLkJSvdQbE3Eq9KZ/1inNAGche+W/q81c5I/AtedPIm2P\\n80SO59N/pDW90baP7dO1SySxof5OigU6Y8ivsDJAPS+JHvwUS4k/51XwhS33t1kj\\n5TParu1vAR9qPUXFCIBYSQ10qKkBaprpeCz7rl7zdn/Ju0MJ6IFtcYqqc9H+EinZ\\nJTyA6Tikj0s7EShBJGyOKW8B4HCf/NFde3MCscfwqVZiknarR4Ayw/z+faYXXQoA\\nj4rPKx2ebKgCizwN4VwjY4DDGaDOPmAZWZoKKIyWIl7fPLUjs3lIikmR6O2ta6M3\\nOwgPF7rI2MXtj8PMCW8Yfy59pBh6xc0RDR9C9GXNt7ZJJynai1TgX09vKrvz3ext\\nLz5XCNySByv4hCV9Paxpb/ibt56xgRAxKH4KXspKVJk5oRSmi0TTFlASPCBCPVg9\\nUb1isxHxOGoNDouKYd8mgxtRDMo8KYdHhqu+JfF9Nmn8BVgjikJ9GIio/zfiiEMs\\nT07I648VYe6HQcWWVZY=\\n=/SWc\\n-----END PGP SIGNATURE-----\\n\", \"143f6b80ea812693bb55df218a03fe05d4d9cc719a0d663a1026f96e0059409d\", 120075712, v\"1.7.0-beta4\", Linux(), \"https://julialang-s3.julialang.org/bin/musl/x64/1.7/julia-1.7.0-beta4-musl-x86_64.tar.gz\"), FileInfoSimple(\"x86_64-apple-darwin14\", Archive(), X86_64(), \"482a5cba9548f16fe6a522e2465210a1fd470d61227ddf0fe08469fff9eaaf74\", 101930226, v\"1.7.0-beta4\", Mac(), \"https://julialang-s3.julialang.org/bin/mac/x64/1.7/julia-1.7.0-beta4-mac64.dmg\"), FileInfoSimple(\"aarch64-apple-darwin14\", Archive(), Aarch64(), \"dbcb074eb049bfdba6bb6c6d31fac583306d2d251db19324494a5ca76fcc2f68\", 86329670, v\"1.7.0-beta4\", Mac(), \"https://julialang-s3.julialang.org/bin/mac/aarch64/1.7/julia-1.7.0-beta4-macaarch64.dmg\"), FileInfoSimple(\"x86_64-w64-mingw32\", Installer(), X86_64(), \"fb6dcebf9d40c4fa855670fd20f31ecd830282720396c71f98d8ab92d32a94ad\", 78407544, v\"1.7.0-beta4\", Winnt(), \"https://julialang-s3.julialang.org/bin/winnt/x64/1.7/julia-1.7.0-beta4-win64.exe\"), FileInfoSimple(\"i686-w64-mingw32\", Installer(), I686(), \"8cd6c5a77ae724fa2f189df65688758d5f673ec9b462365aca89eb5c5520061b\", 71415312, v\"1.7.0-beta4\", Winnt(), \"https://julialang-s3.julialang.org/bin/winnt/x86/1.7/julia-1.7.0-beta4-win32.exe\"), FileInfoSimple(\"x86_64-w64-mingw32\", Archive(), X86_64(), \"5f03dcfabd19d08768da42ff4cf8da2ad7fda19af23c2d850cb5789dc166cb16\", 131405231, v\"1.7.0-beta4\", Winnt(), \"https://julialang-s3.julialang.org/bin/winnt/x64/1.7/julia-1.7.0-beta4-win64.zip\"), FileInfoSimple(\"i686-w64-mingw32\", Archive(), I686(), \"cd31cf7c5b7aa508276f170b0caf7dbbab9ccb780f11089208e1900359a44574\", 119485011, v\"1.7.0-beta4\", Winnt(), \"https://julialang-s3.julialang.org/bin/winnt/x86/1.7/julia-1.7.0-beta4-win32.zip\"), FileInfoFull(\"x86_64-unknown-freebsd11.1\", Archive(), X86_64(), \"-----BEGIN PGP SIGNATURE-----\\n\\niQJLBAABCgA1FiEENnPfUp2QSUd/drN1ZuPH3APW5JUFAmEpzoYXHGJ1aWxkYm90\\nQGp1bGlhbGFuZy5vcmcACgkQZuPH3APW5JX4TRAAvSuBuEguOi14YaMFSx+FArf2\\nygkA7VZ880HnZzbDuMNjQIvTXWV/kYoZ48ccDi2ZnousaTU4ao6M3bqpFVgdsT9e\\nxvR07QBTQNtXZNp/FWRtHzgKKk/mU3JBOXj9+YdtWxuE+mX6TB3bqviTtkSRYAcv\\n92YA2OCW9qjZgCSZScDLDlmNjF0HTZ6gi09mfC8XZ1Rd2qW2gu48AIjNOHVAEa/6\\nx5Xrfw8YpMk+5V8ruvNs4QtYvNj0wJIykKSvhbLn8IAyplyFFBQPZlvBsgy515Lu\\n9xqPMNc/RmQ1llq55mQTuFU4Kj6CSzuh38T6i/fTW4vMrOANLmnc0lvJRm0JH5Y8\\n29dTwKdbo2mIwJr06RXWtQIk0oZuyWsZBVHzoLZsiDULzxwPER14Upf80log+BW2\\njSO324r6jmEBkY9tez4h9brzTOFrRteXioAnwhjB0s0AMj6XiSs+8k0NbQWU9Bgw\\nJDB1oShr4O+RsK04U+GxTR/TovqyH+u6NshKqIE570MlrOa4zJ6IqYBgRbkobauO\\nSNIucFRVLolROisE8sRejDDIGJw2MOkkFQghFpldKQR6rbTS0ko/x4fV/l2LL45f\\n8MZhDG8TzM9fNKY03HoDWSXeZ2q1ctRTHE1aBiN/BnQh/N9aZsHHKPvuXF4gHqCJ\\nyly9BYlsevxBMCTlG4U=\\n=381C\\n-----END PGP SIGNATURE-----\\n\", \"d0c28183584db404d97a777691ebdf98c3a662a41d5939fde047c20a49f10bf8\", 114495741, v\"1.7.0-beta4\", Freebsd(), \"https://julialang-s3.julialang.org/bin/freebsd/x64/1.7/julia-1.7.0-beta4-freebsd-x86_64.tar.gz\")], false)"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:05:18.883Z",
"end_time": "2021-09-07T20:05:19.332000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "fifulls = filter(fi->isa(fi, FileInfoFull), vinfo_v170b4.files)",
"execution_count": 43,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 43,
"data": {
"text/plain": "7-element Vector{FileInfo}:\n FileInfoFull(\"x86_64-linux-gnu\", Archive(), X86_64(), \"-----BEGIN PGP SIGNATURE-----\\n\\niQJLBAABCgA1FiEENnPfUp2QSUd/drN1ZuPH3APW5JUFAmEpuS8XHGJ1aWxkYm90\\nQGp1bGlhbGFuZy5vcmcACgkQZuPH3APW5JWJ9w/+IiX83xPmcypwRLQ+CksIgeaM\\njq0QY5YLtRuOm6355RtplFalx0WKO17KOxJaSEKEQkZeJNcI0BE1FWIub3mtXVCE\\njWhJyQAcJd/WsAOw17+hwFQV2+6Aqy1eY4mQ6vwRwn85BlsbgtzEip6FEJOQ9fRd\\nxphA/GkT2SYlu687GpKnzzR76x6z1yGH/cbIrLKBYPrlZ0yDvcQ/1P17VeEsfwZ3\\npbOyTwo7qGTcSjaEniSjdSM3C2MsTIIPdhcs3XGaZl0jfmKarKrFlkJn7pSAW034\\nkhJx1r+Nmdcn1/JJXKdIVHlCH8vMooVEE6C7B22ujdX021GhTzVHzif6EpCfxdxn\\nyb8pK5OKVwQj8lX5YApSZGKBZIaB9TYUuqLW+OSN/sSunIc+FllYXJJTnFSD9KIc\\nhHYS5hJfv7tAuD/uesEbWkH2oNd2jBu0M1AcR627LqGhYsCxrPkGklOC6RXZU57n\\ncX7egZDHkl2iPhGNqSyabDLa5f5IKt4j1eYTv3Uwc4tuAamMHEcBUwfurkKqj46T\\nf2+1lvgAyrTCZ4kbGvW0jKE1s/1xMX1hDKwknn+ZAMaXBrSzQTx6UTdYT4UvnHcs\\nsLgIFvlBo3rFjOolBwwaISn0C8z3hSUSUBVIn+Yu5WtcCyLR+zsGYmieooe8QKD1\\n8KPNUowwJ6+dVBiOESk=\\n=Y4+g\\n-----END PGP SIGNATURE-----\\n\", \"4ae6cbd9378d63bdf75c74c8785068a18926638de4913d32cfab8ef0409f1e6e\", 121012380, v\"1.7.0-beta4\", Linux(), \"https://julialang-s3.julialang.org/bin/linux/x64/1.7/julia-1.7.0-beta4-linux-x86_64.tar.gz\")\n FileInfoFull(\"i686-linux-gnu\", Archive(), I686(), \"-----BEGIN PGP SIGNATURE-----\\n\\niQJLBAABCgA1FiEENnPfUp2QSUd/drN1ZuPH3APW5JUFAmEptjIXHGJ1aWxkYm90\\nQGp1bGlhbGFuZy5vcmcACgkQZuPH3APW5JUWVA/7B9/zeN1B1/TsfW1/ZdW5iTNm\\n+9fyKAHgN5gbWyNAJekRpqiio1vvK4H3DAFuz6bONHH6kiuXvfWmuQUBh+aywvP6\\nn/CgOpcxxSqKfzpx5r9etqk3EnOuxPi6WMt0G0Mi04oGAPv82ecvFJDy70fbhG1t\\nKa/1knDwt7pB//BGmq4a0VYutrPy/d+kY7a9r9/4LdR3N2HdmGM2ttvxYqUoACrz\\nd0NNZMOWZJl2B5j3UGQvq74PdxTlGov/NKU4h4YjgPxZjBgdwIsqFiaLCGoRd+Wb\\nz66OSNKhmBxk1VoAVIBBCuDdRoL4xgX99X1mzqYvcZOYqga10vFjrTK9oAprzoqc\\nhpwKYsWCHKSU5s+YDaN1umbw1v4VHB2WzktsOILECUOOKansDXI8CmXfVIdzkkCk\\noCLHth4P2r3rpxgASmYtiryrvkG7+DPjSqk7WujdPYcW90MdgjhR+heNhbjuYcjH\\nolNq7B5YGd/q4flVsIqWAiLdL/irgt2tFc/IsM9wC7Y47vQmDX4+DzUJ0ScManCH\\nJenjjU88iE963ICJB18oiUdNWr1YtlChO7iElJz4wX0RlV6PtRgPbfQheYGdpRQK\\nQCdYrLCGdFNoGz5iMPXepfURfLVqK6SGAgFue+ZAypQN3qHC+Gf3kUBv1YEHS7W2\\ncUqhw3Yo3gizEXsRJi4=\\n=QtIH\\n-----END PGP SIGNATURE-----\\n\", \"62ff97c5df5972ed1647d7a58307829081b5f8840f44fe94f691c9302f9ae624\", 116479313, v\"1.7.0-beta4\", Linux(), \"https://julialang-s3.julialang.org/bin/linux/x86/1.7/julia-1.7.0-beta4-linux-i686.tar.gz\")\n FileInfoFull(\"aarch64-linux-gnu\", Archive(), Aarch64(), \"-----BEGIN PGP SIGNATURE-----\\n\\niQJLBAABCgA1FiEENnPfUp2QSUd/drN1ZuPH3APW5JUFAmEptvQXHGJ1aWxkYm90\\nQGp1bGlhbGFuZy5vcmcACgkQZuPH3APW5JUkphAAzPTlX1Iry9o47Hh5W+TGpTwG\\nomODJVtXzmsfL5fMp5EMU//TKTfPlvKRl73vMFbbLKu8pZIO0aibxOXDCwO1DkgM\\n4guJ08EppCtIEUt3tit0thJcwQyTxnvn6SlAuL2iDZvj0BUTCTdqRdgJCS16eqTp\\ndXIRBDPi57aZiStulZpfPcFRvqrOSSQ5/X79f1d9Z1OSHG3JU5Agw/3IVbkrmvlK\\nk80vtulzXQVmuCcu666a2EPWMKuMr4tS3X9vWjew5F6sl1DACDSTKPGTfKxnWi3r\\nHh43GmB8FE6aAUoMa5uWQZOlnsdHf+ZfZKYVSzuIxh7/mIZZyC04BB1R5siNiZZr\\nrWSP9d+oeZEXPiXcOx2xF4BM7PutKt9Rv43MCwjcMEn9gtymH4esAcdwDQhJ72Uo\\n3XMdL2MSMXJ8e4Pa6eFXQfgb+Z7UZW/R2TzcTWGF4cPhn1/tnniO6qOncGRJ5dFQ\\nsn23oBwve5LqMMn/wirO18O+jVVPnIp8d0bl+MlV2ymZKOSXbSSab+YMuL1ndFB3\\n8VMxDQWPxVb1khdT0ruv2n1Ffeokh14ByIZQpOOnkggpToAFhr/Zy7l4FVSwrqd2\\nCzNkqRc7bNfbAFLYqIkEhPsPJ4j068TEm+bKyakOBAIbruI/0duNEM+5AAN+fzCW\\nvpqO1AhxvjP32ewWp+Y=\\n=5OSa\\n-----END PGP SIGNATURE-----\\n\", \"d57efd789e33da133ef0e3e52bd90f34046c6b86ecec669d592b69e5d73d5bb5\", 113784395, v\"1.7.0-beta4\", Linux(), \"https://julialang-s3.julialang.org/bin/linux/aarch64/1.7/julia-1.7.0-beta4-linux-aarch64.tar.gz\")\n FileInfoFull(\"armv7l-linux-gnueabihf\", Archive(), Armv7l(), \"-----BEGIN PGP SIGNATURE-----\\n\\niQJLBAABCgA1FiEENnPfUp2QSUd/drN1ZuPH3APW5JUFAmEk/AoXHGJ1aWxkYm90\\nQGp1bGlhbGFuZy5vcmcACgkQZuPH3APW5JUquhAAsHMP9x/9X+IHRgLt1D7UBWij\\nTB4QymUSBjJiBk2nszMRCzk/2iEF14l2Gyrdw6hDneFJZZ9fwOeEAjRm/s/YrJQW\\nmraMZlo/zKWLH8jK6Q71bJuAKdUBmA+VIW+ViOXedy3jx0xJpvcE9uVS6Byj0soj\\nooxat4BHW8ESZq/4raveK7cSwJKbrz9Zs0ZUt7VwJlZivJteQnPVIa5VUp2MfcYR\\nT26WcXHix8gRoh49LYA+Y0BvwbfqL91wnfHC8UpXM8xPl/90rnK6z1q6KGAh19Xu\\nEDTC6u4R//05Y3i1EQwpR2j3gZsgWLM+nQEk/h7uwjc4RPEACQyy5Gy5QUrRJO6a\\ndH9UB3Kks3y89jx0uZXH3v6G6/a6jE4ATV7cwiUsAuLzMgdRKQrURjJXYtpuO2/r\\nn73WArYWOGOfhgCjCROO5xvfkJVQ3n1I8YTYON7HdtUyuDeztAsVTolHWv0DxdQB\\njc/ktw3yIUjweeESzKYiPw8/LQ16yJaMJRq7S2oDvNShIs25BkddYtxz4uBNmkLn\\n1n9YBDDz4NK4VoHm3tdvplRw53HI0p1aVUNUltg6fgEJViRrhLnTFl6W1fy3YTuI\\n2T0+4g2t7+gB5mkzA4c3UkehGLU/AtoU2eSa3vbyN7vV499PUaZw3xAFzqKYbQaK\\n5rlbvlXbS8YtyQtDdh8=\\n=Z5lW\\n-----END PGP SIGNATURE-----\\n\", \"2d334d098a65eb704c57a24c773d27665353e35ae726ff7bd0807035f449223b\", 108122932, v\"1.7.0-beta4\", Linux(), \"https://julialang-s3.julialang.org/bin/linux/armv7l/1.7/julia-1.7.0-beta4-linux-armv7l.tar.gz\")\n FileInfoFull(\"powerpc64le-linux-gnu\", Archive(), Powerpc64le(), \"-----BEGIN PGP SIGNATURE-----\\n\\niQJLBAABCgA1FiEENnPfUp2QSUd/drN1ZuPH3APW5JUFAmEpv+8XHGJ1aWxkYm90\\nQGp1bGlhbGFuZy5vcmcACgkQZuPH3APW5JUPMxAAtH7BJBPhnlmPqfBd79XmDE5i\\nQaubS11UvtyZqoyJV2gcrWCMgEelpC3VAGlLhwsI3ZEH3Fzd4oDSOdzdqwBzfdnS\\n9cBXQFc9vM5wwtDAmaBXpPH7pMGPDRIHMc39YLT/PPCaDiQNQIiXmveS9djqXq6I\\npEMk3ETFiou4+qpe8LZiVBJyEbN9EVUVmRfuLsa4foZy4tnpgNIfxF8+J1azSAva\\n37app+QY6cOB6XCemAe9dHf0MV+Hk8ZW7peAs1bVAkI9tkXhqD9Dz4WfbCSciC3N\\n+emAwEvJEbiw9bFXuyHeo97HKZN3YYzcKbeXELkRWp2bd0XSAS6HXTvtGAnj7S1k\\nfpADy9FVaaNA/g23ovw3HP4eZ1TmLDIqkKeTYz0oDBUE86qMC7/m/Ry9ktqbcsmy\\nwFqFFeW7ZWJIlmjjUmDVBOnatwTh80C7mF7WGeJJNDB03Engxe76VuR+mthK7GHA\\npXBPZ57tYoYmfCg0zQEosirw1haU2ae0ddP4rVy2USgw2oGsTPfhAWNQa1AcKZ8g\\nh/Bh9t48W9NT1iBEg3nzZYaypOkIhlYgj73fNZY1lp9jXkkJOSgal7cxE/4mg3T8\\nly4/aDhWBn9luKxTscnjnc53DVpp3bAFewL3e6SNVr7tZHifOqGZNaiH2zbO3sZl\\nEjq8pi5PgWtGHdnFC/0=\\n=n5MJ\\n-----END PGP SIGNATURE-----\\n\", \"d939660db67be971ce4871f0f4a44c30de63c787fd219b6dcc099eebfaee76d1\", 106288016, v\"1.7.0-beta4\", Linux(), \"https://julialang-s3.julialang.org/bin/linux/ppc64le/1.7/julia-1.7.0-beta4-linux-ppc64le.tar.gz\")\n FileInfoFull(\"x86_64-linux-musl\", Archive(), X86_64(), \"-----BEGIN PGP SIGNATURE-----\\n\\niQJLBAABCgA1FiEENnPfUp2QSUd/drN1ZuPH3APW5JUFAmEtIJwXHGJ1aWxkYm90\\nQGp1bGlhbGFuZy5vcmcACgkQZuPH3APW5JUiZQ//Vj+bf3ADz4wuKkZM3rNsiQyF\\nLWkBvD8r+gYyPA3Pzb/yW3PK9UG/be4YmxmdXqaH9YIClArP/gEmYTWoVV9jplSB\\nJQrP+mttJGQKMq63XPAnH4R6ynyufCgsGakpBoG4xBaP3J1bQYcjoUMOo3eiUuZd\\nbmCjWsadRI4WErALokcxLkJSvdQbE3Eq9KZ/1inNAGche+W/q81c5I/AtedPIm2P\\n80SO59N/pDW90baP7dO1SySxof5OigU6Y8ivsDJAPS+JHvwUS4k/51XwhS33t1kj\\n5TParu1vAR9qPUXFCIBYSQ10qKkBaprpeCz7rl7zdn/Ju0MJ6IFtcYqqc9H+EinZ\\nJTyA6Tikj0s7EShBJGyOKW8B4HCf/NFde3MCscfwqVZiknarR4Ayw/z+faYXXQoA\\nj4rPKx2ebKgCizwN4VwjY4DDGaDOPmAZWZoKKIyWIl7fPLUjs3lIikmR6O2ta6M3\\nOwgPF7rI2MXtj8PMCW8Yfy59pBh6xc0RDR9C9GXNt7ZJJynai1TgX09vKrvz3ext\\nLz5XCNySByv4hCV9Paxpb/ibt56xgRAxKH4KXspKVJk5oRSmi0TTFlASPCBCPVg9\\nUb1isxHxOGoNDouKYd8mgxtRDMo8KYdHhqu+JfF9Nmn8BVgjikJ9GIio/zfiiEMs\\nT07I648VYe6HQcWWVZY=\\n=/SWc\\n-----END PGP SIGNATURE-----\\n\", \"143f6b80ea812693bb55df218a03fe05d4d9cc719a0d663a1026f96e0059409d\", 120075712, v\"1.7.0-beta4\", Linux(), \"https://julialang-s3.julialang.org/bin/musl/x64/1.7/julia-1.7.0-beta4-musl-x86_64.tar.gz\")\n FileInfoFull(\"x86_64-unknown-freebsd11.1\", Archive(), X86_64(), \"-----BEGIN PGP SIGNATURE-----\\n\\niQJLBAABCgA1FiEENnPfUp2QSUd/drN1ZuPH3APW5JUFAmEpzoYXHGJ1aWxkYm90\\nQGp1bGlhbGFuZy5vcmcACgkQZuPH3APW5JX4TRAAvSuBuEguOi14YaMFSx+FArf2\\nygkA7VZ880HnZzbDuMNjQIvTXWV/kYoZ48ccDi2ZnousaTU4ao6M3bqpFVgdsT9e\\nxvR07QBTQNtXZNp/FWRtHzgKKk/mU3JBOXj9+YdtWxuE+mX6TB3bqviTtkSRYAcv\\n92YA2OCW9qjZgCSZScDLDlmNjF0HTZ6gi09mfC8XZ1Rd2qW2gu48AIjNOHVAEa/6\\nx5Xrfw8YpMk+5V8ruvNs4QtYvNj0wJIykKSvhbLn8IAyplyFFBQPZlvBsgy515Lu\\n9xqPMNc/RmQ1llq55mQTuFU4Kj6CSzuh38T6i/fTW4vMrOANLmnc0lvJRm0JH5Y8\\n29dTwKdbo2mIwJr06RXWtQIk0oZuyWsZBVHzoLZsiDULzxwPER14Upf80log+BW2\\njSO324r6jmEBkY9tez4h9brzTOFrRteXioAnwhjB0s0AMj6XiSs+8k0NbQWU9Bgw\\nJDB1oShr4O+RsK04U+GxTR/TovqyH+u6NshKqIE570MlrOa4zJ6IqYBgRbkobauO\\nSNIucFRVLolROisE8sRejDDIGJw2MOkkFQghFpldKQR6rbTS0ko/x4fV/l2LL45f\\n8MZhDG8TzM9fNKY03HoDWSXeZ2q1ctRTHE1aBiN/BnQh/N9aZsHHKPvuXF4gHqCJ\\nyly9BYlsevxBMCTlG4U=\\n=381C\\n-----END PGP SIGNATURE-----\\n\", \"d0c28183584db404d97a777691ebdf98c3a662a41d5939fde047c20a49f10bf8\", 114495741, v\"1.7.0-beta4\", Freebsd(), \"https://julialang-s3.julialang.org/bin/freebsd/x64/1.7/julia-1.7.0-beta4-freebsd-x86_64.tar.gz\")"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:06:43.883Z",
"end_time": "2021-09-07T20:06:44.028000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "fifull_linux_x64_glibc = fifulls[1]",
"execution_count": 44,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 44,
"data": {
"text/plain": "FileInfoFull(\"x86_64-linux-gnu\", Archive(), X86_64(), \"-----BEGIN PGP SIGNATURE-----\\n\\niQJLBAABCgA1FiEENnPfUp2QSUd/drN1ZuPH3APW5JUFAmEpuS8XHGJ1aWxkYm90\\nQGp1bGlhbGFuZy5vcmcACgkQZuPH3APW5JWJ9w/+IiX83xPmcypwRLQ+CksIgeaM\\njq0QY5YLtRuOm6355RtplFalx0WKO17KOxJaSEKEQkZeJNcI0BE1FWIub3mtXVCE\\njWhJyQAcJd/WsAOw17+hwFQV2+6Aqy1eY4mQ6vwRwn85BlsbgtzEip6FEJOQ9fRd\\nxphA/GkT2SYlu687GpKnzzR76x6z1yGH/cbIrLKBYPrlZ0yDvcQ/1P17VeEsfwZ3\\npbOyTwo7qGTcSjaEniSjdSM3C2MsTIIPdhcs3XGaZl0jfmKarKrFlkJn7pSAW034\\nkhJx1r+Nmdcn1/JJXKdIVHlCH8vMooVEE6C7B22ujdX021GhTzVHzif6EpCfxdxn\\nyb8pK5OKVwQj8lX5YApSZGKBZIaB9TYUuqLW+OSN/sSunIc+FllYXJJTnFSD9KIc\\nhHYS5hJfv7tAuD/uesEbWkH2oNd2jBu0M1AcR627LqGhYsCxrPkGklOC6RXZU57n\\ncX7egZDHkl2iPhGNqSyabDLa5f5IKt4j1eYTv3Uwc4tuAamMHEcBUwfurkKqj46T\\nf2+1lvgAyrTCZ4kbGvW0jKE1s/1xMX1hDKwknn+ZAMaXBrSzQTx6UTdYT4UvnHcs\\nsLgIFvlBo3rFjOolBwwaISn0C8z3hSUSUBVIn+Yu5WtcCyLR+zsGYmieooe8QKD1\\n8KPNUowwJ6+dVBiOESk=\\n=Y4+g\\n-----END PGP SIGNATURE-----\\n\", \"4ae6cbd9378d63bdf75c74c8785068a18926638de4913d32cfab8ef0409f1e6e\", 121012380, v\"1.7.0-beta4\", Linux(), \"https://julialang-s3.julialang.org/bin/linux/x64/1.7/julia-1.7.0-beta4-linux-x86_64.tar.gz\")"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:07:07.256Z",
"end_time": "2021-09-07T20:07:07.147000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "fifull_linux_x64_glibc.triplet",
"execution_count": 45,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 45,
"data": {
"text/plain": "\"x86_64-linux-gnu\""
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:08:49.910Z",
"end_time": "2021-09-07T20:09:07.420000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "contents = read(Downloads.download(fifull_linux_x64_glibc.url), String);\ncodeunits(contents)",
"execution_count": 46,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 46,
"data": {
"text/plain": "121012380-element Base.CodeUnits{UInt8, String}:\n 0x1f\n 0x8b\n 0x08\n 0x00\n 0x09\n 0xb9\n 0x29\n 0x61\n 0x00\n 0x03\n 0xec\n 0x3c\n 0x6b\n ⋮\n 0x23\n 0x7c\n 0xfe\n 0xff\n 0x2a\n 0x44\n 0x21\n 0xdb\n 0x00\n 0xd0\n 0x75\n 0x19"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:09:36.235Z",
"end_time": "2021-09-07T20:09:36.409000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "length(codeunits(contents)) == fifull_linux_x64_glibc.size",
"execution_count": 47,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 47,
"data": {
"text/plain": "true"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:09:40.844Z",
"end_time": "2021-09-07T20:09:40.706000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "using SHA",
"execution_count": 48,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:11:44.372Z",
"end_time": "2021-09-07T20:11:45.062000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "bytes2hex(SHA.sha256(contents)) == fifull_linux_x64_glibc.sha256",
"execution_count": 49,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 49,
"data": {
"text/plain": "true"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:12:32.295Z",
"end_time": "2021-09-07T20:12:57.969000+09:00"
},
"trusted": true,
"scrolled": true
},
"cell_type": "code",
"source": "]add GnuPG_jll",
"execution_count": 50,
"outputs": [
{
"output_type": "stream",
"text": "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m registry at `~/.julia/registries/General`\n\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m git-repo `[email protected]:JuliaRegistries/General.git`\n\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n\u001b[32m\u001b[1m Installed\u001b[22m\u001b[39m SQLite_jll ───────── v3.36.0+0\n\u001b[32m\u001b[1m Installed\u001b[22m\u001b[39m Libksba_jll ──────── v1.5.1+1\n\u001b[32m\u001b[1m Installed\u001b[22m\u001b[39m GnuTLS_jll ───────── v3.6.13+1\n\u001b[32m\u001b[1m Installed\u001b[22m\u001b[39m Libassuan_jll ────── v2.5.5+1\n\u001b[32m\u001b[1m Installed\u001b[22m\u001b[39m Nettle_jll ───────── v3.4.1+2\n\u001b[32m\u001b[1m Installed\u001b[22m\u001b[39m OpenLDAPClient_jll ─ v2.4.50+2\n\u001b[32m\u001b[1m Installed\u001b[22m\u001b[39m Libgcrypt_jll ────── v1.8.5+4\n\u001b[32m\u001b[1m Installed\u001b[22m\u001b[39m Libgpg_error_jll ─── v1.36.0+3\n\u001b[32m\u001b[1m Installed\u001b[22m\u001b[39m GnuPG_jll ────────── v2.2.27+0\n\u001b[32m\u001b[1m Installed\u001b[22m\u001b[39m nPth_jll ─────────── v1.6.0+0\n\u001b[32m\u001b[1m Installed\u001b[22m\u001b[39m libusb_jll ───────── v1.0.24+0\n\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `/mnt/polonium_data/ipynb_root/toybox/JKDev.20210907/Project.toml`\n \u001b[90m [1522389b] \u001b[39m\u001b[92m+ GnuPG_jll v2.2.27+0\u001b[39m\n\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `/mnt/polonium_data/ipynb_root/toybox/JKDev.20210907/Manifest.toml`\n \u001b[90m [692b3bcd] \u001b[39m\u001b[92m+ JLLWrappers v1.3.0\u001b[39m\n \u001b[90m [21216c6a] \u001b[39m\u001b[92m+ Preferences v1.2.2\u001b[39m\n \u001b[90m [6e34b625] \u001b[39m\u001b[92m+ Bzip2_jll v1.0.6+5\u001b[39m\n \u001b[90m [1522389b] \u001b[39m\u001b[92m+ GnuPG_jll v2.2.27+0\u001b[39m\n \u001b[90m [0951126a] \u001b[39m\u001b[92m+ GnuTLS_jll v3.6.13+1\u001b[39m\n \u001b[90m [3c934f36] \u001b[39m\u001b[92m+ Libassuan_jll v2.5.5+1\u001b[39m\n \u001b[90m [d4300ac3] \u001b[39m\u001b[92m+ Libgcrypt_jll v1.8.5+4\u001b[39m\n \u001b[90m [7add5ba3] \u001b[39m\u001b[92m+ Libgpg_error_jll v1.36.0+3\u001b[39m\n \u001b[90m [52a58d30] \u001b[39m\u001b[92m+ Libksba_jll v1.5.1+1\u001b[39m\n \u001b[90m [4c82536e] \u001b[39m\u001b[92m+ Nettle_jll v3.4.1+2\u001b[39m\n \u001b[90m [234f2d50] \u001b[39m\u001b[92m+ OpenLDAPClient_jll v2.4.50+2\u001b[39m\n \u001b[90m [458c3c95] \u001b[39m\u001b[92m+ OpenSSL_jll v1.1.10+0\u001b[39m\n \u001b[90m [2f80f16e] \u001b[39m\u001b[92m+ PCRE_jll v8.44.0+0\u001b[39m\n \u001b[90m [76ed43ae] \u001b[39m\u001b[92m+ SQLite_jll v3.36.0+0\u001b[39m\n \u001b[90m [a877fdc9] \u001b[39m\u001b[92m+ libusb_jll v1.0.24+0\u001b[39m\n \u001b[90m [58695248] \u001b[39m\u001b[92m+ nPth_jll v1.6.0+0\u001b[39m\n \u001b[90m [0dad84c5] \u001b[39m\u001b[92m+ ArgTools\u001b[39m\n \u001b[90m [56f22d72] \u001b[39m\u001b[92m+ Artifacts\u001b[39m\n \u001b[90m [2a0f44e3] \u001b[39m\u001b[92m+ Base64\u001b[39m\n \u001b[90m [f43a241f] \u001b[39m\u001b[92m+ Downloads\u001b[39m\n \u001b[90m [b77e0a4c] \u001b[39m\u001b[92m+ InteractiveUtils\u001b[39m\n \u001b[90m [b27032c2] \u001b[39m\u001b[92m+ LibCURL\u001b[39m\n \u001b[90m [76f85450] \u001b[39m\u001b[92m+ LibGit2\u001b[39m\n \u001b[90m [8f399da3] \u001b[39m\u001b[92m+ Libdl\u001b[39m\n \u001b[90m [56ddb016] \u001b[39m\u001b[92m+ Logging\u001b[39m\n \u001b[90m [d6f4376e] \u001b[39m\u001b[92m+ Markdown\u001b[39m\n \u001b[90m [ca575930] \u001b[39m\u001b[92m+ NetworkOptions\u001b[39m\n \u001b[90m [44cfe95a] \u001b[39m\u001b[92m+ Pkg\u001b[39m\n \u001b[90m [3fa0cd96] \u001b[39m\u001b[92m+ REPL\u001b[39m\n \u001b[90m [6462fe0b] \u001b[39m\u001b[92m+ Sockets\u001b[39m\n \u001b[90m [fa267f1f] \u001b[39m\u001b[92m+ TOML\u001b[39m\n \u001b[90m [a4e569a6] \u001b[39m\u001b[92m+ Tar\u001b[39m\n \u001b[90m [781609d7] \u001b[39m\u001b[92m+ GMP_jll\u001b[39m\n \u001b[90m [deac9b47] \u001b[39m\u001b[92m+ LibCURL_jll\u001b[39m\n \u001b[90m [29816b5a] \u001b[39m\u001b[92m+ LibSSH2_jll\u001b[39m\n \u001b[90m [c8ffd9c3] \u001b[39m\u001b[92m+ MbedTLS_jll\u001b[39m\n \u001b[90m [14a3606d] \u001b[39m\u001b[92m+ MozillaCACerts_jll\u001b[39m\n \u001b[90m [83775a58] \u001b[39m\u001b[92m+ Zlib_jll\u001b[39m\n \u001b[90m [8e850ede] \u001b[39m\u001b[92m+ nghttp2_jll\u001b[39m\n \u001b[90m [3f19e933] \u001b[39m\u001b[92m+ p7zip_jll\u001b[39m\n\u001b[32m\u001b[1mPrecompiling\u001b[22m\u001b[39m project...\n\u001b[32m ✓ \u001b[39m\u001b[90mGMP_jll\u001b[39m\n\u001b[32m ✓ \u001b[39m\u001b[90mnPth_jll\u001b[39m\n\u001b[32m ✓ \u001b[39m\u001b[90mOpenLDAPClient_jll\u001b[39m\n\u001b[32m ✓ \u001b[39m\u001b[90mLibgpg_error_jll\u001b[39m\n\u001b[32m ✓ \u001b[39m\u001b[90mSQLite_jll\u001b[39m\n\u001b[32m ✓ \u001b[39m\u001b[90mlibusb_jll\u001b[39m\n\u001b[32m ✓ \u001b[39m\u001b[90mNettle_jll\u001b[39m\n\u001b[32m ✓ \u001b[39m\u001b[90mLibgcrypt_jll\u001b[39m\n\u001b[32m ✓ \u001b[39m\u001b[90mLibassuan_jll\u001b[39m\n\u001b[32m ✓ \u001b[39m\u001b[90mLibksba_jll\u001b[39m\n\u001b[32m ✓ \u001b[39m\u001b[90mGnuTLS_jll\u001b[39m\n\u001b[32m ✓ \u001b[39mGnuPG_jll\n 12 dependencies successfully precompiled in 4 seconds (11 already precompiled)\n",
"name": "stderr"
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:13:17.407Z",
"end_time": "2021-09-07T20:13:17.443000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "using GnuPG_jll",
"execution_count": 51,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:14:28.666Z",
"end_time": "2021-09-07T20:14:28.549000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "?GnuPG_jll.gpgv()",
"execution_count": 53,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 53,
"data": {
"text/plain": " No documentation found.\n\n \u001b[36mGnuPG_jll.gpgv\u001b[39m is a \u001b[36mFunction\u001b[39m.\n\n\u001b[36m # 2 methods for generic function \"gpgv\":\u001b[39m\n\u001b[36m [1] gpgv(; adjust_PATH, adjust_LIBPATH) in GnuPG_jll at /home/antimon2/.julia/packages/JLLWrappers/bkwIo/src/products/executable_generators.jl:33\u001b[39m\n\u001b[36m [2] gpgv(f::Function; adjust_PATH, adjust_LIBPATH) in GnuPG_jll at /home/antimon2/.julia/packages/JLLWrappers/bkwIo/src/products/executable_generators.jl:5\u001b[39m",
"text/markdown": "No documentation found.\n\n`GnuPG_jll.gpgv` is a `Function`.\n\n```\n# 2 methods for generic function \"gpgv\":\n[1] gpgv(; adjust_PATH, adjust_LIBPATH) in GnuPG_jll at /home/antimon2/.julia/packages/JLLWrappers/bkwIo/src/products/executable_generators.jl:33\n[2] gpgv(f::Function; adjust_PATH, adjust_LIBPATH) in GnuPG_jll at /home/antimon2/.julia/packages/JLLWrappers/bkwIo/src/products/executable_generators.jl:5\n```\n",
"text/latex": "No documentation found.\n\n\\texttt{GnuPG\\_jll.gpgv} is a \\texttt{Function}.\n\n\\begin{verbatim}\n# 2 methods for generic function \"gpgv\":\n[1] gpgv(; adjust_PATH, adjust_LIBPATH) in GnuPG_jll at /home/antimon2/.julia/packages/JLLWrappers/bkwIo/src/products/executable_generators.jl:33\n[2] gpgv(f::Function; adjust_PATH, adjust_LIBPATH) in GnuPG_jll at /home/antimon2/.julia/packages/JLLWrappers/bkwIo/src/products/executable_generators.jl:5\n\\end{verbatim}\n"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:14:35.945Z",
"end_time": "2021-09-07T20:14:36.211000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "GnuPG_jll.gpgv()",
"execution_count": 54,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 54,
"data": {
"text/plain": "setenv(`\u001b[4m/home/antimon2/.julia/artifacts/781cfc9776697d236e0d9556848a73c471fb5021/bin/gpgv\u001b[24m`,[\"PATH=/home/antimon2/.julia/artifacts/98ed176ef7d6c370cad23ce86cee1bac0cfff263/bin:/home/antimon2/.julia/artifacts/bc7df2a88972dd1ff2685e091585f5c979bfd436/bin:/home/antimon2/.julia/artifacts/3db80064a3727ca3d4347395d90e206b780c3952/bin:/home/antimon2/.julia/artifacts/9f332e67a7ff196f9ce32a4af738aeb192866135/bin:/home/antimon2/.julia/artifacts/781cfc9776697d236e0d9556848a73c471fb5021/bin:/home/antimon2/.pyenv/versions/jupyterlab/bin:/home/antimon2/.pyenv/libexec:/home/antimon2/.pyenv/plugins/python-build/bin:/home/antimon2/.pyenv/plugins/pyenv-virtualenvwrapper/bin:/home/antimon2/.pyenv/plugins/pyenv-virtualenv/bin:/home/antimon2/.local/bin:/home/antimon2/bin:/home/antimon2/.asdf/shims:/home/antimon2/.asdf/bin:/home/antimon2/.rbenv/shims:/home/antimon2/.rbenv/bin:/home/antimon2/.nodenv/shims:/home/antimon2/.nodenv/bin:/home/antimon2/.pyenv/shims:/home/antimon2/.pyenv/bin:/home/antimon2/.local/bin:/home/antimon2/.local/bin:/home/antimon2/bin:/home/antimon2/.rbenv/shims:/home/antimon2/.rbenv/bin:/home/antimon2/.nodenv/shims:/home/antimon2/.nodenv/bin:/home/antimon2/.pyenv/shims:/home/antimon2/.pyenv/bin:/home/antimon2/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/cuda/bin:/usr/lib/cuda/bin\", \"PAPERSIZE=a4\", \"LD_LIBRARY_PATH=/home/antimon2/julia-1.6.2/bin/../lib/julia:/home/antimon2/.julia/artifacts/98ed176ef7d6c370cad23ce86cee1bac0cfff263/lib:/home/antimon2/.julia/artifacts/e5b7040574c68023252a3a28dc4bf4583a56d34f/lib:/home/antimon2/.julia/artifacts/575618730140d4aa796f2e7c75d33fac6845908d/lib:/home/antimon2/.julia/artifacts/285729063ff4e8ed6a09ab37bcd9bb74ad9ecf67/lib:/home/antimon2/.julia/artifacts/bec8e64dc2b9e89d634ec53df0767b33e1e6cb01/lib:/home/antimon2/.julia/artifacts/9b47b629554dfa9ec03245ee2eca83ddfbaa0f52/lib:/home/antimon2/.julia/artifacts/f7ae1360fa4db7105801d77252b3dc72f9b0dff3/lib:/home/antimon2/.julia/artifacts/bc7df2a88972dd1ff2685e091585f5c979bfd436/lib:/home/antimon2/.julia/artifacts/17314d4057d189dbe9a4cbb1dc839b541d70fc29/lib:/home/antimon2/.julia/artifacts/3db80064a3727ca3d4347395d90e206b780c3952/lib:/home/antimon2/.julia/artifacts/a720905290c81768185376a3ab5842c296b4cef8/lib:/home/antimon2/.julia/artifacts/9f332e67a7ff196f9ce32a4af738aeb192866135/lib:/home/antimon2/.julia/artifacts/4d8966b9dedc266b5e54ff9cd0684b464f3ecd0b/lib:/home/antimon2/julia-1.6.2/bin/../lib/julia:/home/antimon2/julia-1.6.2/bin/../lib\", \"TMUX=/tmp/tmux-1000/default,11802,0\", \"DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus\", \"PYENV_ROOT=/home/antimon2/.pyenv\", \"SSH_AGENT_PID=3402\", \"XDG_SESSION_TYPE=tty\", \"USER=antimon2\", \"LC_TIME=ja_JP.UTF-8\" … \"LANGUAGE=en.UTF-8\", \"JPY_PARENT_PID=12267\", \"MAIL=/var/mail/antimon2\", \"RBENV_ROOT=/home/antimon2/.rbenv\", \"LC_NAME=ja_JP.UTF-8\", \"XDG_SESSION_ID=4\", \"LC_IDENTIFICATION=ja_JP.UTF-8\", \"PYENV_VERSION=jupyterlab\", \"LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:\", \"OPENBLAS_MAIN_FREE=1\"])"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:21:27.267Z",
"end_time": "2021-09-07T20:21:27.377000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "run(`$(gpg()) --version`)",
"execution_count": 55,
"outputs": [
{
"output_type": "stream",
"text": "gpg (GnuPG) 2.2.27\nlibgcrypt 1.8.5\nCopyright (C) 2021 Free Software Foundation, Inc.\nLicense GNU GPL-3.0-or-later <https://gnu.org/licenses/gpl.html>\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.\n\nHome: /home/antimon2/.gnupg\nSupported algorithms:\nPubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA\nCipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,\n CAMELLIA128, CAMELLIA192, CAMELLIA256\nHash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224\nCompression: Uncompressed, ZIP, ZLIB, BZIP2\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 55,
"data": {
"text/plain": "Process(setenv(`\u001b[4m/home/antimon2/.julia/artifacts/781cfc9776697d236e0d9556848a73c471fb5021/bin/gpg\u001b[24m \u001b[4m--version\u001b[24m`,[\"PATH=/home/antimon2/.julia/artifacts/98ed176ef7d6c370cad23ce86cee1bac0cfff263/bin:/home/antimon2/.julia/artifacts/bc7df2a88972dd1ff2685e091585f5c979bfd436/bin:/home/antimon2/.julia/artifacts/3db80064a3727ca3d4347395d90e206b780c3952/bin:/home/antimon2/.julia/artifacts/9f332e67a7ff196f9ce32a4af738aeb192866135/bin:/home/antimon2/.julia/artifacts/781cfc9776697d236e0d9556848a73c471fb5021/bin:/home/antimon2/.pyenv/versions/jupyterlab/bin:/home/antimon2/.pyenv/libexec:/home/antimon2/.pyenv/plugins/python-build/bin:/home/antimon2/.pyenv/plugins/pyenv-virtualenvwrapper/bin:/home/antimon2/.pyenv/plugins/pyenv-virtualenv/bin:/home/antimon2/.local/bin:/home/antimon2/bin:/home/antimon2/.asdf/shims:/home/antimon2/.asdf/bin:/home/antimon2/.rbenv/shims:/home/antimon2/.rbenv/bin:/home/antimon2/.nodenv/shims:/home/antimon2/.nodenv/bin:/home/antimon2/.pyenv/shims:/home/antimon2/.pyenv/bin:/home/antimon2/.local/bin:/home/antimon2/.local/bin:/home/antimon2/bin:/home/antimon2/.rbenv/shims:/home/antimon2/.rbenv/bin:/home/antimon2/.nodenv/shims:/home/antimon2/.nodenv/bin:/home/antimon2/.pyenv/shims:/home/antimon2/.pyenv/bin:/home/antimon2/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/cuda/bin:/usr/lib/cuda/bin\", \"PAPERSIZE=a4\", \"LD_LIBRARY_PATH=/home/antimon2/julia-1.6.2/bin/../lib/julia:/home/antimon2/.julia/artifacts/98ed176ef7d6c370cad23ce86cee1bac0cfff263/lib:/home/antimon2/.julia/artifacts/e5b7040574c68023252a3a28dc4bf4583a56d34f/lib:/home/antimon2/.julia/artifacts/575618730140d4aa796f2e7c75d33fac6845908d/lib:/home/antimon2/.julia/artifacts/285729063ff4e8ed6a09ab37bcd9bb74ad9ecf67/lib:/home/antimon2/.julia/artifacts/bec8e64dc2b9e89d634ec53df0767b33e1e6cb01/lib:/home/antimon2/.julia/artifacts/9b47b629554dfa9ec03245ee2eca83ddfbaa0f52/lib:/home/antimon2/.julia/artifacts/f7ae1360fa4db7105801d77252b3dc72f9b0dff3/lib:/home/antimon2/.julia/artifacts/bc7df2a88972dd1ff2685e091585f5c979bfd436/lib:/home/antimon2/.julia/artifacts/17314d4057d189dbe9a4cbb1dc839b541d70fc29/lib:/home/antimon2/.julia/artifacts/3db80064a3727ca3d4347395d90e206b780c3952/lib:/home/antimon2/.julia/artifacts/a720905290c81768185376a3ab5842c296b4cef8/lib:/home/antimon2/.julia/artifacts/9f332e67a7ff196f9ce32a4af738aeb192866135/lib:/home/antimon2/.julia/artifacts/4d8966b9dedc266b5e54ff9cd0684b464f3ecd0b/lib:/home/antimon2/julia-1.6.2/bin/../lib/julia:/home/antimon2/julia-1.6.2/bin/../lib\", \"TMUX=/tmp/tmux-1000/default,11802,0\", \"DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus\", \"PYENV_ROOT=/home/antimon2/.pyenv\", \"SSH_AGENT_PID=3402\", \"XDG_SESSION_TYPE=tty\", \"USER=antimon2\", \"LC_TIME=ja_JP.UTF-8\" … \"LANGUAGE=en.UTF-8\", \"JPY_PARENT_PID=12267\", \"MAIL=/var/mail/antimon2\", \"RBENV_ROOT=/home/antimon2/.rbenv\", \"LC_NAME=ja_JP.UTF-8\", \"XDG_SESSION_ID=4\", \"LC_IDENTIFICATION=ja_JP.UTF-8\", \"PYENV_VERSION=jupyterlab\", \"LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:\", \"OPENBLAS_MAIN_FREE=1\"]), ProcessExited(0))"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:25:40.802Z",
"end_time": "2021-09-07T20:25:40.661000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "replace(basename(fifull_linux_x64_glibc.url), r\"\\.(tar\\.(bz|gz)|exe|msi|dmg)\"=>\".asc\")",
"execution_count": 58,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 58,
"data": {
"text/plain": "\"julia-1.7.0-beta4-linux-x86_64.asc\""
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T11:50:39.108Z",
"end_time": "2021-09-07T20:50:38.994000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "print(fifull_linux_x64_glibc.asc)",
"execution_count": 63,
"outputs": [
{
"output_type": "stream",
"text": "-----BEGIN PGP SIGNATURE-----\n\niQJLBAABCgA1FiEENnPfUp2QSUd/drN1ZuPH3APW5JUFAmEpuS8XHGJ1aWxkYm90\nQGp1bGlhbGFuZy5vcmcACgkQZuPH3APW5JWJ9w/+IiX83xPmcypwRLQ+CksIgeaM\njq0QY5YLtRuOm6355RtplFalx0WKO17KOxJaSEKEQkZeJNcI0BE1FWIub3mtXVCE\njWhJyQAcJd/WsAOw17+hwFQV2+6Aqy1eY4mQ6vwRwn85BlsbgtzEip6FEJOQ9fRd\nxphA/GkT2SYlu687GpKnzzR76x6z1yGH/cbIrLKBYPrlZ0yDvcQ/1P17VeEsfwZ3\npbOyTwo7qGTcSjaEniSjdSM3C2MsTIIPdhcs3XGaZl0jfmKarKrFlkJn7pSAW034\nkhJx1r+Nmdcn1/JJXKdIVHlCH8vMooVEE6C7B22ujdX021GhTzVHzif6EpCfxdxn\nyb8pK5OKVwQj8lX5YApSZGKBZIaB9TYUuqLW+OSN/sSunIc+FllYXJJTnFSD9KIc\nhHYS5hJfv7tAuD/uesEbWkH2oNd2jBu0M1AcR627LqGhYsCxrPkGklOC6RXZU57n\ncX7egZDHkl2iPhGNqSyabDLa5f5IKt4j1eYTv3Uwc4tuAamMHEcBUwfurkKqj46T\nf2+1lvgAyrTCZ4kbGvW0jKE1s/1xMX1hDKwknn+ZAMaXBrSzQTx6UTdYT4UvnHcs\nsLgIFvlBo3rFjOolBwwaISn0C8z3hSUSUBVIn+Yu5WtcCyLR+zsGYmieooe8QKD1\n8KPNUowwJ6+dVBiOESk=\n=Y4+g\n-----END PGP SIGNATURE-----\n",
"name": "stdout"
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T12:04:26.768Z",
"end_time": "2021-09-07T21:04:27.040000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "gpg() do exe\n if any(contains(\"[email protected]\"), readlines(`$exe --list-keys`))\n @info \"pubkey is already imported\"\n else\n pubkey_url = \"https://julialang.org/assets/juliareleases.asc\"\n pubkey_dest = joinpath(tempdir(), basename(pubkey_url))\n Downloads.download(pubkey_url, pubkey_dest)\n proc0 = run(`$exe --import $pubkey_dest`)\n if success(proc0)\n @info \"pubkey imported successfully\"\n else\n @info \"failed to import pubkey\"\n end\n end\nend",
"execution_count": 65,
"outputs": [
{
"output_type": "stream",
"text": "gpg: key 66E3C7DC03D6E495: public key \"Julia (Binary signing key) <[email protected]>\" imported\ngpg: WARNING: server 'gpg-agent' is older than us (2.2.12 < 2.2.27)\ngpg: Note: Outdated servers may lack important security fixes.\ngpg: Note: Use the command \"gpgconf --kill all\" to restart them.\ngpg: Total number processed: 1\ngpg: imported: 1\n┌ Info: pubkey imported successfully\n└ @ Main In[65]:10\n",
"name": "stderr"
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-09-07T12:04:48.134Z",
"end_time": "2021-09-07T21:05:04.417000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "gpg() do exe\n tmp_dir = tempdir()\n archive_filename = basename(fifull_linux_x64_glibc.url)\n archive_path = joinpath(tmp_dir, archive_filename)\n print(\"Downloading $archive_filename...\")\n Downloads.download(fifull_linux_x64_glibc.url, archive_path)\n println(\"Done\")\n println(\"Verify PGP Signature\")\n ascfilename = archive_filename * \".asc\"\n asc_path = joinpath(tempdir(), ascfilename)\n open(asc_path, \"w\") do f\n print(f, fifull_linux_x64_glibc.asc)\n end\n proc = run(`$exe --verify $asc_path`)\n rm(asc_path)\n rm(archive_path)\n proc\nend",
"execution_count": 66,
"outputs": [
{
"output_type": "stream",
"text": "Downloading julia-1.7.0-beta4-linux-x86_64.tar.gz...Done\nVerify PGP Signature\n",
"name": "stdout"
},
{
"output_type": "stream",
"text": "gpg: assuming signed data in '/tmp/julia-1.7.0-beta4-linux-x86_64.tar.gz'\ngpg: Signature made Sat Aug 28 13:18:55 2021 JST\ngpg: using RSA key 3673DF529D9049477F76B37566E3C7DC03D6E495\ngpg: issuer \"[email protected]\"\ngpg: Good signature from \"Julia (Binary signing key) <[email protected]>\" [unknown]\ngpg: WARNING: This key is not certified with a trusted signature!\ngpg: There is no indication that the signature belongs to the owner.\nPrimary key fingerprint: 3673 DF52 9D90 4947 7F76 B375 66E3 C7DC 03D6 E495\n",
"name": "stderr"
},
{
"output_type": "execute_result",
"execution_count": 66,
"data": {
"text/plain": "Process(`\u001b[4m/home/antimon2/.julia/artifacts/781cfc9776697d236e0d9556848a73c471fb5021/bin/gpg\u001b[24m \u001b[4m--verify\u001b[24m \u001b[4m/tmp/julia-1.7.0-beta4-linux-x86_64.tar.gz.asc\u001b[24m`, ProcessExited(0))"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"_draft": {
"nbviewer_url": "https://gist.github.com/5115fe7c3d3fe4f2a9461826e78fcc59"
},
"gist": {
"id": "5115fe7c3d3fe4f2a9461826e78fcc59",
"data": {
"description": "JSON3.ParseAndVerifyVersionsJson.jl",
"public": true
}
},
"kernelspec": {
"name": "julia-1.6",
"display_name": "Julia 1.6.2",
"language": "julia"
},
"language_info": {
"file_extension": ".jl",
"name": "julia",
"mimetype": "application/julia",
"version": "1.6.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
[compat]
julia = "1.6"
[deps]
GnuPG_jll = "1522389b-45f8-5faa-af4d-a301b79c50ac"
JSON3 = "0f8b85d8-7281-11e9-16c2-39a750bddbf1"
SHA = "ea8e919c-243c-51af-8825-aaa63cd721ce"
StructTypes = "856f2bd8-1eba-4b0a-8007-ebc267875bd4"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment