mirror of
https://github.com/rocky-linux/peridot.git
synced 2024-06-12 23:40:15 +00:00
Upgrade srpmproc to v0.4.2
Earlier srpmproc versions have a bug with VRE matching. The regex used to match the NVR was actually formed to match NVRA. This is generally not harmful, but NVRs that has an extra dot something in Release can throw off this regex into thinking that the dist is actually the arch.
This commit is contained in:
parent
6e752a3704
commit
5f06ed99d0
2
go.mod
2
go.mod
|
@ -37,7 +37,7 @@ require (
|
|||
github.com/pelletier/go-toml v1.8.1 // indirect
|
||||
github.com/pkg/errors v0.9.1 // indirect
|
||||
github.com/prometheus/client_golang v1.13.0
|
||||
github.com/rocky-linux/srpmproc v0.4.1
|
||||
github.com/rocky-linux/srpmproc v0.4.2
|
||||
github.com/sirupsen/logrus v1.8.1
|
||||
github.com/spf13/cobra v1.1.3
|
||||
github.com/spf13/pflag v1.0.5
|
||||
|
|
2
go.sum
2
go.sum
|
@ -667,6 +667,8 @@ github.com/rocky-linux/srpmproc v0.3.16 h1:kxJEiQsZ0DcMhX0vY482n82XvjPiP2WifxI3N
|
|||
github.com/rocky-linux/srpmproc v0.3.16/go.mod h1:vWZzxPTfxh4pmfr5Mw20FyrqyKsbGHzDwOlN+W5EMpw=
|
||||
github.com/rocky-linux/srpmproc v0.4.1 h1:qcq7bGLplKbu+dSKQ9VBwcTao3OqPNb6rdKz58MCFLA=
|
||||
github.com/rocky-linux/srpmproc v0.4.1/go.mod h1:x8Z2wqhV2JqRnYMhYz3thOQkfsSWjJkyX8DVGDPOb48=
|
||||
github.com/rocky-linux/srpmproc v0.4.2 h1:U8SnYPxYtJ2XIAnrcEvxx+PsHCi4uQsfIOIC754MKas=
|
||||
github.com/rocky-linux/srpmproc v0.4.2/go.mod h1:x8Z2wqhV2JqRnYMhYz3thOQkfsSWjJkyX8DVGDPOb48=
|
||||
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
|
||||
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
|
||||
github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||
|
|
1
vendor/github.com/rocky-linux/srpmproc/modulemd/modulemd.go
generated
vendored
1
vendor/github.com/rocky-linux/srpmproc/modulemd/modulemd.go
generated
vendored
|
@ -22,6 +22,7 @@ package modulemd
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/go-git/go-billy/v5"
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
|
4
vendor/github.com/rocky-linux/srpmproc/pkg/blob/file/file.go
generated
vendored
4
vendor/github.com/rocky-linux/srpmproc/pkg/blob/file/file.go
generated
vendored
|
@ -38,7 +38,7 @@ func New(path string) *File {
|
|||
}
|
||||
|
||||
func (f *File) Write(path string, content []byte) error {
|
||||
w, err := os.OpenFile(filepath.Join(f.path, path), os.O_CREATE|os.O_TRUNC|os.O_RDWR, 0644)
|
||||
w, err := os.OpenFile(filepath.Join(f.path, path), os.O_CREATE|os.O_TRUNC|os.O_RDWR, 0o644)
|
||||
if err != nil {
|
||||
return fmt.Errorf("could not open file: %v", err)
|
||||
}
|
||||
|
@ -57,7 +57,7 @@ func (f *File) Write(path string, content []byte) error {
|
|||
}
|
||||
|
||||
func (f *File) Read(path string) ([]byte, error) {
|
||||
r, err := os.OpenFile(filepath.Join(f.path, path), os.O_RDONLY, 0644)
|
||||
r, err := os.OpenFile(filepath.Join(f.path, path), os.O_RDONLY, 0o644)
|
||||
if err != nil {
|
||||
if os.IsNotExist(err) {
|
||||
return nil, nil
|
||||
|
|
3
vendor/github.com/rocky-linux/srpmproc/pkg/blob/gcs/gcs.go
generated
vendored
3
vendor/github.com/rocky-linux/srpmproc/pkg/blob/gcs/gcs.go
generated
vendored
|
@ -21,10 +21,11 @@
|
|||
package gcs
|
||||
|
||||
import (
|
||||
"cloud.google.com/go/storage"
|
||||
"context"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
|
||||
"cloud.google.com/go/storage"
|
||||
)
|
||||
|
||||
type GCS struct {
|
||||
|
|
3
vendor/github.com/rocky-linux/srpmproc/pkg/blob/s3/s3.go
generated
vendored
3
vendor/github.com/rocky-linux/srpmproc/pkg/blob/s3/s3.go
generated
vendored
|
@ -22,6 +22,8 @@ package s3
|
|||
|
||||
import (
|
||||
"bytes"
|
||||
"io/ioutil"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/aws/awserr"
|
||||
"github.com/aws/aws-sdk-go/aws/credentials"
|
||||
|
@ -29,7 +31,6 @@ import (
|
|||
"github.com/aws/aws-sdk-go/service/s3"
|
||||
"github.com/aws/aws-sdk-go/service/s3/s3manager"
|
||||
"github.com/spf13/viper"
|
||||
"io/ioutil"
|
||||
)
|
||||
|
||||
type S3 struct {
|
||||
|
|
3
vendor/github.com/rocky-linux/srpmproc/pkg/data/import.go
generated
vendored
3
vendor/github.com/rocky-linux/srpmproc/pkg/data/import.go
generated
vendored
|
@ -21,8 +21,9 @@
|
|||
package data
|
||||
|
||||
import (
|
||||
"github.com/go-git/go-git/v5"
|
||||
"hash"
|
||||
|
||||
"github.com/go-git/go-git/v5"
|
||||
)
|
||||
|
||||
type ImportMode interface {
|
||||
|
|
3
vendor/github.com/rocky-linux/srpmproc/pkg/data/process.go
generated
vendored
3
vendor/github.com/rocky-linux/srpmproc/pkg/data/process.go
generated
vendored
|
@ -21,10 +21,11 @@
|
|||
package data
|
||||
|
||||
import (
|
||||
"log"
|
||||
|
||||
"github.com/go-git/go-billy/v5"
|
||||
"github.com/go-git/go-git/v5/plumbing/transport"
|
||||
"github.com/rocky-linux/srpmproc/pkg/blob"
|
||||
"log"
|
||||
)
|
||||
|
||||
type FsCreatorFunc func(branch string) (billy.Filesystem, error)
|
||||
|
|
5
vendor/github.com/rocky-linux/srpmproc/pkg/data/utils.go
generated
vendored
5
vendor/github.com/rocky-linux/srpmproc/pkg/data/utils.go
generated
vendored
|
@ -27,11 +27,12 @@ import (
|
|||
"crypto/sha512"
|
||||
"encoding/hex"
|
||||
"fmt"
|
||||
"github.com/go-git/go-billy/v5"
|
||||
"hash"
|
||||
"io"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/go-git/go-billy/v5"
|
||||
)
|
||||
|
||||
func CopyFromFs(from billy.Filesystem, to billy.Filesystem, path string) error {
|
||||
|
@ -44,7 +45,7 @@ func CopyFromFs(from billy.Filesystem, to billy.Filesystem, path string) error {
|
|||
fullPath := filepath.Join(path, fi.Name())
|
||||
|
||||
if fi.IsDir() {
|
||||
_ = to.MkdirAll(fullPath, 0755)
|
||||
_ = to.MkdirAll(fullPath, 0o755)
|
||||
err := CopyFromFs(from, to, fullPath)
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
4
vendor/github.com/rocky-linux/srpmproc/pkg/directives/add.go
generated
vendored
4
vendor/github.com/rocky-linux/srpmproc/pkg/directives/add.go
generated
vendored
|
@ -50,7 +50,7 @@ func add(cfg *srpmprocpb.Cfg, pd *data.ProcessData, md *data.ModeData, patchTree
|
|||
case *srpmprocpb.Add_File:
|
||||
filePath = checkAddPrefix(eitherString(filepath.Base(addType.File), add.Name))
|
||||
|
||||
fPatch, err := patchTree.Filesystem.OpenFile(addType.File, os.O_RDONLY, 0644)
|
||||
fPatch, err := patchTree.Filesystem.OpenFile(addType.File, os.O_RDONLY, 0o644)
|
||||
if err != nil {
|
||||
return errors.New(fmt.Sprintf("COULD_NOT_OPEN_FROM:%s", addType.File))
|
||||
}
|
||||
|
@ -80,7 +80,7 @@ func add(cfg *srpmprocpb.Cfg, pd *data.ProcessData, md *data.ModeData, patchTree
|
|||
break
|
||||
}
|
||||
|
||||
f, err := pushTree.Filesystem.OpenFile(filePath, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0644)
|
||||
f, err := pushTree.Filesystem.OpenFile(filePath, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0o644)
|
||||
if err != nil {
|
||||
return errors.New(fmt.Sprintf("COULD_NOT_OPEN_DESTINATION:%s", filePath))
|
||||
}
|
||||
|
|
2
vendor/github.com/rocky-linux/srpmproc/pkg/directives/lookaside.go
generated
vendored
2
vendor/github.com/rocky-linux/srpmproc/pkg/directives/lookaside.go
generated
vendored
|
@ -128,7 +128,7 @@ func lookaside(cfg *srpmprocpb.Cfg, _ *data.ProcessData, md *data.ModeData, patc
|
|||
}
|
||||
|
||||
path := filepath.Join("SOURCES", fmt.Sprintf("%s.tar.gz", directive.ArchiveName))
|
||||
pushF, err := pushTree.Filesystem.OpenFile(path, os.O_CREATE|os.O_TRUNC|os.O_RDWR, 0644)
|
||||
pushF, err := pushTree.Filesystem.OpenFile(path, os.O_CREATE|os.O_TRUNC|os.O_RDWR, 0o644)
|
||||
if err != nil {
|
||||
return errors.New(fmt.Sprintf("COULD_NOT_CREATE_TAR_FILE:%s", path))
|
||||
}
|
||||
|
|
1
vendor/github.com/rocky-linux/srpmproc/pkg/directives/patch.go
generated
vendored
1
vendor/github.com/rocky-linux/srpmproc/pkg/directives/patch.go
generated
vendored
|
@ -24,6 +24,7 @@ import (
|
|||
"bytes"
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/bluekeyes/go-gitdiff/gitdiff"
|
||||
"github.com/go-git/go-git/v5"
|
||||
srpmprocpb "github.com/rocky-linux/srpmproc/pb"
|
||||
|
|
2
vendor/github.com/rocky-linux/srpmproc/pkg/directives/replace.go
generated
vendored
2
vendor/github.com/rocky-linux/srpmproc/pkg/directives/replace.go
generated
vendored
|
@ -51,7 +51,7 @@ func replace(cfg *srpmprocpb.Cfg, pd *data.ProcessData, _ *data.ModeData, patchT
|
|||
|
||||
switch replacing := replace.Replacing.(type) {
|
||||
case *srpmprocpb.Replace_WithFile:
|
||||
fPatch, err := patchTree.Filesystem.OpenFile(replacing.WithFile, os.O_RDONLY, 0644)
|
||||
fPatch, err := patchTree.Filesystem.OpenFile(replacing.WithFile, os.O_RDONLY, 0o644)
|
||||
if err != nil {
|
||||
return errors.New(fmt.Sprintf("COULD_NOT_OPEN_REPLACING:%s", replacing.WithFile))
|
||||
}
|
||||
|
|
6
vendor/github.com/rocky-linux/srpmproc/pkg/directives/spec_change.go
generated
vendored
6
vendor/github.com/rocky-linux/srpmproc/pkg/directives/spec_change.go
generated
vendored
|
@ -41,9 +41,7 @@ const (
|
|||
sectionChangelog = "%changelog"
|
||||
)
|
||||
|
||||
var (
|
||||
sections = []string{"%description", "%prep", "%build", "%install", "%files", "%changelog"}
|
||||
)
|
||||
var sections = []string{"%description", "%prep", "%build", "%install", "%files", "%changelog"}
|
||||
|
||||
type sourcePatchOperationInLoopRequest struct {
|
||||
cfg *srpmprocpb.Cfg
|
||||
|
@ -212,7 +210,7 @@ func specChange(cfg *srpmprocpb.Cfg, pd *data.ProcessData, md *data.ModeData, _
|
|||
return errors.New("COULD_NOT_STAT_SPEC_FILE")
|
||||
}
|
||||
|
||||
specFile, err := pushTree.Filesystem.OpenFile(filePath, os.O_RDONLY, 0644)
|
||||
specFile, err := pushTree.Filesystem.OpenFile(filePath, os.O_RDONLY, 0o644)
|
||||
if err != nil {
|
||||
return errors.New("COULD_NOT_READ_SPEC_FILE")
|
||||
}
|
||||
|
|
4
vendor/github.com/rocky-linux/srpmproc/pkg/misc/regex.go
generated
vendored
4
vendor/github.com/rocky-linux/srpmproc/pkg/misc/regex.go
generated
vendored
|
@ -2,10 +2,11 @@ package misc
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/rocky-linux/srpmproc/pkg/data"
|
||||
"path/filepath"
|
||||
"regexp"
|
||||
"strings"
|
||||
|
||||
"github.com/rocky-linux/srpmproc/pkg/data"
|
||||
)
|
||||
|
||||
func GetTagImportRegex(pd *data.ProcessData) *regexp.Regexp {
|
||||
|
@ -37,7 +38,6 @@ func GetTagImportRegex(pd *data.ProcessData) *regexp.Regexp {
|
|||
// if we are ok with importing that reference. We are looking for the traditional <prefix><version><suffix> pattern, like "c9s", and also the
|
||||
// modular "stream-<NAME>-<VERSION>-rhel-<VERSION> branch pattern as well
|
||||
func TaglessRefOk(tag string, pd *data.ProcessData) bool {
|
||||
|
||||
// First case is very easy: if we are "refs/heads/<prefix><version><suffix>" , then this is def. a branch we should import
|
||||
if strings.HasPrefix(tag, fmt.Sprintf("refs/heads/%s%d%s", pd.ImportBranchPrefix, pd.Version, pd.BranchSuffix)) {
|
||||
return true
|
||||
|
|
7
vendor/github.com/rocky-linux/srpmproc/pkg/modes/git.go
generated
vendored
7
vendor/github.com/rocky-linux/srpmproc/pkg/modes/git.go
generated
vendored
|
@ -22,8 +22,6 @@ package modes
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/go-git/go-git/v5/plumbing/transport"
|
||||
"github.com/rocky-linux/srpmproc/pkg/misc"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"path/filepath"
|
||||
|
@ -31,6 +29,9 @@ import (
|
|||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/go-git/go-git/v5/plumbing/transport"
|
||||
"github.com/rocky-linux/srpmproc/pkg/misc"
|
||||
|
||||
"github.com/go-git/go-billy/v5/memfs"
|
||||
"github.com/go-git/go-git/v5"
|
||||
"github.com/go-git/go-git/v5/config"
|
||||
|
@ -146,7 +147,6 @@ func (g *GitMode) RetrieveSource(pd *data.ProcessData) (*data.ModeData, error) {
|
|||
}
|
||||
|
||||
tagIter, err := repo.TagObjects()
|
||||
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("could not get tag objects: %v", err)
|
||||
}
|
||||
|
@ -221,7 +221,6 @@ func (g *GitMode) RetrieveSource(pd *data.ProcessData) (*data.ModeData, error) {
|
|||
}
|
||||
|
||||
func (g *GitMode) WriteSource(pd *data.ProcessData, md *data.ModeData) error {
|
||||
|
||||
remote, err := md.Repo.Remote("upstream")
|
||||
|
||||
if err != nil && !pd.TaglessMode {
|
||||
|
|
9
vendor/github.com/rocky-linux/srpmproc/pkg/rpmutils/regex.go
generated
vendored
9
vendor/github.com/rocky-linux/srpmproc/pkg/rpmutils/regex.go
generated
vendored
|
@ -2,10 +2,5 @@ package rpmutils
|
|||
|
||||
import "regexp"
|
||||
|
||||
var (
|
||||
Nvr = regexp.MustCompile("^(\\S+)-([\\w~%.+]+)-(\\w+(?:\\.[\\w+]+)+?)(?:\\.(\\w+))?(?:\\.rpm)?$")
|
||||
epoch = regexp.MustCompile("(\\d+):")
|
||||
module = regexp.MustCompile("^(.+)-(.+)-([0-9]{19})\\.((?:.+){8})$")
|
||||
dist = regexp.MustCompile("(\\.el\\d(?:_\\d|))")
|
||||
moduleDist = regexp.MustCompile("\\.module.+$")
|
||||
)
|
||||
// Nvr is a regular expression that matches a NVR.
|
||||
var Nvr = regexp.MustCompile("^(\\S+)-([\\w~%.+]+)-(\\w+(?:\\.[\\w+]+)+?)(?:\\.rpm)?$")
|
||||
|
|
9
vendor/github.com/rocky-linux/srpmproc/pkg/srpmproc/fetch.go
generated
vendored
9
vendor/github.com/rocky-linux/srpmproc/pkg/srpmproc/fetch.go
generated
vendored
|
@ -3,15 +3,16 @@ package srpmproc
|
|||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/go-git/go-billy/v5"
|
||||
"github.com/rocky-linux/srpmproc/pkg/blob"
|
||||
"github.com/rocky-linux/srpmproc/pkg/data"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"net/http"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/go-git/go-billy/v5"
|
||||
"github.com/rocky-linux/srpmproc/pkg/blob"
|
||||
"github.com/rocky-linux/srpmproc/pkg/data"
|
||||
)
|
||||
|
||||
func Fetch(logger io.Writer, cdnUrl string, dir string, fs billy.Filesystem, storage blob.Storage) error {
|
||||
|
@ -101,7 +102,7 @@ func Fetch(logger io.Writer, cdnUrl string, dir string, fs billy.Filesystem, sto
|
|||
return fmt.Errorf("checksum in metadata does not match dist-git file")
|
||||
}
|
||||
|
||||
err = fs.MkdirAll(filepath.Join(dir, filepath.Dir(path)), 0755)
|
||||
err = fs.MkdirAll(filepath.Join(dir, filepath.Dir(path)), 0o755)
|
||||
if err != nil {
|
||||
return fmt.Errorf("could not create all directories")
|
||||
}
|
||||
|
|
5
vendor/github.com/rocky-linux/srpmproc/pkg/srpmproc/patch.go
generated
vendored
5
vendor/github.com/rocky-linux/srpmproc/pkg/srpmproc/patch.go
generated
vendored
|
@ -23,8 +23,6 @@ package srpmproc
|
|||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/go-git/go-git/v5/plumbing/transport"
|
||||
"github.com/rocky-linux/srpmproc/pkg/misc"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
|
@ -32,6 +30,9 @@ import (
|
|||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/go-git/go-git/v5/plumbing/transport"
|
||||
"github.com/rocky-linux/srpmproc/pkg/misc"
|
||||
|
||||
"github.com/go-git/go-billy/v5"
|
||||
"github.com/go-git/go-billy/v5/memfs"
|
||||
"github.com/go-git/go-git/v5"
|
||||
|
|
62
vendor/github.com/rocky-linux/srpmproc/pkg/srpmproc/process.go
generated
vendored
62
vendor/github.com/rocky-linux/srpmproc/pkg/srpmproc/process.go
generated
vendored
|
@ -24,6 +24,16 @@ import (
|
|||
"bufio"
|
||||
"encoding/hex"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"os/exec"
|
||||
"os/user"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/go-git/go-billy/v5"
|
||||
"github.com/go-git/go-billy/v5/osfs"
|
||||
"github.com/go-git/go-git/v5/plumbing/format/gitignore"
|
||||
|
@ -38,15 +48,6 @@ import (
|
|||
"github.com/rocky-linux/srpmproc/pkg/misc"
|
||||
"github.com/rocky-linux/srpmproc/pkg/modes"
|
||||
"github.com/rocky-linux/srpmproc/pkg/rpmutils"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"os/exec"
|
||||
"os/user"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/go-git/go-billy/v5/memfs"
|
||||
"github.com/go-git/go-git/v5"
|
||||
|
@ -227,7 +228,7 @@ func NewProcessData(req *ProcessDataRequest) (*data.ProcessData, error) {
|
|||
return nil, err
|
||||
}
|
||||
tmpDir := filepath.Join(req.TmpFsMode, branch)
|
||||
err = fs.MkdirAll(tmpDir, 0755)
|
||||
err = fs.MkdirAll(tmpDir, 0o755)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("could not create tmpfs dir: %v", err)
|
||||
}
|
||||
|
@ -287,7 +288,6 @@ func NewProcessData(req *ProcessDataRequest) (*data.ProcessData, error) {
|
|||
// all files that are remote goes into .gitignore
|
||||
// all ignored files' hash goes into .{Name}.metadata
|
||||
func ProcessRPM(pd *data.ProcessData) (*srpmprocpb.ProcessResponse, error) {
|
||||
|
||||
// if we are using "tagless mode", then we need to jump to a completely different import process:
|
||||
// Version info needs to be derived from rpmbuild + spec file, not tags
|
||||
if pd.TaglessMode {
|
||||
|
@ -761,7 +761,7 @@ func processRPMTagless(pd *data.ProcessData) (*srpmprocpb.ProcessResponse, error
|
|||
if err := os.RemoveAll(localPath); err != nil {
|
||||
return nil, fmt.Errorf("Could not remove previous temporary directory: %s", localPath)
|
||||
}
|
||||
if err := os.Mkdir(localPath, 0755); err != nil {
|
||||
if err := os.Mkdir(localPath, 0o755); err != nil {
|
||||
return nil, fmt.Errorf("Could not create temporary directory: %s", localPath)
|
||||
}
|
||||
|
||||
|
@ -993,7 +993,6 @@ func processRPMTagless(pd *data.ProcessData) (*srpmprocpb.ProcessResponse, error
|
|||
BranchCommits: latestHashForBranch,
|
||||
BranchVersions: versionForBranch,
|
||||
}, nil
|
||||
|
||||
}
|
||||
|
||||
// Given a local repo on disk, ensure it's in the "traditional" format. This means:
|
||||
|
@ -1001,13 +1000,12 @@ func processRPMTagless(pd *data.ProcessData) (*srpmprocpb.ProcessResponse, error
|
|||
// - metadata file has the old "<SHASUM> SOURCES/<filename>" format
|
||||
// - SPECS/ and SOURCES/ exist and are populated correctly
|
||||
func convertLocalRepo(pkgName string, localRepo string) (bool, error) {
|
||||
|
||||
// Make sure we have a SPECS and SOURCES folder made:
|
||||
if err := os.MkdirAll(fmt.Sprintf("%s/SOURCES", localRepo), 0755); err != nil {
|
||||
if err := os.MkdirAll(fmt.Sprintf("%s/SOURCES", localRepo), 0o755); err != nil {
|
||||
return false, fmt.Errorf("Could not create SOURCES directory in: %s", localRepo)
|
||||
}
|
||||
|
||||
if err := os.MkdirAll(fmt.Sprintf("%s/SPECS", localRepo), 0755); err != nil {
|
||||
if err := os.MkdirAll(fmt.Sprintf("%s/SPECS", localRepo), 0o755); err != nil {
|
||||
return false, fmt.Errorf("Could not create SPECS directory in: %s", localRepo)
|
||||
}
|
||||
|
||||
|
@ -1017,15 +1015,14 @@ func convertLocalRepo(pkgName string, localRepo string) (bool, error) {
|
|||
return false, err
|
||||
}
|
||||
|
||||
for _, file := range files {
|
||||
|
||||
for _, f := range files {
|
||||
// We don't want to process SOURCES, SPECS, or any of our .git folders
|
||||
if file.Name() == "SOURCES" || file.Name() == "SPECS" || strings.HasPrefix(file.Name(), ".git") || file.Name() == "."+pkgName+".metadata" {
|
||||
if f.Name() == "SOURCES" || f.Name() == "SPECS" || strings.HasPrefix(f.Name(), ".git") || f.Name() == "."+pkgName+".metadata" {
|
||||
continue
|
||||
}
|
||||
|
||||
// If we have a metadata "sources" file, we need to read it and convert to the old .<pkgname>.metadata format
|
||||
if file.Name() == "sources" {
|
||||
if f.Name() == "sources" {
|
||||
convertStatus := convertMetaData(pkgName, localRepo)
|
||||
|
||||
if convertStatus != true {
|
||||
|
@ -1036,15 +1033,15 @@ func convertLocalRepo(pkgName string, localRepo string) (bool, error) {
|
|||
}
|
||||
|
||||
// Any file that ends in a ".spec" should be put into SPECS/
|
||||
if strings.HasSuffix(file.Name(), ".spec") {
|
||||
err := os.Rename(fmt.Sprintf("%s/%s", localRepo, file.Name()), fmt.Sprintf("%s/SPECS/%s", localRepo, file.Name()))
|
||||
if strings.HasSuffix(f.Name(), ".spec") {
|
||||
err := os.Rename(fmt.Sprintf("%s/%s", localRepo, f.Name()), fmt.Sprintf("%s/SPECS/%s", localRepo, f.Name()))
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("Error moving .spec file to SPECS/")
|
||||
}
|
||||
}
|
||||
|
||||
// if a file isn't skipped in one of the above checks, then it must be a file that belongs in SOURCES/
|
||||
os.Rename(fmt.Sprintf("%s/%s", localRepo, file.Name()), fmt.Sprintf("%s/SOURCES/%s", localRepo, file.Name()))
|
||||
os.Rename(fmt.Sprintf("%s/%s", localRepo, f.Name()), fmt.Sprintf("%s/SOURCES/%s", localRepo, f.Name()))
|
||||
}
|
||||
|
||||
return true, nil
|
||||
|
@ -1053,7 +1050,6 @@ func convertLocalRepo(pkgName string, localRepo string) (bool, error) {
|
|||
// Given a local "sources" metadata file (new CentOS Stream format), convert it into the older
|
||||
// classic CentOS style: "<HASH> SOURCES/<FILENAME>"
|
||||
func convertMetaData(pkgName string, localRepo string) bool {
|
||||
|
||||
lookAside, err := os.Open(fmt.Sprintf("%s/sources", localRepo))
|
||||
if err != nil {
|
||||
return false
|
||||
|
@ -1072,7 +1068,6 @@ func convertMetaData(pkgName string, localRepo string) bool {
|
|||
// - take the
|
||||
// Then check
|
||||
for scanner.Scan() {
|
||||
|
||||
tmpLine := strings.Fields(scanner.Text())
|
||||
// make sure line starts with a "SHA" or "MD" before processing - otherwise it might not be a valid format lookaside line!
|
||||
if !(strings.HasPrefix(tmpLine[0], "SHA") || strings.HasPrefix(tmpLine[0], "MD")) {
|
||||
|
@ -1085,12 +1080,11 @@ func convertMetaData(pkgName string, localRepo string) bool {
|
|||
tmpLine[1] = fmt.Sprintf("SOURCES/%s", tmpLine[1])
|
||||
|
||||
convertedLA = append(convertedLA, fmt.Sprintf("%s %s", tmpLine[3], tmpLine[1]))
|
||||
|
||||
}
|
||||
lookAside.Close()
|
||||
|
||||
// open .<NAME>.metadata file for writing our old-format lines
|
||||
lookAside, err = os.OpenFile(fmt.Sprintf("%s/.%s.metadata", localRepo, pkgName), os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
|
||||
lookAside, err = os.OpenFile(fmt.Sprintf("%s/.%s.metadata", localRepo, pkgName), os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0o644)
|
||||
if err != nil {
|
||||
fmt.Errorf("Error opening new .metadata file for writing.")
|
||||
return false
|
||||
|
@ -1116,7 +1110,6 @@ func convertMetaData(pkgName string, localRepo string) bool {
|
|||
// - extract RPM version info from that SRPM, and return it
|
||||
// If we are in tagless mode, we need to get a package version somehow!
|
||||
func getVersionFromSpec(pkgName string, localRepo string, majorVersion int) string {
|
||||
|
||||
// Make sure we have "rpm" and "rpmbuild" and "cp" available in our PATH. Otherwise, this won't work:
|
||||
_, err := exec.LookPath("rpm")
|
||||
if err != nil {
|
||||
|
@ -1135,7 +1128,7 @@ func getVersionFromSpec(pkgName string, localRepo string, majorVersion int) stri
|
|||
|
||||
// create separate temp folder space to do our RPM work - we don't want to accidentally contaminate the main Git area:
|
||||
rpmBuildPath := fmt.Sprintf("%s_rpm", localRepo)
|
||||
os.Mkdir(rpmBuildPath, 0755)
|
||||
os.Mkdir(rpmBuildPath, 0o755)
|
||||
|
||||
// Copy SOURCES/ and SPECS/ into the temp rpmbuild directory recursively
|
||||
// Yes, we could create or import an elaborate Go-native way to do this, but damnit this is easier:
|
||||
|
@ -1165,7 +1158,7 @@ func getVersionFromSpec(pkgName string, localRepo string, majorVersion int) stri
|
|||
srcFile := strings.Fields(scanner.Text())[1]
|
||||
|
||||
// write a dummy file of the same name into the rpmbuild SOURCES/ directory:
|
||||
dummyFile, err := os.OpenFile(fmt.Sprintf("%s/%s", rpmBuildPath, srcFile), os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
|
||||
dummyFile, err := os.OpenFile(fmt.Sprintf("%s/%s", rpmBuildPath, srcFile), os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0o644)
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
|
@ -1222,7 +1215,6 @@ func getVersionFromSpec(pkgName string, localRepo string, majorVersion int) stri
|
|||
// return name-version-release string we derived:
|
||||
log.Printf("Derived NVR %s from tagless repo via temporary SRPM build\n", nvr)
|
||||
return nvr
|
||||
|
||||
}
|
||||
|
||||
// We need to loop through the lookaside blob files ("SourcesToIgnore"),
|
||||
|
@ -1230,7 +1222,6 @@ func getVersionFromSpec(pkgName string, localRepo string, majorVersion int) stri
|
|||
//
|
||||
// We also need to add the source paths to .gitignore in the git repo, so we don't accidentally commit + push them
|
||||
func processLookasideSources(pd *data.ProcessData, md *data.ModeData, localDir string) error {
|
||||
|
||||
w := md.Worktree
|
||||
metadata, err := w.Filesystem.Create(fmt.Sprintf(".%s.metadata", md.Name))
|
||||
if err != nil {
|
||||
|
@ -1240,7 +1231,7 @@ func processLookasideSources(pd *data.ProcessData, md *data.ModeData, localDir s
|
|||
// Keep track of files we've already uploaded - don't want duplicates!
|
||||
var alreadyUploadedBlobs []string
|
||||
|
||||
gitIgnore, err := os.OpenFile(fmt.Sprintf("%s/.gitignore", localDir), os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
|
||||
gitIgnore, err := os.OpenFile(fmt.Sprintf("%s/.gitignore", localDir), os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0o644)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -1307,13 +1298,11 @@ func processLookasideSources(pd *data.ProcessData, md *data.ModeData, localDir s
|
|||
}
|
||||
|
||||
return nil
|
||||
|
||||
}
|
||||
|
||||
// Given an input branch name to import from, like "refs/heads/c9s", produce the tagless branch name we want to commit to, like "r9s"
|
||||
// Modular translation of CentOS stream branches i is also done - branch stream-maven-3.8-rhel-9.1.0 ----> r9s-stream-maven-3.8_9.1.0
|
||||
func taglessBranchName(fullBranch string, pd *data.ProcessData) string {
|
||||
|
||||
// Split the full branch name "refs/heads/blah" to only get the short name - last entry
|
||||
tmpBranch := strings.Split(fullBranch, "/")
|
||||
branch := tmpBranch[len(tmpBranch)-1]
|
||||
|
@ -1330,9 +1319,8 @@ func taglessBranchName(fullBranch string, pd *data.ProcessData) string {
|
|||
moduleString := branch[0:rhelSpot]
|
||||
|
||||
// major minor version is everything after the "-rhel-" string
|
||||
majorMinor := branch[rhelSpot+6 : len(branch)]
|
||||
majorMinor := branch[rhelSpot+6:]
|
||||
|
||||
// return translated modular branch:
|
||||
return fmt.Sprintf("%s%d%s-%s_%s", pd.BranchPrefix, pd.Version, pd.BranchSuffix, moduleString, majorMinor)
|
||||
|
||||
}
|
||||
|
|
2
vendor/modules.txt
vendored
2
vendor/modules.txt
vendored
|
@ -453,7 +453,7 @@ github.com/prometheus/procfs/internal/util
|
|||
github.com/rivo/uniseg
|
||||
# github.com/robfig/cron v1.2.0
|
||||
github.com/robfig/cron
|
||||
# github.com/rocky-linux/srpmproc v0.4.1
|
||||
# github.com/rocky-linux/srpmproc v0.4.2
|
||||
## explicit
|
||||
github.com/rocky-linux/srpmproc/modulemd
|
||||
github.com/rocky-linux/srpmproc/pb
|
||||
|
|
Loading…
Reference in New Issue
Block a user