Fix arch OptDepends version check and add gzip compression

This commit is contained in:
dragon 2024-08-26 10:45:24 +08:00
parent cbedd7e5be
commit 600c703ef4
2 changed files with 7 additions and 3 deletions

View File

@ -39,11 +39,12 @@ const (
var ( var (
reName = regexp.MustCompile(`^[a-zA-Z0-9@._+-]+$`) reName = regexp.MustCompile(`^[a-zA-Z0-9@._+-]+$`)
reVer = regexp.MustCompile(`^[a-zA-Z0-9:_.+]+-+[0-9]+$`) reVer = regexp.MustCompile(`^[a-zA-Z0-9:_.+]+-+[0-9]+$`)
reOptDep = regexp.MustCompile(`^[a-zA-Z0-9@._+-]+$|^[a-zA-Z0-9@._+-]+(:.*)`) rePkgVer = regexp.MustCompile(`^[a-zA-Z0-9@._+-]+([<>]?=?[a-zA-Z0-9@._+-]+)?$`)
rePkgVer = regexp.MustCompile(`^[a-zA-Z0-9@._+-]+$|^[a-zA-Z0-9@._+-]+(>.*)|^[a-zA-Z0-9@._+-]+(<.*)|^[a-zA-Z0-9@._+-]+(=.*)`) reOptDep = regexp.MustCompile(`^[a-zA-Z0-9@._+-]+([<>]?=?[a-zA-Z0-9@._+-]+)?(:.*)?$`)
magicZSTD = []byte{0x28, 0xB5, 0x2F, 0xFD} magicZSTD = []byte{0x28, 0xB5, 0x2F, 0xFD}
magicXZ = []byte{0xFD, 0x37, 0x7A, 0x58, 0x5A} magicXZ = []byte{0xFD, 0x37, 0x7A, 0x58, 0x5A}
magicGZ = []byte{0x1F, 0x8B}
) )
type Package struct { type Package struct {
@ -111,6 +112,9 @@ func ParsePackage(r *packages.HashedBuffer) (*Package, error) {
} else if bytes.Equal(header[:len(magicXZ)], magicXZ) { } else if bytes.Equal(header[:len(magicXZ)], magicXZ) {
tarballType = "xz" tarballType = "xz"
tarball = archiver.NewTarXz() tarball = archiver.NewTarXz()
} else if bytes.Equal(header[:len(magicGZ)], magicGZ) {
tarballType = "gz"
tarball = archiver.NewTarGz()
} else { } else {
return nil, errors.New("not supported compression") return nil, errors.New("not supported compression")
} }

View File

@ -199,7 +199,7 @@ func TestValidatePackageSpec(t *testing.T) {
Provides: []string{"abc", "def"}, Provides: []string{"abc", "def"},
License: []string{"GPL"}, License: []string{"GPL"},
Depends: []string{"go", "gpg=1", "curl>=3", "git<=7"}, Depends: []string{"go", "gpg=1", "curl>=3", "git<=7"},
OptDepends: []string{"git: something", "make"}, OptDepends: []string{"git: something", "make", "llvm<=17: not support llvm 18+"},
MakeDepends: []string{"chrom"}, MakeDepends: []string{"chrom"},
CheckDepends: []string{"bariy"}, CheckDepends: []string{"bariy"},
Backup: []string{"etc/pacman.d/filo"}, Backup: []string{"etc/pacman.d/filo"},