From ebfc7de4f88ef19a14fd6f69749d6f78574142ea Mon Sep 17 00:00:00 2001 From: Pascal Zimmermann Date: Tue, 10 Mar 2026 21:03:19 +0100 Subject: [PATCH] feat: Add flit-core support Signed-off-by: Pascal Zimmermann --- README.md | 4 ++- go.mod | 2 +- go.sum | 2 ++ manifest.yml | 9 ++++++ src/python/supply/supply.go | 2 +- src/python/supply/supply_test.go | 3 +- .../libbuildpack/bratshelper/data.go | 3 +- .../libbuildpack/bratshelper/language.go | 4 +-- .../libbuildpack/bratshelper/modify.go | 5 ++-- .../libbuildpack/bratshelper/utils.go | 4 +-- .../cloudfoundry/libbuildpack/cutlass/cf.go | 6 ++-- .../libbuildpack/cutlass/docker.go | 3 +- .../libbuildpack/cutlass/glow/archiver.go | 4 +-- .../libbuildpack/cutlass/proxy.go | 4 +-- .../libbuildpack/cutlass/test_helpers.go | 10 ++----- .../libbuildpack/cutlass/utils.go | 3 +- .../cloudfoundry/libbuildpack/installer.go | 3 +- .../cloudfoundry/libbuildpack/json.go | 4 +-- .../cloudfoundry/libbuildpack/manifest.go | 3 +- .../libbuildpack/packager/bindata.go | 3 +- .../libbuildpack/packager/cfbindata.go | 5 ++-- .../libbuildpack/packager/packager.go | 11 ++++--- .../libbuildpack/packager/summary.go | 4 +-- .../libbuildpack/snapshot/snapshot.go | 3 +- .../cloudfoundry/libbuildpack/stager.go | 21 +++++++------- .../cloudfoundry/libbuildpack/util.go | 29 +++++++++++-------- .../cloudfoundry/libbuildpack/yaml.go | 4 +-- vendor/modules.txt | 2 +- 28 files changed, 82 insertions(+), 78 deletions(-) diff --git a/README.md b/README.md index 897a55aba..5adcb0293 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,9 @@ To build this buildpack, run the following commands from the buildpack's directo 1. Install buildpack-packager ```bash - go install github.com/cloudfoundry/libbuildpack/packager/buildpack-packager + go get github.com/cloudfoundry/libbuildpack + cd ~/go/src/github.com/cloudfoundry/libbuildpack && GO111MODULE=on go mod download + cd packager/buildpack-packager && GO111MODULE=on go install ``` 1. Build the buildpack diff --git a/go.mod b/go.mod index e58225e0e..d19fc6a54 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.24.0 require ( github.com/Dynatrace/libbuildpack-dynatrace v1.8.0 github.com/blang/semver v3.5.1+incompatible - github.com/cloudfoundry/libbuildpack v0.0.0-20260306121953-8ab9253c8181 + github.com/cloudfoundry/libbuildpack v0.0.0-20260306125332-dcaf55eb6f33 github.com/cloudfoundry/switchblade v0.9.4 github.com/golang/mock v1.6.0 github.com/kr/text v0.2.0 diff --git a/go.sum b/go.sum index d6cf277e4..90837db57 100644 --- a/go.sum +++ b/go.sum @@ -748,6 +748,8 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk github.com/cloudflare/circl v1.1.0/go.mod h1:prBCrKB9DV4poKZY1l9zBXg2QJY7mvgRvtMxxK7fi4I= github.com/cloudfoundry/libbuildpack v0.0.0-20260306121953-8ab9253c8181 h1:di63teVid/uT+6TAqBSXFqxNM3sAbxk6hssYppZBvbw= github.com/cloudfoundry/libbuildpack v0.0.0-20260306121953-8ab9253c8181/go.mod h1:Qtj1XicpoDn88w2cvVCYtw1Whq+kK3bouin0xNZ9lIU= +github.com/cloudfoundry/libbuildpack v0.0.0-20260306125332-dcaf55eb6f33 h1:O3uSzqYH1x5yK/awqNJiwcxohLHfPkXO4KOgVHgCg4o= +github.com/cloudfoundry/libbuildpack v0.0.0-20260306125332-dcaf55eb6f33/go.mod h1:Qtj1XicpoDn88w2cvVCYtw1Whq+kK3bouin0xNZ9lIU= github.com/cloudfoundry/switchblade v0.9.4 h1:93O90a/DRRcZ4h50htDh4z7+FMliqy/lQH6IFgVa+mQ= github.com/cloudfoundry/switchblade v0.9.4/go.mod h1:hIEQdGAsuNnzlyQfsD5OIORt38weSBar6Wq5/JX6Omo= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= diff --git a/manifest.yml b/manifest.yml index b61d4c9bb..0ada8b4f1 100644 --- a/manifest.yml +++ b/manifest.yml @@ -209,6 +209,15 @@ dependencies: - cflinuxfs4 source: https://files.pythonhosted.org/packages/86/ff/f75651350db3cf2ef767371307eb163f3cc1ac03e16fdf3ac347607f7edb/setuptools-80.10.1.tar.gz source_sha256: bf2e513eb8144c3298a3bd28ab1a5edb739131ec5c22e045ff93cd7f5319703a +- name: flit-core + version: 3.12.0 + uri: https://buildpacks.cloudfoundry.org/dependencies/flit_core/flit_core-3.12.0_linux_noarch_any-stack_e8745ea3.tgz + sha256: e8745ea31b2af10b2056552a65181b52f8fcc645f1ac13a4f6440525fcc896d1 + cf_stacks: + - cflinuxfs4 + - cflinuxfs3 + source: https://files.pythonhosted.org/packages/69/59/b6fc2188dfc7ea4f936cd12b49d707f66a1cb7a1d2c16172963534db741b/flit_core-3.12.0.tar.gz + source_sha256: 18f63100d6f94385c6ed57a72073443e1a71a4acb4339491615d0f16d6ff01b2 include_files: - CHANGELOG - CONTRIBUTING.md diff --git a/src/python/supply/supply.go b/src/python/supply/supply.go index b36a48fd9..32b513c49 100644 --- a/src/python/supply/supply.go +++ b/src/python/supply/supply.go @@ -743,7 +743,7 @@ func (s *Supplier) RunPipVendored() error { // dependencies - wheel and setuptools. These are packaged by the dependency // pipeline within the "pip" dependency. func (s *Supplier) InstallCommonBuildDependencies() error { - var commonDeps = []string{"wheel", "setuptools"} + var commonDeps = []string{"wheel", "setuptools", "flit-core"} tempPath := filepath.Join("/tmp", "common_build_deps") if err := s.Installer.InstallOnlyVersion("pip", tempPath); err != nil { return err diff --git a/src/python/supply/supply_test.go b/src/python/supply/supply_test.go index b7947dc30..9b37a64cc 100644 --- a/src/python/supply/supply_test.go +++ b/src/python/supply/supply_test.go @@ -633,10 +633,11 @@ MarkupSafe==2.0.1 Describe("InstallCommonBuildDependencies", func() { Context("successful installation", func() { - It("runs command to install wheel and setuptools", func() { + It("runs command to install wheel, setuptools and flit-core", func() { mockInstaller.EXPECT().InstallOnlyVersion("pip", "/tmp/common_build_deps") mockCommand.EXPECT().Execute(buildDir, gomock.Any(), gomock.Any(), "python", "-m", "pip", "install", "wheel", "--no-index", "--upgrade-strategy=only-if-needed", "--find-links=/tmp/common_build_deps") mockCommand.EXPECT().Execute(buildDir, gomock.Any(), gomock.Any(), "python", "-m", "pip", "install", "setuptools", "--no-index", "--upgrade-strategy=only-if-needed", "--find-links=/tmp/common_build_deps") + mockCommand.EXPECT().Execute(buildDir, gomock.Any(), gomock.Any(), "python", "-m", "pip", "install", "flit-core", "--no-index", "--upgrade-strategy=only-if-needed", "--find-links=/tmp/common_build_deps") Expect(supplier.InstallCommonBuildDependencies()).To(Succeed()) }) diff --git a/vendor/github.com/cloudfoundry/libbuildpack/bratshelper/data.go b/vendor/github.com/cloudfoundry/libbuildpack/bratshelper/data.go index ff8c21ed9..81f8f59f2 100644 --- a/vendor/github.com/cloudfoundry/libbuildpack/bratshelper/data.go +++ b/vendor/github.com/cloudfoundry/libbuildpack/bratshelper/data.go @@ -3,7 +3,6 @@ package bratshelper import ( "encoding/json" "fmt" - "io/ioutil" "os" "path/filepath" "strings" @@ -36,7 +35,7 @@ func InitBpData(stack string, stackAssociationSupported bool) *BpData { Data.BpDir, err = cutlass.FindRoot() Expect(err).NotTo(HaveOccurred()) - file, err := ioutil.ReadFile(filepath.Join(Data.BpDir, "manifest.yml")) + file, err := os.ReadFile(filepath.Join(Data.BpDir, "manifest.yml")) Expect(err).ToNot(HaveOccurred()) obj := make(map[string]interface{}) Expect(yaml.Unmarshal(file, &obj)).To(Succeed()) diff --git a/vendor/github.com/cloudfoundry/libbuildpack/bratshelper/language.go b/vendor/github.com/cloudfoundry/libbuildpack/bratshelper/language.go index ba85d2d4a..dfef2f68f 100644 --- a/vendor/github.com/cloudfoundry/libbuildpack/bratshelper/language.go +++ b/vendor/github.com/cloudfoundry/libbuildpack/bratshelper/language.go @@ -1,7 +1,7 @@ package bratshelper import ( - "io/ioutil" + "os" "path/filepath" "github.com/cloudfoundry/libbuildpack/cutlass" @@ -13,7 +13,7 @@ var cachedLanguage string func bpLanguage() string { if cachedLanguage == "" { - file, err := ioutil.ReadFile(filepath.Join(bpDir(), "manifest.yml")) + file, err := os.ReadFile(filepath.Join(bpDir(), "manifest.yml")) Expect(err).ToNot(HaveOccurred()) obj := make(map[string]interface{}) Expect(yaml.Unmarshal(file, &obj)).To(Succeed()) diff --git a/vendor/github.com/cloudfoundry/libbuildpack/bratshelper/modify.go b/vendor/github.com/cloudfoundry/libbuildpack/bratshelper/modify.go index 8d3b2a276..432e6261a 100644 --- a/vendor/github.com/cloudfoundry/libbuildpack/bratshelper/modify.go +++ b/vendor/github.com/cloudfoundry/libbuildpack/bratshelper/modify.go @@ -4,7 +4,6 @@ import ( "archive/zip" "bytes" "io" - "io/ioutil" "os" yaml "gopkg.in/yaml.v2" @@ -70,7 +69,7 @@ func modifyZipfile(path string, cb func(path string, r io.Reader) (io.Reader, er } defer r.Close() - newfile, err := ioutil.TempFile("", "buildpack.zip") + newfile, err := os.CreateTemp("", "buildpack.zip") if err != nil { return "", err } @@ -117,7 +116,7 @@ func modifyZipfile(path string, cb func(path string, r io.Reader) (io.Reader, er } func changeManifest(r io.Reader, cb func(*Manifest)) (io.Reader, error) { - data, err := ioutil.ReadAll(r) + data, err := io.ReadAll(r) if err != nil { return nil, err } diff --git a/vendor/github.com/cloudfoundry/libbuildpack/bratshelper/utils.go b/vendor/github.com/cloudfoundry/libbuildpack/bratshelper/utils.go index 97062ba25..9cc52dc99 100644 --- a/vendor/github.com/cloudfoundry/libbuildpack/bratshelper/utils.go +++ b/vendor/github.com/cloudfoundry/libbuildpack/bratshelper/utils.go @@ -1,7 +1,7 @@ package bratshelper import ( - "io/ioutil" + "os" "path/filepath" "time" @@ -22,7 +22,7 @@ func DestroyApp(app *cutlass.App) { func AddDotProfileScriptToApp(dir string) { profilePath := filepath.Join(dir, ".profile") - Expect(ioutil.WriteFile(profilePath, []byte(`#!/usr/bin/env bash + Expect(os.WriteFile(profilePath, []byte(`#!/usr/bin/env bash echo PROFILE_SCRIPT_IS_PRESENT_AND_RAN `), 0755)).To(Succeed()) } diff --git a/vendor/github.com/cloudfoundry/libbuildpack/cutlass/cf.go b/vendor/github.com/cloudfoundry/libbuildpack/cutlass/cf.go index b05f8a14f..899430419 100644 --- a/vendor/github.com/cloudfoundry/libbuildpack/cutlass/cf.go +++ b/vendor/github.com/cloudfoundry/libbuildpack/cutlass/cf.go @@ -5,7 +5,7 @@ import ( "crypto/tls" "encoding/json" "fmt" - "io/ioutil" + "io" "net/http" "os" "os/exec" @@ -254,7 +254,7 @@ func (a *App) SpaceGUID() (string, error) { if cfHome == "" { cfHome = os.Getenv("HOME") } - bytes, err := ioutil.ReadFile(filepath.Join(cfHome, ".cf", "config.json")) + bytes, err := os.ReadFile(filepath.Join(cfHome, ".cf", "config.json")) if err != nil { return "", err } @@ -466,7 +466,7 @@ func (a *App) Get(path string, headers map[string]string) (string, map[string][] return "", map[string][]string{}, err } defer resp.Body.Close() - data, err := ioutil.ReadAll(resp.Body) + data, err := io.ReadAll(resp.Body) if err != nil { return "", map[string][]string{}, err } diff --git a/vendor/github.com/cloudfoundry/libbuildpack/cutlass/docker.go b/vendor/github.com/cloudfoundry/libbuildpack/cutlass/docker.go index ef87b9c7b..51f2eb88d 100644 --- a/vendor/github.com/cloudfoundry/libbuildpack/cutlass/docker.go +++ b/vendor/github.com/cloudfoundry/libbuildpack/cutlass/docker.go @@ -3,7 +3,6 @@ package cutlass import ( "fmt" "io" - "io/ioutil" "math/rand" "os" "os/exec" @@ -51,7 +50,7 @@ func InternetTrafficForNetwork(networkName, fixturePath, buildpackPath string, e session := DefaultLogger.Session("internet-traffic-for-network", data) session.Debug("preparing-docker-build-context") - tmpDir, err := ioutil.TempDir("", "docker-context") + tmpDir, err := os.MkdirTemp("", "docker-context") if err != nil { return nil, false, nil, fmt.Errorf("failed to create docker context directory: %s", err) } diff --git a/vendor/github.com/cloudfoundry/libbuildpack/cutlass/glow/archiver.go b/vendor/github.com/cloudfoundry/libbuildpack/cutlass/glow/archiver.go index 486d97afc..27b02e937 100644 --- a/vendor/github.com/cloudfoundry/libbuildpack/cutlass/glow/archiver.go +++ b/vendor/github.com/cloudfoundry/libbuildpack/cutlass/glow/archiver.go @@ -2,7 +2,7 @@ package glow import ( "fmt" - "io/ioutil" + "os" "path/filepath" "regexp" ) @@ -25,7 +25,7 @@ func NewArchiver(packager Packager) Archiver { } func (a Archiver) Archive(dir, stack, tag string, cached bool) (string, error) { - version, err := ioutil.ReadFile(filepath.Join(dir, "VERSION")) + version, err := os.ReadFile(filepath.Join(dir, "VERSION")) if err != nil { return "", err } diff --git a/vendor/github.com/cloudfoundry/libbuildpack/cutlass/proxy.go b/vendor/github.com/cloudfoundry/libbuildpack/cutlass/proxy.go index f588a54b8..5af10288e 100644 --- a/vendor/github.com/cloudfoundry/libbuildpack/cutlass/proxy.go +++ b/vendor/github.com/cloudfoundry/libbuildpack/cutlass/proxy.go @@ -2,10 +2,10 @@ package cutlass import ( "fmt" - "io/ioutil" "net" "net/http/httptest" "net/url" + "os" "github.com/elazarl/goproxy" ) @@ -34,7 +34,7 @@ func main() { proxyURL, err := url.Parse(p.URL) listenMsg := fmt.Sprintf("Listening on Port: %s", proxyURL.Port()) fmt.Println(listenMsg) - if err := ioutil.WriteFile("server.log", []byte(listenMsg), 0644); err != nil { + if err := os.WriteFile("server.log", []byte(listenMsg), 0644); err != nil { fmt.Println("Failed to write to log") } diff --git a/vendor/github.com/cloudfoundry/libbuildpack/cutlass/test_helpers.go b/vendor/github.com/cloudfoundry/libbuildpack/cutlass/test_helpers.go index 30cea8b12..ddef3a53b 100644 --- a/vendor/github.com/cloudfoundry/libbuildpack/cutlass/test_helpers.go +++ b/vendor/github.com/cloudfoundry/libbuildpack/cutlass/test_helpers.go @@ -5,9 +5,7 @@ import ( "bytes" "fmt" "io" - "io/ioutil" "log" - "math/rand" "os" "path/filepath" "strings" @@ -111,7 +109,7 @@ func PackageUniquelyVersionedBuildpack(stack string, stackAssociationSupported b return VersionedBuildpackPackage{}, fmt.Errorf("Failed to find root: %v", err) } - data, err := ioutil.ReadFile(filepath.Join(bpDir, "VERSION")) + data, err := os.ReadFile(filepath.Join(bpDir, "VERSION")) if err != nil { return VersionedBuildpackPackage{}, fmt.Errorf("Failed to read VERSION file: %v", err) } @@ -220,7 +218,7 @@ func CopyCfHome() error { if cf_home == "" { cf_home = os.Getenv("HOME") } - cf_home_new, err := ioutil.TempDir("", "cf-home-copy") + cf_home_new, err := os.MkdirTemp("", "cf-home-copy") if err != nil { return err } @@ -235,8 +233,6 @@ func CopyCfHome() error { } func SeedRandom() { - seed := int64(time.Now().Nanosecond() + os.Getpid()) - rand.Seed(seed) } func RemovePackagedBuildpack(buildpack VersionedBuildpackPackage) error { @@ -265,7 +261,7 @@ func readVersionFromZip(filePath string) (string, error) { return "", err } - out, err := ioutil.ReadAll(rc) + out, err := io.ReadAll(rc) if err != nil { return "", err diff --git a/vendor/github.com/cloudfoundry/libbuildpack/cutlass/utils.go b/vendor/github.com/cloudfoundry/libbuildpack/cutlass/utils.go index 172b8e089..aa13ba96b 100644 --- a/vendor/github.com/cloudfoundry/libbuildpack/cutlass/utils.go +++ b/vendor/github.com/cloudfoundry/libbuildpack/cutlass/utils.go @@ -2,7 +2,6 @@ package cutlass import ( "io" - "io/ioutil" "math/rand" "os" "path/filepath" @@ -12,7 +11,7 @@ import ( ) func CopyFixture(srcDir string) (string, error) { - destDir, err := ioutil.TempDir("", "cutlass-fixture-copy") + destDir, err := os.MkdirTemp("", "cutlass-fixture-copy") if err != nil { return "", err } diff --git a/vendor/github.com/cloudfoundry/libbuildpack/installer.go b/vendor/github.com/cloudfoundry/libbuildpack/installer.go index 365b8d11b..ebcf2d406 100644 --- a/vendor/github.com/cloudfoundry/libbuildpack/installer.go +++ b/vendor/github.com/cloudfoundry/libbuildpack/installer.go @@ -4,7 +4,6 @@ import ( "crypto/sha256" "encoding/hex" "fmt" - "io/ioutil" "os" "path/filepath" "strings" @@ -47,7 +46,7 @@ func (i *Installer) InstallDependency(dep Dependency, outputDir string) error { func (i *Installer) InstallDependencyWithStrip(dep Dependency, outputDir string, stripComponents int) error { i.manifest.log.BeginStep("Installing %s %s", dep.Name, dep.Version) - tmpDir, err := ioutil.TempDir("", "downloads") + tmpDir, err := os.MkdirTemp("", "downloads") if err != nil { return err } diff --git a/vendor/github.com/cloudfoundry/libbuildpack/json.go b/vendor/github.com/cloudfoundry/libbuildpack/json.go index d6d124f82..7e747cb12 100644 --- a/vendor/github.com/cloudfoundry/libbuildpack/json.go +++ b/vendor/github.com/cloudfoundry/libbuildpack/json.go @@ -3,7 +3,7 @@ package libbuildpack import ( "bytes" "encoding/json" - "io/ioutil" + "os" ) type JSON struct { @@ -30,7 +30,7 @@ func removeBOM(b []byte) []byte { } func (j *JSON) Load(file string, obj interface{}) error { - data, err := ioutil.ReadFile(file) + data, err := os.ReadFile(file) if err != nil { return err } diff --git a/vendor/github.com/cloudfoundry/libbuildpack/manifest.go b/vendor/github.com/cloudfoundry/libbuildpack/manifest.go index 0629e0533..3381cbb06 100644 --- a/vendor/github.com/cloudfoundry/libbuildpack/manifest.go +++ b/vendor/github.com/cloudfoundry/libbuildpack/manifest.go @@ -2,7 +2,6 @@ package libbuildpack import ( "fmt" - "io/ioutil" "os" "path/filepath" "strings" @@ -179,7 +178,7 @@ func (m *Manifest) Language() string { } func (m *Manifest) Version() (string, error) { - version, err := ioutil.ReadFile(filepath.Join(m.manifestRootDir, "VERSION")) + version, err := os.ReadFile(filepath.Join(m.manifestRootDir, "VERSION")) if err != nil { return "", fmt.Errorf("unable to read VERSION file %s", err) } diff --git a/vendor/github.com/cloudfoundry/libbuildpack/packager/bindata.go b/vendor/github.com/cloudfoundry/libbuildpack/packager/bindata.go index 7ec30cca3..4a2eb0923 100644 --- a/vendor/github.com/cloudfoundry/libbuildpack/packager/bindata.go +++ b/vendor/github.com/cloudfoundry/libbuildpack/packager/bindata.go @@ -41,7 +41,6 @@ import ( "compress/gzip" "fmt" "io" - "io/ioutil" "os" "path/filepath" "strings" @@ -995,7 +994,7 @@ func RestoreAsset(dir, name string) error { if err != nil { return err } - err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode()) + err = os.WriteFile(_filePath(dir, name), data, info.Mode()) if err != nil { return err } diff --git a/vendor/github.com/cloudfoundry/libbuildpack/packager/cfbindata.go b/vendor/github.com/cloudfoundry/libbuildpack/packager/cfbindata.go index 56c17e599..85ead2f15 100644 --- a/vendor/github.com/cloudfoundry/libbuildpack/packager/cfbindata.go +++ b/vendor/github.com/cloudfoundry/libbuildpack/packager/cfbindata.go @@ -8,7 +8,6 @@ import ( "crypto/sha256" "encoding/hex" "fmt" - "io/ioutil" "os" "path/filepath" "strings" @@ -57,7 +56,7 @@ func OurRestoreAsset(dir, name string, funcMap template.FuncMap, shas map[string } oldSha256 := "" - if oldContents, err := ioutil.ReadFile(_filePath(dir, name)); err == nil { + if oldContents, err := os.ReadFile(_filePath(dir, name)); err == nil { oldSha256 = checksumHex(oldContents) } @@ -72,7 +71,7 @@ func OurRestoreAsset(dir, name string, funcMap template.FuncMap, shas map[string return err } - if err := ioutil.WriteFile(_filePath(dir, name), b.Bytes(), info.Mode()); err != nil { + if err := os.WriteFile(_filePath(dir, name), b.Bytes(), info.Mode()); err != nil { return err } diff --git a/vendor/github.com/cloudfoundry/libbuildpack/packager/packager.go b/vendor/github.com/cloudfoundry/libbuildpack/packager/packager.go index 755aa71a8..2f0810686 100644 --- a/vendor/github.com/cloudfoundry/libbuildpack/packager/packager.go +++ b/vendor/github.com/cloudfoundry/libbuildpack/packager/packager.go @@ -9,7 +9,6 @@ import ( "encoding/hex" "fmt" "io" - "io/ioutil" "log" "net/http" "net/url" @@ -27,7 +26,7 @@ type sha struct { } func readManifest(bpDir string) (Manifest, error) { - data, err := ioutil.ReadFile(filepath.Join(bpDir, "manifest.yml")) + data, err := os.ReadFile(filepath.Join(bpDir, "manifest.yml")) if err != nil { return Manifest{}, err } @@ -53,7 +52,7 @@ func CompileExtensionPackage(bpDir, version string, cached bool, stack string) ( return "", fmt.Errorf("Failed to copy %s: %v", bpDir, err) } - err = ioutil.WriteFile(filepath.Join(dir, "VERSION"), []byte(version), 0644) + err = os.WriteFile(filepath.Join(dir, "VERSION"), []byte(version), 0644) if err != nil { return "", fmt.Errorf("Failed to write VERSION file: %v", err) } @@ -168,7 +167,7 @@ func Package(bpDir, cacheDir, version, stack string, cached bool) (string, error } defer os.RemoveAll(dir) - err = ioutil.WriteFile(filepath.Join(dir, "VERSION"), []byte(version), 0644) + err = os.WriteFile(filepath.Join(dir, "VERSION"), []byte(version), 0644) if err != nil { return "", err } @@ -304,7 +303,7 @@ func DownloadFromURI(uri, fileName string) error { } func checkSha256(filePath, expectedSha256 string) error { - content, err := ioutil.ReadFile(filePath) + content, err := os.ReadFile(filePath) if err != nil { return err } @@ -373,7 +372,7 @@ func ZipFiles(filename string, files []File) error { } func CopyDirectory(srcDir string) (string, error) { - destDir, err := ioutil.TempDir("", "buildpack-packager") + destDir, err := os.MkdirTemp("", "buildpack-packager") if err != nil { return "", err } diff --git a/vendor/github.com/cloudfoundry/libbuildpack/packager/summary.go b/vendor/github.com/cloudfoundry/libbuildpack/packager/summary.go index 468855092..7381c30cf 100644 --- a/vendor/github.com/cloudfoundry/libbuildpack/packager/summary.go +++ b/vendor/github.com/cloudfoundry/libbuildpack/packager/summary.go @@ -2,7 +2,7 @@ package packager import ( "fmt" - "io/ioutil" + "os" "path/filepath" "sort" "strings" @@ -12,7 +12,7 @@ import ( func Summary(bpDir string) (string, error) { manifest := Manifest{} - data, err := ioutil.ReadFile(filepath.Join(bpDir, "manifest.yml")) + data, err := os.ReadFile(filepath.Join(bpDir, "manifest.yml")) if err != nil { return "", err } diff --git a/vendor/github.com/cloudfoundry/libbuildpack/snapshot/snapshot.go b/vendor/github.com/cloudfoundry/libbuildpack/snapshot/snapshot.go index 4f87c4f4e..2c7a7a74e 100644 --- a/vendor/github.com/cloudfoundry/libbuildpack/snapshot/snapshot.go +++ b/vendor/github.com/cloudfoundry/libbuildpack/snapshot/snapshot.go @@ -4,7 +4,6 @@ import ( "crypto/md5" "fmt" "io" - "io/ioutil" "os" "path/filepath" "strings" @@ -39,7 +38,7 @@ func Dir(dir string, logger Logger) *DirSnapshot { dirSnapshot.initialChecksum = checksum } - dirSnapshot.command.Execute(dir, ioutil.Discard, ioutil.Discard, "touch", "/tmp/checkpoint") + dirSnapshot.command.Execute(dir, io.Discard, io.Discard, "touch", "/tmp/checkpoint") } return dirSnapshot diff --git a/vendor/github.com/cloudfoundry/libbuildpack/stager.go b/vendor/github.com/cloudfoundry/libbuildpack/stager.go index f9c63e3f7..38a9d54a8 100644 --- a/vendor/github.com/cloudfoundry/libbuildpack/stager.go +++ b/vendor/github.com/cloudfoundry/libbuildpack/stager.go @@ -3,7 +3,6 @@ package libbuildpack import ( "errors" "fmt" - "io/ioutil" "os" "path/filepath" "strings" @@ -95,7 +94,7 @@ func (s *Stager) WriteEnvFile(envVar, envVal string) error { } - return ioutil.WriteFile(filepath.Join(envDir, envVar), []byte(envVal), 0644) + return os.WriteFile(filepath.Join(envDir, envVar), []byte(envVal), 0644) } func (s *Stager) LinkDirectoryInDepDir(destDir, depSubDir string) error { @@ -104,7 +103,7 @@ func (s *Stager) LinkDirectoryInDepDir(destDir, depSubDir string) error { return err } - files, err := ioutil.ReadDir(destDir) + files, err := os.ReadDir(destDir) if err != nil { return err } @@ -153,7 +152,7 @@ func (s *Stager) StagingComplete() { } func (s *Stager) ClearCache() error { - files, err := ioutil.ReadDir(s.cacheDir) + files, err := os.ReadDir(s.cacheDir) if err != nil { if os.IsNotExist(err) { return nil @@ -172,7 +171,7 @@ func (s *Stager) ClearCache() error { } func (s *Stager) ClearDepDir() error { - files, err := ioutil.ReadDir(s.DepDir()) + files, err := os.ReadDir(s.DepDir()) if err != nil { return err } @@ -234,14 +233,14 @@ func (s *Stager) SetStagingEnvironment() error { } for _, dir := range depsPaths { - files, err := ioutil.ReadDir(dir) + files, err := os.ReadDir(dir) if err != nil { return err } for _, file := range files { - if file.Mode().IsRegular() { - val, err := ioutil.ReadFile(filepath.Join(dir, file.Name())) + if file.Type().IsRegular() { + val, err := os.ReadFile(filepath.Join(dir, file.Name())) if err != nil { return err } @@ -293,13 +292,13 @@ func (s *Stager) SetLaunchEnvironment() error { depsIdx := sections[len(sections)-2] - files, err := ioutil.ReadDir(dir) + files, err := os.ReadDir(dir) if err != nil { return err } for _, file := range files { - if file.Mode().IsRegular() { + if file.Type().IsRegular() { src := filepath.Join(dir, file.Name()) dest := filepath.Join(s.profileDir, depsIdx+"_"+file.Name()) @@ -322,7 +321,7 @@ func (s *Stager) BuildpackVersion() (string, error) { } func existingDepsDirs(depsDir, subDir, prefix string) ([]string, error) { - files, err := ioutil.ReadDir(depsDir) + files, err := os.ReadDir(depsDir) if err != nil { return nil, err } diff --git a/vendor/github.com/cloudfoundry/libbuildpack/util.go b/vendor/github.com/cloudfoundry/libbuildpack/util.go index 686103266..93b442863 100644 --- a/vendor/github.com/cloudfoundry/libbuildpack/util.go +++ b/vendor/github.com/cloudfoundry/libbuildpack/util.go @@ -9,7 +9,6 @@ import ( "errors" "fmt" "io" - "io/ioutil" "math/rand" "net/http" "net/url" @@ -22,17 +21,13 @@ import ( backoff "github.com/cenkalti/backoff/v4" ) -func init() { - rand.Seed(time.Now().UnixNano()) -} - func MoveDirectory(srcDir, destDir string) error { destExists, _ := FileExists(destDir) if !destExists { return os.Rename(srcDir, destDir) } - files, err := ioutil.ReadDir(srcDir) + files, err := os.ReadDir(srcDir) if err != nil { return err } @@ -43,7 +38,7 @@ func MoveDirectory(srcDir, destDir string) error { if exists, err := FileExists(dest); err != nil { return err } else if !exists { - if m := f.Mode(); m&os.ModeSymlink != 0 { + if m := f.Type(); m&os.ModeSymlink != 0 { if err = moveSymlinks(src, dest); err != nil { return err } @@ -69,7 +64,7 @@ func CopyDirectory(srcDir, destDir string) error { return errors.New("destination dir must exist") } - files, err := ioutil.ReadDir(srcDir) + files, err := os.ReadDir(srcDir) if err != nil { return err } @@ -78,12 +73,16 @@ func CopyDirectory(srcDir, destDir string) error { src := filepath.Join(srcDir, f.Name()) dest := filepath.Join(destDir, f.Name()) - if m := f.Mode(); m&os.ModeSymlink != 0 { + if m := f.Type(); m&os.ModeSymlink != 0 { if err = moveSymlinks(src, dest); err != nil { return err } } else if f.IsDir() { - err = os.MkdirAll(dest, f.Mode()) + fi, err := f.Info() + if err != nil { + return err + } + err = os.MkdirAll(dest, fi.Mode()) if err != nil { return err } @@ -96,7 +95,13 @@ func CopyDirectory(srcDir, destDir string) error { return err } - err = writeToFile(rc, dest, f.Mode()) + fi, err := f.Info() + if err != nil { + rc.Close() + return err + } + + err = writeToFile(rc, dest, fi.Mode()) if err != nil { rc.Close() return err @@ -500,7 +505,7 @@ func filterURI(rawURL string) (string, error) { } func CheckSha256(filePath, expectedSha256 string) error { - content, err := ioutil.ReadFile(filePath) + content, err := os.ReadFile(filePath) if err != nil { return err } diff --git a/vendor/github.com/cloudfoundry/libbuildpack/yaml.go b/vendor/github.com/cloudfoundry/libbuildpack/yaml.go index 8cbe8cb75..368ce12d0 100644 --- a/vendor/github.com/cloudfoundry/libbuildpack/yaml.go +++ b/vendor/github.com/cloudfoundry/libbuildpack/yaml.go @@ -2,7 +2,7 @@ package libbuildpack import ( "bytes" - "io/ioutil" + "os" yaml "gopkg.in/yaml.v2" ) @@ -15,7 +15,7 @@ func NewYAML() *YAML { } func (y *YAML) Load(file string, obj interface{}) error { - data, err := ioutil.ReadFile(file) + data, err := os.ReadFile(file) if err != nil { return err } diff --git a/vendor/modules.txt b/vendor/modules.txt index 5b3b396b0..797b92434 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -23,7 +23,7 @@ github.com/blang/semver # github.com/cenkalti/backoff/v4 v4.3.0 ## explicit; go 1.18 github.com/cenkalti/backoff/v4 -# github.com/cloudfoundry/libbuildpack v0.0.0-20260306121953-8ab9253c8181 +# github.com/cloudfoundry/libbuildpack v0.0.0-20260306125332-dcaf55eb6f33 ## explicit; go 1.22.5 github.com/cloudfoundry/libbuildpack github.com/cloudfoundry/libbuildpack/ansicleaner