mirror of
https://github.com/mudler/luet.git
synced 2025-09-08 10:39:19 +00:00
Add pkg description, url and license
* Move to mvdan.cc/sh/v3 * Improve RDEPEND parsing
This commit is contained in:
@@ -68,6 +68,15 @@ type Package interface {
|
|||||||
SetPath(string)
|
SetPath(string)
|
||||||
GetPath() string
|
GetPath() string
|
||||||
Rel(string) string
|
Rel(string) string
|
||||||
|
|
||||||
|
GetDescription() string
|
||||||
|
SetDescription(string)
|
||||||
|
|
||||||
|
AddURI(string)
|
||||||
|
GetURI() []string
|
||||||
|
|
||||||
|
SetLicense(string)
|
||||||
|
GetLicense() string
|
||||||
}
|
}
|
||||||
|
|
||||||
type Tree interface {
|
type Tree interface {
|
||||||
@@ -125,6 +134,10 @@ type DefaultPackage struct {
|
|||||||
|
|
||||||
// Path is set only internally when tree is loaded from disk
|
// Path is set only internally when tree is loaded from disk
|
||||||
Path string `json:"path,omitempty"`
|
Path string `json:"path,omitempty"`
|
||||||
|
|
||||||
|
Description string `json:"description"`
|
||||||
|
Uri []string `json:"uri"`
|
||||||
|
License string `json:"license"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// State represent the package state
|
// State represent the package state
|
||||||
@@ -223,11 +236,27 @@ func (p *DefaultPackage) GetName() string {
|
|||||||
func (p *DefaultPackage) GetVersion() string {
|
func (p *DefaultPackage) GetVersion() string {
|
||||||
return p.Version
|
return p.Version
|
||||||
}
|
}
|
||||||
|
func (p *DefaultPackage) GetDescription() string {
|
||||||
|
return p.Description
|
||||||
|
}
|
||||||
|
func (p *DefaultPackage) SetDescription(s string) {
|
||||||
|
p.Description = s
|
||||||
|
}
|
||||||
|
func (p *DefaultPackage) GetLicense() string {
|
||||||
|
return p.License
|
||||||
|
}
|
||||||
|
func (p *DefaultPackage) SetLicense(s string) {
|
||||||
|
p.License = s
|
||||||
|
}
|
||||||
|
func (p *DefaultPackage) AddURI(s string) {
|
||||||
|
p.Uri = append(p.Uri, s)
|
||||||
|
}
|
||||||
|
func (p *DefaultPackage) GetURI() []string {
|
||||||
|
return p.Uri
|
||||||
|
}
|
||||||
func (p *DefaultPackage) GetCategory() string {
|
func (p *DefaultPackage) GetCategory() string {
|
||||||
return p.Category
|
return p.Category
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *DefaultPackage) SetCategory(s string) {
|
func (p *DefaultPackage) SetCategory(s string) {
|
||||||
p.Category = s
|
p.Category = s
|
||||||
}
|
}
|
||||||
|
@@ -45,6 +45,35 @@ var _ = Describe("Package", func() {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Context("Check description", func() {
|
||||||
|
a := NewPackage("A", ">=1.0", []*DefaultPackage{}, []*DefaultPackage{})
|
||||||
|
a.SetDescription("Description A")
|
||||||
|
|
||||||
|
It("Set and get correctly a description", func() {
|
||||||
|
Expect(a.GetDescription()).To(Equal("Description A"))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
Context("Check licenses", func() {
|
||||||
|
a := NewPackage("A", ">=1.0", []*DefaultPackage{}, []*DefaultPackage{})
|
||||||
|
a.SetLicense("MIT")
|
||||||
|
|
||||||
|
It("Set and get correctly a license", func() {
|
||||||
|
Expect(a.GetLicense()).To(Equal("MIT"))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
Context("Check URI", func() {
|
||||||
|
a := NewPackage("A", ">=1.0", []*DefaultPackage{}, []*DefaultPackage{})
|
||||||
|
a.AddURI("ftp://ftp.freeradius.org/pub/radius/freearadius-server-3.0.20.tar.gz")
|
||||||
|
|
||||||
|
It("Set and get correctly an uri", func() {
|
||||||
|
Expect(a.GetURI()).To(Equal([]string{
|
||||||
|
"ftp://ftp.freeradius.org/pub/radius/freearadius-server-3.0.20.tar.gz",
|
||||||
|
}))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
Context("revdeps", func() {
|
Context("revdeps", func() {
|
||||||
a := NewPackage("A", "1.0", []*DefaultPackage{}, []*DefaultPackage{})
|
a := NewPackage("A", "1.0", []*DefaultPackage{}, []*DefaultPackage{})
|
||||||
b := NewPackage("B", "1.0", []*DefaultPackage{a}, []*DefaultPackage{})
|
b := NewPackage("B", "1.0", []*DefaultPackage{a}, []*DefaultPackage{})
|
||||||
|
@@ -124,7 +124,9 @@ func (gb *GentooBuilder) Generate(dir string) (pkg.PackageDatabase, error) {
|
|||||||
if info.IsDir() {
|
if info.IsDir() {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
if strings.Contains(info.Name(), "ebuild") {
|
// Ensure that only file with suffix .ebuild are elaborated.
|
||||||
|
// and ignore .swp files or files with string ebuild on name
|
||||||
|
if strings.HasSuffix(info.Name(), ".ebuild") {
|
||||||
toScan <- path
|
toScan <- path
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@@ -16,6 +16,7 @@
|
|||||||
package gentoo_test
|
package gentoo_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
. "github.com/onsi/ginkgo"
|
. "github.com/onsi/ginkgo"
|
||||||
. "github.com/onsi/gomega"
|
. "github.com/onsi/gomega"
|
||||||
|
|
||||||
@@ -46,4 +47,131 @@ var _ = Describe("GentooBuilder", func() {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Context("Parse ebuild1", func() {
|
||||||
|
parser := &SimpleEbuildParser{}
|
||||||
|
pkgs, err := parser.ScanEbuild("../../../../tests/fixtures/overlay/app-crypt/pinentry-gnome/pinentry-gnome-1.0.0-r2.ebuild")
|
||||||
|
It("parses correctly deps", func() {
|
||||||
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
fmt.Println("PKG ", pkgs[0])
|
||||||
|
Expect(pkgs[0].GetLicense()).To(Equal("GPL-2"))
|
||||||
|
Expect(pkgs[0].GetDescription()).To(Equal("GNOME 3 frontend for pinentry"))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
Context("Parse ebuild2", func() {
|
||||||
|
parser := &SimpleEbuildParser{}
|
||||||
|
pkgs, err := parser.ScanEbuild("../../../../tests/fixtures/parser/mod_dav_svn-1.12.2.ebuild")
|
||||||
|
|
||||||
|
It("Parsing ebuild2", func() {
|
||||||
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
fmt.Println("PKG ", pkgs[0])
|
||||||
|
Expect(pkgs[0].GetLicense()).To(Equal("Subversion"))
|
||||||
|
Expect(pkgs[0].GetDescription()).To(Equal("Subversion WebDAV support"))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
Context("Parse ebuild3", func() {
|
||||||
|
parser := &SimpleEbuildParser{}
|
||||||
|
pkgs, err := parser.ScanEbuild("../../../../tests/fixtures/parser/linux-sources-1.ebuild")
|
||||||
|
|
||||||
|
It("Check parsing of the ebuild3", func() {
|
||||||
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
fmt.Println("PKG ", pkgs[0])
|
||||||
|
Expect(len(pkgs[0].GetRequires())).To(Equal(0))
|
||||||
|
Expect(pkgs[0].GetLicense()).To(Equal(""))
|
||||||
|
Expect(pkgs[0].GetDescription()).To(Equal("Virtual for Linux kernel sources"))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
Context("Parse ebuild4", func() {
|
||||||
|
parser := &SimpleEbuildParser{}
|
||||||
|
pkgs, err := parser.ScanEbuild("../../../../tests/fixtures/parser/sabayon-mce-1.1-r5.ebuild")
|
||||||
|
|
||||||
|
It("Check parsing of the ebuild4", func() {
|
||||||
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
fmt.Println("PKG ", pkgs[0])
|
||||||
|
Expect(len(pkgs[0].GetRequires())).To(Equal(2))
|
||||||
|
Expect(pkgs[0].GetLicense()).To(Equal("GPL-2"))
|
||||||
|
Expect(pkgs[0].GetDescription()).To(Equal("Sabayon Linux Media Center Infrastructure"))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
Context("Parse ebuild5", func() {
|
||||||
|
parser := &SimpleEbuildParser{}
|
||||||
|
pkgs, err := parser.ScanEbuild("../../../../tests/fixtures/parser/libreoffice-l10n-meta-6.2.8.2.ebuild")
|
||||||
|
|
||||||
|
It("Check parsing of the ebuild5", func() {
|
||||||
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
fmt.Println("PKG ", pkgs[0])
|
||||||
|
Expect(len(pkgs[0].GetRequires())).To(Equal(146))
|
||||||
|
Expect(pkgs[0].GetLicense()).To(Equal("LGPL-2"))
|
||||||
|
Expect(pkgs[0].GetDescription()).To(Equal("LibreOffice.org localisation meta-package"))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
Context("Parse ebuild6", func() {
|
||||||
|
parser := &SimpleEbuildParser{}
|
||||||
|
pkgs, err := parser.ScanEbuild("../../../../tests/fixtures/parser/pkgs-checker-0.2.0.ebuild")
|
||||||
|
|
||||||
|
It("Check parsing of the ebuild6", func() {
|
||||||
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
fmt.Println("PKG ", pkgs[0])
|
||||||
|
Expect(len(pkgs[0].GetRequires())).To(Equal(0))
|
||||||
|
Expect(pkgs[0].GetLicense()).To(Equal("GPL-3"))
|
||||||
|
Expect(pkgs[0].GetDescription()).To(Equal("Sabayon Packages Checker"))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
Context("Parse ebuild7", func() {
|
||||||
|
parser := &SimpleEbuildParser{}
|
||||||
|
pkgs, err := parser.ScanEbuild("../../../../tests/fixtures/parser/calamares-sabayon-base-modules-1.15.ebuild")
|
||||||
|
|
||||||
|
It("Check parsing of the ebuild7", func() {
|
||||||
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
fmt.Println("PKG ", pkgs[0])
|
||||||
|
Expect(len(pkgs[0].GetRequires())).To(Equal(2))
|
||||||
|
Expect(pkgs[0].GetLicense()).To(Equal("CC-BY-SA-4.0"))
|
||||||
|
Expect(pkgs[0].GetDescription()).To(Equal("Sabayon Official Calamares base modules"))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
Context("Parse ebuild8", func() {
|
||||||
|
parser := &SimpleEbuildParser{}
|
||||||
|
pkgs, err := parser.ScanEbuild("../../../../tests/fixtures/parser/subversion-1.12.0.ebuild")
|
||||||
|
|
||||||
|
It("Check parsing of the ebuild8", func() {
|
||||||
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
fmt.Println("PKG ", pkgs[0])
|
||||||
|
Expect(len(pkgs[0].GetRequires())).To(Equal(25))
|
||||||
|
Expect(pkgs[0].GetLicense()).To(Equal("Subversion GPL-2"))
|
||||||
|
Expect(pkgs[0].GetDescription()).To(Equal("Advanced version control system"))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
Context("Parse ebuild9", func() {
|
||||||
|
parser := &SimpleEbuildParser{}
|
||||||
|
pkgs, err := parser.ScanEbuild("../../../../tests/fixtures/parser/kodi-raspberrypi-16.0.ebuild")
|
||||||
|
|
||||||
|
PIt("Check parsing of the ebuild9", func() {
|
||||||
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
fmt.Println("PKG ", pkgs[0])
|
||||||
|
Expect(len(pkgs[0].GetRequires())).To(Equal(66))
|
||||||
|
Expect(pkgs[0].GetLicense()).To(Equal("GPL-2"))
|
||||||
|
Expect(pkgs[0].GetDescription()).To(Equal("Kodi is a free and open source media-player and entertainment hub"))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
Context("Parse ebuild10", func() {
|
||||||
|
parser := &SimpleEbuildParser{}
|
||||||
|
pkgs, err := parser.ScanEbuild("../../../../tests/fixtures/parser/tango-icon-theme-0.8.90-r1.ebuild")
|
||||||
|
|
||||||
|
It("Check parsing of the ebuild10", func() {
|
||||||
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
fmt.Println("PKG ", pkgs[0])
|
||||||
|
Expect(len(pkgs[0].GetRequires())).To(Equal(2))
|
||||||
|
Expect(pkgs[0].GetLicense()).To(Equal("public-domain"))
|
||||||
|
Expect(pkgs[0].GetDescription()).To(Equal("SVG and PNG icon theme from the Tango project"))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
})
|
})
|
||||||
|
@@ -24,6 +24,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@@ -31,9 +32,13 @@ import (
|
|||||||
|
|
||||||
_gentoo "github.com/Sabayon/pkgs-checker/pkg/gentoo"
|
_gentoo "github.com/Sabayon/pkgs-checker/pkg/gentoo"
|
||||||
pkg "github.com/mudler/luet/pkg/package"
|
pkg "github.com/mudler/luet/pkg/package"
|
||||||
"mvdan.cc/sh/expand"
|
"mvdan.cc/sh/v3/expand"
|
||||||
"mvdan.cc/sh/shell"
|
"mvdan.cc/sh/v3/shell"
|
||||||
"mvdan.cc/sh/syntax"
|
"mvdan.cc/sh/v3/syntax"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
uriRegex = "(.*[.]tar[.].*|.*[.]zip|.*[.]run|.*[.]png|.*[.]rpm|.*[.]gz)"
|
||||||
)
|
)
|
||||||
|
|
||||||
// SimpleEbuildParser ignores USE flags and generates just 1-1 package
|
// SimpleEbuildParser ignores USE flags and generates just 1-1 package
|
||||||
@@ -66,15 +71,15 @@ func NewGentooDependency(pkg, use string) (*GentooDependency, error) {
|
|||||||
|
|
||||||
if pkg != "" {
|
if pkg != "" {
|
||||||
ans.Dep, err = _gentoo.ParsePackageStr(pkg)
|
ans.Dep, err = _gentoo.ParsePackageStr(pkg)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: Fix this on parsing phase for handle correctly ${PV}
|
// TODO: Fix this on parsing phase for handle correctly ${PV}
|
||||||
if strings.HasSuffix(ans.Dep.Name, "-") {
|
if strings.HasSuffix(ans.Dep.Name, "-") {
|
||||||
ans.Dep.Name = ans.Dep.Name[:len(ans.Dep.Name)-1]
|
ans.Dep.Name = ans.Dep.Name[:len(ans.Dep.Name)-1]
|
||||||
}
|
}
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return ans, nil
|
return ans, nil
|
||||||
@@ -143,6 +148,7 @@ func (r *GentooRDEPEND) GetDependencies() []*GentooDependency {
|
|||||||
func ParseRDEPEND(rdepend string) (*GentooRDEPEND, error) {
|
func ParseRDEPEND(rdepend string) (*GentooRDEPEND, error) {
|
||||||
var lastdep []*GentooDependency = make([]*GentooDependency, 0)
|
var lastdep []*GentooDependency = make([]*GentooDependency, 0)
|
||||||
var pendingDep = false
|
var pendingDep = false
|
||||||
|
var orDep = false
|
||||||
var dep *GentooDependency
|
var dep *GentooDependency
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
@@ -158,20 +164,34 @@ func ParseRDEPEND(rdepend string) (*GentooRDEPEND, error) {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if strings.HasPrefix(rr, "|| (") {
|
||||||
|
orDep = true
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
if orDep {
|
||||||
|
rr = strings.TrimSpace(rr)
|
||||||
|
if rr == ")" {
|
||||||
|
orDep = false
|
||||||
|
}
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
if strings.Index(rr, "?") > 0 {
|
if strings.Index(rr, "?") > 0 {
|
||||||
// use flag present
|
// use flag present
|
||||||
|
|
||||||
if pendingDep {
|
if pendingDep {
|
||||||
dep, err = lastdep[len(lastdep)-1].AddSubDependency("", rr[:strings.Index(rr, "?")])
|
dep, err = lastdep[len(lastdep)-1].AddSubDependency("", rr[:strings.Index(rr, "?")])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
Debug("Ignoring subdependency ", rr[:strings.Index(rr, "?")])
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
dep, err = NewGentooDependency("", rr[:strings.Index(rr, "?")])
|
dep, err = NewGentooDependency("", rr[:strings.Index(rr, "?")])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
Debug("Ignoring dep", rr)
|
||||||
|
} else {
|
||||||
|
ans.Dependencies = append(ans.Dependencies, dep)
|
||||||
}
|
}
|
||||||
ans.Dependencies = append(ans.Dependencies, dep)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if strings.Index(rr, ")") < 0 {
|
if strings.Index(rr, ")") < 0 {
|
||||||
@@ -179,6 +199,11 @@ func ParseRDEPEND(rdepend string) (*GentooRDEPEND, error) {
|
|||||||
lastdep = append(lastdep, dep)
|
lastdep = append(lastdep, dep)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if strings.Index(rr, "|| (") >= 0 {
|
||||||
|
// Ignore dep in or
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
fields := strings.Split(rr[strings.Index(rr, "?")+1:], " ")
|
fields := strings.Split(rr[strings.Index(rr, "?")+1:], " ")
|
||||||
for _, f := range fields {
|
for _, f := range fields {
|
||||||
f = strings.TrimSpace(f)
|
f = strings.TrimSpace(f)
|
||||||
@@ -188,7 +213,7 @@ func ParseRDEPEND(rdepend string) (*GentooRDEPEND, error) {
|
|||||||
|
|
||||||
_, err = dep.AddSubDependency(f, "")
|
_, err = dep.AddSubDependency(f, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
Debug("Ignoring subdependency ", f)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -213,11 +238,31 @@ func ParseRDEPEND(rdepend string) (*GentooRDEPEND, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
dep, err := NewGentooDependency(rr, "")
|
rr = strings.TrimSpace(rr)
|
||||||
if err != nil {
|
// Check if there multiple deps in single row
|
||||||
return nil, err
|
|
||||||
|
fields := strings.Split(rr, " ")
|
||||||
|
if len(fields) > 1 {
|
||||||
|
for _, rrr := range fields {
|
||||||
|
rrr = strings.TrimSpace(rrr)
|
||||||
|
if rrr == "" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
dep, err := NewGentooDependency(rrr, "")
|
||||||
|
if err != nil {
|
||||||
|
Debug("Ignoring dep", rr)
|
||||||
|
} else {
|
||||||
|
ans.Dependencies = append(ans.Dependencies, dep)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
dep, err := NewGentooDependency(rr, "")
|
||||||
|
if err != nil {
|
||||||
|
Debug("Ignoring dep", rr)
|
||||||
|
} else {
|
||||||
|
ans.Dependencies = append(ans.Dependencies, dep)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ans.Dependencies = append(ans.Dependencies, dep)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -232,14 +277,45 @@ func SourceFile(ctx context.Context, path string, pkg *_gentoo.GentooPackage) (m
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("could not open: %v", err)
|
return nil, fmt.Errorf("could not open: %v", err)
|
||||||
}
|
}
|
||||||
|
scontent := string(content)
|
||||||
|
|
||||||
// Add default Genoo Variables
|
// Add default Genoo Variables
|
||||||
ebuild := fmt.Sprintf("P=%s\n", pkg.GetP()) +
|
ebuild := fmt.Sprintf("P=%s\n", pkg.GetP()) +
|
||||||
fmt.Sprintf("PN=%s\n", pkg.GetPN()) +
|
fmt.Sprintf("PN=%s\n", pkg.GetPN()) +
|
||||||
fmt.Sprintf("PV=%s\n", pkg.GetPV()) +
|
fmt.Sprintf("PV=%s\n", pkg.GetPV()) +
|
||||||
fmt.Sprintf("PVR=%s\n", pkg.GetPVR()) +
|
fmt.Sprintf("PVR=%s\n", pkg.GetPVR())
|
||||||
string(content)
|
|
||||||
|
|
||||||
file, err := syntax.NewParser(syntax.StopAt("src")).Parse(strings.NewReader(ebuild), path)
|
// Disable inherit
|
||||||
|
scontent = strings.ReplaceAll(scontent, "inherit", "#inherit")
|
||||||
|
// Disable function from eclass (TODO: check how fix better this)
|
||||||
|
scontent = strings.ReplaceAll(scontent, "need_apache", "#need_apache")
|
||||||
|
scontent = strings.ReplaceAll(scontent, "want_apache", "#want_apache")
|
||||||
|
|
||||||
|
regexFuncs := regexp.MustCompile(
|
||||||
|
"[a-zA-Z]+.*[_][a-z]+[(][)][\\s]{",
|
||||||
|
)
|
||||||
|
matches := regexFuncs.FindAllIndex([]byte(scontent), -1)
|
||||||
|
// Drop section after functions (src_*, *() {)
|
||||||
|
if len(matches) > 0 {
|
||||||
|
ebuild = ebuild + scontent[:matches[0][0]]
|
||||||
|
} else {
|
||||||
|
ebuild = ebuild + scontent
|
||||||
|
}
|
||||||
|
|
||||||
|
// [[ ${PV} == "9999" ]] is not supported. Workaround but we need a better solution.
|
||||||
|
regexDoubleBrakets := regexp.MustCompile(
|
||||||
|
//"[[][[].*",
|
||||||
|
"^[[][[].*",
|
||||||
|
//"^.*\[\[.*\]\]",
|
||||||
|
)
|
||||||
|
matchDB := regexDoubleBrakets.FindAllIndex([]byte(ebuild), -1)
|
||||||
|
if len(matchDB) > 0 {
|
||||||
|
ebuild = ebuild[:matchDB[0][0]] + "#" + ebuild[matchDB[0][0]:]
|
||||||
|
}
|
||||||
|
|
||||||
|
//fmt.Println("EBUILD ", ebuild)
|
||||||
|
|
||||||
|
file, err := syntax.NewParser().Parse(strings.NewReader(ebuild), path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("could not parse: %v", err)
|
return nil, fmt.Errorf("could not parse: %v", err)
|
||||||
}
|
}
|
||||||
@@ -263,17 +339,18 @@ func (ep *SimpleEbuildParser) ScanEbuild(path string) ([]pkg.Package, error) {
|
|||||||
Name: gp.Name,
|
Name: gp.Name,
|
||||||
Version: fmt.Sprintf("%s%s", gp.Version, gp.VersionSuffix),
|
Version: fmt.Sprintf("%s%s", gp.Version, gp.VersionSuffix),
|
||||||
Category: gp.Category,
|
Category: gp.Category,
|
||||||
|
Uri: make([]string, 0),
|
||||||
}
|
}
|
||||||
|
|
||||||
Debug("Prepare package ", pack)
|
Debug("Prepare package ", pack.Category+"/"+pack.Name+"-"+pack.Version)
|
||||||
|
|
||||||
// Adding a timeout of 60secs, as with some bash files it can hang indefinetly
|
// Adding a timeout of 60secs, as with some bash files it can hang indefinetly
|
||||||
timeout, cancel := context.WithTimeout(context.Background(), 60*time.Second)
|
timeout, cancel := context.WithTimeout(context.Background(), 60*time.Second)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
vars, err := SourceFile(timeout, path, gp)
|
vars, err := SourceFile(timeout, path, gp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return []pkg.Package{pack}, nil
|
Error("Error on source file ", pack.Name, ": ", err)
|
||||||
// return []pkg.Package{}, err
|
return []pkg.Package{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Handle this a bit better
|
// TODO: Handle this a bit better
|
||||||
@@ -285,10 +362,49 @@ func (ep *SimpleEbuildParser) ScanEbuild(path string) ([]pkg.Package, error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Retrieve package description
|
||||||
|
descr, ok := vars["DESCRIPTION"]
|
||||||
|
if ok {
|
||||||
|
pack.SetDescription(descr.String())
|
||||||
|
}
|
||||||
|
// Retrieve package license
|
||||||
|
license, ok := vars["LICENSE"]
|
||||||
|
if ok {
|
||||||
|
pack.SetLicense(license.String())
|
||||||
|
}
|
||||||
|
uri, ok := vars["SRC_URI"]
|
||||||
|
if ok {
|
||||||
|
// TODO: handle mirror:
|
||||||
|
uris := strings.Split(uri.String(), "\n")
|
||||||
|
for _, u := range uris {
|
||||||
|
u = strings.TrimSpace(u)
|
||||||
|
|
||||||
|
if u == "" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if match, _ := regexp.Match(uriRegex, []byte(u)); match {
|
||||||
|
if strings.Index(u, "(") >= 0 {
|
||||||
|
regexUri := regexp.MustCompile("(http|ftp|mirror).*[ ]")
|
||||||
|
matches := regexUri.FindAllIndex([]byte(u), -1)
|
||||||
|
if len(matches) > 0 {
|
||||||
|
u = u[matches[0][0]:matches[0][1]]
|
||||||
|
} else {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pack.AddURI(u)
|
||||||
|
Debug("Add uri ", u)
|
||||||
|
} else {
|
||||||
|
Debug("Skip uri ", u)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
rdepend, ok := vars["RDEPEND"]
|
rdepend, ok := vars["RDEPEND"]
|
||||||
if ok {
|
if ok {
|
||||||
gRDEPEND, err := ParseRDEPEND(rdepend.String())
|
gRDEPEND, err := ParseRDEPEND(rdepend.String())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Warning("Error on parsing RDEPEND for package ", pack.Category+"/"+pack.Name, err)
|
||||||
return []pkg.Package{pack}, nil
|
return []pkg.Package{pack}, nil
|
||||||
// return []pkg.Package{}, err
|
// return []pkg.Package{}, err
|
||||||
}
|
}
|
||||||
|
@@ -120,7 +120,7 @@ var _ = Describe("Recipe", func() {
|
|||||||
s := solver.NewSolver(pkg.NewInMemoryDatabase(false), tree, tree)
|
s := solver.NewSolver(pkg.NewInMemoryDatabase(false), tree, tree)
|
||||||
solution, err := s.Install([]pkg.Package{pack})
|
solution, err := s.Install([]pkg.Package{pack})
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
Expect(len(solution)).To(Equal(10))
|
Expect(len(solution)).To(Equal(33))
|
||||||
|
|
||||||
var allSol string
|
var allSol string
|
||||||
for _, sol := range solution {
|
for _, sol := range solution {
|
||||||
|
25
tests/fixtures/parser/calamares-sabayon-base-modules-1.15.ebuild
vendored
Normal file
25
tests/fixtures/parser/calamares-sabayon-base-modules-1.15.ebuild
vendored
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
# Copyright 1999-2019 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=5
|
||||||
|
|
||||||
|
DESCRIPTION="Sabayon Official Calamares base modules"
|
||||||
|
HOMEPAGE="http://www.sabayon.org/"
|
||||||
|
SRC_URI="https://github.com/Sabayon/calamares-sabayon/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||||
|
LICENSE="CC-BY-SA-4.0"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64 ~x86"
|
||||||
|
IUSE=""
|
||||||
|
|
||||||
|
DEPEND="app-admin/calamares[networkmanager,upower]"
|
||||||
|
RDEPEND="${DEPEND}
|
||||||
|
>=sys-kernel/dracut-049"
|
||||||
|
|
||||||
|
S="${WORKDIR}/calamares-sabayon-${PV}"
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
insinto "/etc/calamares/"
|
||||||
|
doins -r "${FILESDIR}/modules-conf/"*
|
||||||
|
insinto "/usr/lib/calamares/modules/"
|
||||||
|
doins -r "${S}/"*
|
||||||
|
}
|
265
tests/fixtures/parser/kodi-raspberrypi-16.0.ebuild
vendored
Normal file
265
tests/fixtures/parser/kodi-raspberrypi-16.0.ebuild
vendored
Normal file
@@ -0,0 +1,265 @@
|
|||||||
|
# Copyright 1999-2015 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI="5"
|
||||||
|
|
||||||
|
# Does not work with py3 here
|
||||||
|
# It might work with py:2.5 but I didn't test that
|
||||||
|
PYTHON_COMPAT=( python2_7 )
|
||||||
|
PYTHON_REQ_USE="sqlite"
|
||||||
|
|
||||||
|
inherit eutils linux-info python-single-r1 multiprocessing autotools systemd
|
||||||
|
|
||||||
|
CODENAME="Jarvis"
|
||||||
|
case ${PV} in
|
||||||
|
9999)
|
||||||
|
EGIT_REPO_URI="git://github.com/xbmc/xbmc.git"
|
||||||
|
inherit git-r3
|
||||||
|
;;
|
||||||
|
*|*_p*)
|
||||||
|
MY_PV=${PV/_p/_r}
|
||||||
|
MY_P="kodi-${MY_PV}"
|
||||||
|
SRC_URI="http://mirrors.kodi.tv/releases/source/${MY_PV}-${CODENAME}.tar.gz -> ${P}.tar.gz
|
||||||
|
https://github.com/xbmc/xbmc/archive/${PV}-${CODENAME}.tar.gz -> ${P}.tar.gz
|
||||||
|
!java? ( http://mirrors.kodi.tv/releases/source/${MY_P}-generated-addons.tar.xz )"
|
||||||
|
KEYWORDS="~arm"
|
||||||
|
S=${WORKDIR}/xbmc-${PV}-${CODENAME}
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
DESCRIPTION="Kodi is a free and open source media-player and entertainment hub"
|
||||||
|
HOMEPAGE="http://kodi.tv/ http://kodi.wiki/"
|
||||||
|
|
||||||
|
LICENSE="GPL-2"
|
||||||
|
SLOT="0"
|
||||||
|
IUSE="airplay +alsa avahi bluetooth bluray caps +cec css dbus debug java joystick midi mysql +nfs profile -projectm pulseaudio rtmp +samba sftp test +texturepacker udisks upnp upower +usb vaapi vdpau webserver -X"
|
||||||
|
REQUIRED_USE="
|
||||||
|
udisks? ( dbus )
|
||||||
|
upower? ( dbus )
|
||||||
|
"
|
||||||
|
|
||||||
|
COMMON_DEPEND="${PYTHON_DEPS}
|
||||||
|
app-arch/bzip2
|
||||||
|
app-arch/unzip
|
||||||
|
app-arch/zip
|
||||||
|
app-i18n/enca
|
||||||
|
airplay? ( app-pda/libplist )
|
||||||
|
dev-libs/boost
|
||||||
|
dev-libs/expat
|
||||||
|
dev-libs/fribidi
|
||||||
|
dev-libs/libcdio[-minimal]
|
||||||
|
cec? ( >=dev-libs/libcec-3.0 )
|
||||||
|
dev-libs/libpcre[cxx]
|
||||||
|
dev-libs/libxml2
|
||||||
|
sys-apps/lsb-release
|
||||||
|
dev-libs/libxslt
|
||||||
|
>=dev-libs/lzo-2.04
|
||||||
|
dev-libs/tinyxml[stl]
|
||||||
|
dev-libs/yajl
|
||||||
|
dev-python/simplejson[${PYTHON_USEDEP}]
|
||||||
|
media-fonts/corefonts
|
||||||
|
media-fonts/roboto
|
||||||
|
alsa? ( media-libs/alsa-lib )
|
||||||
|
media-libs/flac
|
||||||
|
media-libs/fontconfig
|
||||||
|
media-libs/freetype
|
||||||
|
media-libs/jasper
|
||||||
|
x11-apps/xrefresh
|
||||||
|
media-libs/jbigkit
|
||||||
|
>=media-libs/libass-0.9.7
|
||||||
|
net-libs/libssh
|
||||||
|
bluray? ( >=media-libs/libbluray-0.7.0 )
|
||||||
|
css? ( media-libs/libdvdcss )
|
||||||
|
media-libs/libmad
|
||||||
|
media-libs/libmodplug
|
||||||
|
media-libs/libmpeg2
|
||||||
|
media-libs/libogg
|
||||||
|
media-libs/libpng:0=
|
||||||
|
media-libs/libsamplerate
|
||||||
|
joystick? ( media-libs/libsdl2 )
|
||||||
|
>=media-libs/taglib-1.8
|
||||||
|
media-libs/libvorbis
|
||||||
|
media-libs/tiff:0=
|
||||||
|
media-sound/dcadec
|
||||||
|
pulseaudio? ( media-sound/pulseaudio )
|
||||||
|
media-sound/wavpack
|
||||||
|
media-video/omxplayer
|
||||||
|
rtmp? ( media-video/rtmpdump )
|
||||||
|
avahi? ( net-dns/avahi )
|
||||||
|
nfs? ( net-fs/libnfs:= )
|
||||||
|
webserver? ( net-libs/libmicrohttpd[messages] )
|
||||||
|
sftp? ( net-libs/libssh[sftp] )
|
||||||
|
net-misc/curl
|
||||||
|
samba? ( >=net-fs/samba-3.4.6[smbclient(+)] )
|
||||||
|
bluetooth? ( net-wireless/bluez )
|
||||||
|
dbus? ( sys-apps/dbus )
|
||||||
|
caps? ( sys-libs/libcap )
|
||||||
|
sys-libs/zlib
|
||||||
|
virtual/jpeg:0=
|
||||||
|
usb? ( virtual/libusb:1 )
|
||||||
|
mysql? ( virtual/mysql )
|
||||||
|
media-libs/mesa[gles2]
|
||||||
|
vaapi? ( x11-libs/libva[opengl] )
|
||||||
|
vdpau? (
|
||||||
|
|| ( >=x11-libs/libvdpau-1.1 >=x11-drivers/nvidia-drivers-180.51 )
|
||||||
|
)
|
||||||
|
X? (
|
||||||
|
x11-apps/xdpyinfo
|
||||||
|
x11-apps/mesa-progs
|
||||||
|
x11-libs/libXinerama
|
||||||
|
x11-libs/libXrandr
|
||||||
|
x11-libs/libXrender
|
||||||
|
)"
|
||||||
|
RDEPEND="${COMMON_DEPEND}
|
||||||
|
!media-tv/xbmc
|
||||||
|
!media-tv/kodi
|
||||||
|
udisks? ( sys-fs/udisks:0 )
|
||||||
|
upower? ( || ( sys-power/upower sys-power/upower-pm-utils ) )"
|
||||||
|
DEPEND="${COMMON_DEPEND}
|
||||||
|
app-arch/xz-utils
|
||||||
|
dev-lang/swig
|
||||||
|
media-video/ffmpeg
|
||||||
|
dev-libs/crossguid
|
||||||
|
dev-util/gperf
|
||||||
|
X? ( x11-proto/xineramaproto )
|
||||||
|
dev-util/cmake
|
||||||
|
x86? ( dev-lang/nasm )
|
||||||
|
java? ( virtual/jre )
|
||||||
|
test? ( dev-cpp/gtest )
|
||||||
|
virtual/pkgconfig"
|
||||||
|
# Force java for latest git version to avoid having to hand maintain the
|
||||||
|
# generated addons package. #488118
|
||||||
|
[[ ${PV} == "9999" ]] && DEPEND+=" virtual/jre"
|
||||||
|
|
||||||
|
CONFIG_CHECK="~IP_MULTICAST"
|
||||||
|
ERROR_IP_MULTICAST="
|
||||||
|
In some cases Kodi needs to access multicast addresses.
|
||||||
|
Please consider enabling IP_MULTICAST under Networking options.
|
||||||
|
"
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
check_extra_config
|
||||||
|
python-single-r1_pkg_setup
|
||||||
|
}
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
[[ ${PV} == "9999" ]] && git-r3_src_unpack || default
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
epatch "${FILESDIR}"/${PN}-9999-no-arm-flags.patch #400617
|
||||||
|
epatch "${FILESDIR}"/${PN}-9999-texturepacker.patch
|
||||||
|
epatch "${FILESDIR}"/${PN}-16-ffmpeg3.patch
|
||||||
|
|
||||||
|
# some dirs ship generated autotools, some dont
|
||||||
|
multijob_init
|
||||||
|
local d dirs=(
|
||||||
|
tools/depends/native/TexturePacker/src/configure
|
||||||
|
$(printf 'f:\n\t@echo $(BOOTSTRAP_TARGETS)\ninclude bootstrap.mk\n' | emake -f - f)
|
||||||
|
)
|
||||||
|
for d in "${dirs[@]}" ; do
|
||||||
|
[[ -e ${d} ]] && continue
|
||||||
|
pushd ${d/%configure/.} >/dev/null || die
|
||||||
|
AT_NOELIBTOOLIZE="yes" AT_TOPLEVEL_EAUTORECONF="yes" \
|
||||||
|
multijob_child_init eautoreconf
|
||||||
|
popd >/dev/null
|
||||||
|
done
|
||||||
|
multijob_finish
|
||||||
|
elibtoolize
|
||||||
|
|
||||||
|
[[ ${PV} == "9999" ]] && emake -f codegenerator.mk
|
||||||
|
|
||||||
|
# Disable internal func checks as our USE/DEPEND
|
||||||
|
# stuff handles this just fine already #408395
|
||||||
|
export ac_cv_lib_avcodec_ff_vdpau_vc1_decode_picture=yes
|
||||||
|
|
||||||
|
# Fix the final version string showing as "exported"
|
||||||
|
# instead of the SVN revision number.
|
||||||
|
export HAVE_GIT=no GIT_REV=${EGIT_VERSION:-exported}
|
||||||
|
|
||||||
|
# avoid long delays when powerkit isn't running #348580
|
||||||
|
sed -i \
|
||||||
|
-e '/dbus_connection_send_with_reply_and_block/s:-1:3000:' \
|
||||||
|
xbmc/linux/*.cpp || die
|
||||||
|
|
||||||
|
epatch_user #293109
|
||||||
|
|
||||||
|
# Tweak autotool timestamps to avoid regeneration
|
||||||
|
find . -type f -exec touch -r configure {} +
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# Disable documentation generation
|
||||||
|
export ac_cv_path_LATEX=no
|
||||||
|
# Avoid help2man
|
||||||
|
export HELP2MAN=$(type -P help2man || echo true)
|
||||||
|
# No configure flage for this #403561
|
||||||
|
export ac_cv_lib_bluetooth_hci_devid=$(usex bluetooth)
|
||||||
|
# Requiring java is asine #434662
|
||||||
|
[[ ${PV} != "9999" ]] && export ac_cv_path_JAVA_EXE=$(which $(usex java java true))
|
||||||
|
|
||||||
|
econf \
|
||||||
|
--docdir=/usr/share/doc/${PF} \
|
||||||
|
--disable-gl \
|
||||||
|
--enable-gles \
|
||||||
|
--with-platform=raspberry-pi \
|
||||||
|
--disable-sdl \
|
||||||
|
--enable-optimizations \
|
||||||
|
--disable-x11 \
|
||||||
|
--disable-goom \
|
||||||
|
--disable-xrandr \
|
||||||
|
--disable-mid \
|
||||||
|
--enable-nfs \
|
||||||
|
--disable-profiling \
|
||||||
|
--enable-rsxs \
|
||||||
|
--disable-debug \
|
||||||
|
--disable-joystick \
|
||||||
|
--disable-vaapi \
|
||||||
|
--disable-vdpau \
|
||||||
|
--disable-avahi \
|
||||||
|
--enable-libcec \
|
||||||
|
--disable-pulse \
|
||||||
|
--disable-projectm \
|
||||||
|
--disable-optical-drive \
|
||||||
|
--disable-dvdcss \
|
||||||
|
--disable-vtbdecoder \
|
||||||
|
--enable-alsa \
|
||||||
|
--enable-player=omxplayer
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
emake V=1
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
default
|
||||||
|
rm "${ED}"/usr/share/doc/*/{LICENSE.GPL,copying.txt}* || die
|
||||||
|
|
||||||
|
domenu tools/Linux/kodi.desktop
|
||||||
|
newicon media/icon48x48.png kodi.png
|
||||||
|
|
||||||
|
insinto /etc/udev/rules.d
|
||||||
|
newins "${FILESDIR}/99-input.rules" 99-input.rules
|
||||||
|
|
||||||
|
# Remove fonconfig settings that are used only on MacOSX.
|
||||||
|
# Can't be patched upstream because they just find all files and install
|
||||||
|
# them into same structure like they have in git.
|
||||||
|
rm -rf "${ED}"/usr/share/kodi/system/players/dvdplayer/etc
|
||||||
|
|
||||||
|
# Replace bundled fonts with system ones
|
||||||
|
# teletext.ttf: unknown
|
||||||
|
# bold-caps.ttf: unknown
|
||||||
|
# roboto: roboto-bold, roboto-regular
|
||||||
|
# arial.ttf: font mashed from droid/roboto, not removed wrt bug#460514
|
||||||
|
rm -rf "${ED}"/usr/share/kodi/addons/skin.confluence/fonts/Roboto-* || die
|
||||||
|
dosym /usr/share/fonts/roboto/Roboto-Regular.ttf \
|
||||||
|
/usr/share/kodi/addons/skin.confluence/fonts/Roboto-Regular.ttf
|
||||||
|
dosym /usr/share/fonts/roboto/Roboto-Bold.ttf \
|
||||||
|
/usr/share/kodi/addons/skin.confluence/fonts/Roboto-Bold.ttf
|
||||||
|
|
||||||
|
python_domodule tools/EventClients/lib/python/xbmcclient.py
|
||||||
|
python_newscript "tools/EventClients/Clients/Kodi Send/kodi-send.py" kodi-send
|
||||||
|
dobin "${FILESDIR}"/startkodi
|
||||||
|
systemd_dounit "${FILESDIR}"/${PN}.service
|
||||||
|
|
||||||
|
}
|
32
tests/fixtures/parser/libreoffice-l10n-meta-6.2.8.2.ebuild
vendored
Normal file
32
tests/fixtures/parser/libreoffice-l10n-meta-6.2.8.2.ebuild
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# Copyright 2004-2008 Sabayon Linux
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=4
|
||||||
|
|
||||||
|
DESCRIPTION="LibreOffice.org localisation meta-package"
|
||||||
|
HOMEPAGE="http://www.documentfoundation.org"
|
||||||
|
LICENSE="LGPL-2"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64 ~x86"
|
||||||
|
SRC_URI=""
|
||||||
|
RDEPEND=""
|
||||||
|
DEPEND=""
|
||||||
|
IUSE=""
|
||||||
|
|
||||||
|
SPELL_DIRS="af bg ca cs cy da de el en eo es et fo fr ga gl he hr hu ia id it \
|
||||||
|
lt lv mi mk nb nl pl pt ro ru sk sl sv sw tn uk zu"
|
||||||
|
|
||||||
|
LANGS="af am ar as ast be bg bn bo br brx bs ca cs cy da de dgo dz el \
|
||||||
|
en_GB en_US en_ZA eo es et eu fa fi fr ga gd gl gu gug he hi hr hu id is it ja ka kk km kn \
|
||||||
|
ko kok ks lb lo lt lv mai mk ml mn mni mr my nb ne nl nn nr nso oc om or pa_IN \
|
||||||
|
pl pt pt_BR ro ru rw sa_IN sat sd si sid sk sl sq sr ss st sv sw_TZ ta te tg \
|
||||||
|
th tn tr ts tt ug uk uz ve vi xh zh_CN zh_TW zu"
|
||||||
|
|
||||||
|
for X in ${LANGS}; do
|
||||||
|
IUSE+=" linguas_${X}"
|
||||||
|
RDEPEND+=" linguas_${X}? ( ~app-office/libreoffice-l10n-${X}-${PV} )"
|
||||||
|
done
|
||||||
|
for X in ${SPELL_DIRS}; do
|
||||||
|
IUSE+=" linguas_${X}"
|
||||||
|
RDEPEND+=" linguas_${X}? ( app-dicts/myspell-${X} )"
|
||||||
|
done
|
42
tests/fixtures/parser/linux-sources-1.ebuild
vendored
Normal file
42
tests/fixtures/parser/linux-sources-1.ebuild
vendored
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
# Copyright 1999-2015 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=2
|
||||||
|
|
||||||
|
DESCRIPTION="Virtual for Linux kernel sources"
|
||||||
|
HOMEPAGE=""
|
||||||
|
SRC_URI=""
|
||||||
|
|
||||||
|
LICENSE=""
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64 ~arm ~hppa ~ia64 ~x86"
|
||||||
|
IUSE="firmware"
|
||||||
|
|
||||||
|
SABAYON_SOURCES="sys-kernel/sabayon-sources
|
||||||
|
sys-kernel/server-sources
|
||||||
|
sys-kernel/rt-sources
|
||||||
|
sys-kernel/efikamx-sources
|
||||||
|
sys-kernel/odroid-sources
|
||||||
|
sys-kernel/beagle-sources
|
||||||
|
sys-kernel/beaglebone-sources"
|
||||||
|
|
||||||
|
DEPEND="firmware? ( sys-kernel/linux-firmware )"
|
||||||
|
RDEPEND="|| (
|
||||||
|
${SABAYON_SOURCES}
|
||||||
|
sys-kernel/gentoo-sources
|
||||||
|
sys-kernel/vanilla-sources
|
||||||
|
sys-kernel/ck-sources
|
||||||
|
sys-kernel/git-sources
|
||||||
|
sys-kernel/hardened-sources
|
||||||
|
sys-kernel/mips-sources
|
||||||
|
sys-kernel/openvz-sources
|
||||||
|
sys-kernel/pf-sources
|
||||||
|
sys-kernel/rsbac-sources
|
||||||
|
sys-kernel/sparc-sources
|
||||||
|
sys-kernel/tuxonice-sources
|
||||||
|
sys-kernel/usermode-sources
|
||||||
|
sys-kernel/vserver-sources
|
||||||
|
sys-kernel/xbox-sources
|
||||||
|
sys-kernel/xen-sources
|
||||||
|
sys-kernel/zen-sources
|
||||||
|
)"
|
298
tests/fixtures/parser/mod_dav_svn-1.12.2.ebuild
vendored
Normal file
298
tests/fixtures/parser/mod_dav_svn-1.12.2.ebuild
vendored
Normal file
@@ -0,0 +1,298 @@
|
|||||||
|
# Copyright 1999-2019 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=6
|
||||||
|
|
||||||
|
WANT_AUTOMAKE="none"
|
||||||
|
MY_P="${P/_/-}"
|
||||||
|
|
||||||
|
MY_SVN_PN="subversion"
|
||||||
|
MY_SVN_P="${MY_SVN_PN}-${PV}"
|
||||||
|
MY_SVN_PF="${MY_SVN_PN}-${PVR}"
|
||||||
|
|
||||||
|
inherit autotools db-use depend.apache flag-o-matic libtool multilib xdg-utils
|
||||||
|
|
||||||
|
DESCRIPTION="Subversion WebDAV support"
|
||||||
|
HOMEPAGE="https://subversion.apache.org/"
|
||||||
|
SRC_URI="mirror://apache/${MY_SVN_PN}/${MY_SVN_P}.tar.bz2
|
||||||
|
https://dev.gentoo.org/~polynomial-c/${MY_SVN_PN}-1.10.0_rc1-patches-1.tar.xz"
|
||||||
|
S="${WORKDIR}/${MY_SVN_P}"
|
||||||
|
|
||||||
|
LICENSE="Subversion"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64 ~arm ~x86"
|
||||||
|
IUSE="berkdb debug +dso nls sasl"
|
||||||
|
# w/o: ctypes-python doc extras gnome-keyring java kde perl python ruby
|
||||||
|
# test vim-syntax; implicit: apache2, http
|
||||||
|
|
||||||
|
# This is an ebuild that provides mod_dav_svn and friends (it does more or
|
||||||
|
# less the same as when USE="apache2 http" is added to dev-vcs/subversion - basically
|
||||||
|
# provides three Apache modules and a configuration file), suitable for binary
|
||||||
|
# packages.
|
||||||
|
# Some flags in IUSE and their handling are only used to enforce the code be
|
||||||
|
# compiled sufficiently the same way Subversion itself was - extra carefulness.
|
||||||
|
# In the process of building libraries for WebDAV, a few unused libraries are
|
||||||
|
# also built (not the whole Subversion, though, which is a win). Some build
|
||||||
|
# time dependencies here are just for them.
|
||||||
|
|
||||||
|
# If you are building it for yourself, you don't need it.
|
||||||
|
# USE=apache2 emerge dev-vcs/subversion will do what you want.
|
||||||
|
# However, you can use this ebuild too.
|
||||||
|
|
||||||
|
# variable specific to www-apache/mod_dav_svn
|
||||||
|
MY_CDEPS="
|
||||||
|
~dev-vcs/subversion-${PV}[berkdb=,debug=,dso=,nls=,sasl=,http]
|
||||||
|
app-arch/bzip2
|
||||||
|
app-arch/lz4
|
||||||
|
>=dev-db/sqlite-3.7.12
|
||||||
|
>=dev-libs/apr-1.3:1
|
||||||
|
>=dev-libs/apr-util-1.3:1
|
||||||
|
dev-libs/expat
|
||||||
|
dev-libs/libutf8proc:=
|
||||||
|
sys-apps/file
|
||||||
|
sys-libs/zlib
|
||||||
|
berkdb? ( >=sys-libs/db-4.0.14:= )
|
||||||
|
"
|
||||||
|
|
||||||
|
DEPEND="${MY_CDEPS}
|
||||||
|
>=net-libs/serf-1.3.4
|
||||||
|
sasl? ( dev-libs/cyrus-sasl )
|
||||||
|
virtual/pkgconfig
|
||||||
|
!!<sys-apps/sandbox-1.6
|
||||||
|
nls? ( sys-devel/gettext )
|
||||||
|
sys-apps/file"
|
||||||
|
RDEPEND="${MY_CDEPS}
|
||||||
|
!dev-vcs/subversion[apache2]
|
||||||
|
|
||||||
|
www-servers/apache[apache2_modules_dav]
|
||||||
|
nls? ( virtual/libintl )"
|
||||||
|
|
||||||
|
need_apache # was: want_apache
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
if use berkdb ; then
|
||||||
|
local apu_bdb_version="$(${EPREFIX}/usr/bin/apu-1-config --includes \
|
||||||
|
| grep -Eoe '-I${EPREFIX}/usr/include/db[[:digit:]]\.[[:digit:]]' \
|
||||||
|
| sed 's:.*b::')"
|
||||||
|
einfo
|
||||||
|
if [[ -z "${SVN_BDB_VERSION}" ]] ; then
|
||||||
|
if [[ -n "${apu_bdb_version}" ]] ; then
|
||||||
|
SVN_BDB_VERSION="${apu_bdb_version}"
|
||||||
|
einfo "Matching db version to apr-util"
|
||||||
|
else
|
||||||
|
SVN_BDB_VERSION="$(db_ver_to_slot "$(db_findver sys-libs/db 2>/dev/null)")"
|
||||||
|
einfo "SVN_BDB_VERSION variable isn't set. You can set it to enforce using of specific version of Berkeley DB."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
einfo "Using: Berkeley DB ${SVN_BDB_VERSION}"
|
||||||
|
einfo
|
||||||
|
|
||||||
|
if [[ -n "${apu_bdb_version}" && "${SVN_BDB_VERSION}" != "${apu_bdb_version}" ]]; then
|
||||||
|
eerror "APR-Util is linked against Berkeley DB ${apu_bdb_version}, but you are trying"
|
||||||
|
eerror "to build Subversion with support for Berkeley DB ${SVN_BDB_VERSION}."
|
||||||
|
eerror "Rebuild dev-libs/apr-util or set SVN_BDB_VERSION=\"${apu_bdb_version}\"."
|
||||||
|
eerror "Aborting to avoid possible run-time crashes."
|
||||||
|
die "Berkeley DB version mismatch"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# depend.apache_pkg_setup
|
||||||
|
|
||||||
|
# https://issues.apache.org/jira/browse/SVN-4813#comment-16813739
|
||||||
|
append-cppflags -P
|
||||||
|
|
||||||
|
if use debug ; then
|
||||||
|
append-cppflags -DSVN_DEBUG -DAP_DEBUG
|
||||||
|
fi
|
||||||
|
|
||||||
|
# http://mail-archives.apache.org/mod_mbox/subversion-dev/201306.mbox/%3C51C42014.3060700@wandisco.com%3E
|
||||||
|
[[ ${CHOST} == *-solaris2* ]] && append-cppflags -D__EXTENSIONS__
|
||||||
|
|
||||||
|
# Allow for custom repository locations.
|
||||||
|
SVN_REPOS_LOC="${SVN_REPOS_LOC:-${EPREFIX}/var/svn}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
eapply "${WORKDIR}/patches"
|
||||||
|
eapply_user
|
||||||
|
|
||||||
|
chmod +x build/transform_libtool_scripts.sh || die
|
||||||
|
|
||||||
|
sed -i \
|
||||||
|
-e "s/\(BUILD_RULES=.*\) bdb-test\(.*\)/\1\2/g" \
|
||||||
|
-e "s/\(BUILD_RULES=.*\) test\(.*\)/\1\2/g" configure.ac
|
||||||
|
|
||||||
|
# this bites us in particular on Solaris
|
||||||
|
sed -i -e '1c\#!/usr/bin/env sh' build/transform_libtool_scripts.sh || \
|
||||||
|
die "/bin/sh is not POSIX shell!"
|
||||||
|
|
||||||
|
eautoconf
|
||||||
|
elibtoolize
|
||||||
|
|
||||||
|
#sed -e 's/\(libsvn_swig_py\)-\(1\.la\)/\1-$(EPYTHON)-\2/g' \
|
||||||
|
#-i build-outputs.mk || die "sed failed"
|
||||||
|
|
||||||
|
xdg_environment_reset
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
local myconf=(
|
||||||
|
--libdir="${EPREFIX%/}/usr/$(get_libdir)"
|
||||||
|
--with-apache-libexecdir
|
||||||
|
--with-apxs="${EPREFIX}"/usr/bin/apxs
|
||||||
|
$(use_with berkdb berkeley-db "db.h:${EPREFIX%/}/usr/include/db${SVN_BDB_VERSION}::db-${SVN_BDB_VERSION}")
|
||||||
|
--without-ctypesgen
|
||||||
|
$(use_enable dso runtime-module-search)
|
||||||
|
--without-gnome-keyring
|
||||||
|
--disable-javahl
|
||||||
|
--without-jdk
|
||||||
|
--without-kwallet
|
||||||
|
$(use_enable nls)
|
||||||
|
$(use_with sasl)
|
||||||
|
--with-serf
|
||||||
|
--with-apr="${EPREFIX%/}/usr/bin/apr-1-config"
|
||||||
|
--with-apr-util="${EPREFIX%/}/usr/bin/apu-1-config"
|
||||||
|
--disable-experimental-libtool
|
||||||
|
--without-jikes
|
||||||
|
--disable-mod-activation
|
||||||
|
--disable-static
|
||||||
|
--enable-svnxx
|
||||||
|
)
|
||||||
|
|
||||||
|
#use python || use perl || use ruby
|
||||||
|
myconf+=( --without-swig )
|
||||||
|
|
||||||
|
#use java
|
||||||
|
myconf+=( --without-junit )
|
||||||
|
|
||||||
|
case ${CHOST} in
|
||||||
|
*-aix*)
|
||||||
|
# avoid recording immediate path to sharedlibs into executables
|
||||||
|
append-ldflags -Wl,-bnoipath
|
||||||
|
;;
|
||||||
|
*-cygwin*)
|
||||||
|
# no LD_PRELOAD support, no undefined symbols
|
||||||
|
myconf+=( --disable-local-library-preloading LT_LDFLAGS=-no-undefined )
|
||||||
|
;;
|
||||||
|
*-interix*)
|
||||||
|
# loader crashes on the LD_PRELOADs...
|
||||||
|
myconf+=( --disable-local-library-preloading )
|
||||||
|
;;
|
||||||
|
*-solaris*)
|
||||||
|
# need -lintl to link
|
||||||
|
use nls && append-libs intl
|
||||||
|
# this breaks installation, on x64 echo replacement is 32-bits
|
||||||
|
myconf+=( --disable-local-library-preloading )
|
||||||
|
;;
|
||||||
|
*-mint*)
|
||||||
|
myconf+=( --enable-all-static --disable-local-library-preloading )
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# inject LD_PRELOAD entries for easy in-tree development
|
||||||
|
myconf+=( --enable-local-library-preloading )
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
#workaround for bug 387057
|
||||||
|
has_version =dev-vcs/subversion-1.6* && myconf+=( --disable-disallowing-of-undefined-references )
|
||||||
|
|
||||||
|
#version 1.7.7 again tries to link against the older installed version and fails, when trying to
|
||||||
|
#compile for x86 on amd64, so workaround this issue again
|
||||||
|
#check newer versions, if this is still/again needed
|
||||||
|
#myconf+=( --disable-disallowing-of-undefined-references )
|
||||||
|
|
||||||
|
# allow overriding Python include directory
|
||||||
|
#ac_cv_path_RUBY=$(usex ruby "${EPREFIX%/}/usr/bin/ruby${RB_VER}" "none")
|
||||||
|
#ac_cv_path_RDOC=(usex ruby "${EPREFIX%/}/usr/bin/rdoc${RB_VER}" "none")
|
||||||
|
ac_cv_python_includes='-I$(PYTHON_INCLUDEDIR)' \
|
||||||
|
econf "${myconf[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
emake apache-mod
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
emake DESTDIR="${D}" install-mods-shared
|
||||||
|
|
||||||
|
# Install Apache module configuration.
|
||||||
|
#use apache2
|
||||||
|
keepdir "${APACHE_MODULES_CONFDIR}"
|
||||||
|
insinto "${APACHE_MODULES_CONFDIR}"
|
||||||
|
doins "${FILESDIR}/47_mod_dav_svn.conf"
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_preinst() {
|
||||||
|
# Compare versions of Berkeley DB, bug 122877.
|
||||||
|
if use berkdb && [[ -f "${EROOT}/usr/bin/svn" ]] ; then
|
||||||
|
OLD_BDB_VERSION="$(scanelf -nq "${EROOT}/usr/$(get_libdir)/libsvn_subr-1$(get_libname 0)" | grep -Eo "libdb-[[:digit:]]+\.[[:digit:]]+" | sed -e "s/libdb-\(.*\)/\1/")"
|
||||||
|
NEW_BDB_VERSION="$(scanelf -nq "${ED%/}/usr/$(get_libdir)/libsvn_subr-1$(get_libname 0)" | grep -Eo "libdb-[[:digit:]]+\.[[:digit:]]+" | sed -e "s/libdb-\(.*\)/\1/")"
|
||||||
|
if [[ "${OLD_BDB_VERSION}" != "${NEW_BDB_VERSION}" ]] ; then
|
||||||
|
CHANGED_BDB_VERSION="1"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
if [[ -n "${CHANGED_BDB_VERSION}" ]] ; then
|
||||||
|
ewarn "You upgraded from an older version of Berkeley DB and may experience"
|
||||||
|
ewarn "problems with your repository. Run the following commands as root to fix it:"
|
||||||
|
ewarn " db4_recover -h ${SVN_REPOS_LOC}/repos"
|
||||||
|
ewarn " chown -Rf apache:apache ${SVN_REPOS_LOC}/repos"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#ewarn "If you run subversion as a daemon, you will need to restart it to avoid module mismatches."
|
||||||
|
|
||||||
|
# from src_install in Gentoo ebuild:
|
||||||
|
##adjust default user and group with disabled apache2 USE flag, bug 381385
|
||||||
|
#use apache2 || sed -e "s\USER:-apache\USER:-svn\g" \
|
||||||
|
# -e "s\GROUP:-apache\GROUP:-svnusers\g" \
|
||||||
|
# -i "${ED}"etc/init.d/svnserve || die
|
||||||
|
#use apache2 || sed -e "0,/apache/s//svn/" \
|
||||||
|
# -e "s:apache:svnusers:" \
|
||||||
|
# -i "${ED}"etc/xinetd.d/svnserve || die
|
||||||
|
# We need to address it here with a message (when Subversion ebuild is
|
||||||
|
# intented to be build with USE=-apache2).
|
||||||
|
# Also, user doesn't need to tweak init.d script - user and group can
|
||||||
|
# be changed in conf.d.
|
||||||
|
elog "svnserve users: You may want to change user and group in /etc/conf.d/svnserve"
|
||||||
|
elog "and /etc/xinetd.d/svnserve from current svn:svnusers to apache:apache,"
|
||||||
|
elog "especially if you want to make use of emerge --config ${CATEGORY}/${PN}"
|
||||||
|
elog "and its default ownership settings."
|
||||||
|
}
|
||||||
|
|
||||||
|
#pkg_postrm()
|
||||||
|
|
||||||
|
pkg_config() {
|
||||||
|
# Remember: Don't use ${EROOT}${SVN_REPOS_LOC} since ${SVN_REPOS_LOC}
|
||||||
|
# already has EPREFIX in it
|
||||||
|
einfo "Initializing the database in ${SVN_REPOS_LOC}..."
|
||||||
|
if [[ -e "${SVN_REPOS_LOC}/repos" ]] ; then
|
||||||
|
echo "A Subversion repository already exists and I will not overwrite it."
|
||||||
|
echo "Delete \"${SVN_REPOS_LOC}/repos\" first if you're sure you want to have a clean version."
|
||||||
|
else
|
||||||
|
mkdir -p "${SVN_REPOS_LOC}/conf"
|
||||||
|
|
||||||
|
einfo "Populating repository directory..."
|
||||||
|
# Create initial repository.
|
||||||
|
"${EROOT}/usr/bin/svnadmin" create "${SVN_REPOS_LOC}/repos"
|
||||||
|
|
||||||
|
einfo "Setting repository permissions..."
|
||||||
|
SVNSERVE_USER="$(. "${EROOT}/etc/conf.d/svnserve"; echo "${SVNSERVE_USER}")"
|
||||||
|
SVNSERVE_GROUP="$(. "${EROOT}/etc/conf.d/svnserve"; echo "${SVNSERVE_GROUP}")"
|
||||||
|
#use apache2
|
||||||
|
[[ -z "${SVNSERVE_USER}" ]] && SVNSERVE_USER="apache"
|
||||||
|
[[ -z "${SVNSERVE_GROUP}" ]] && SVNSERVE_GROUP="apache"
|
||||||
|
#use !apache2
|
||||||
|
#[[ -z "${SVNSERVE_USER}" ]] && SVNSERVE_USER="svn"
|
||||||
|
#[[ -z "${SVNSERVE_GROUP}" ]] && SVNSERVE_GROUP="svnusers"
|
||||||
|
|
||||||
|
chmod -Rf go-rwx "${SVN_REPOS_LOC}/conf"
|
||||||
|
chmod -Rf o-rwx "${SVN_REPOS_LOC}/repos"
|
||||||
|
echo "Please create \"${SVNSERVE_GROUP}\" group if it does not exist yet."
|
||||||
|
echo "Afterwards please create \"${SVNSERVE_USER}\" user with homedir \"${SVN_REPOS_LOC}\""
|
||||||
|
echo "and as part of the \"${SVNSERVE_GROUP}\" group if it does not exist yet."
|
||||||
|
echo "Finally, execute \"chown -Rf ${SVNSERVE_USER}:${SVNSERVE_GROUP} ${SVN_REPOS_LOC}/repos\""
|
||||||
|
echo "to finish the configuration."
|
||||||
|
fi
|
||||||
|
}
|
34
tests/fixtures/parser/pkgs-checker-0.2.0.ebuild
vendored
Normal file
34
tests/fixtures/parser/pkgs-checker-0.2.0.ebuild
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
# Copyright 1999-2018 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=6
|
||||||
|
|
||||||
|
EGO_PN="github.com/Sabayon/${PN}"
|
||||||
|
S="${WORKDIR}/${P}/src/${EGO_PN}"
|
||||||
|
|
||||||
|
if [[ ${PV} == *9999 ]]; then
|
||||||
|
inherit golang-vcs
|
||||||
|
else
|
||||||
|
# SRC_URI="https://${EGO_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||||
|
KEYWORDS="~amd64 ~arm ~arm64"
|
||||||
|
RESTRICT="mirror"
|
||||||
|
inherit golang-vcs git-r3
|
||||||
|
EGIT_REPO_URI="https://${EGO_PN}"
|
||||||
|
EGIT_COMMIT="1ede3280570fd9aec9af1e5df1990797996510ab"
|
||||||
|
EGIT_CHECKOUT_DIR="${S}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
inherit golang-build user systemd
|
||||||
|
DESCRIPTION="Sabayon Packages Checker"
|
||||||
|
HOMEPAGE="https://github.com/Sabayon/pkgs-checker"
|
||||||
|
|
||||||
|
LICENSE="GPL-3"
|
||||||
|
SLOT="0"
|
||||||
|
IUSE="systemd"
|
||||||
|
DEPEND=""
|
||||||
|
RDEPEND=""
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
dobin pkgs-checker
|
||||||
|
}
|
||||||
|
|
54
tests/fixtures/parser/sabayon-mce-1.1-r5.ebuild
vendored
Normal file
54
tests/fixtures/parser/sabayon-mce-1.1-r5.ebuild
vendored
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
# Copyright 2004-2013 Sabayon
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=5
|
||||||
|
|
||||||
|
inherit eutils systemd
|
||||||
|
|
||||||
|
DESCRIPTION="Sabayon Linux Media Center Infrastructure"
|
||||||
|
HOMEPAGE="http://www.sabayon.org/"
|
||||||
|
SRC_URI=""
|
||||||
|
|
||||||
|
RESTRICT="nomirror"
|
||||||
|
LICENSE="GPL-2"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="amd64 arm x86"
|
||||||
|
IUSE=""
|
||||||
|
|
||||||
|
RDEPEND="media-tv/kodi app-misc/sabayon-live"
|
||||||
|
DEPEND=""
|
||||||
|
|
||||||
|
S="${WORKDIR}"
|
||||||
|
|
||||||
|
src_install () {
|
||||||
|
local dir="${FILESDIR}/${PV}"
|
||||||
|
|
||||||
|
doinitd "${dir}/init.d/sabayon-mce"
|
||||||
|
systemd_dounit "${dir}"/systemd/*
|
||||||
|
|
||||||
|
dodir /usr/bin
|
||||||
|
exeinto /usr/bin
|
||||||
|
doexe "${dir}"/bin/*
|
||||||
|
|
||||||
|
dodir /usr/libexec
|
||||||
|
exeinto /usr/libexec
|
||||||
|
doexe "${dir}"/libexec/*
|
||||||
|
|
||||||
|
dodir /usr/share/xsessions
|
||||||
|
insinto /usr/share/xsessions
|
||||||
|
doins "${dir}"/xsession/*.desktop
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
# create new user sabayonmce
|
||||||
|
local mygroups="users"
|
||||||
|
local gr="lp wheel uucp audio cdrom scanner video "
|
||||||
|
gr+="cdrw usb plugdev polkituser"
|
||||||
|
|
||||||
|
for mygroup in ${gr}; do
|
||||||
|
if [[ -n $(egetent group "${mygroup}") ]]; then
|
||||||
|
mygroups+=",${mygroup}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
enewuser sabayonmce -1 /bin/sh /var/sabayonmce "${mygroups}"
|
||||||
|
}
|
506
tests/fixtures/parser/subversion-1.12.0.ebuild
vendored
Normal file
506
tests/fixtures/parser/subversion-1.12.0.ebuild
vendored
Normal file
@@ -0,0 +1,506 @@
|
|||||||
|
# Copyright 1999-2019 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=6
|
||||||
|
|
||||||
|
PYTHON_COMPAT=( python2_7 )
|
||||||
|
USE_RUBY="ruby26 ruby25 ruby24"
|
||||||
|
DISTUTILS_OPTIONAL=1
|
||||||
|
WANT_AUTOMAKE="none"
|
||||||
|
GENTOO_DEPEND_ON_PERL="no"
|
||||||
|
|
||||||
|
inherit autotools bash-completion-r1 db-use depend.apache distutils-r1 elisp-common flag-o-matic libtool multilib perl-module ruby-single xdg-utils
|
||||||
|
|
||||||
|
MY_P="${P/_/-}"
|
||||||
|
DESCRIPTION="Advanced version control system"
|
||||||
|
HOMEPAGE="https://subversion.apache.org/"
|
||||||
|
SRC_URI="mirror://apache/${PN}/${MY_P}.tar.bz2
|
||||||
|
https://dev.gentoo.org/~polynomial-c/${PN}-1.10.0_rc1-patches-1.tar.xz"
|
||||||
|
S="${WORKDIR}/${MY_P}"
|
||||||
|
|
||||||
|
LICENSE="Subversion GPL-2"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64 ~arm ~x86"
|
||||||
|
|
||||||
|
IUSE="apache2 berkdb ctypes-python debug doc +dso extras gnome-keyring +http java kwallet nls perl python ruby sasl test vim-syntax"
|
||||||
|
|
||||||
|
COMMON_DEPEND="
|
||||||
|
app-arch/bzip2
|
||||||
|
app-arch/lz4
|
||||||
|
>=dev-db/sqlite-3.7.12
|
||||||
|
>=dev-libs/apr-1.3:1
|
||||||
|
>=dev-libs/apr-util-1.3:1
|
||||||
|
dev-libs/expat
|
||||||
|
dev-libs/libutf8proc:=
|
||||||
|
sys-apps/file
|
||||||
|
sys-libs/zlib
|
||||||
|
berkdb? ( >=sys-libs/db-4.0.14:= )
|
||||||
|
ctypes-python? ( ${PYTHON_DEPS} )
|
||||||
|
gnome-keyring? (
|
||||||
|
dev-libs/glib:2
|
||||||
|
gnome-base/libgnome-keyring
|
||||||
|
sys-apps/dbus
|
||||||
|
)
|
||||||
|
http? ( >=net-libs/serf-1.3.4 )
|
||||||
|
kwallet? (
|
||||||
|
dev-qt/qtcore:5
|
||||||
|
dev-qt/qtdbus:5
|
||||||
|
dev-qt/qtgui:5
|
||||||
|
kde-frameworks/kcoreaddons:5
|
||||||
|
kde-frameworks/ki18n:5
|
||||||
|
kde-frameworks/kwallet:5
|
||||||
|
sys-apps/dbus
|
||||||
|
)
|
||||||
|
perl? ( dev-lang/perl:= )
|
||||||
|
python? ( ${PYTHON_DEPS} )
|
||||||
|
ruby? ( ${RUBY_DEPS} )
|
||||||
|
sasl? ( dev-libs/cyrus-sasl )"
|
||||||
|
RDEPEND="${COMMON_DEPEND}
|
||||||
|
apache2? ( www-servers/apache[apache2_modules_dav] )
|
||||||
|
nls? ( virtual/libintl )
|
||||||
|
perl? ( dev-perl/URI )"
|
||||||
|
# Note: ctypesgen doesn't need PYTHON_USEDEP, it's used once
|
||||||
|
DEPEND="${COMMON_DEPEND}
|
||||||
|
!!<sys-apps/sandbox-1.6
|
||||||
|
ctypes-python? ( dev-python/ctypesgen )
|
||||||
|
doc? ( app-doc/doxygen )
|
||||||
|
gnome-keyring? ( virtual/pkgconfig )
|
||||||
|
http? ( virtual/pkgconfig )
|
||||||
|
kwallet? (
|
||||||
|
kde-frameworks/kdelibs4support:5
|
||||||
|
virtual/pkgconfig
|
||||||
|
)
|
||||||
|
nls? ( sys-devel/gettext )
|
||||||
|
perl? ( dev-lang/swig )
|
||||||
|
python? ( dev-lang/swig )
|
||||||
|
ruby? ( dev-lang/swig )
|
||||||
|
test? ( ${PYTHON_DEPS} )"
|
||||||
|
PDEPEND="java? ( ~dev-vcs/subversion-java-${PV} )"
|
||||||
|
|
||||||
|
REQUIRED_USE="
|
||||||
|
ctypes-python? ( ${PYTHON_REQUIRED_USE} )
|
||||||
|
python? ( ${PYTHON_REQUIRED_USE} )
|
||||||
|
test? (
|
||||||
|
${PYTHON_REQUIRED_USE}
|
||||||
|
!dso
|
||||||
|
)"
|
||||||
|
|
||||||
|
want_apache
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
if use berkdb ; then
|
||||||
|
local apu_bdb_version="$(${EPREFIX}/usr/bin/apu-1-config --includes \
|
||||||
|
| grep -Eoe '-I${EPREFIX}/usr/include/db[[:digit:]]\.[[:digit:]]' \
|
||||||
|
| sed 's:.*b::')"
|
||||||
|
einfo
|
||||||
|
if [[ -z "${SVN_BDB_VERSION}" ]] ; then
|
||||||
|
if [[ -n "${apu_bdb_version}" ]] ; then
|
||||||
|
SVN_BDB_VERSION="${apu_bdb_version}"
|
||||||
|
einfo "Matching db version to apr-util"
|
||||||
|
else
|
||||||
|
SVN_BDB_VERSION="$(db_ver_to_slot "$(db_findver sys-libs/db 2>/dev/null)")"
|
||||||
|
einfo "SVN_BDB_VERSION variable isn't set. You can set it to enforce using of specific version of Berkeley DB."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
einfo "Using: Berkeley DB ${SVN_BDB_VERSION}"
|
||||||
|
einfo
|
||||||
|
|
||||||
|
if [[ -n "${apu_bdb_version}" && "${SVN_BDB_VERSION}" != "${apu_bdb_version}" ]]; then
|
||||||
|
eerror "APR-Util is linked against Berkeley DB ${apu_bdb_version}, but you are trying"
|
||||||
|
eerror "to build Subversion with support for Berkeley DB ${SVN_BDB_VERSION}."
|
||||||
|
eerror "Rebuild dev-libs/apr-util or set SVN_BDB_VERSION=\"${apu_bdb_version}\"."
|
||||||
|
eerror "Aborting to avoid possible run-time crashes."
|
||||||
|
die "Berkeley DB version mismatch"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
depend.apache_pkg_setup
|
||||||
|
|
||||||
|
if ! use http ; then
|
||||||
|
ewarn "WebDAV support is disabled. You need WebDAV to"
|
||||||
|
ewarn "access repositories through the HTTP protocol."
|
||||||
|
ewarn "Consider enabling \"http\" USE flag"
|
||||||
|
echo -ne "\a"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# https://issues.apache.org/jira/browse/SVN-4813#comment-16813739
|
||||||
|
append-cppflags -P
|
||||||
|
|
||||||
|
if use debug ; then
|
||||||
|
append-cppflags -DSVN_DEBUG -DAP_DEBUG
|
||||||
|
fi
|
||||||
|
|
||||||
|
# http://mail-archives.apache.org/mod_mbox/subversion-dev/201306.mbox/%3C51C42014.3060700@wandisco.com%3E
|
||||||
|
[[ ${CHOST} == *-solaris2* ]] && append-cppflags -D__EXTENSIONS__
|
||||||
|
|
||||||
|
# Allow for custom repository locations.
|
||||||
|
SVN_REPOS_LOC="${SVN_REPOS_LOC:-${EPREFIX}/var/svn}"
|
||||||
|
|
||||||
|
if use ruby ; then
|
||||||
|
local rbslot
|
||||||
|
RB_VER=""
|
||||||
|
for rbslot in $(sed 's@\([[:digit:]]\+\)\([[:digit:]]\)@\1.\2@g' <<< ${USE_RUBY//ruby}) ; do
|
||||||
|
if has_version dev-lang/ruby:${rbslot} ; then
|
||||||
|
RB_VER="${rbslot/.}"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
[[ -z "${RB_VER}" ]] && die "No useable ruby version found"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
eapply "${WORKDIR}/patches"
|
||||||
|
eapply "${FILESDIR}"/${PN}-1.11.1-allow-apr-1.7.0+.patch
|
||||||
|
eapply_user
|
||||||
|
|
||||||
|
fperms +x build/transform_libtool_scripts.sh
|
||||||
|
|
||||||
|
sed -i \
|
||||||
|
-e "s/\(BUILD_RULES=.*\) bdb-test\(.*\)/\1\2/g" \
|
||||||
|
-e "s/\(BUILD_RULES=.*\) test\(.*\)/\1\2/g" configure.ac
|
||||||
|
|
||||||
|
# this bites us in particular on Solaris
|
||||||
|
sed -i -e '1c\#!/usr/bin/env sh' build/transform_libtool_scripts.sh || \
|
||||||
|
die "/bin/sh is not POSIX shell!"
|
||||||
|
|
||||||
|
eautoconf
|
||||||
|
elibtoolize
|
||||||
|
|
||||||
|
sed -e 's/\(libsvn_swig_py\)-\(1\.la\)/\1-$(EPYTHON)-\2/g' \
|
||||||
|
-i build-outputs.mk || die "sed failed"
|
||||||
|
|
||||||
|
if use python ; then
|
||||||
|
# XXX: make python_copy_sources accept path
|
||||||
|
S=${S}/subversion/bindings/swig/python python_copy_sources
|
||||||
|
rm -r "${S}"/subversion/bindings/swig/python || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
xdg_environment_reset
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
local myconf=(
|
||||||
|
--libdir="${EPREFIX%/}/usr/$(get_libdir)"
|
||||||
|
$(use_with apache2 apache-libexecdir)
|
||||||
|
$(use_with apache2 apxs "${EPREFIX}"/usr/bin/apxs)
|
||||||
|
$(use_with berkdb berkeley-db "db.h:${EPREFIX%/}/usr/include/db${SVN_BDB_VERSION}::db-${SVN_BDB_VERSION}")
|
||||||
|
$(use_with ctypes-python ctypesgen "${EPREFIX%/}/usr")
|
||||||
|
$(use_enable dso runtime-module-search)
|
||||||
|
$(use_with gnome-keyring)
|
||||||
|
--disable-javahl
|
||||||
|
$(use_with java jdk "${JAVA_HOME}")
|
||||||
|
$(use_with kwallet)
|
||||||
|
$(use_enable nls)
|
||||||
|
$(use_with sasl)
|
||||||
|
$(use_with http serf)
|
||||||
|
--with-apr="${EPREFIX%/}/usr/bin/apr-1-config"
|
||||||
|
--with-apr-util="${EPREFIX%/}/usr/bin/apu-1-config"
|
||||||
|
--disable-experimental-libtool
|
||||||
|
--without-jikes
|
||||||
|
--disable-mod-activation
|
||||||
|
--disable-static
|
||||||
|
--enable-svnxx
|
||||||
|
)
|
||||||
|
|
||||||
|
if use python || use perl || use ruby; then
|
||||||
|
myconf+=( --with-swig )
|
||||||
|
else
|
||||||
|
myconf+=( --without-swig )
|
||||||
|
fi
|
||||||
|
|
||||||
|
case ${CHOST} in
|
||||||
|
*-aix*)
|
||||||
|
# avoid recording immediate path to sharedlibs into executables
|
||||||
|
append-ldflags -Wl,-bnoipath
|
||||||
|
;;
|
||||||
|
*-cygwin*)
|
||||||
|
# no LD_PRELOAD support, no undefined symbols
|
||||||
|
myconf+=( --disable-local-library-preloading LT_LDFLAGS=-no-undefined )
|
||||||
|
;;
|
||||||
|
*-interix*)
|
||||||
|
# loader crashes on the LD_PRELOADs...
|
||||||
|
myconf+=( --disable-local-library-preloading )
|
||||||
|
;;
|
||||||
|
*-solaris*)
|
||||||
|
# need -lintl to link
|
||||||
|
use nls && append-libs intl
|
||||||
|
# this breaks installation, on x64 echo replacement is 32-bits
|
||||||
|
myconf+=( --disable-local-library-preloading )
|
||||||
|
;;
|
||||||
|
*-mint*)
|
||||||
|
myconf+=( --enable-all-static --disable-local-library-preloading )
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# inject LD_PRELOAD entries for easy in-tree development
|
||||||
|
myconf+=( --enable-local-library-preloading )
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
#version 1.7.7 again tries to link against the older installed version and fails, when trying to
|
||||||
|
#compile for x86 on amd64, so workaround this issue again
|
||||||
|
#check newer versions, if this is still/again needed
|
||||||
|
#myconf+=( --disable-disallowing-of-undefined-references )
|
||||||
|
|
||||||
|
# for build-time scripts
|
||||||
|
if use ctypes-python || use python || use test; then
|
||||||
|
python_setup
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use python && [[ ${CHOST} == *-darwin* ]] ; then
|
||||||
|
export ac_cv_python_link="$(tc-getCC) "'$(PYTHON_CFLAGS) -bundle -undefined dynamic_lookup $(PYTHON_LIBS)'
|
||||||
|
export ac_cv_python_libs='$(PYTHON_CFLAGS) -bundle -undefined dynamic_lookup $(PYTHON_LIBS)'
|
||||||
|
export ac_cv_python_compile="$(tc-getCC)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# allow overriding Python include directory
|
||||||
|
ac_cv_path_RUBY=$(usex ruby "${EPREFIX%/}/usr/bin/ruby${RB_VER}" "none") \
|
||||||
|
ac_cv_path_RDOC=$(usex ruby "${EPREFIX%/}/usr/bin/rdoc${RB_VER}" "none") \
|
||||||
|
ac_cv_python_includes='-I$(PYTHON_INCLUDEDIR)' \
|
||||||
|
econf "${myconf[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
emake local-all
|
||||||
|
|
||||||
|
if use ctypes-python ; then
|
||||||
|
# pre-generate .py files
|
||||||
|
use ctypes-python && emake ctypes-python
|
||||||
|
|
||||||
|
pushd subversion/bindings/ctypes-python >/dev/null || die
|
||||||
|
distutils-r1_src_compile
|
||||||
|
popd >/dev/null || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use python ; then
|
||||||
|
swig_py_compile() {
|
||||||
|
local p=subversion/bindings/swig/python
|
||||||
|
rm -f ${p} || die
|
||||||
|
ln -s "${BUILD_DIR}" ${p} || die
|
||||||
|
|
||||||
|
python_export PYTHON_INCLUDEDIR
|
||||||
|
emake swig-py \
|
||||||
|
swig_pydir="$(python_get_sitedir)/libsvn" \
|
||||||
|
swig_pydir_extra="$(python_get_sitedir)/svn"
|
||||||
|
}
|
||||||
|
|
||||||
|
# this will give us proper BUILD_DIR for symlinking
|
||||||
|
BUILD_DIR=python \
|
||||||
|
python_foreach_impl swig_py_compile
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use perl ; then
|
||||||
|
emake swig-pl
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use ruby ; then
|
||||||
|
emake swig-rb
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use extras ; then
|
||||||
|
emake tools
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use doc ; then
|
||||||
|
doxygen doc/doxygen.conf || die "Building of Subversion HTML documentation failed"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
if has_version ~${CATEGORY}/${P} ; then
|
||||||
|
default
|
||||||
|
|
||||||
|
if use ctypes-python ; then
|
||||||
|
python_test() {
|
||||||
|
"${PYTHON}" subversion/bindings/ctypes-python/test/run_all.py \
|
||||||
|
|| die "ctypes-python tests fail with ${EPYTHON}"
|
||||||
|
}
|
||||||
|
|
||||||
|
distutils-r1_src_test
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use python ; then
|
||||||
|
swig_py_test() {
|
||||||
|
pushd "${BUILD_DIR}" >/dev/null || die
|
||||||
|
"${PYTHON}" tests/run_all.py || die "swig-py tests fail with ${EPYTHON}"
|
||||||
|
popd >/dev/null || die
|
||||||
|
}
|
||||||
|
|
||||||
|
BUILD_DIR=subversion/bindings/swig/python \
|
||||||
|
python_foreach_impl swig_py_test
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
ewarn "The test suite shows errors when there is an older version of"
|
||||||
|
ewarn "${CATEGORY}/${PN} installed. Please install =${CATEGORY}/${P}*"
|
||||||
|
ewarn "before running the test suite."
|
||||||
|
ewarn "Test suite skipped."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
emake -j1 DESTDIR="${D}" local-install
|
||||||
|
|
||||||
|
if use ctypes-python ; then
|
||||||
|
pushd subversion/bindings/ctypes-python >/dev/null || die
|
||||||
|
distutils-r1_src_install
|
||||||
|
popd >/dev/null || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use python ; then
|
||||||
|
swig_py_install() {
|
||||||
|
local p=subversion/bindings/swig/python
|
||||||
|
rm -f ${p} || die
|
||||||
|
ln -s "${BUILD_DIR}" ${p} || die
|
||||||
|
|
||||||
|
emake \
|
||||||
|
DESTDIR="${D}" \
|
||||||
|
swig_pydir="$(python_get_sitedir)/libsvn" \
|
||||||
|
swig_pydir_extra="$(python_get_sitedir)/svn" \
|
||||||
|
install-swig-py
|
||||||
|
}
|
||||||
|
|
||||||
|
BUILD_DIR=python \
|
||||||
|
python_foreach_impl swig_py_install
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use perl ; then
|
||||||
|
emake DESTDIR="${D}" INSTALLDIRS="vendor" install-swig-pl
|
||||||
|
perl_delete_localpod
|
||||||
|
find "${ED}" \( -name .packlist -o -name "*.bs" \) -delete || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use ruby ; then
|
||||||
|
emake DESTDIR="${D}" install-swig-rb
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install Apache module configuration.
|
||||||
|
if use apache2 ; then
|
||||||
|
keepdir "${APACHE_MODULES_CONFDIR}"
|
||||||
|
insinto "${APACHE_MODULES_CONFDIR}"
|
||||||
|
doins "${FILESDIR}/47_mod_dav_svn.conf"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install Bash Completion, bug 43179.
|
||||||
|
newbashcomp tools/client-side/bash_completion svn
|
||||||
|
bashcomp_alias svn svn{admin,dumpfilter,look,sync,version}
|
||||||
|
rm -f tools/client-side/bash_completion
|
||||||
|
|
||||||
|
# Install hot backup script, bug 54304.
|
||||||
|
newbin tools/backup/hot-backup.py svn-hot-backup
|
||||||
|
rm -fr tools/backup
|
||||||
|
|
||||||
|
# Install svnserve init-script and xinet.d snippet, bug 43245.
|
||||||
|
newinitd "${FILESDIR}"/svnserve.initd3 svnserve
|
||||||
|
newconfd "${FILESDIR}"/svnserve.confd svnserve
|
||||||
|
insinto /etc/xinetd.d
|
||||||
|
newins "${FILESDIR}"/svnserve.xinetd svnserve
|
||||||
|
|
||||||
|
#adjust default user and group with disabled apache2 USE flag, bug 381385
|
||||||
|
if ! use apache2 ; then
|
||||||
|
sed -e "s\USER:-apache\USER:-svn\g" \
|
||||||
|
-e "s\GROUP:-apache\GROUP:-svnusers\g" \
|
||||||
|
-i "${ED%/}"/etc/init.d/svnserve || die
|
||||||
|
sed -e "0,/apache/s//svn/" \
|
||||||
|
-e "s:apache:svnusers:" \
|
||||||
|
-i "${ED%/}"/etc/xinetd.d/svnserve || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install documentation.
|
||||||
|
dodoc CHANGES COMMITTERS README
|
||||||
|
dodoc tools/xslt/svnindex.{css,xsl}
|
||||||
|
rm -fr tools/xslt
|
||||||
|
|
||||||
|
# Install extra files.
|
||||||
|
if use extras ; then
|
||||||
|
cat <<- EOF > 80subversion-extras
|
||||||
|
PATH="${EPREFIX}/usr/$(get_libdir)/subversion/bin"
|
||||||
|
ROOTPATH="${EPREFIX}/usr/$(get_libdir)/subversion/bin"
|
||||||
|
EOF
|
||||||
|
doenvd 80subversion-extras
|
||||||
|
|
||||||
|
emake DESTDIR="${D}" toolsdir="/usr/$(get_libdir)/subversion/bin" install-tools
|
||||||
|
|
||||||
|
find tools \( -name "*.bat" -o -name "*.in" -o -name ".libs" \) -print0 | xargs -0 rm -fr
|
||||||
|
rm -fr tools/client-side/svnmucc
|
||||||
|
rm -fr tools/server-side/{svn-populate-node-origins-index,svnauthz-validate}*
|
||||||
|
rm -fr tools/{buildbot,dev,diff,po}
|
||||||
|
|
||||||
|
insinto /usr/share/${PN}
|
||||||
|
find tools -name '*.py' -exec sed -i -e '1s:python:&2:' {} + || die
|
||||||
|
doins -r tools
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use doc ; then
|
||||||
|
docinto html
|
||||||
|
dodoc -r doc/doxygen/html/*
|
||||||
|
fi
|
||||||
|
|
||||||
|
prune_libtool_files --all
|
||||||
|
|
||||||
|
cd "${ED%/}"/usr/share/locale
|
||||||
|
for i in * ; do
|
||||||
|
if [[ ${i} != *${LINGUAS}* ]] ; then
|
||||||
|
rm -r ${i} || die
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_preinst() {
|
||||||
|
# Compare versions of Berkeley DB, bug 122877.
|
||||||
|
if use berkdb && [[ -f "${EROOT}/usr/bin/svn" ]] ; then
|
||||||
|
OLD_BDB_VERSION="$(scanelf -nq "${EROOT}/usr/$(get_libdir)/libsvn_subr-1$(get_libname 0)" | grep -Eo "libdb-[[:digit:]]+\.[[:digit:]]+" | sed -e "s/libdb-\(.*\)/\1/")"
|
||||||
|
NEW_BDB_VERSION="$(scanelf -nq "${ED%/}/usr/$(get_libdir)/libsvn_subr-1$(get_libname 0)" | grep -Eo "libdb-[[:digit:]]+\.[[:digit:]]+" | sed -e "s/libdb-\(.*\)/\1/")"
|
||||||
|
if [[ "${OLD_BDB_VERSION}" != "${NEW_BDB_VERSION}" ]] ; then
|
||||||
|
CHANGED_BDB_VERSION="1"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
if [[ -n "${CHANGED_BDB_VERSION}" ]] ; then
|
||||||
|
ewarn "You upgraded from an older version of Berkeley DB and may experience"
|
||||||
|
ewarn "problems with your repository. Run the following commands as root to fix it:"
|
||||||
|
ewarn " db4_recover -h ${SVN_REPOS_LOC}/repos"
|
||||||
|
ewarn " chown -Rf apache:apache ${SVN_REPOS_LOC}/repos"
|
||||||
|
fi
|
||||||
|
|
||||||
|
ewarn "If you run subversion as a daemon, you will need to restart it to avoid module mismatches."
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
:
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_config() {
|
||||||
|
# Remember: Don't use ${EROOT}${SVN_REPOS_LOC} since ${SVN_REPOS_LOC}
|
||||||
|
# already has EPREFIX in it
|
||||||
|
einfo "Initializing the database in ${SVN_REPOS_LOC}..."
|
||||||
|
if [[ -e "${SVN_REPOS_LOC}/repos" ]] ; then
|
||||||
|
echo "A Subversion repository already exists and I will not overwrite it."
|
||||||
|
echo "Delete \"${SVN_REPOS_LOC}/repos\" first if you're sure you want to have a clean version."
|
||||||
|
else
|
||||||
|
mkdir -p "${SVN_REPOS_LOC}/conf"
|
||||||
|
|
||||||
|
einfo "Populating repository directory..."
|
||||||
|
# Create initial repository.
|
||||||
|
"${EROOT}/usr/bin/svnadmin" create "${SVN_REPOS_LOC}/repos"
|
||||||
|
|
||||||
|
einfo "Setting repository permissions..."
|
||||||
|
SVNSERVE_USER="$(. "${EROOT}/etc/conf.d/svnserve"; echo "${SVNSERVE_USER}")"
|
||||||
|
SVNSERVE_GROUP="$(. "${EROOT}/etc/conf.d/svnserve"; echo "${SVNSERVE_GROUP}")"
|
||||||
|
if use apache2 ; then
|
||||||
|
[[ -z "${SVNSERVE_USER}" ]] && SVNSERVE_USER="apache"
|
||||||
|
[[ -z "${SVNSERVE_GROUP}" ]] && SVNSERVE_GROUP="apache"
|
||||||
|
else
|
||||||
|
[[ -z "${SVNSERVE_USER}" ]] && SVNSERVE_USER="svn"
|
||||||
|
[[ -z "${SVNSERVE_GROUP}" ]] && SVNSERVE_GROUP="svnusers"
|
||||||
|
fi
|
||||||
|
chmod -Rf go-rwx "${SVN_REPOS_LOC}/conf"
|
||||||
|
chmod -Rf o-rwx "${SVN_REPOS_LOC}/repos"
|
||||||
|
echo "Please create \"${SVNSERVE_GROUP}\" group if it does not exist yet."
|
||||||
|
echo "Afterwards please create \"${SVNSERVE_USER}\" user with homedir \"${SVN_REPOS_LOC}\""
|
||||||
|
echo "and as part of the \"${SVNSERVE_GROUP}\" group if it does not exist yet."
|
||||||
|
echo "Finally, execute \"chown -Rf ${SVNSERVE_USER}:${SVNSERVE_GROUP} ${SVN_REPOS_LOC}/repos\""
|
||||||
|
echo "to finish the configuration."
|
||||||
|
fi
|
||||||
|
}
|
73
tests/fixtures/parser/tango-icon-theme-0.8.90-r1.ebuild
vendored
Normal file
73
tests/fixtures/parser/tango-icon-theme-0.8.90-r1.ebuild
vendored
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
# Copyright 1999-2017 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=4
|
||||||
|
SLREV=4
|
||||||
|
inherit gnome2-utils
|
||||||
|
|
||||||
|
DESCRIPTION="SVG and PNG icon theme from the Tango project"
|
||||||
|
HOMEPAGE="http://tango.freedesktop.org"
|
||||||
|
SRC_URI="http://tango.freedesktop.org/releases/${P}.tar.gz
|
||||||
|
branding? ( mirror://sabayon/x11-themes/fdo-icons-sabayon${SLREV}.tar.gz )"
|
||||||
|
|
||||||
|
LICENSE="public-domain"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64 ~x86"
|
||||||
|
IUSE="branding minimal png"
|
||||||
|
|
||||||
|
RDEPEND="!hppa? ( !minimal? ( x11-themes/adwaita-icon-theme ) )
|
||||||
|
>=x11-themes/hicolor-icon-theme-0.12"
|
||||||
|
DEPEND="${RDEPEND}
|
||||||
|
dev-util/intltool
|
||||||
|
virtual/pkgconfig
|
||||||
|
>=gnome-base/librsvg-2.34
|
||||||
|
virtual/imagemagick-tools[png?]
|
||||||
|
sys-devel/gettext
|
||||||
|
>=x11-misc/icon-naming-utils-0.8.90"
|
||||||
|
|
||||||
|
RESTRICT="binchecks strip"
|
||||||
|
|
||||||
|
DOCS="AUTHORS ChangeLog README"
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
sed -i -e '/svgconvert_prog/s:rsvg:&-convert:' configure || die #413183
|
||||||
|
|
||||||
|
# https://bugs.gentoo.org/472766
|
||||||
|
shopt -s nullglob
|
||||||
|
cards=$(echo -n /dev/dri/card* | sed 's/ /:/g')
|
||||||
|
if test -n "${cards}"; then
|
||||||
|
addpredict "${cards}"
|
||||||
|
fi
|
||||||
|
shopt -u nullglob
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
econf \
|
||||||
|
$(use_enable png png-creation) \
|
||||||
|
$(use_enable png icon-framing)
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
addwrite /root/.gnome2
|
||||||
|
default
|
||||||
|
|
||||||
|
if use branding; then
|
||||||
|
# replace tango icon start-here.{png,svg} with Sabayon ones
|
||||||
|
for dir in "${D}"/usr/share/icons/Tango/*/places; do
|
||||||
|
base_dir=$(dirname "${dir}")
|
||||||
|
icon_dir=$(basename "${base_dir}")
|
||||||
|
sabayon_svg_file="${WORKDIR}"/fdo-icons-sabayon/scalable/places/start-here.svg
|
||||||
|
if [ "${icon_dir}" = "scalable" ]; then
|
||||||
|
cp "${sabayon_svg_file}" "${dir}/start-here.svg" || die
|
||||||
|
else
|
||||||
|
convert -background none -resize \
|
||||||
|
"${icon_dir}" "${sabayon_svg_file}" \
|
||||||
|
"${dir}/start-here.png" || die
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_preinst() { gnome2_icon_savelist; }
|
||||||
|
pkg_postinst() { gnome2_icon_cache_update; }
|
||||||
|
pkg_postrm() { gnome2_icon_cache_update; }
|
Reference in New Issue
Block a user