Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F144495782
D47941.1774988537.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D47941.1774988537.diff
View Options
diff --git a/sysutils/skopeo/Makefile b/sysutils/skopeo/Makefile
--- a/sysutils/skopeo/Makefile
+++ b/sysutils/skopeo/Makefile
@@ -1,7 +1,7 @@
PORTNAME= skopeo
DISTVERSIONPREFIX= v
DISTVERSION= 1.16.1
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= sysutils
MAINTAINER= dfr@FreeBSD.org
diff --git a/sysutils/skopeo/files/patch-vendor_github.com_containers_storage_pkg_fileutils_exists__freebsd.go b/sysutils/skopeo/files/patch-vendor_github.com_containers_storage_pkg_fileutils_exists__freebsd.go
new file mode 100644
--- /dev/null
+++ b/sysutils/skopeo/files/patch-vendor_github.com_containers_storage_pkg_fileutils_exists__freebsd.go
@@ -0,0 +1,41 @@
+--- vendor/github.com/containers/storage/pkg/fileutils/exists_freebsd.go.orig 2024-12-06 15:50:57 UTC
++++ vendor/github.com/containers/storage/pkg/fileutils/exists_freebsd.go
+@@ -0,0 +1,38 @@
++package fileutils
++
++import (
++ "errors"
++ "os"
++ "syscall"
++
++ "golang.org/x/sys/unix"
++)
++
++// Exists checks whether a file or directory exists at the given path.
++// If the path is a symlink, the symlink is followed.
++func Exists(path string) error {
++ // It uses unix.Faccessat which is a faster operation compared to os.Stat for
++ // simply checking the existence of a file.
++ err := unix.Faccessat(unix.AT_FDCWD, path, unix.F_OK, 0)
++ if err != nil {
++ return &os.PathError{Op: "faccessat", Path: path, Err: err}
++ }
++ return nil
++}
++
++// Lexists checks whether a file or directory exists at the given path.
++// If the path is a symlink, the symlink itself is checked.
++func Lexists(path string) error {
++ // FreeBSD before 15.0 does not support the AT_SYMLINK_NOFOLLOW flag for
++ // faccessat. In this case, the call to faccessat will return EINVAL and
++ // we fall back to using Lstat.
++ err := unix.Faccessat(unix.AT_FDCWD, path, unix.F_OK, unix.AT_SYMLINK_NOFOLLOW)
++ if err != nil {
++ if errors.Is(err, syscall.EINVAL) {
++ _, err = os.Lstat(path)
++ return err
++ }
++ return &os.PathError{Op: "faccessat", Path: path, Err: err}
++ }
++ return nil
++}
diff --git a/sysutils/skopeo/files/patch-vendor_github.com_containers_storage_pkg_fileutils_exists__unix.go b/sysutils/skopeo/files/patch-vendor_github.com_containers_storage_pkg_fileutils_exists__unix.go
new file mode 100644
--- /dev/null
+++ b/sysutils/skopeo/files/patch-vendor_github.com_containers_storage_pkg_fileutils_exists__unix.go
@@ -0,0 +1,9 @@
+--- vendor/github.com/containers/storage/pkg/fileutils/exists_unix.go.orig 2024-12-06 15:50:49 UTC
++++ vendor/github.com/containers/storage/pkg/fileutils/exists_unix.go
+@@ -1,5 +1,4 @@
+-//go:build !windows
+-// +build !windows
++//go:build !windows && !freebsd
+
+ package fileutils
+
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Mar 31, 8:22 PM (10 h, 52 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28235859
Default Alt Text
D47941.1774988537.diff (2 KB)
Attached To
Mode
D47941: sysutils/skopeo: fix problems with 'skopeo copy' in v1.16.1
Attached
Detach File
Event Timeline
Log In to Comment