converter

package
v0.4.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 9, 2021 License: GPL-3.0 Imports: 17 Imported by: 1

Documentation

Overview

Copyright (C) 2020-2021 Daniele Rondina <geaaru@sabayonlinux.org>

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.

Copyright (C) 2020-2021 Daniele Rondina <geaaru@sabayonlinux.org>

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.

Copyright (C) 2020-2021 Daniele Rondina <geaaru@sabayonlinux.org>

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.

Copyright (C) 2020-2021 Daniele Rondina <geaaru@sabayonlinux.org>

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.

Copyright (C) 2020-2021 Daniele Rondina <geaaru@sabayonlinux.org>

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.

Copyright (C) 2020-2021 Daniele Rondina <geaaru@sabayonlinux.org>

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.

Index

Constants

This section is empty.

Variables

View Source
var (
	BuildTime   string
	BuildCommit string
)

Build time and commit information. This code is get from: https://github.com/mudler/luet/

⚠️ WARNING: should only be set by "-ldflags".

Functions

func AddDependencyToLuetPackage

func AddDependencyToLuetPackage(pkg, dep *luet_pkg.DefaultPackage)

func IsInStack

func IsInStack(stack []string, pkg string) bool

func RemoveDependencyFromLuetPackage

func RemoveDependencyFromLuetPackage(pkg, dep *luet_pkg.DefaultPackage) error

TODO: Move in another place

Types

type LuetCompilationSpecSanitized

type LuetCompilationSpecSanitized struct {
	Steps      []string `json:"steps,omitempty" yaml:"steps,omitempty"`
	Env        []string `json:"env,omitempty" yaml:"env,omitempty"`
	Prelude    []string `json:"prelude,omitempty" yaml:"prelude,omitempty"` // Are run inside the image which will be our builder
	Image      string   `json:"image,omitempty" yaml:"image,omitempty"`
	Seed       string   `json:"seed,omitempty" yaml:"seed,omitempty"`
	PackageDir string   `json:"package_dir,omitempty" yaml:"package_dir,omitempty"`

	Retrieve []string `json:"retrieve,omitempty" yaml:"retrieve,omitempty"`

	Unpack   bool     `json:"unpack,omitempty" yaml:"unpack,omitempty"`
	Includes []string `json:"includes,omitempty" yaml:"includes,omitempty"`
	Excludes []string `json:"excludes,omitempty" yaml:"excludes,omitempty"`

	PackageRequires  []*st.DefaultPackageSanitized `json:"requires,omitempty" yaml:"requires,omitempty"`
	PackageConflicts []*st.DefaultPackageSanitized `json:"conflicts,omitempty" yaml:"conflicts,omitempty"`
	Provides         []*st.DefaultPackageSanitized `json:"provides,omitempty" yaml:"provides,omitempty"`
}

func NewLuetCompilationSpecSanitizedFromFile

func NewLuetCompilationSpecSanitizedFromFile(file string) (*LuetCompilationSpecSanitized, error)

func NewLuetCompilationSpecSanitizedFromYaml

func NewLuetCompilationSpecSanitizedFromYaml(data []byte) (*LuetCompilationSpecSanitized, error)

func (*LuetCompilationSpecSanitized) AddConflicts

func (s *LuetCompilationSpecSanitized) AddConflicts(pkgs []*pkg.DefaultPackage)

func (*LuetCompilationSpecSanitized) AddRequires

func (s *LuetCompilationSpecSanitized) AddRequires(pkgs []*pkg.DefaultPackage)

func (*LuetCompilationSpecSanitized) Clone

func (*LuetCompilationSpecSanitized) Conflicts

func (s *LuetCompilationSpecSanitized) Conflicts(pkgs []*pkg.DefaultPackage)

func (*LuetCompilationSpecSanitized) GetConflicts

func (*LuetCompilationSpecSanitized) GetRequires

func (*LuetCompilationSpecSanitized) Requires

func (s *LuetCompilationSpecSanitized) Requires(pkgs []*pkg.DefaultPackage)

func (*LuetCompilationSpecSanitized) WriteBuildDefinition

func (s *LuetCompilationSpecSanitized) WriteBuildDefinition(path string) error

func (*LuetCompilationSpecSanitized) Yaml

func (s *LuetCompilationSpecSanitized) Yaml() ([]byte, error)

type PortageConverter

type PortageConverter struct {
	Config         *luet_config.LuetConfig
	Cache          map[string]*specs.PortageSolution
	ReciperBuild   luet_tree.Builder
	ReciperRuntime luet_tree.Builder
	Specs          *specs.PortageConverterSpecs
	TargetDir      string
	Solutions      []*specs.PortageSolution
	Backend        string
	Resolver       specs.PortageResolver

	WithPortagePkgs      bool
	Override             bool
	IgnoreMissingDeps    bool
	DisableStage2        bool
	DisableStage3        bool
	DisableStage4        bool
	DisableConflicts     bool
	UsingLayerForRuntime bool
	DisabledUseFlags     []string
	TreePaths            []string
	FilteredPackages     []string
}

func NewPortageConverter

func NewPortageConverter(targetDir, backend string) *PortageConverter

func (*PortageConverter) AppendIfNotPresent

func (pc *PortageConverter) AppendIfNotPresent(list []gentoo.GentooPackage, pkg gentoo.GentooPackage) []gentoo.GentooPackage

func (*PortageConverter) Generate

func (pc *PortageConverter) Generate() error

func (*PortageConverter) GetFilteredPackages

func (pc *PortageConverter) GetFilteredPackages() []string

func (*PortageConverter) GetSpecs

func (*PortageConverter) InitConverter added in v0.4.2

func (pc *PortageConverter) InitConverter(showBanner bool) error

func (*PortageConverter) IsDep2Skip

func (pc *PortageConverter) IsDep2Skip(pkg *gentoo.GentooPackage, buildDep bool) bool

func (*PortageConverter) IsFilteredPackage

func (pc *PortageConverter) IsFilteredPackage(pkg string) (bool, error)

func (*PortageConverter) LoadRules

func (pc *PortageConverter) LoadRules(file string) error

func (*PortageConverter) LoadTrees

func (pc *PortageConverter) LoadTrees(treePath []string) error

func (*PortageConverter) SetFilteredPackages

func (pc *PortageConverter) SetFilteredPackages(pkgs []string)

func (*PortageConverter) Stage2

func (pc *PortageConverter) Stage2() error

func (*PortageConverter) Stage3

func (pc *PortageConverter) Stage3() error

func (*PortageConverter) Stage4

func (pc *PortageConverter) Stage4() error

func (*PortageConverter) Stage4AddDeps2Levels added in v0.4.2

func (pc *PortageConverter) Stage4AddDeps2Levels(pkg *luet_pkg.DefaultPackage,
	father *luet_pkg.DefaultPackage,
	w *Stage4Worker, level int, stack []string) error

func (*PortageConverter) Stage4AlignLevel1 added in v0.4.2

func (pc *PortageConverter) Stage4AlignLevel1(w *Stage4Worker) error

func (*PortageConverter) Stage4LevelsDumpWrapper added in v0.4.2

func (pc *PortageConverter) Stage4LevelsDumpWrapper(levels *Stage4Levels, msg string)

type Stage4Leaf

type Stage4Leaf struct {
	Package  *luet_pkg.DefaultPackage
	Father   []*luet_pkg.DefaultPackage
	Position int
	Counter  int
}

func NewStage4Leaf

func NewStage4Leaf(pkg, father *luet_pkg.DefaultPackage, pos int) (*Stage4Leaf, error)

func (*Stage4Leaf) AddFather

func (l *Stage4Leaf) AddFather(father *luet_pkg.DefaultPackage)

func (*Stage4Leaf) DelFather

func (l *Stage4Leaf) DelFather(father *luet_pkg.DefaultPackage)

func (*Stage4Leaf) String

func (l *Stage4Leaf) String() string

type Stage4LeafCache

type Stage4LeafCache struct {
	MapAssign map[string]*luet_pkg.DefaultPackage
}

func NewStage4LeafCache

func NewStage4LeafCache() *Stage4LeafCache

type Stage4Levels

type Stage4Levels struct {
	Name      string
	Levels    []*Stage4Tree
	Map       map[string]*luet_pkg.DefaultPackage
	Changed   map[string]*luet_pkg.DefaultPackage
	CacheLeaf map[string]*Stage4LeafCache

	Quiet bool
}

func NewStage4Levels

func NewStage4Levels() *Stage4Levels

func NewStage4LevelsWithSize

func NewStage4LevelsWithSize(nLevels int) *Stage4Levels

func (*Stage4Levels) AddChangedPackage

func (l *Stage4Levels) AddChangedPackage(pkg *luet_pkg.DefaultPackage)

func (*Stage4Levels) AddDependency

func (l *Stage4Levels) AddDependency(p, father *luet_pkg.DefaultPackage, level int) error

func (*Stage4Levels) AddDependencyRecursive

func (l *Stage4Levels) AddDependencyRecursive(p, father *luet_pkg.DefaultPackage, stack []string, level int) (bool, error)

func (*Stage4Levels) AddTree

func (l *Stage4Levels) AddTree(t *Stage4Tree)

func (*Stage4Levels) AnalyzeLeaf

func (l *Stage4Levels) AnalyzeLeaf(pos int, tree *Stage4Tree, leaf *Stage4Leaf) (bool, error)

func (*Stage4Levels) Dump

func (l *Stage4Levels) Dump() string

func (*Stage4Levels) GetAssignment

func (l *Stage4Levels) GetAssignment(p, father *luet_pkg.DefaultPackage) *luet_pkg.DefaultPackage

func (*Stage4Levels) GetMap

func (l *Stage4Levels) GetMap() *map[string]*luet_pkg.DefaultPackage

func (*Stage4Levels) PackageHasAncient added in v0.4.2

func (l *Stage4Levels) PackageHasAncient(pkg, ancient *luet_pkg.DefaultPackage, startLevel int) (bool, error)

func (*Stage4Levels) RegisterAssignment

func (l *Stage4Levels) RegisterAssignment(p, father, newFather *luet_pkg.DefaultPackage) error

func (*Stage4Levels) Resolve

func (l *Stage4Levels) Resolve() error

type Stage4Tree

type Stage4Tree struct {
	Id   int
	Map  map[string]*Stage4Leaf
	Deps []*luet_pkg.DefaultPackage
}

func NewStage4Tree

func NewStage4Tree(id int) *Stage4Tree

func (*Stage4Tree) AddDependency

func (t *Stage4Tree) AddDependency(p, father *luet_pkg.DefaultPackage) error

func (*Stage4Tree) DropDependency

func (t *Stage4Tree) DropDependency(p *luet_pkg.DefaultPackage) error

func (*Stage4Tree) Dump

func (t *Stage4Tree) Dump() string

func (*Stage4Tree) GetDependency

func (t *Stage4Tree) GetDependency(pos int) (*luet_pkg.DefaultPackage, error)

func (*Stage4Tree) GetDeps

func (t *Stage4Tree) GetDeps() *[]*luet_pkg.DefaultPackage

func (*Stage4Tree) GetMap

func (t *Stage4Tree) GetMap() *map[string]*Stage4Leaf

type Stage4Worker

type Stage4Worker struct {
	Levels  *Stage4Levels
	Map     map[string]*luet_pkg.DefaultPackage
	Changed map[string]*luet_pkg.DefaultPackage
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL