wiki:SynSlackwareImport

Version 7 (modified by Edwin Eefting, 8 years ago) (diff)

--

Bestaande Slackware packages importeren in SYN-3

Als een pakketje al in Slackware bestaat, dan word het aanbevolen deze te importeren en compilen voor de huidige versie van SYN-3.

Dit is grotendeels automatisch mogelijk via het importpackage script:

psy@ws1 ~/opensyn3/npl % sudo bash ./importpackage
[sudo] password for psy: 
Usage:
 ./importpackage <category> <name> <url>
 Imports slackware package from specified slackware source url
Example:
 ./importpackage system gmp 'http://mirrors.slackware.com/slackware/slackware-current/source/l/gmp/'

Voorbeeld: powertop importeren

Nu volgt een voorbeeld van het importeren van powertop vanuit SlackWare?.

Zoek de originele SlackBuild files op

Zoek de SlackBuild directory op in http://mirrors.slackware.com/slackware/slackware-current/source/

Powertop vinden we in http://mirrors.slackware.com/slackware/slackware-current/source/ap/powertop/

Importeer de package

Hieronder de output van de intiele build, er is wat output weggelaten.

psy@ws1 ~/opensyn3/npl % sudo ./importpackage overig powertop http://mirrors.slackware.com/slackware/slackware-current/source/ap/powertop/
--2017-01-19 14:48:29--  http://mirrors.slackware.com/slackware/slackware-current/source/ap/powertop//
Resolving mirrors.slackware.com (mirrors.slackware.com)... 207.223.116.213
Connecting to mirrors.slackware.com (mirrors.slackware.com)|207.223.116.213|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1887 (1.8K) [text/html]
Saving to: ‘index.html’

index.html                                                          100%[==================================================================================================================================================================>]   1.84K  --.-KB/s    in 0s      

Last-modified header missing -- time-stamps turned off.
2017-01-19 14:48:33 (233 MB/s) - ‘index.html’ saved [1887/1887]
(...)
Adding SYN-3 packaging to powertop.SlackBuild ...
Building package...
Rebuild required: ./powertop-2.8.tar.xz has changed!
REBUILDING /home/psy/opensyn3/npl/overig/powertop/powertop.SlackBuild:
Buildroot maken: ..............................................................................................OK
(...)
67 /tmp > cd powertop-2.8
70 /tmp/powertop-2.8 > chown -R root:root .
71 /tmp/powertop-2.8 > find . '(' -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 ')' -exec chmod 755 '{}' ';' -o '(' -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 ')' -exec chmod 644 '{}' ';'
77 /tmp/powertop-2.8 > LDFLAGS=' -lresolv -lz '
77 /tmp/powertop-2.8 > CFLAGS='-O2 -march=i586 -mtune=i686'
77 /tmp/powertop-2.8 > CXXFLAGS='-O2 -march=i586 -mtune=i686'
77 /tmp/powertop-2.8 > ./configure --prefix=/usr --libdir=/usr/lib --sysconfdir=/etc --localstatedir=/var --mandir=/usr/man --docdir=/usr/doc/-2.8 --build=i586-slackware-linux
checking for a BSD-compatible install... /usr/bin/ginstall -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for style of include used by make... GNU
checking for g++... g++
checking whether the C++ compiler works... yes
checking for library containing pci_get_dev... no
checking for LIBNL... no
checking for LIBNL... no
checking for LIBNL... no
configure: error: libnl and libnl-genl are required but were not found
87 /tmp/powertop-2.8 > exit 1
*** Er ging iets mis tijdens het bakken in de buildroot!
Chroot naar /tmp/buildroot0._home_psy_opensyn3_builder zodat je kunt onderzoeken (ctrl-d om te stoppen):
[Syn-3] root@darkstar.example.net /tmp/build#  

De build mislukt zoals we zien. Met ctrl-d verlaat je de buildroot.

Build probleem oplossen

Veel packages zijn bepaalde dependencies nodig.

In dit geval vraagt het configure script om libnl en libnl-genl.

We kijken of dit pakketje al in SYN-3 aanwezig is:

psy@ws1 ~/opensyn3/npl % find |grep libnl
./overig/libnl
./overig/libnl/libnl_dev.arch
./overig/libnl/libnl.version
./overig/libnl/libnl_dev.version
./overig/libnl/libnl-1.1.4.tar.gz
./overig/libnl/libnl.SlackBuild
./overig/libnl/libnl.info
./overig/libnl/libnl.pkg
./overig/libnl/libnl.SlackBuild.log.gz
./overig/libnl/libnl.arch
./overig/libnl/slack-desc
./overig/libnl/libnl.build
./overig/libnl/libnl_dev.build
./overig/libnl/libnl.major
./overig/libnl/libnl.md5
./overig/libnl/libnl_dev.pkg

We geven nu aan in de SlackBuild dat deze dependency nodig is:

psy@ws1 ~/opensyn3/npl % sudo mcedit overig/powertop/powertop.SlackBuild

Voeg na de header deze regel toe:

#DEP:libnl

We starten een rebuild om te kijken of we nu verder komen:

psy@ws1 ~/opensyn3/npl % sudo ./rebuildcheck powertop
Rebuild required: ./powertop-2.8.tar.xz has changed!
Rebuild required: libnl major is now 1, but this package was build was against 0.
Dependency check libnl
REBUILDING /home/psy/opensyn3/npl/overig/powertop/powertop.SlackBuild:
Buildroot up-to-date check: (nopkgcheck to skip)..............................................................................................DONE
Buildroot /tmp/buildroot0._home_psy_opensyn3_builder repareren/syncen...OK
Build-dependency libnl installeren: /home/psy/opensyn3/npl/.tmp/D/libnl-1.1.4-i486-6116.tgz
Build-dependency libnl_dev installeren: /home/psy/opensyn3/npl/.tmp/D/libnl_dev-1.1.4-i486-6116.tgz
Nieuwe packages ldconfiggen...
etc-update doen
Different config file: /etc/hosts.new (please check manually)
/home/psy/opensyn3/npl/overig/powertop word gekopieerd naar werkdirectory /tmp/buildroot0._home_psy_opensyn3_builder/tmp/build
*** Chroot naar /tmp/buildroot0._home_psy_opensyn3_builder en starten van powertop.SlackBuild in /tmp/build:
10 /tmp/build > pwd
10 /tmp/build > CWD=/tmp/build
11 /tmp/build > set -e
12 /tmp/build > source ./powertop.SlackBuild.orig
28 /tmp/build > PKGNAM=powertop
29 /tmp/build > echo powertop-2.8.tar.xz
29 /tmp/build > rev
29 /tmp/build > cut -f 3- -d .
29 /tmp/build > cut -f 1 -d -
29 /tmp/build > rev
(...)
make[3]: Entering directory `/tmp/powertop-2.8/src'
  CXX      powertop-display.o
In file included from display.cpp:25:0:
display.h:31:21: fatal error: ncurses.h: No such file or directory
 #include <ncurses.h>
                     ^
compilation terminated.
make[3]: *** [powertop-display.o] Error 1
(...)

2e build probeem oplossen

Aan de error zien we dat ncurses.h ontbreekt.

Ook hier is een pakketje voor (je kunt ook ./findpkgfile gebruiken om zoeken in welke package een file zich bevind)

Nu voegen we #DEP:ncurses toe en starten de build nogmaals:

psy@ws1 ~/opensyn3/npl % sudo ./rebuildcheck powertop '' nopkgcheck     
Rebuild required: ./powertop-2.8.tar.xz has changed!
(...)
All rebuilds completed.

De build is gelukt!

Gebruik ./remoteinstall om het pakketje en de dependencys te installeren op je SYN-3 machine.

Neem contact met DatuX op om het pakketje toe te voegen aan de online SYN-3 tree. Deze pakketjes komen dan via een update in SYN-3.

Bovenstaande package is gecommit in changeset 1393bb5 .