forked from ALHP/ALHP.GO
Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
7d16607a31 | |||
db8cb28fc5 | |||
a04c17f6ab |
@@ -27,6 +27,11 @@ linters-settings:
|
|||||||
- '3'
|
- '3'
|
||||||
- '4'
|
- '4'
|
||||||
- '5'
|
- '5'
|
||||||
|
- '6'
|
||||||
|
- '7'
|
||||||
|
- '8'
|
||||||
|
- '9'
|
||||||
|
- '10'
|
||||||
ignored-functions:
|
ignored-functions:
|
||||||
- strings.SplitN
|
- strings.SplitN
|
||||||
- os.OpenFile
|
- os.OpenFile
|
||||||
@@ -47,7 +52,6 @@ linters:
|
|||||||
disable-all: true
|
disable-all: true
|
||||||
enable:
|
enable:
|
||||||
- bodyclose
|
- bodyclose
|
||||||
- depguard
|
|
||||||
- dogsled
|
- dogsled
|
||||||
- dupl
|
- dupl
|
||||||
- errcheck
|
- errcheck
|
||||||
|
@@ -97,6 +97,13 @@ Include = /etc/pacman.d/mirrorlist
|
|||||||
|
|
||||||
[extra]
|
[extra]
|
||||||
Include = /etc/pacman.d/mirrorlist
|
Include = /etc/pacman.d/mirrorlist
|
||||||
|
|
||||||
|
# if you need [multilib] support
|
||||||
|
[multilib-x86-64-v3]
|
||||||
|
Include = /etc/pacman.d/alhp-mirrorlist
|
||||||
|
|
||||||
|
[multilib]
|
||||||
|
Include = /etc/pacman.d/mirrorlist
|
||||||
```
|
```
|
||||||
|
|
||||||
Replace `x86-64-v3` with the x86-64 feature level you want to enable.
|
Replace `x86-64-v3` with the x86-64 feature level you want to enable.
|
||||||
|
@@ -41,7 +41,9 @@ func (b *BuildManager) buildQueue(queue []*ProtoPackage, ctx context.Context) er
|
|||||||
for len(doneQ) != len(queue) {
|
for len(doneQ) != len(queue) {
|
||||||
up := 0
|
up := 0
|
||||||
b.buildingLock.RLock()
|
b.buildingLock.RLock()
|
||||||
if (pkgList2MaxMem(b.building) < conf.Build.MemoryLimit && !unknownBuilds && !queueNoMatch) || (unknownBuilds && len(b.building) < MaxUnknownBuilder) {
|
if (pkgList2MaxMem(b.building) < conf.Build.MemoryLimit &&
|
||||||
|
!unknownBuilds && !queueNoMatch) ||
|
||||||
|
(unknownBuilds && len(b.building) < MaxUnknownBuilder) {
|
||||||
queueNoMatch = true
|
queueNoMatch = true
|
||||||
b.buildingLock.RUnlock()
|
b.buildingLock.RUnlock()
|
||||||
for _, pkg := range queue {
|
for _, pkg := range queue {
|
||||||
@@ -372,7 +374,7 @@ func (b *BuildManager) repoWorker(repo string) {
|
|||||||
pkg.DBPackage = pkgUpd.SaveX(context.Background())
|
pkg.DBPackage = pkgUpd.SaveX(context.Background())
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd = exec.Command("paccache", "-rc", filepath.Join(conf.Basedir.Repo, repo, "os", conf.Arch), "-k", "1")
|
cmd = exec.Command("paccache", "-rc", filepath.Join(conf.Basedir.Repo, repo, "os", conf.Arch), "-k", "1") //nolint:gosec
|
||||||
res, err = cmd.CombinedOutput()
|
res, err = cmd.CombinedOutput()
|
||||||
log.Debug(string(res))
|
log.Debug(string(res))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -438,7 +440,7 @@ func (b *BuildManager) repoWorker(repo string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (b *BuildManager) syncWorker(ctx context.Context) error {
|
func (b *BuildManager) syncWorker(ctx context.Context) error {
|
||||||
err := os.MkdirAll(filepath.Join(conf.Basedir.Work), 0o755)
|
err := os.MkdirAll(conf.Basedir.Work, 0o755)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("error creating work dir %s: %v", conf.Basedir.Work, err)
|
log.Fatalf("error creating work dir %s: %v", conf.Basedir.Work, err)
|
||||||
}
|
}
|
||||||
@@ -447,7 +449,7 @@ func (b *BuildManager) syncWorker(ctx context.Context) error {
|
|||||||
gitPath := filepath.Join(conf.Basedir.Work, stateDir)
|
gitPath := filepath.Join(conf.Basedir.Work, stateDir)
|
||||||
|
|
||||||
if _, err := os.Stat(gitPath); os.IsNotExist(err) {
|
if _, err := os.Stat(gitPath); os.IsNotExist(err) {
|
||||||
cmd := exec.Command("git", "clone", "--depth=1", conf.StateRepo, gitPath)
|
cmd := exec.Command("git", "clone", "--depth=1", conf.StateRepo, gitPath) //nolint:gosec
|
||||||
res, err := cmd.CombinedOutput()
|
res, err := cmd.CombinedOutput()
|
||||||
log.Debug(string(res))
|
log.Debug(string(res))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@@ -20,7 +20,7 @@ common:
|
|||||||
packager: "ALHP $march$ <alhp@harting.dev>"
|
packager: "ALHP $march$ <alhp@harting.dev>"
|
||||||
makeflags: "-j$buildproc$"
|
makeflags: "-j$buildproc$"
|
||||||
# https://somegit.dev/ALHP/ALHP.GO/issues/110
|
# https://somegit.dev/ALHP/ALHP.GO/issues/110
|
||||||
rustflags: "-Copt-level=3 -Ctarget-cpu=$march$"
|
rustflags: "-Copt-level=3 -Ctarget-cpu=$march$ -Clink-arg=-Wl,-z,pack-relative-relocs"
|
||||||
ltoflags:
|
ltoflags:
|
||||||
- "-falign-functions=32" # https://github.com/InBetweenNames/gentooLTO/issues/164
|
- "-falign-functions=32" # https://github.com/InBetweenNames/gentooLTO/issues/164
|
||||||
kcflags: " -march=$march$ -O3"
|
kcflags: " -march=$march$ -O3"
|
||||||
|
@@ -155,7 +155,11 @@ func housekeeping(repo, march string, wg *sync.WaitGroup) error {
|
|||||||
}
|
}
|
||||||
if len(missingSplits) > 0 {
|
if len(missingSplits) > 0 {
|
||||||
log.Infof("[HK] %s->%s missing split-package(s): %s", fullRepo, dbPkg.Pkgbase, missingSplits)
|
log.Infof("[HK] %s->%s missing split-package(s): %s", fullRepo, dbPkg.Pkgbase, missingSplits)
|
||||||
pkg.DBPackage, err = pkg.DBPackage.Update().ClearRepoVersion().ClearTagRev().SetStatus(dbpackage.StatusQueued).Save(context.Background())
|
pkg.DBPackage, err = pkg.DBPackage.Update().
|
||||||
|
ClearRepoVersion().
|
||||||
|
ClearTagRev().
|
||||||
|
SetStatus(dbpackage.StatusQueued).
|
||||||
|
Save(context.Background())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@@ -342,7 +342,7 @@ func (p *ProtoPackage) setupBuildDir() (string, error) {
|
|||||||
gr = retry.WithMaxRetries(conf.MaxCloneRetries, gr)
|
gr = retry.WithMaxRetries(conf.MaxCloneRetries, gr)
|
||||||
|
|
||||||
if err := retry.Do(context.Background(), gr, func(ctx context.Context) error {
|
if err := retry.Do(context.Background(), gr, func(ctx context.Context) error {
|
||||||
cmd := exec.Command("git", "clone", "--depth", "1", "--branch", p.State.TagVer,
|
cmd := exec.Command("git", "clone", "--depth", "1", "--branch", p.State.TagVer, //nolint:gosec
|
||||||
fmt.Sprintf("https://gitlab.archlinux.org/archlinux/packaging/packages/%s.git", gitlabPath), buildDir)
|
fmt.Sprintf("https://gitlab.archlinux.org/archlinux/packaging/packages/%s.git", gitlabPath), buildDir)
|
||||||
res, err := cmd.CombinedOutput()
|
res, err := cmd.CombinedOutput()
|
||||||
log.Debug(string(res))
|
log.Debug(string(res))
|
||||||
@@ -452,7 +452,7 @@ func (p *ProtoPackage) isAvailable(h *alpm.Handle) bool {
|
|||||||
} else if p.DBPackage != nil && len(p.DBPackage.Packages) > 0 {
|
} else if p.DBPackage != nil && len(p.DBPackage.Packages) > 0 {
|
||||||
pkg, err = dbs.FindSatisfier(p.DBPackage.Packages[0])
|
pkg, err = dbs.FindSatisfier(p.DBPackage.Packages[0])
|
||||||
} else {
|
} else {
|
||||||
cmd := exec.Command("unbuffer", "pacsift", "--exact", "--base="+p.Pkgbase, "--repo="+p.Repo.String())
|
cmd := exec.Command("unbuffer", "pacsift", "--exact", "--base="+p.Pkgbase, "--repo="+p.Repo.String()) //nolint:gosec
|
||||||
var res []byte
|
var res []byte
|
||||||
res, err = cmd.CombinedOutput()
|
res, err = cmd.CombinedOutput()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -539,7 +539,6 @@ func (p *ProtoPackage) GitVersion(h *alpm.Handle) (string, error) {
|
|||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
pkgloop:
|
|
||||||
for _, stateFile := range fStateFiles {
|
for _, stateFile := range fStateFiles {
|
||||||
repo, _, _, err := stateFileMeta(stateFile)
|
repo, _, _, err := stateFileMeta(stateFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -548,7 +547,7 @@ func (p *ProtoPackage) GitVersion(h *alpm.Handle) (string, error) {
|
|||||||
|
|
||||||
if iPackage.DB().Name() == repo {
|
if iPackage.DB().Name() == repo {
|
||||||
fStateFiles = []string{stateFile}
|
fStateFiles = []string{stateFile}
|
||||||
break pkgloop
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -589,7 +588,7 @@ func (p *ProtoPackage) genSrcinfo() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd := exec.Command("makepkg", "--printsrcinfo", "-p", filepath.Base(p.Pkgbuild))
|
cmd := exec.Command("makepkg", "--printsrcinfo", "-p", filepath.Base(p.Pkgbuild)) //nolint:gosec
|
||||||
cmd.Dir = filepath.Dir(p.Pkgbuild)
|
cmd.Dir = filepath.Dir(p.Pkgbuild)
|
||||||
res, err := cmd.CombinedOutput()
|
res, err := cmd.CombinedOutput()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
12
utils.go
12
utils.go
@@ -130,15 +130,6 @@ func statusID2string(s dbpackage.Status) string {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func containsSubStr(str string, subList []string) bool {
|
|
||||||
for _, checkStr := range subList {
|
|
||||||
if strings.Contains(str, checkStr) {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
func cleanBuildDir(dir, chrootDir string) error {
|
func cleanBuildDir(dir, chrootDir string) error {
|
||||||
if stat, err := os.Stat(dir); err == nil && stat.IsDir() {
|
if stat, err := os.Stat(dir); err == nil && stat.IsDir() {
|
||||||
err = os.RemoveAll(dir)
|
err = os.RemoveAll(dir)
|
||||||
@@ -376,7 +367,8 @@ func setupChroot() error {
|
|||||||
return fmt.Errorf("error creating chroot: %w\n%s", err, string(res))
|
return fmt.Errorf("error creating chroot: %w\n%s", err, string(res))
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd = exec.Command("sudo", "cp", pacmanConf, filepath.Join(conf.Basedir.Work, chrootDir, pristineChroot, "etc/pacman.conf")) //nolint:gosec
|
cmd = exec.Command("sudo", "cp", pacmanConf, //nolint:gosec
|
||||||
|
filepath.Join(conf.Basedir.Work, chrootDir, pristineChroot, "etc/pacman.conf"))
|
||||||
res, err = cmd.CombinedOutput()
|
res, err = cmd.CombinedOutput()
|
||||||
log.Debug(string(res))
|
log.Debug(string(res))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Reference in New Issue
Block a user