diff --git a/go.mod b/go.mod index d57278d74..d9f2288f7 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( codeberg.org/gruf/go-debug v1.3.0 codeberg.org/gruf/go-errors/v2 v2.3.2 codeberg.org/gruf/go-fastcopy v1.1.3 - codeberg.org/gruf/go-ffmpreg v0.3.1 + codeberg.org/gruf/go-ffmpreg v0.4.2 codeberg.org/gruf/go-iotools v0.0.0-20240710125620-934ae9c654cf codeberg.org/gruf/go-kv v1.6.5 codeberg.org/gruf/go-list v0.0.0-20240425093752-494db03d641f @@ -42,7 +42,7 @@ require ( github.com/k3a/html2text v1.2.1 github.com/microcosm-cc/bluemonday v1.0.27 github.com/miekg/dns v1.1.62 - github.com/minio/minio-go/v7 v7.0.78 + github.com/minio/minio-go/v7 v7.0.79 github.com/mitchellh/mapstructure v1.5.0 github.com/ncruces/go-sqlite3 v0.20.0 github.com/oklog/ulid v1.3.1 @@ -53,7 +53,7 @@ require ( github.com/superseriousbusiness/activity v1.9.0-gts github.com/superseriousbusiness/httpsig v1.2.0-SSB github.com/superseriousbusiness/oauth2/v4 v4.3.2-SSB.0.20230227143000-f4900831d6c8 - github.com/tdewolff/minify/v2 v2.21.0 + github.com/tdewolff/minify/v2 v2.21.1 github.com/technologize/otel-go-contrib v1.1.1 github.com/tetratelabs/wazero v1.8.1 github.com/tomnomnom/linkheader v0.0.0-20180905144013-02ca5825eb80 @@ -197,7 +197,7 @@ require ( github.com/subosito/gotenv v1.6.0 // indirect github.com/superseriousbusiness/go-jpeg-image-structure/v2 v2.0.0-20220321154430-d89a106fdabe // indirect github.com/superseriousbusiness/go-png-image-structure/v2 v2.0.1-SSB // indirect - github.com/tdewolff/parse/v2 v2.7.17 // indirect + github.com/tdewolff/parse/v2 v2.7.18 // indirect github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc // indirect github.com/toqueteos/webbrowser v1.2.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect diff --git a/go.sum b/go.sum index 6a29eaada..be592f110 100644 --- a/go.sum +++ b/go.sum @@ -46,8 +46,8 @@ codeberg.org/gruf/go-fastcopy v1.1.3 h1:Jo9VTQjI6KYimlw25PPc7YLA3Xm+XMQhaHwKnM7x codeberg.org/gruf/go-fastcopy v1.1.3/go.mod h1:GDDYR0Cnb3U/AIfGM3983V/L+GN+vuwVMvrmVABo21s= codeberg.org/gruf/go-fastpath/v2 v2.0.0 h1:iAS9GZahFhyWEH0KLhFEJR+txx1ZhMXxYzu2q5Qo9c0= codeberg.org/gruf/go-fastpath/v2 v2.0.0/go.mod h1:3pPqu5nZjpbRrOqvLyAK7puS1OfEtQvjd6342Cwz56Q= -codeberg.org/gruf/go-ffmpreg v0.3.1 h1:5qE6sHQbLCbQ4RO7ZL4OKZBN4ViAYfDm9ExT8N0ZE7s= -codeberg.org/gruf/go-ffmpreg v0.3.1/go.mod h1:Ar5nbt3tB2Wr0uoaqV3wDBNwAx+H+AB/mV7Kw7NlZTI= +codeberg.org/gruf/go-ffmpreg v0.4.2 h1:HKkPapm/PWkxsnUdjyQOGpwl5Qoa2EBrUQ09s4R4/FA= +codeberg.org/gruf/go-ffmpreg v0.4.2/go.mod h1:Ar5nbt3tB2Wr0uoaqV3wDBNwAx+H+AB/mV7Kw7NlZTI= codeberg.org/gruf/go-iotools v0.0.0-20240710125620-934ae9c654cf h1:84s/ii8N6lYlskZjHH+DG6jyia8w2mXMZlRwFn8Gs3A= codeberg.org/gruf/go-iotools v0.0.0-20240710125620-934ae9c654cf/go.mod h1:zZAICsp5rY7+hxnws2V0ePrWxE0Z2Z/KXcN3p/RQCfk= codeberg.org/gruf/go-kv v1.6.5 h1:ttPf0NA8F79pDqBttSudPTVCZmGncumeNIxmeM9ztz0= @@ -413,8 +413,8 @@ github.com/miekg/dns v1.1.62 h1:cN8OuEF1/x5Rq6Np+h1epln8OiyPWV+lROx9LxcGgIQ= github.com/miekg/dns v1.1.62/go.mod h1:mvDlcItzm+br7MToIKqkglaGhlFMHJ9DTNNWONWXbNQ= github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= -github.com/minio/minio-go/v7 v7.0.78 h1:LqW2zy52fxnI4gg8C2oZviTaKHcBV36scS+RzJnxUFs= -github.com/minio/minio-go/v7 v7.0.78/go.mod h1:84gmIilaX4zcvAWWzJ5Z1WI5axN+hAbM5w25xf8xvC0= +github.com/minio/minio-go/v7 v7.0.79 h1:SvJZpj3hT0RN+4KiuX/FxLfPZdsuegy6d/2PiemM/bM= +github.com/minio/minio-go/v7 v7.0.79/go.mod h1:84gmIilaX4zcvAWWzJ5Z1WI5axN+hAbM5w25xf8xvC0= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= @@ -539,10 +539,10 @@ github.com/superseriousbusiness/httpsig v1.2.0-SSB h1:BinBGKbf2LSuVT5+MuH0XynHN9 github.com/superseriousbusiness/httpsig v1.2.0-SSB/go.mod h1:+rxfATjFaDoDIVaJOTSP0gj6UrbicaYPEptvCLC9F28= github.com/superseriousbusiness/oauth2/v4 v4.3.2-SSB.0.20230227143000-f4900831d6c8 h1:nTIhuP157oOFcscuoK1kCme1xTeGIzztSw70lX9NrDQ= github.com/superseriousbusiness/oauth2/v4 v4.3.2-SSB.0.20230227143000-f4900831d6c8/go.mod h1:uYC/W92oVRJ49Vh1GcvTqpeFqHi+Ovrl2sMllQWRAEo= -github.com/tdewolff/minify/v2 v2.21.0 h1:nAPP1UVx0aK1xsQh/JiG3xyEnnqWw+agPstn+V6Pkto= -github.com/tdewolff/minify/v2 v2.21.0/go.mod h1:hGcthJ6Vj51NG+9QRIfN/DpWj5loHnY3bfhThzWWq08= -github.com/tdewolff/parse/v2 v2.7.17 h1:uC10p6DaQQORDy72eaIyD+AvAkaIUOouQ0nWp4uD0D0= -github.com/tdewolff/parse/v2 v2.7.17/go.mod h1:3FbJWZp3XT9OWVN3Hmfp0p/a08v4h8J9W1aghka0soA= +github.com/tdewolff/minify/v2 v2.21.1 h1:AAf5iltw6+KlUvjRNPAPrANIXl3XEJNBBzuZom5iCAM= +github.com/tdewolff/minify/v2 v2.21.1/go.mod h1:PoqFH8ugcuTUvKqVM9vOqXw4msxvuhL/DTmV5ZXhSCI= +github.com/tdewolff/parse/v2 v2.7.18 h1:uSqjEMT2lwCj5oifBHDcWU2kN1pbLrRENgFWDJa57eI= +github.com/tdewolff/parse/v2 v2.7.18/go.mod h1:3FbJWZp3XT9OWVN3Hmfp0p/a08v4h8J9W1aghka0soA= github.com/tdewolff/test v1.0.11-0.20231101010635-f1265d231d52/go.mod h1:6DAvZliBAAnD7rhVgwaM7DE5/d9NMOAJ09SqYqeK4QE= github.com/tdewolff/test v1.0.11-0.20240106005702-7de5f7df4739 h1:IkjBCtQOOjIn03u/dMQK9g+Iw9ewps4mCl1nB8Sscbo= github.com/tdewolff/test v1.0.11-0.20240106005702-7de5f7df4739/go.mod h1:XPuWBzvdUzhCuxWO1ojpXsyzsA5bFoS3tO/Q3kFuTG8= diff --git a/internal/media/ffmpeg.go b/internal/media/ffmpeg.go index ba251bd26..976662e60 100644 --- a/internal/media/ffmpeg.go +++ b/internal/media/ffmpeg.go @@ -392,18 +392,31 @@ func (res *result) GetFileType() (gtsmodel.FileType, string) { case "matroska,webm": switch { case len(res.video) > 0: + var isWebm bool + switch res.video[0].codec { case "vp8", "vp9", "av1": - default: - return gtsmodel.FileTypeVideo, "mkv" - } - if len(res.audio) > 0 { - switch res.audio[0].codec { - case "vorbis", "opus", "libopus": - // webm only supports [VP8/VP9/AV1]+[vorbis/opus] - return gtsmodel.FileTypeVideo, "webm" + if len(res.audio) > 0 { + switch res.audio[0].codec { + case "vorbis", "opus", "libopus": + // webm only supports [VP8/VP9/AV1] + + // [vorbis/opus] + isWebm = true + } + } else { + // no audio with correct + // video codec also fine. + isWebm = true } } + + if isWebm { + // Check for valid webm codec config. + return gtsmodel.FileTypeVideo, "webm" + } + + // All else falls under generic mkv. + return gtsmodel.FileTypeVideo, "mkv" case len(res.audio) > 0: return gtsmodel.FileTypeAudio, "mka" } diff --git a/internal/media/ffmpeg/wasm.go b/internal/media/ffmpeg/wasm.go index 4a230eec7..b23809d93 100644 --- a/internal/media/ffmpeg/wasm.go +++ b/internal/media/ffmpeg/wasm.go @@ -27,13 +27,8 @@ ffprobelib "codeberg.org/gruf/go-ffmpreg/embed/ffprobe" "codeberg.org/gruf/go-ffmpreg/wasm" "github.com/tetratelabs/wazero" - "github.com/tetratelabs/wazero/imports/wasi_snapshot_preview1" ) -// Use all core features required by ffmpeg / ffprobe -// (these should be the same but we OR just in case). -const corefeatures = wasm.CoreFeatures - var ( // shared WASM runtime instance. runtime wazero.Runtime @@ -91,38 +86,26 @@ func compileFfprobe(ctx context.Context) error { // initRuntime initializes the global wazero.Runtime, // if already initialized this function is a no-op. -func initRuntime(ctx context.Context) error { +func initRuntime(ctx context.Context) (err error) { if runtime != nil { return nil } - var cache wazero.CompilationCache + // Create new runtime config. + cfg := wazero.NewRuntimeConfig() if dir := os.Getenv("GTS_WAZERO_COMPILATION_CACHE"); dir != "" { - var err error - // Use on-filesystem compilation cache given by env. - cache, err = wazero.NewCompilationCacheWithDir(dir) + cache, err := wazero.NewCompilationCacheWithDir(dir) if err != nil { return err } + + // Update runtime config with cache. + cfg = cfg.WithCompilationCache(cache) } - // Prepare config with cache. - cfg := wazero.NewRuntimeConfig() - cfg = cfg.WithCoreFeatures(corefeatures) - cfg = cfg.WithCompilationCache(cache) - - // Instantiate runtime with prepared config. - rt := wazero.NewRuntimeWithConfig(ctx, cfg) - - // Instantiate wasi snapshot preview features into runtime. - _, err := wasi_snapshot_preview1.Instantiate(ctx, rt) - if err != nil { - return err - } - - // Set runtime. - runtime = rt - return nil + // Initialize new runtime from config. + runtime, err = wasm.NewRuntime(ctx, cfg) + return } diff --git a/internal/media/processingemoji.go b/internal/media/processingemoji.go index 18d7895fd..750144296 100644 --- a/internal/media/processingemoji.go +++ b/internal/media/processingemoji.go @@ -158,7 +158,7 @@ func (p *ProcessingEmoji) store(ctx context.Context) error { if err != nil && !isUnsupportedTypeErr(err) { return gtserror.Newf("ffprobe error: %w", err) } else if result == nil { - log.Warn(ctx, "unsupported data type") + log.Warnf(ctx, "unsupported data type by ffprobe: %v", err) return nil } diff --git a/internal/media/processingmedia.go b/internal/media/processingmedia.go index acd326457..4c6670b06 100644 --- a/internal/media/processingmedia.go +++ b/internal/media/processingmedia.go @@ -22,6 +22,7 @@ "os" errorsv2 "codeberg.org/gruf/go-errors/v2" + "codeberg.org/gruf/go-kv" "codeberg.org/gruf/go-runners" "github.com/superseriousbusiness/gotosocial/internal/gtserror" @@ -166,7 +167,7 @@ func (p *ProcessingMedia) store(ctx context.Context) error { if err != nil && !isUnsupportedTypeErr(err) { return gtserror.Newf("ffprobe error: %w", err) } else if result == nil { - log.Warn(ctx, "unsupported data type") + log.Warnf(ctx, "unsupported data type by ffprobe: %v", err) return nil } @@ -214,7 +215,10 @@ func (p *ProcessingMedia) store(ctx context.Context) error { // metadata, in order to keep tags. default: - log.Warn(ctx, "unsupported data type: %s", result.format) + log.WarnKVs(ctx, kv.Fields{ + {K: "format", V: result.format}, + {K: "msg", V: "unsupported data type"}, + }...) return nil } diff --git a/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffmpeg/ffmpeg.wasm b/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffmpeg/ffmpeg.wasm index e2083fffd..9d1faa3ed 100644 Binary files a/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffmpeg/ffmpeg.wasm and b/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffmpeg/ffmpeg.wasm differ diff --git a/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffprobe/ffprobe.wasm b/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffprobe/ffprobe.wasm index b460fa0f9..0094c53f4 100644 Binary files a/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffprobe/ffprobe.wasm and b/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffprobe/ffprobe.wasm differ diff --git a/vendor/codeberg.org/gruf/go-ffmpreg/wasm/funcs.go b/vendor/codeberg.org/gruf/go-ffmpreg/wasm/funcs.go new file mode 100644 index 000000000..a809ff120 --- /dev/null +++ b/vendor/codeberg.org/gruf/go-ffmpreg/wasm/funcs.go @@ -0,0 +1,74 @@ +package wasm + +import ( + "context" + + "github.com/tetratelabs/wazero/api" + "github.com/tetratelabs/wazero/experimental" +) + +type snapshotskey struct{} + +// withSetjmpLongjmp updates the context to contain wazero/experimental.Snapshotter{} support, +// and embeds the necessary snapshots map required for later calls to Setjmp() / Longjmp(). +func withSetjmpLongjmp(ctx context.Context) context.Context { + snapshots := make(map[uint32]experimental.Snapshot, 10) + ctx = experimental.WithSnapshotter(ctx) + ctx = context.WithValue(ctx, snapshotskey{}, snapshots) + return ctx +} + +func getSnapshots(ctx context.Context) map[uint32]experimental.Snapshot { + v, _ := ctx.Value(snapshotskey{}).(map[uint32]experimental.Snapshot) + return v +} + +// setjmp implements the C function: setjmp(env jmp_buf) +func setjmp(ctx context.Context, mod api.Module, stack []uint64) { + + // Input arguments. + envptr := api.DecodeU32(stack[0]) + + // Take snapshot of current execution environment. + snapshotter := experimental.GetSnapshotter(ctx) + snapshot := snapshotter.Snapshot() + + // Get stored snapshots map. + snapshots := getSnapshots(ctx) + if snapshots == nil { + panic("setjmp / longjmp not supported") + } + + // Set latest snapshot in map. + snapshots[envptr] = snapshot + + // Set return. + stack[0] = 0 +} + +// longjmp implements the C function: int longjmp(env jmp_buf, value int) +func longjmp(ctx context.Context, mod api.Module, stack []uint64) { + + // Input arguments. + envptr := api.DecodeU32(stack[0]) + // val := stack[1] + + // Get stored snapshots map. + snapshots := getSnapshots(ctx) + if snapshots == nil { + panic("setjmp / longjmp not supported") + } + + // Get snapshot stored in map. + snapshot := snapshots[envptr] + if snapshot == nil { + panic("must first call setjmp") + } + + // Set return. + stack[0] = 0 + + // Restore execution and + // return passed value arg. + snapshot.Restore(stack[1:]) +} diff --git a/vendor/codeberg.org/gruf/go-ffmpreg/wasm/instance.go b/vendor/codeberg.org/gruf/go-ffmpreg/wasm/run.go similarity index 82% rename from vendor/codeberg.org/gruf/go-ffmpreg/wasm/instance.go rename to vendor/codeberg.org/gruf/go-ffmpreg/wasm/run.go index d2eccd9e9..62ce2bc25 100644 --- a/vendor/codeberg.org/gruf/go-ffmpreg/wasm/instance.go +++ b/vendor/codeberg.org/gruf/go-ffmpreg/wasm/run.go @@ -6,19 +6,9 @@ "unsafe" "github.com/tetratelabs/wazero" - "github.com/tetratelabs/wazero/api" "github.com/tetratelabs/wazero/sys" ) -// CoreFeatures are the WebAssembly Core specification -// features our embedded binaries are compiled with. -const CoreFeatures = api.CoreFeatureSIMD | - api.CoreFeatureBulkMemoryOperations | - api.CoreFeatureNonTrappingFloatToIntConversion | - api.CoreFeatureMutableGlobal | - api.CoreFeatureReferenceTypes | - api.CoreFeatureSignExtensionOps - // Args encompasses a common set of // configuration options often passed to // wazero.Runtime on module instantiation. @@ -64,6 +54,9 @@ func Run( modcfg = args.Config(modcfg) } + // Enable setjmp longjmp. + ctx = withSetjmpLongjmp(ctx) + // Instantiate the module from precompiled wasm module data. mod, err := runtime.InstantiateModule(ctx, module, modcfg) diff --git a/vendor/codeberg.org/gruf/go-ffmpreg/wasm/runtime.go b/vendor/codeberg.org/gruf/go-ffmpreg/wasm/runtime.go new file mode 100644 index 000000000..328a26193 --- /dev/null +++ b/vendor/codeberg.org/gruf/go-ffmpreg/wasm/runtime.go @@ -0,0 +1,67 @@ +package wasm + +import ( + "context" + + "github.com/tetratelabs/wazero" + "github.com/tetratelabs/wazero/api" + "github.com/tetratelabs/wazero/imports/wasi_snapshot_preview1" +) + +// CoreFeatures are the WebAssembly Core specification +// features our embedded binaries are compiled with. +const CoreFeatures = api.CoreFeatureSIMD | + api.CoreFeatureBulkMemoryOperations | + api.CoreFeatureNonTrappingFloatToIntConversion | + api.CoreFeatureMutableGlobal | + api.CoreFeatureReferenceTypes | + api.CoreFeatureSignExtensionOps + +// NewRuntime returns a new WebAssembly wazero.Runtime compatible with go-ffmpreg. +func NewRuntime(ctx context.Context, cfg wazero.RuntimeConfig) (wazero.Runtime, error) { + var err error + + if cfg == nil { + // Ensure runtime config is set. + cfg = wazero.NewRuntimeConfig() + } + + // Set core features ffmpeg compiled with. + cfg = cfg.WithCoreFeatures(CoreFeatures) + + // Instantiate runtime with prepared config. + rt := wazero.NewRuntimeWithConfig(ctx, cfg) + + // Prepare default "env" host module. + env := rt.NewHostModuleBuilder("env") + + // Register setjmp host function. + env = env.NewFunctionBuilder(). + WithGoModuleFunction( + api.GoModuleFunc(setjmp), + []api.ValueType{api.ValueTypeI32}, + []api.ValueType{api.ValueTypeI32}, + ).Export("setjmp") + + // Register longjmp host function. + env = env.NewFunctionBuilder(). + WithGoModuleFunction( + api.GoModuleFunc(longjmp), + []api.ValueType{api.ValueTypeI32, api.ValueTypeI32}, + []api.ValueType{}, + ).Export("longjmp") + + // Instantiate "env" module. + _, err = env.Instantiate(ctx) + if err != nil { + return nil, err + } + + // Instantiate the wasi snapshot preview 1 in runtime. + _, err = wasi_snapshot_preview1.Instantiate(ctx, rt) + if err != nil { + return nil, err + } + + return rt, nil +} diff --git a/vendor/github.com/minio/minio-go/v7/README.md b/vendor/github.com/minio/minio-go/v7/README.md index 82f70a131..be7963c52 100644 --- a/vendor/github.com/minio/minio-go/v7/README.md +++ b/vendor/github.com/minio/minio-go/v7/README.md @@ -253,7 +253,7 @@ The full API Reference is available here. * [setbucketencryption.go](https://github.com/minio/minio-go/blob/master/examples/s3/setbucketencryption.go) * [getbucketencryption.go](https://github.com/minio/minio-go/blob/master/examples/s3/getbucketencryption.go) -* [deletebucketencryption.go](https://github.com/minio/minio-go/blob/master/examples/s3/deletebucketencryption.go) +* [removebucketencryption.go](https://github.com/minio/minio-go/blob/master/examples/s3/removebucketencryption.go) ### Full Examples : Bucket replication Operations diff --git a/vendor/github.com/minio/minio-go/v7/api-put-object-streaming.go b/vendor/github.com/minio/minio-go/v7/api-put-object-streaming.go index eef976c8c..dac4c0efe 100644 --- a/vendor/github.com/minio/minio-go/v7/api-put-object-streaming.go +++ b/vendor/github.com/minio/minio-go/v7/api-put-object-streaming.go @@ -52,7 +52,7 @@ func (c *Client) putObjectMultipartStream(ctx context.Context, bucketName, objec } else { info, err = c.putObjectMultipartStreamOptionalChecksum(ctx, bucketName, objectName, reader, size, opts) } - if err != nil { + if err != nil && s3utils.IsGoogleEndpoint(*c.endpointURL) { errResp := ToErrorResponse(err) // Verify if multipart functionality is not available, if not // fall back to single PutObject operation. diff --git a/vendor/github.com/minio/minio-go/v7/api.go b/vendor/github.com/minio/minio-go/v7/api.go index 90e9b63f5..54a20e711 100644 --- a/vendor/github.com/minio/minio-go/v7/api.go +++ b/vendor/github.com/minio/minio-go/v7/api.go @@ -128,7 +128,7 @@ type Options struct { // Global constants. const ( libraryName = "minio-go" - libraryVersion = "v7.0.78" + libraryVersion = "v7.0.79" ) // User Agent should always following the below style. diff --git a/vendor/github.com/tdewolff/minify/v2/README.md b/vendor/github.com/tdewolff/minify/v2/README.md index f540ee552..81d91b8ed 100644 --- a/vendor/github.com/tdewolff/minify/v2/README.md +++ b/vendor/github.com/tdewolff/minify/v2/README.md @@ -702,7 +702,7 @@ func compileTemplates(filenames ...string) (*template.Template, error) { tmpl = tmpl.New(name) } - b, err := ioutil.ReadFile(filename) + b, err := os.ReadFile(filename) if err != nil { return nil, err } diff --git a/vendor/github.com/tdewolff/minify/v2/minify.go b/vendor/github.com/tdewolff/minify/v2/minify.go index 0e9a2e113..a40ec504f 100644 --- a/vendor/github.com/tdewolff/minify/v2/minify.go +++ b/vendor/github.com/tdewolff/minify/v2/minify.go @@ -6,7 +6,6 @@ "errors" "fmt" "io" - "io/ioutil" "log" "mime" "net/http" @@ -69,14 +68,14 @@ func (c *cmdMinifier) Minify(_ *M, w io.Writer, r io.Reader, _ map[string]string if j := strings.Index(arg, "$in"); j != -1 { var err error ext := cmdArgExtension.FindString(arg[j+3:]) - if in, err = ioutil.TempFile("", "minify-in-*"+ext); err != nil { + if in, err = os.CreateTemp("", "minify-in-*"+ext); err != nil { return err } cmd.Args[i] = arg[:j] + in.Name() + arg[j+3+len(ext):] } else if j := strings.Index(arg, "$out"); j != -1 { var err error ext := cmdArgExtension.FindString(arg[j+4:]) - if out, err = ioutil.TempFile("", "minify-out-*"+ext); err != nil { + if out, err = os.CreateTemp("", "minify-out-*"+ext); err != nil { return err } cmd.Args[i] = arg[:j] + out.Name() + arg[j+4+len(ext):] diff --git a/vendor/github.com/tdewolff/parse/v2/binary.go b/vendor/github.com/tdewolff/parse/v2/binary.go index 6d1f9ef26..0b2dd8d19 100644 --- a/vendor/github.com/tdewolff/parse/v2/binary.go +++ b/vendor/github.com/tdewolff/parse/v2/binary.go @@ -510,14 +510,6 @@ func NewBinaryReader2File(filename string) (*BinaryReader2, error) { return NewBinaryReader2(f), nil } -func NewBinaryReader2Mmap(filename string) (*BinaryReader2, error) { - f, err := newBinaryReaderMmap(filename) - if err != nil { - return nil, err - } - return NewBinaryReader2(f), nil -} - func (r *BinaryReader2) Err() error { return r.err } diff --git a/vendor/github.com/tdewolff/parse/v2/binary_unix.go b/vendor/github.com/tdewolff/parse/v2/binary_unix.go index d014f398f..4a7218690 100644 --- a/vendor/github.com/tdewolff/parse/v2/binary_unix.go +++ b/vendor/github.com/tdewolff/parse/v2/binary_unix.go @@ -81,3 +81,11 @@ func (r *binaryReaderMmap) Bytes(n int, off int64) ([]byte, error) { } return r.data[off : off+int64(n) : off+int64(n)], nil } + +func NewBinaryReader2Mmap(filename string) (*BinaryReader2, error) { + f, err := newBinaryReaderMmap(filename) + if err != nil { + return nil, err + } + return NewBinaryReader2(f), nil +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 9846a4c01..b663fed15 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -24,7 +24,7 @@ codeberg.org/gruf/go-fastcopy # codeberg.org/gruf/go-fastpath/v2 v2.0.0 ## explicit; go 1.14 codeberg.org/gruf/go-fastpath/v2 -# codeberg.org/gruf/go-ffmpreg v0.3.1 +# codeberg.org/gruf/go-ffmpreg v0.4.2 ## explicit; go 1.22.0 codeberg.org/gruf/go-ffmpreg/embed/ffmpeg codeberg.org/gruf/go-ffmpreg/embed/ffprobe @@ -486,7 +486,7 @@ github.com/miekg/dns # github.com/minio/md5-simd v1.1.2 ## explicit; go 1.14 github.com/minio/md5-simd -# github.com/minio/minio-go/v7 v7.0.78 +# github.com/minio/minio-go/v7 v7.0.79 ## explicit; go 1.22 github.com/minio/minio-go/v7 github.com/minio/minio-go/v7/pkg/cors @@ -833,11 +833,11 @@ github.com/superseriousbusiness/oauth2/v4/generates github.com/superseriousbusiness/oauth2/v4/manage github.com/superseriousbusiness/oauth2/v4/models github.com/superseriousbusiness/oauth2/v4/server -# github.com/tdewolff/minify/v2 v2.21.0 +# github.com/tdewolff/minify/v2 v2.21.1 ## explicit; go 1.18 github.com/tdewolff/minify/v2 github.com/tdewolff/minify/v2/html -# github.com/tdewolff/parse/v2 v2.7.17 +# github.com/tdewolff/parse/v2 v2.7.18 ## explicit; go 1.13 github.com/tdewolff/parse/v2 github.com/tdewolff/parse/v2/buffer