> Erre miért van szükség? Az SRC_URI-ban simán lehetne a PV "main".
Ha van egy csak git-re alapozott csomagod, az mindig fejlesztői állapotban van és nem nevezhető stabilnak ha egyetlen kiadott verziója sincsen! A release egy rögzített állapot! Ez még ha lehetnek is hibái, egy stabil amibe új funkció már nem kerül csak hibajavítások. Ha a git-ről telepített 9999-es nek nevezett verziót lehet csak elérni az nem tekinthető állandónak és így stabilnak sem. Ebben az esetben nem lesz a gentoo stabil ágának sem a része soha. Ez igaz bármely szoftverre. Valamiért a deb verziót is elnevezted 0.0.1-nek.
> Ez így biztos nem jó. A simpleboot.cfg-nak semmi keresnivalója az /etc-ben. Ennek abba a könyvtárba kell kerülnie, amiből a lemezképed gyártod, és majd bootoláskor fogja a loader használni. Kb. mint a /boot/grub/grub.cfg (bár ott nyakatekert, hogy mikor ki használja...) Illetve semmi értelme az example/simpleboot.cfg-t másolni, mert az úgy működésképtelen, csak a szintakszist demózza (meg lustáknak van, hogy legyen honnan copy'n'paste-elni).
Ez benne maradt véletlenül, korábban arra gondoltam, hogy automatizálva a telepítést lehessen egy meghatározott stabil kernelt backup-ként használni (jellemzően egy kernel frissítés utáni simpleboot paranccsal) és egy időben frissebbet pedig mint elsődlegest. Ezeket a /boot mappában ellenőrizte az ebuild és abból gondoltam generáltatni a cfg alapján az image-t. Ehhez a /etc alatt gondoltam az állapotot rögzíteni és az example mellé generált cfg-t használni ahol az example a puska, mint sok más konfig esetében is. Ez már azért sem volt jó, mert a programod a mappa teljes tartalmával dolgozik, a /boot alatt meg lehet több is időnként, mint ez a két verzió, így mindenképpen másolgatni kell a fájlokat valahová a cfg-vel együtt. Ez az én félreértésem volt, természetesen nincs ebben az értelemben semmi keresnivalója a /etc alatt, hanem valahová a csomag dokumentációjába való. A pkg_config rész törlésével egy időben kellett volna törölnöm, de elfelejtettem, így most ez a maradék a végleges, ahol ha lesz release, akkor kezeli, ha nem akkor pedig az aktuális git verziót telepíti a fájl nevétől függően. Fentebb írtam, hogyan működik az ebuild esetében ez.
# Copyright 2023 .....
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DESCRIPTION="Dependency-free, suckless bootable disk image creator"
HOMEPAGE="https://gitlab.com/bztsrc/simpleboot"
LICENSE="MIT"
SLOT="0"
IUSE="rebuild"
# If PV starts with 9999, use git-r3 for version control
if [[ ${PV} == 9999* ]]; then
inherit git-r3
EGIT_REPO_URI='https://gitlab.com/bztsrc/simpleboot.git'
else
SRC_URI="https://gitlab.com/bztsrc/simpleboot/-/archive/${PV}/simpleboot-${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
fi
BDEPEND="
rebuild? (
dev-lang/fasm
sys-devel/llvm
sys-devel/lld
)
"
src_prepare() {
default
# Nothing specific to prepare
}
src_compile() {
if use rebuild; then
emake -C src distclean || die "Failed to execute 'make -C src distclean'"
fi
emake -C src -j1 || die "Failed to build simpleboot"
}
src_install() {
dobin src/simpleboot || die "Failed to install simpleboot"
}