chore: pin released purego upstream modules
- commit
- ef0e4016be7594dd9670ba85feaf59f0b3517eb3
- author
- brice · · 2026-07-15 05:52 UTC
- parent
- 7efcb53
- signature
- GPG Verified
CD88F9E564E0102646FB6077A1A07C7C7C3E349D· arch-gpg Verified for the committer email
68 files · +540 -531
M go.mod +8 -10
| @@ -6,12 +6,12 @@ require ( | |||
| 6 | 6 | github.com/a-h/templ v0.3.1020 | |
| 7 | 7 | github.com/andybalholm/brotli v1.2.2 | |
| 8 | 8 | github.com/bnema/purego v0.11.0-bnema.4 | |
| 9 | - | github.com/bnema/purego-cef v0.13.4-0.20260714140305-f0b7414af67e | |
| 10 | - | github.com/bnema/purego-cef2gtk v0.8.4-0.20260714160309-bbd397409ebe | |
| 11 | - | github.com/bnema/purego-pipewire v0.1.5-0.20260714124450-6504b9cdf02a | |
| 12 | - | github.com/bnema/purego-sqlite v0.1.4-0.20260714131321-3614fe683b9c | |
| 13 | - | github.com/bnema/purego-webp v0.2.1-0.20260714152238-7bc9c402fdf6 | |
| 14 | - | github.com/bnema/puregotk v0.7.1-0.20260714200603-7370c78950ef | |
| 9 | + | github.com/bnema/purego-cef v0.13.4-0.20260715054414-19b947c13132 | |
| 10 | + | github.com/bnema/purego-cef2gtk v0.8.5 | |
| 11 | + | github.com/bnema/purego-pipewire v0.1.5 | |
| 12 | + | github.com/bnema/purego-sqlite v0.1.4 | |
| 13 | + | github.com/bnema/purego-webp v0.2.1 | |
| 14 | + | github.com/bnema/puregotk v0.7.1 | |
| 15 | 15 | github.com/charmbracelet/bubbles v1.0.0 | |
| 16 | 16 | github.com/charmbracelet/bubbletea v1.3.10 | |
| 17 | 17 | github.com/charmbracelet/lipgloss v1.1.0 | |
| @@ -43,11 +43,10 @@ require ( | |||
| 43 | 43 | github.com/clipperhouse/displaywidth v0.11.0 // indirect | |
| 44 | 44 | github.com/clipperhouse/uax29/v2 v2.7.0 // indirect | |
| 45 | 45 | github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect | |
| 46 | - | github.com/davecgh/go-spew v1.1.1 // indirect | |
| 46 | + | github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect | |
| 47 | 47 | github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect | |
| 48 | 48 | github.com/fatih/color v1.19.0 // indirect | |
| 49 | 49 | github.com/go-viper/mapstructure/v2 v2.5.0 // indirect | |
| 50 | - | github.com/google/go-cmp v0.7.0 // indirect | |
| 51 | 50 | github.com/inconshreveable/mousetrap v1.1.0 // indirect | |
| 52 | 51 | github.com/lucasb-eyer/go-colorful v1.4.0 // indirect | |
| 53 | 52 | github.com/mattn/go-colorable v0.1.14 // indirect | |
| @@ -59,7 +58,7 @@ require ( | |||
| 59 | 58 | github.com/muesli/cancelreader v0.2.2 // indirect | |
| 60 | 59 | github.com/muesli/termenv v0.16.0 // indirect | |
| 61 | 60 | github.com/natefinch/atomic v1.0.1 // indirect | |
| 62 | - | github.com/pmezard/go-difflib v1.0.0 // indirect | |
| 61 | + | github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect | |
| 63 | 62 | github.com/rivo/uniseg v0.4.7 // indirect | |
| 64 | 63 | github.com/rogpeppe/go-internal v1.14.1 // indirect | |
| 65 | 64 | github.com/russross/blackfriday/v2 v2.1.0 // indirect | |
| @@ -81,7 +80,6 @@ require ( | |||
| 81 | 80 | golang.org/x/text v0.40.0 // indirect | |
| 82 | 81 | golang.org/x/tools v0.47.0 // indirect | |
| 83 | 82 | gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect | |
| 84 | - | mvdan.cc/gofumpt v0.9.2 // indirect | |
| 85 | 83 | ) | |
| 86 | 84 | ||
| 87 | 85 | tool github.com/a-h/templ/cmd/templ | |
| @@ -6,12 +6,12 @@ require ( | |||||
| 6 | github.com/a-h/templ v0.3.1020 | 6 | github.com/a-h/templ v0.3.1020 | ||
| 7 | github.com/andybalholm/brotli v1.2.2 | 7 | github.com/andybalholm/brotli v1.2.2 | ||
| 8 | github.com/bnema/purego v0.11.0-bnema.4 | 8 | github.com/bnema/purego v0.11.0-bnema.4 | ||
| 9 | - | github.com/bnema/purego-cef v0.13.4-0.20260714140305-f0b7414af67e | 9 | + | github.com/bnema/purego-cef v0.13.4-0.20260715054414-19b947c13132 |
| 10 | - | github.com/bnema/purego-cef2gtk v0.8.4-0.20260714160309-bbd397409ebe | 10 | + | github.com/bnema/purego-cef2gtk v0.8.5 |
| 11 | - | github.com/bnema/purego-pipewire v0.1.5-0.20260714124450-6504b9cdf02a | 11 | + | github.com/bnema/purego-pipewire v0.1.5 |
| 12 | - | github.com/bnema/purego-sqlite v0.1.4-0.20260714131321-3614fe683b9c | 12 | + | github.com/bnema/purego-sqlite v0.1.4 |
| 13 | - | github.com/bnema/purego-webp v0.2.1-0.20260714152238-7bc9c402fdf6 | 13 | + | github.com/bnema/purego-webp v0.2.1 |
| 14 | - | github.com/bnema/puregotk v0.7.1-0.20260714200603-7370c78950ef | 14 | + | github.com/bnema/puregotk v0.7.1 |
| 15 | github.com/charmbracelet/bubbles v1.0.0 | 15 | github.com/charmbracelet/bubbles v1.0.0 | ||
| 16 | github.com/charmbracelet/bubbletea v1.3.10 | 16 | github.com/charmbracelet/bubbletea v1.3.10 | ||
| 17 | github.com/charmbracelet/lipgloss v1.1.0 | 17 | github.com/charmbracelet/lipgloss v1.1.0 | ||
| @@ -43,11 +43,10 @@ require ( | |||||
| 43 | github.com/clipperhouse/displaywidth v0.11.0 // indirect | 43 | github.com/clipperhouse/displaywidth v0.11.0 // indirect | ||
| 44 | github.com/clipperhouse/uax29/v2 v2.7.0 // indirect | 44 | github.com/clipperhouse/uax29/v2 v2.7.0 // indirect | ||
| 45 | github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect | 45 | github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect | ||
| 46 | - | github.com/davecgh/go-spew v1.1.1 // indirect | 46 | + | github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect |
| 47 | github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect | 47 | github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect | ||
| 48 | github.com/fatih/color v1.19.0 // indirect | 48 | github.com/fatih/color v1.19.0 // indirect | ||
| 49 | github.com/go-viper/mapstructure/v2 v2.5.0 // indirect | 49 | github.com/go-viper/mapstructure/v2 v2.5.0 // indirect | ||
| 50 | - | github.com/google/go-cmp v0.7.0 // indirect | |||
| 51 | github.com/inconshreveable/mousetrap v1.1.0 // indirect | 50 | github.com/inconshreveable/mousetrap v1.1.0 // indirect | ||
| 52 | github.com/lucasb-eyer/go-colorful v1.4.0 // indirect | 51 | github.com/lucasb-eyer/go-colorful v1.4.0 // indirect | ||
| 53 | github.com/mattn/go-colorable v0.1.14 // indirect | 52 | github.com/mattn/go-colorable v0.1.14 // indirect | ||
| @@ -59,7 +58,7 @@ require ( | |||||
| 59 | github.com/muesli/cancelreader v0.2.2 // indirect | 58 | github.com/muesli/cancelreader v0.2.2 // indirect | ||
| 60 | github.com/muesli/termenv v0.16.0 // indirect | 59 | github.com/muesli/termenv v0.16.0 // indirect | ||
| 61 | github.com/natefinch/atomic v1.0.1 // indirect | 60 | github.com/natefinch/atomic v1.0.1 // indirect | ||
| 62 | - | github.com/pmezard/go-difflib v1.0.0 // indirect | 61 | + | github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect |
| 63 | github.com/rivo/uniseg v0.4.7 // indirect | 62 | github.com/rivo/uniseg v0.4.7 // indirect | ||
| 64 | github.com/rogpeppe/go-internal v1.14.1 // indirect | 63 | github.com/rogpeppe/go-internal v1.14.1 // indirect | ||
| 65 | github.com/russross/blackfriday/v2 v2.1.0 // indirect | 64 | github.com/russross/blackfriday/v2 v2.1.0 // indirect | ||
| @@ -81,7 +80,6 @@ require ( | |||||
| 81 | golang.org/x/text v0.40.0 // indirect | 80 | golang.org/x/text v0.40.0 // indirect | ||
| 82 | golang.org/x/tools v0.47.0 // indirect | 81 | golang.org/x/tools v0.47.0 // indirect | ||
| 83 | gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect | 82 | gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect | ||
| 84 | - | mvdan.cc/gofumpt v0.9.2 // indirect | |||
| 85 | ) | 83 | ) | ||
| 86 | 84 | ||||
| 87 | tool github.com/a-h/templ/cmd/templ | 85 | tool github.com/a-h/templ/cmd/templ | ||
M go.sum +16 -18 generated file: collapsed
M internal/logging/first_presentation_collector_test.go +3 -3
| @@ -144,9 +144,9 @@ func TestFirstPresentationCollectorSanitizesMachineLocalValues(t *testing.T) { | |||
| 144 | 144 | } | |
| 145 | 145 | for _, required := range []string{ | |
| 146 | 146 | `"measured_source_revision"`, | |
| 147 | - | `"version": "v0.8.4-0.20260714160309-bbd397409ebe"`, | |
| 148 | - | `"tag": "v0.8.4"`, | |
| 149 | - | `"revision": "bbd397409ebed75a5979c1e4566a2ef319f6a484"`, | |
| 147 | + | `"version": "v0.8.5"`, | |
| 148 | + | `"tag": "v0.8.5"`, | |
| 149 | + | `"revision": "b9fb46ef5c04ca0993943c5ca4b6f0fe83583304"`, | |
| 150 | 150 | } { | |
| 151 | 151 | require.Contains(t, artifacts.String(), required) | |
| 152 | 152 | } | |
| @@ -144,9 +144,9 @@ func TestFirstPresentationCollectorSanitizesMachineLocalValues(t *testing.T) { | |||||
| 144 | } | 144 | } | ||
| 145 | for _, required := range []string{ | 145 | for _, required := range []string{ | ||
| 146 | `"measured_source_revision"`, | 146 | `"measured_source_revision"`, | ||
| 147 | - | `"version": "v0.8.4-0.20260714160309-bbd397409ebe"`, | 147 | + | `"version": "v0.8.5"`, |
| 148 | - | `"tag": "v0.8.4"`, | 148 | + | `"tag": "v0.8.5"`, |
| 149 | - | `"revision": "bbd397409ebed75a5979c1e4566a2ef319f6a484"`, | 149 | + | `"revision": "b9fb46ef5c04ca0993943c5ca4b6f0fe83583304"`, |
| 150 | } { | 150 | } { | ||
| 151 | require.Contains(t, artifacts.String(), required) | 151 | require.Contains(t, artifacts.String(), required) | ||
| 152 | } | 152 | } | ||
M scripts/collect_first_presentation.sh +18 -10
| @@ -38,7 +38,7 @@ readonly upstream_module="github.com/bnema/purego-cef2gtk" | |||
| 38 | 38 | resolve_upstream_provenance() { | |
| 39 | 39 | local selected_metadata selected_version downloaded_metadata | |
| 40 | 40 | ||
| 41 | - | selected_metadata="$(go list -m -json "$upstream_module" 2>/dev/null)" || { | |
| 41 | + | selected_metadata="$(GOFLAGS=-mod=mod go list -m -json "$upstream_module" 2>/dev/null)" || { | |
| 42 | 42 | echo "first-presentation: immutable module provenance is unavailable" >&2 | |
| 43 | 43 | exit 2 | |
| 44 | 44 | } | |
| @@ -75,9 +75,11 @@ try: | |||
| 75 | 75 | fail() | |
| 76 | 76 | if downloaded.get("Version") != version: | |
| 77 | 77 | fail() | |
| 78 | - | # A selected pseudo-version is an exact immutable selector, never a branch. | |
| 79 | - | match = re.fullmatch(r"(v\d+\.\d+\.\d+)-0\.\d{14}-([0-9a-f]{12})", version) | |
| 80 | - | if not match: | |
| 78 | + | # A pseudo-version identifies an immutable commit; a released semver tag is | |
| 79 | + | # accepted only when Go records that exact tag and its immutable hash. | |
| 80 | + | pseudo_match = re.fullmatch(r"(v\d+\.\d+\.\d+)-0\.\d{14}-([0-9a-f]{12})", version) | |
| 81 | + | tag_match = re.fullmatch(r"v\d+\.\d+\.\d+", version) | |
| 82 | + | if not pseudo_match and not tag_match: | |
| 81 | 83 | fail() | |
| 82 | 84 | info_path = downloaded.get("Info") | |
| 83 | 85 | if not isinstance(info_path, str) or not info_path: | |
| @@ -92,15 +94,21 @@ try: | |||
| 92 | 94 | fail() | |
| 93 | 95 | if not isinstance(revision, str) or not re.fullmatch(r"[0-9a-f]{40}", revision): | |
| 94 | 96 | fail() | |
| 95 | - | if not revision.startswith(match.group(2)): | |
| 96 | - | fail() | |
| 97 | - | # A named ref can move. Only the immutable hash itself is acceptable. | |
| 98 | - | if origin.get("Ref") not in (None, "", revision): | |
| 99 | - | fail() | |
| 97 | + | if pseudo_match: | |
| 98 | + | if not revision.startswith(pseudo_match.group(2)): | |
| 99 | + | fail() | |
| 100 | + | # A named ref can move. Only the immutable hash itself is acceptable. | |
| 101 | + | if origin.get("Ref") not in (None, "", revision): | |
| 102 | + | fail() | |
| 103 | + | tag = pseudo_match.group(1) | |
| 104 | + | else: | |
| 105 | + | if origin.get("Ref") != "refs/tags/" + version: | |
| 106 | + | fail() | |
| 107 | + | tag = version | |
| 100 | 108 | except (AttributeError, KeyError, OSError, TypeError, ValueError, json.JSONDecodeError): | |
| 101 | 109 | fail() | |
| 102 | 110 | ||
| 103 | - | print("\t".join((version, match.group(1), revision))) | |
| 111 | + | print("\t".join((version, tag, revision))) | |
| 104 | 112 | PY | |
| 105 | 113 | } | |
| 106 | 114 | ||
| @@ -38,7 +38,7 @@ readonly upstream_module="github.com/bnema/purego-cef2gtk" | |||||
| 38 | resolve_upstream_provenance() { | 38 | resolve_upstream_provenance() { | ||
| 39 | local selected_metadata selected_version downloaded_metadata | 39 | local selected_metadata selected_version downloaded_metadata | ||
| 40 | 40 | ||||
| 41 | - | selected_metadata="$(go list -m -json "$upstream_module" 2>/dev/null)" || { | 41 | + | selected_metadata="$(GOFLAGS=-mod=mod go list -m -json "$upstream_module" 2>/dev/null)" || { |
| 42 | echo "first-presentation: immutable module provenance is unavailable" >&2 | 42 | echo "first-presentation: immutable module provenance is unavailable" >&2 | ||
| 43 | exit 2 | 43 | exit 2 | ||
| 44 | } | 44 | } | ||
| @@ -75,9 +75,11 @@ try: | |||||
| 75 | fail() | 75 | fail() | ||
| 76 | if downloaded.get("Version") != version: | 76 | if downloaded.get("Version") != version: | ||
| 77 | fail() | 77 | fail() | ||
| 78 | - | # A selected pseudo-version is an exact immutable selector, never a branch. | 78 | + | # A pseudo-version identifies an immutable commit; a released semver tag is |
| 79 | - | match = re.fullmatch(r"(v\d+\.\d+\.\d+)-0\.\d{14}-([0-9a-f]{12})", version) | 79 | + | # accepted only when Go records that exact tag and its immutable hash. |
| 80 | - | if not match: | 80 | + | pseudo_match = re.fullmatch(r"(v\d+\.\d+\.\d+)-0\.\d{14}-([0-9a-f]{12})", version) |
| 81 | + | tag_match = re.fullmatch(r"v\d+\.\d+\.\d+", version) | |||
| 82 | + | if not pseudo_match and not tag_match: | |||
| 81 | fail() | 83 | fail() | ||
| 82 | info_path = downloaded.get("Info") | 84 | info_path = downloaded.get("Info") | ||
| 83 | if not isinstance(info_path, str) or not info_path: | 85 | if not isinstance(info_path, str) or not info_path: | ||
| @@ -92,15 +94,21 @@ try: | |||||
| 92 | fail() | 94 | fail() | ||
| 93 | if not isinstance(revision, str) or not re.fullmatch(r"[0-9a-f]{40}", revision): | 95 | if not isinstance(revision, str) or not re.fullmatch(r"[0-9a-f]{40}", revision): | ||
| 94 | fail() | 96 | fail() | ||
| 95 | - | if not revision.startswith(match.group(2)): | 97 | + | if pseudo_match: |
| 96 | - | fail() | 98 | + | if not revision.startswith(pseudo_match.group(2)): |
| 97 | - | # A named ref can move. Only the immutable hash itself is acceptable. | 99 | + | fail() |
| 98 | - | if origin.get("Ref") not in (None, "", revision): | 100 | + | # A named ref can move. Only the immutable hash itself is acceptable. |
| 99 | - | fail() | 101 | + | if origin.get("Ref") not in (None, "", revision): |
| 102 | + | fail() | |||
| 103 | + | tag = pseudo_match.group(1) | |||
| 104 | + | else: | |||
| 105 | + | if origin.get("Ref") != "refs/tags/" + version: | |||
| 106 | + | fail() | |||
| 107 | + | tag = version | |||
| 100 | except (AttributeError, KeyError, OSError, TypeError, ValueError, json.JSONDecodeError): | 108 | except (AttributeError, KeyError, OSError, TypeError, ValueError, json.JSONDecodeError): | ||
| 101 | fail() | 109 | fail() | ||
| 102 | 110 | ||||
| 103 | - | print("\t".join((version, match.group(1), revision))) | 111 | + | print("\t".join((version, tag, revision))) |
| 104 | PY | 112 | PY | ||
| 105 | } | 113 | } | ||
| 106 | 114 | ||||
M vendor/github.com/bnema/purego-cef/cef/bridge.go +9 -0 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_accessibility_handler_gen.go +2 -2 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_app_gen.go +2 -2 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_audio_handler_gen.go +5 -5 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_browser_gen.go +2 -2 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_browser_process_handler_gen.go +3 -3 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_client_gen.go +3 -3 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_command_handler_gen.go +3 -3 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_context_menu_handler_gen.go +21 -21 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_devtools_message_observer_gen.go +5 -5 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_dialog_handler_gen.go +2 -2
| @@ -100,14 +100,14 @@ func dialogHandlerOnFileDialogCEFCallback() uintptr { | |||
| 100 | 100 | if !ownerOK { | |
| 101 | 101 | return 0 | |
| 102 | 102 | } | |
| 103 | - | browser := wrapBrowser(unsafe.Pointer(arg0)) | |
| 103 | + | browser := wrapBrowser(cefCallbackPointer(arg0)) | |
| 104 | 104 | mode := FileDialogMode(arg1) | |
| 105 | 105 | title := goString(unsafe.Pointer(arg2)) | |
| 106 | 106 | defaultFilePath := goString(unsafe.Pointer(arg3)) | |
| 107 | 107 | acceptFilters := StringList(arg4) | |
| 108 | 108 | acceptExtensions := StringList(arg5) | |
| 109 | 109 | acceptDescriptions := StringList(arg6) | |
| 110 | - | callback := wrapFileDialogCallback(unsafe.Pointer(arg7)) | |
| 110 | + | callback := wrapFileDialogCallback(cefCallbackPointer(arg7)) | |
| 111 | 111 | return uintptr(impl.OnFileDialog(browser, mode, title, defaultFilePath, acceptFilters, acceptExtensions, acceptDescriptions, callback)) | |
| 112 | 112 | }) | |
| 113 | 113 | } | |
| @@ -100,14 +100,14 @@ func dialogHandlerOnFileDialogCEFCallback() uintptr { | |||||
| 100 | if !ownerOK { | 100 | if !ownerOK { | ||
| 101 | return 0 | 101 | return 0 | ||
| 102 | } | 102 | } | ||
| 103 | - | browser := wrapBrowser(unsafe.Pointer(arg0)) | 103 | + | browser := wrapBrowser(cefCallbackPointer(arg0)) |
| 104 | mode := FileDialogMode(arg1) | 104 | mode := FileDialogMode(arg1) | ||
| 105 | title := goString(unsafe.Pointer(arg2)) | 105 | title := goString(unsafe.Pointer(arg2)) | ||
| 106 | defaultFilePath := goString(unsafe.Pointer(arg3)) | 106 | defaultFilePath := goString(unsafe.Pointer(arg3)) | ||
| 107 | acceptFilters := StringList(arg4) | 107 | acceptFilters := StringList(arg4) | ||
| 108 | acceptExtensions := StringList(arg5) | 108 | acceptExtensions := StringList(arg5) | ||
| 109 | acceptDescriptions := StringList(arg6) | 109 | acceptDescriptions := StringList(arg6) | ||
| 110 | - | callback := wrapFileDialogCallback(unsafe.Pointer(arg7)) | 110 | + | callback := wrapFileDialogCallback(cefCallbackPointer(arg7)) |
| 111 | return uintptr(impl.OnFileDialog(browser, mode, title, defaultFilePath, acceptFilters, acceptExtensions, acceptDescriptions, callback)) | 111 | return uintptr(impl.OnFileDialog(browser, mode, title, defaultFilePath, acceptFilters, acceptExtensions, acceptDescriptions, callback)) | ||
| 112 | }) | 112 | }) | ||
| 113 | } | 113 | } | ||