Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Wprowadzenie do tworzenia pakietów w Arch Linuksie

Wprowadzenie do tworzenia pakietów w Arch Linuksie

Krótki wstęp do samodzielnego tworzenia pakietów dla Arch Linuksa na przykładzie LieroLibre, otwartej implementacji Liero, zaprezentowany na 10. edycji Poznańskiej Imprezy Wolnego Oprogramowania.

Bartłomiej Piotrowski

May 17, 2014
Tweet

More Decks by Bartłomiej Piotrowski

Other Decks in Programming

Transcript

  1. • pkgname, pkgver, pkgrel, pkgdesc, arch • zależności • multum

    VCS • sumy kontrolne, weryfikacja GPG • pkgver(), prepare(), check() • …
  2. pkgname=lierolibre pkgver=0.5 pkgrel=1 pkgdesc='Completely free Liero fork' arch=('i686' 'x86_64') url='https://launchpad.net/lierolibre'

    license= depends= makedepends= source=( $url/trunk/0.5/+download/lierolibre-0.5.tar.xz ) md5sums=
  3. pkgname=lierolibre pkgver=0.5 pkgrel=1 pkgdesc='Completely free Liero fork' arch=('i686' 'x86_64') url='https://launchpad.net/lierolibre'

    license= depends= makedepends= source=( $url/trunk/$pkgver/+download/lierolibre-$pkgver.tar.xz ) md5sums=
  4. $ updpkgsums ==> Retrieving sources... -> Downloading lierolibre-0.5.tar.xz... (…) ==>

    Generating checksums for source files... md5sums=('f4c89eb6a55f7baa4594fe6f244ba793')
  5. pkgname=lierolibre pkgver=0.5 pkgrel=0.1 pkgdesc='Completely free Liero fork' arch=('i686' 'x86_64') url='https://launchpad.net/lierolibre'

    license=? depends=? makedepends=? source=(…/lierolibre-$pkgver.tar.xz) md5sums=('f4c89eb6a55f7baa4594fe6f244…3')
  6. pkgname=lierolibre pkgver=0.5 pkgrel=1 pkgdesc='Completely free Liero fork' arch=('i686' 'x86_64') url='https://launchpad.net/lierolibre'

    license=('LGPL2.1') depends=? makedepends=? source=(…/lierolibre-$pkgver.tar.xz) md5sums=('f4c89eb6a55f7baa4594fe6f244…3')
  7. • build-essential, libtool, pkg-config → base-devel • libsdl1.2-dev libsdl-mixer1.2-dev →

    sdl • zlib1g-dev → zlib • libconfig++-dev → libconfig • libboost-program-options-dev → boost + boost-libs • sox, imagemagick
  8. pkgname=lierolibre pkgver=0.5 pkgrel=1 pkgdesc='Completely free Liero fork' arch=('i686' 'x86_64') url='https://launchpad.net/lierolibre'

    license=('LGPL2.1') depends=('sdl' 'zlib' 'libconfig' 'sox' 'boost-libs' 'imagemagick') makedepends=('boost') source=(…/lierolibre-$pkgver.tar.xz) md5sums=('f4c89eb6a55f7baa4594fe6f244…3')
  9. build() { cd $pkgname-$pkgver ./configure make } package() { cd

    $pkgname-$pkgver make DESTDIR=”$pkgdir” install }
  10. devtools corepkg testingpkg communitypkg … archco communityco mkarchroot makechrootpkg extra-x86_64-build

    extra-i686-build testing-i686-build multilib-build … makepkg namcap
  11. $ head lierolibre-0.5-1-x86_64.pkg.tar.xz-namcap.log lierolibre W: File (usr/local/) exists in a

    non-standard directory. lierolibre W: File (usr/local/bin/) exists in a non- standard directory. lierolibre W: File (usr/local/share/) exists in a non- standard directory. lierolibre W: File (usr/local/libexec/) exists in a non- standard directory. lierolibre W: File (usr/local/libexec/lierolibre/) exists in a non-standard directory. lierolibre W: File (usr/local/libexec/lierolibre/lierolibre) exists in a non-standard directory. lierolibre W: File (usr/local/share/applications/) exists in a non-standard directory. lierolibre W: File (usr/local/share/icons/) exists in a non-standard directory. lierolibre W: File (usr/local/share/doc/) exists in a non-standard directory. lierolibre W: File (usr/local/share/lierolibre/) exists in a non-standard directory.
  12. build() { cd $pkgname-$pkgver ./configure --prefix=/usr \ --libexecdir=/usr/lib make }

    package() { cd $pkgname-$pkgver make DESTDIR=”$pkgdir” install }
  13. lierolibre E: Files in /usr/share/icons/hicolor but no call to gtk-

    update-icon-cache or xdg-icon-resource to update the icon cache lierolibre E: Dependency hicolor-icon-theme detected and not included (needed for hicolor theme hierarchy) lierolibre W: Dependency sdl included but already satisfied lierolibre W: Dependency zlib included but already satisfied lierolibre W: Dependency included and not needed ('sox') lierolibre W: Dependency included and not needed ('imagemagick')
  14. pkgname=lierolibre pkgver=0.5 pkgrel=1 pkgdesc='Completely free Liero fork' arch=('i686' 'x86_64') url='https://launchpad.net/lierolibre'

    license=('LGPL2.1') depends=('sdl' 'zlib' 'libconfig' 'boost-libs' 'xdg-utils' 'hicolor-icon-theme') makedepends=('boost') install=lierolibre.install source=(…/lierolibre-$pkgver.tar.xz) md5sums=('f4c89eb6a55f7baa4594fe6f244…3')
  15. post_install() { xdg-icon-resource forceupdate \ --theme hicolor &> /dev/null }

    post_upgrade() { post_install } post_remove() { post_install }
  16. lierolibre W: Dependency sdl included but already satisfied lierolibre W:

    Dependency zlib included but already satisfied lierolibre W: Dependency included and not needed ('xdg-utils')