Closed nim-nim closed 5 years ago
I will not close this one cause it may proof to be practical later. Currently it is "nice to have" from my point of view. Let's do "nice to have" later once we have running and functioning base for all our blocking use cases.
BuildRequires in %gometa must go first through go-rpm-macros that will require golist and compiler(go-compiler).
└──────────────────────────────────────┘ └───────────────────────────────────────────────────────────────────┘ What exists from a package maintenance What exists for the software installer, on the target systems and point of view. Direct 1:1 mapping is for installing the buildroot. Does not care what is the source desired to limit maintenance costs and package from which those packages were built making sure all the parts of a project are made available simultaneously during a Fedora compose
upstream project spec/src.rpm deployment(sub-)packages
go-macros────────┬─▶go-srpm-macros──────────▶┊go-srpm-macros◀─────────────────────────────────────────┐ ┊ Actual buildroot content Version: X │ Version: X ┊ Version: X │ ┊ Dangerous files for other packages forbidden Macro files │ ┊ Architecture: noarch │ ┊ Requiring packages outside the buildroot forbidden and shell │ ┊ Files: │ ┊ Being required for version-lock is allowed wrappers │ ┊ /usr/lib/rpm/macros.d/macros.go-rpm R: go-srpm-macros = X ┊ │ └─╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┘ │ │ └─▶go-rpm-macros─────────┬──▶go-rpm-macros───────────────────────────────────────────┼───────────┐ Version: X │ Version: X │ │ │ Architecture: noarch R: compiler(go-compiler) │ │ Files: │ │ │ /usr/bin/go-rpm-integration │ R: golist │ /usr/lib/rpm/fileattrs/go.attr │ │ │ /usr/lib/rpm/fileattrs/gobundled.attr │ │ │ /usr/lib/rpm/fileattrs/gosymlink.attr │ │ │ /usr/lib/rpm/gobundled.prov │ │ │ /usr/lib/rpm/gosymlink.deps │ │ │ /usr/lib/rpm/macros.d/macros.go-rpm │ │ │ │ │ ├──▶go-compiler-golang◀─────────────────────────────────────┤ │ │ Version: X │ │ │ Architecture: arch │ │ │ Provides: │ │ │ compiler(go-compiler) = 2 │ │ │ compiler(golang) │ │ │ Files: │ │ │ /usr/lib/rpm/macros.d/macros.go-compiler-golang │ │ │ │ │ └──▶go-compiler-gcc◀────────────────────────────────────────┘ │ Version: X │ Architecture: arch │ Provides: │ compiler(go-compiler) = 1 │ compiler(gcc-go) │ Files: │ /usr/lib/rpm/macros.d/macros.go-compiler-gcc │ │ symbols-extractor──▶go-symbols-extractor─────▶go-symbols-extractor◀───────────────────────────────────────────────┘ Version: Y Version: Y Version: Y Go code Architecture: arch Provides: golist Files: /usr/bin/golist
└──────────────────────────────────────┘ └───────────────────────────────────────────────────────────────────┘ What exists from a package maintenance What exists for the software installer, on the target systems and point of view. Direct 1:1 mapping is for installing the buildroot. Does not care what is the source desired to limit maintenance costs and package from which those packages were built making sure all the parts of a project are made available simultaneously during a Fedora compose