( dzsolt | 2023. 07. 22., szo – 18:20 )

> 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"
}