Most már nagyon szúrja a szemem, így grammarnáci üzemmód: a "hibásan" egy "s". Ha két s-sel írod, akkor hibásan írod.
De amit én javasoltam (meg kikadff is szerintem), hogy a conf()
függvény legyen egy külön, általánosan használt fájlban, amit mindig behúzol a source
paranccsal (persze lehet csinálni egy build-package
szkriptet, ami ezt megteszi, és nem kell minden egyes csomaghoz beírni). Esetleg egy (csomag-függő) CONF_ARGS
változóban tárolod a ./configure
opcióit (ebben az esetben --enable-charset
- a prefix opciót meg mindig hozzáírod).
Tehát pl.
#!/bin/sh
# main.sh
PREFIX="/usr"
pkg_download_source() {
curl --megfelelő-paraméterek ${PKG_SOURCE}
}
pkg_extract() {
tar xf ${PKG_SOURCE}
}
pkg_conf() {
./configure --prefix=${PREFIX} ${CONF_ARGS}
}
pkg_build() {
make
}
pkg_install() {
make install DESTDIR=${DESTDIR}
}
#!/bin/sh
# pkgbuild.sh
PKG_PATH=/usr/pkgfiles
# Behúzzuk a main.sh fájlt, ami az alapfüggvényeket tartalmazza
source main.sh
# Behúzzuk az előállítandó csomag conf-fájlját, ami a csomag-specifikus infókat tartalmazza
source ${PKG_PATH}/${1}.conf
pkg_download_source
pkg_extract
pkg_conf
pkg_build
pkg_install
# /usr/pkgfiles/mc.conf
PKG_VERSION=4.8.15
PKG_SOURCE=http://ftp.midnight-commander.org/mc-${PKG_VERSION}.tar.xz
CONF_ARGS=--enable-charset
Tehát ha pl. az mc-t akarod előállítani, akkor pkgbuild.sh mc
. Ha a verziója változik, akkor csak a PKG_VERSION=...
sort kell átírni. Ha nem csak mc-t akarsz használni, akkor bármelyik más csomaghoz kb. annyit kell írnod, mint az utolsó fájlban:
# /usr/pkgfiles/foo.conf
PKG_VERSION=1.2.3
PKG_SOURCE=http://foo.com/foo-${PKG_VERSION}.tar.bz2
CONF_ARGS="--enable-bar --disable-foo"
Persze lehet ezeket finomítani, hibaellenőrzéssel bővíteni, vizsgálni, hogy van-e egyáltalán ./configure
, függőségeket hozzáadni (pl. PKG_DEPENDS="foo bar"
), csomagleírást, stb.