abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
27.11. 15:22 | Zajímavý článek

Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 100 (pdf), HackSpace 37 (pdf) a Wireframe 44 (pdf). Vydán byl také dvousetstránkový The Official Raspberry Pi Handbook 2021 (pdf).

Ladislav Hagara | Komentářů: 2
27.11. 14:55 | Nová verze

Byla vydána nová verze 2.13 proprietárního multiplatformního 3D enginu UNIGINE (Wikipedie) pro tvorbu počítačových her, simulátorů, systémů virtuální reality nebo i benchmarků. Přehled novinek na YouTube a v příspěvku na blogu.

Ladislav Hagara | Komentářů: 0
27.11. 09:00 | Nová verze

Armbian, tj. operační systém založený na Debianu a Ubuntu pro jednodeskové počítače na platformě ARM, byl vydán ve verzi 20.11. Její kódové jméno je Tamandua. Pro většinu desek byl Linux povýšen na verzi 5.9.y. U-Boot na verzi 2020.10.

Ladislav Hagara | Komentářů: 0
27.11. 08:00 | Nová verze

Desktopové prostředí Cinnamon má novou verzi 4.8. Změny jsou především inkrementální, např. různé opravy chování appletů v panelu, ale také aktualizace závislosti na mozjs (nyní aspoň 78), kvůli které jinak hrozilo odstranění balíčků z Debianu.

Fluttershy, yay! | Komentářů: 4
26.11. 20:22 | Nová verze

Po téměř čtyřech měsících vývoje od vydání verze 246 byla vydána nová verze 247 správce systému a služeb systemd (GitHub, NEWS).

Ladislav Hagara | Komentářů: 22
26.11. 17:55 | Nová verze

Byla vydána verze 6.3 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůraznit lze integraci s Proxmox Backup Serverem.

Ladislav Hagara | Komentářů: 5
26.11. 17:33 | Nová verze

Po pěti letech od vydání verze 7.0.0 byla vydána nová major verze 8.0.0 skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Nejnovější větev PHP přináší celou řadu nových novinek a vylepšení. Vydána byla také příručka pro přechod z předchozích verzí.

Ladislav Hagara | Komentářů: 19
26.11. 13:33 | Nová verze

Björn Ståhl vydal novou verzi 0.6 svého vlastního display serveru, herní enginu a realtimového multimediálního frameworku v jednom s názvem Arcan a desktopového prostředí pro Arcan s názvem Durden. Přidána byla celá řada nových vlastností. Jejich představení na YouTube.

Ladislav Hagara | Komentářů: 3
26.11. 07:00 | Nová verze

Byla vydána nová verze 28.16.0 webového prohlížeče Pale Moon (Wikipedie) vycházejícího z Firefoxu. Přehled novinek v poznámkách k vydání. Řešeno je také několik bezpečnostních chyb.

Ladislav Hagara | Komentářů: 10
26.11. 01:11 | Nová verze

Byla vydána nová stabilní verze 2.91 svobodného 3D softwaru Blender. Přehled novinek v oznámení o vydání a na YouTube.

Ladislav Hagara | Komentářů: 0
Jak nakládáte s řetězovými e-maily?
 (6%)
 (40%)
 (3%)
 (2%)
 (3%)
 (9%)
 (58%)
Celkem 304 hlasů
 Komentářů: 8, poslední 16.11. 22:50
Rozcestník
Aktuální zápisy

Sám sobě package maintainerem

30.6.2005 23:01 | Přečteno: 1255× | poslední úprava: 30.6.2005 23:24

Všechno v životě má svůj líc i rub a čím déle jsme na cestě za hledáním dokonalosti, tím více zjišťujeme, jak se nám vzdaluje.

Na lícu distribuce Slackware Linuxu lze mj. spatřit kompaktnost a nekopromisní dodržování osvědčených principů a zásad, zajišťovaných "laskavým diktátorem života" Patrickem Volkerdingem jako jejím jediným správcem. Na stejném místě, ale na straně rubové, lze logicky najít omezenou množinu distribuovaných balíčků, která nemůže uspokojit všechny požadavky svých uživatelů.

Tvorba binárních balíčků se řeší pomocí tzv. SlackBuild skriptů, což nejsou nic jiného než posloupnosti shellových příkazů, kterými se standardně daný software instaluje ze zdrojových souborů. Základy např. zde ( PDF), ale hlavně podstrom repozitáře sources. Pro svoji potřebu zmírnit nedostatek uvedený v předchozím odstavci, zbastlil jsem kdysi šablonu takového SlackBuild skriptu, který mi s drobnými úpravami slouží dodnes a který jsem si drze dovolil podstrčit do svého prvního blogu ;-) K dokonalosti má opravdu daleko, je tam minimum kontrol, aplikace případných patchů není automatizována atd. Nechť si dotyční dotčení kritici toto dopíší sami :-)

Skript se sestává ze 4 logicky souvisejících pasáží(inicializace, konfigurace zdrojů, kompilace zdrojů a relokovaná instalace, sestavení balíčku). Spouští se pod rootem, kritické části 2 a 3 běží pod běžným uživatelem. Pro zdrojáky postavené kolem automake a autoconf většinou stačí jen doplnit hodnoty proměnných v části 1. Skript implicitně počítá, že obsah balíčku se zdrojovými soubory je uložen do adresáře formátu <název balíčku>-<verze>.

Pro squid by mohly být proměnné nastavené např. takto:

...
PKG_NAME="squid"				# basic name of a package
PKG_VERSION="2.5.STABLE10"			# release version
PKG_ARCH=${PKG_ARCH:-i486}			# architecture to build for
PKG_BUILD=${PKG_BUILD:-2loj}			# id of build in one release
PKG_DOCS="AUTHORS COPYING* LICENSE README NEWS \
  ChangeLog"					# distributed documents
PKG_SRC=${PKG_NAME}-${PKG_VERSION}.tar.bz2 	# sources tarball name
CONFIG_OPTIONS="--prefix=/usr/local \
                --sysconfdir=/etc \
                --localstatedir=/var \
                --with-pthreads \
                --enable-openssl"		# options for config. script

TMP=/home/lojza/tmp				# temporary files directory
PKG=${TMP}/package-${PKG_NAME}			# sources build path
TAR_PARAMS=""					# tar extraction parameters
SLACK_PKGDIR="/_archive/slackware/packages"	# package destination directory
USER_BUILD=lojza				# account used to build srcs
...


Následuje celá šablona.

#!/bin/sh
# SlackBuild template (cl) Triton, 2005

cd `dirname "$0"`			       # dive into SlackBuild dir first

###############################################################################
### 1/4 ENVIRONMENT VARIABLES INITIALIZATION, BASIC CHECKS  ###################
PKG_NAME=""					# basic name of a package
PKG_VERSION=""					# release version
PKG_ARCH=${PKG_ARCH:-i686}			# architecture to build for
PKG_BUILD=${PKG_BUILD:-1trt}			# id of build in one release
PKG_DOCS="AUTHORS COPYING* LICENSE README NEWS"	# distributed documents
PKG_SRC=${PKG_NAME}-${PKG_VERSION}.tar.gz	# sources tarball name
CONFIG_OPTIONS="--prefix=/usr/local \
                --sysconfdir=/etc \
                --localstatedir=/var"		# options for config. script
TMP=/tmp					# temporary files directory
PKG=${TMP}/package-${PKG_NAME}			# sources build path
SLACK_PKGDIR="/_archive/slackware/packages"	# package destination directory
TAR_PARAMS=""					# tar extraction parameters
USER_BUILD=triton				# account used to build srcs
CWD=`pwd`					# SlackBuild directory
CALLWD="$OLDPWD"				# directory called from
case ${PKG_ARCH} in
  ( i386 | i486 | i586 | i686 )
    SLKCFLAGS="-O2 -march=${PKG_ARCH} -mcpu=i686 -pipe";;
  ( s390 | x86_64 )
    SLKCFLAGS="-O2";;
  ( * ) {
    echo "Unsupported architecture $PKG_ARCH !"
    exit 1
  }
esac
export PKG_NAME PKG_VERSION PKG_ARCH PKG_BUILD PKG_DOCS PKG_SRC SLACK_PKGDIR CWD TMP PKG SLKCFLAGS

[ ! -r slack-desc ] && { echo "slack-desc file is missing !"; exit 1; }
[ ! -r ${PKG_SRC} ] && { echo "Source tarball ${PKG_SRC} is missing !"; exit 1; }
if [ -z "$TAR_ARGS" ]; then
  if [ `expr "${PKG_SRC}" : ".*\.tar\.gz$"` -ne 0 ] || [ `expr "${PKG_SRC}" : ".*\.tgz$"` -ne 0 ]; then
    TAR_PARAMS="xzvf"
  elif [ `expr "${PKG_SRC}" : ".*\.tar\.bz[2]$"` -ne 0 ] || [ `expr "${PKG_SRC}" : ".*\.tbz[2]$"` -ne 0 ]; then
    TAR_PARAMS="xjvf"
  else
    echo "Source tarball ${PKG_SRC} doesn't look like an gzipped or bzipped tar !"
    exit 1
  fi
fi

export TAR_PARAMS

# run parts 2/4 - 3/4 in "safe" user context
su - "$USER_BUILD" -c "{


###############################################################################
### 2/4 SOURCES EXTRACTION, PATCHES APPLYING ##################################
rm -rf ${PKG}
mkdir -p ${PKG}
cd ${TMP}
rm -rf ${PKG_NAME}-${PKG_VERSION}
tar ${TAR_PARAMS} ${CWD}/${PKG_SRC}
cd ${PKG_NAME}-${PKG_VERSION}
#zcat ${CWD}/${PKG_NAME}.diff.gz | patch -p1 --verbose --backup --suffix=.orig
CFLAGS=\"$SLKCFLAGS\" \
CXXFLAGS=\"$SLKCFLAGS\" \
./configure ${CONFIG_OPTIONS}


###############################################################################
### 3/4 SOURCES COMPILATION, INSTALL INTO PACKAGING DIRECTORY, STRIPPING  #####
make -j3
make install DESTDIR=${PKG}
# Adjust docs to traditional Slackware location:
[ -d ${PKG}/usr/doc/${PKG_NAME}-${PKG_VERSION} ] || mkdir -p ${PKG}/usr/doc/${PKG_NAME}-${PKG_VERSION} 
mv ${PKG}/usr/share/doc ${PKG}/usr
# Add a few more docs:
cp -a ${PKG_DOCS} ${PKG}/usr/doc/${PKG_NAME}-${PKG_VERSION}
mkdir ${PKG}/install
cat ${CWD}/slack-desc > ${PKG}/install/slack-desc
cp ${CWD}/doinst.sh ${PKG}/install/
cd ${PKG}
find . | xargs file | grep 'executable' | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
find . | xargs file | grep 'shared object' | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
find . -type d -name man | xargs -i find {} -type f -name "*.[1-9]" | xargs gzip -9

}"	# exit "safe" user context to run 4/4 part as superuser


###############################################################################
### 4/4 POLICIES APPLYING, FINAL PACKAGE CREATING #############################
cd ${PKG}
chown -R root.root .
chgrp -R bin bin sbin usr/bin usr/sbin usr/local/bin usr/local/sbin
/sbin/makepkg -l y -c n ${SLACK_PKGDIR}/${PKG_NAME}-${PKG_VERSION}-${PKG_ARCH}-${PKG_BUILD}.tgz && \
  rm -rf ${TMP}/${PKG_NAME}-${PKG_VERSION} ${PKG}

cd ${CALLWD}


Tak a teď se ještě zapsat do příslušného mailing listu a jedna aktualizace může stíhat druhou ;-)        

Hodnocení: -

zatím nehodnoceno
        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Vložit další komentář

30.6.2005 23:31 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
Rozbalit Rozbalit vše ebuild :-)
Sorry, ale ja si to neodpustim - to je nejaka parodie na ebuild ;-) ?
30.6.2005 23:41 Triton | skóre: 10 | blog: keep_slacking
Rozbalit Rozbalit vše Re: ebuild :-)
Škoda, že jsem to nedal jako hádanku. Určitě bys' vyhrál nějakou cenu ;-)
Z'LI0(%:`&/NRU`Y0"@8.L%.%PG(%!D>"<!@C(4&'?`UO!/$"K\2)+!1K',R' 2V,*3$D-EG4PC!<*(%%I"<*$` `
1.7.2005 09:08 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: ebuild :-)
<troll>

ebuid, ebuild... to je nějaká parodie na rpmbuild? ;-)

</troll>
1.7.2005 12:16 trocha pravdy | skóre: 3 | blog: nic
Rozbalit Rozbalit vše Re: ebuild :-)
Bomba spregacka neznamena nic. Kdyz jsem byl maly, rikali jsme necemu, co je strasne cool, ze je to spregy. Z ceho to vsak vzniklo to uz vakt nefim...
3.9.2005 07:46 Frank J. Tomes | skóre: 29 | Plzeň
Rozbalit Rozbalit vše Re: ebuild :-)
Jasně, nejstarší linuxová distribuce bude schválně parodovat hype distribuce pro hobbisty :-)
[frank]$ uname -prs FreeBSD 4.11-RELEASE-p25 i386
Mikos avatar 1.7.2005 03:41 Mikos | skóre: 34 | blog: Jaderný blog | Praha
Rozbalit Rozbalit vše Zajímavé
Když vidím něco takového, hned si vzpomenu na to jak úžasné jsou ebuildy v Gentoo a PKGBUILDy v Archu... nemůžu si pomoct, ale tohle je fakt humus :-)
CETERUM CENSEO DRM ESSE DELENDAM Ostatně soudím, že DRM musí být zničeno!
1.7.2005 07:01 Michal Karas | skóre: 45 | blog: /dev/random
Rozbalit Rozbalit vše Re: Zajímavé
Tenhle zapisek jsem cetl uz vcera a napadlo me to same. :-) Jen jsem nechtel hned rypat, ale kdyz uz jsi zacal ty... ;-)
1.7.2005 10:40 pepekvyskoc
Rozbalit Rozbalit vše Re: Zajímavé
to neni ani cilem, je to proste bash skript, ktery zkompiluje soft a udela balicek, nic jineho. nemuzes srovnavat s ebuildem - ebuild zase treba nelze pouzit samostatne, nemluve o dalsich funkcich

btw. autor necht mrkne na portpkg.berlios.de - hromada slackbuildu v repozitari a ruzne tooly na jejich vytvareni a spravu - mozna inspirace
1.7.2005 13:34 Triton | skóre: 10 | blog: keep_slacking
Rozbalit Rozbalit vše Re: Zajímavé
Portpkg znám, ale mám s ním dva zásadní problémy. Jednak ty skripty nejsou zdaleka tak generické a druhak nedůvěřuji jiným zdrojům než je ten oficiální a sám sobě. Pro mě je jednodušší vyplnit hlavičku šablony a udělat pár případných úprav v instalační části, než luštit cizí skripty. To bych si rovnou mohl ušetřit komplikace instalováním hotových balíčků z linuxpackages.net .
Z'LI0(%:`&/NRU`Y0"@8.L%.%PG(%!D>"<!@C(4&'?`UO!/$"K\2)+!1K',R' 2V,*3$D-EG4PC!<*(%%I"<*$` `
1.7.2005 12:42 Triton | skóre: 10 | blog: keep_slacking
Rozbalit Rozbalit vše Re: Zajímavé
No mě se taky líbí víc ABS z Arch Linuxu, ale takhle se prostě ve Slacku balíčky vyrábí. Dokonce si dovolím tvrdit, že ty originální jsou často méně konzistentní, než ty moje. Najděte si nějaké oficiální SlackBuildy např. odsud .
Z'LI0(%:`&/NRU`Y0"@8.L%.%PG(%!D>"<!@C(4&'?`UO!/$"K\2)+!1K',R' 2V,*3$D-EG4PC!<*(%%I"<*$` `

Založit nové vláknoNahoru

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.