Update/Fortsetzung von gestern Abend.
Ich hab’s nochmal einen neuen Anlauf unternommen, so sieht’s aus (Buildsystem: VM mit Ubuntu 16.04 LTS):
Asterisk 13.13.1 für 16.04 von lioncub: baut.
Asterisk 13.13.1 für 14.04 von Jan Hoffmann: baut.
Sobald ich aber den Patch zur Unterstützung der Cisco 79xx, 88xx und 99xx-SIP-Telefone appliziere und neu bauen will: boom, bang, aus die Maus :-(
root@daft:/usr/src# mkdir ucm
root@daft:/usr/src# cd ucm
root@daft:/usr/src/ucm# apt-get source asterisk
Reading package lists... Done
NOTICE: 'asterisk' packaging is maintained in the 'Git' version control system at:
git://anonscm.debian.org/pkg-voip/asterisk.git
Please use:
git clone git://anonscm.debian.org/pkg-voip/asterisk.git
to retrieve the latest (possibly unreleased) updates to the package.
Need to get 32,9 MB of source archives.
Get:1 http://ppa.launchpad.net/lioncub/asterisk/ubuntu xenial/main asterisk 1:13.13.1-1ubuntu1 (tar) [32,7 MB]
Get:2 http://ppa.launchpad.net/lioncub/asterisk/ubuntu xenial/main asterisk 1:13.13.1-1ubuntu1 (diff) [104 kB]
Get:3 http://ppa.launchpad.net/lioncub/asterisk/ubuntu xenial/main asterisk 1:13.13.1-1ubuntu1 (dsc) [3.744 B]
Fetched 32,9 MB in 16s (2.014 kB/s)
gpgv: Signature made Fr 16 Dez 2016 09:22:50 CET using DSA key ID F6E62D0F
gpgv: Can't check signature: public key not found
dpkg-source: warning: failed to verify signature on ./asterisk_13.13.1-1ubuntu1.dsc
dpkg-source: info: extracting asterisk in asterisk-13.13.1
dpkg-source: info: unpacking asterisk_13.13.1.orig.tar.gz
dpkg-source: info: unpacking asterisk_13.13.1-1ubuntu1.debian.tar.xz
dpkg-source: info: applying hack-multiple-app-voicemail
dpkg-source: info: applying astgenkey-security
dpkg-source: info: applying sound_files
dpkg-source: info: applying mpglib
dpkg-source: info: applying enable_addons
dpkg-source: info: applying no_uname
dpkg-source: info: applying ilbc_disable
dpkg-source: info: applying astdatadir
dpkg-source: info: applying reenable
dpkg-source: info: applying smsq_enable.patch
dpkg-source: info: applying aelparse_enable.patch
dpkg-source: info: applying systemd.patch
dpkg-source: info: applying configure-osarch
W: Can't drop privileges for downloading as file 'asterisk_13.13.1.orig.tar.gz' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)
root@daft:/usr/src/ucm# cd asterisk-13.13.1/
root@daft:/usr/src/ucm/asterisk-13.13.1# quilt new cisco-usecallmanager-13.13.1.diff
Patch cisco-usecallmanager-13.13.1.diff is now on top
root@daft:/usr/src/ucm/asterisk-13.13.1# wget -O /tmp/cisco-usecallmanager-13.13.0.patch http://usecallmanager.nz/includes/cisco-usecallmanager-13.13.0.patch
[…]
2017-01-27 01:29:42 (3,54 MB/s) - ‘/tmp/cisco-usecallmanager-13.13.0.patch’ saved [302694/302694]
root@daft:/usr/src/ucm/asterisk-13.13.1# quilt add `grep +++ /tmp/cisco-usecallmanager-13.13.0.patch | sort | gawk '{gsub("asterisk-13.13.0/", "", $2); print $2;}'`
[…]
root@daft:/usr/src/ucm/asterisk-13.13.1# patch asterisk_13.13.1-1usecallmanager1.dsc
[…]
root@daft:/usr/src/ucm/try/asterisk-13.13.1# quilt refresh
root@daft:/usr/src/ucm/try/asterisk-13.13.1# tar Jcvf ../asterisk_13.13.1-1usecallmanager1.debian.tar.xz debian
root@daft:/usr/src/ucm/try/asterisk-13.13.1# cd ..
root@daft:/usr/src/ucm/try# sed -e 's/704b12529f8c8881fc240a7f435548413cc3a2ba/467a8176e83b3f4605feb233c1a7ac34482fb2e8/g' -e 's/34fb8ab7ca49db4bf327887dced6a488c131ac3d875c187aaf114eea2d3c58bf/21e66aa469b4d0b22096cbc22e30320d7355edfb7d291d9fc7fb3c0a1b91a45c/g' -e 's/c04e34de4c574e7b92a91316fb2fe1ce/d8684eb28b2b9e9fd5c6d3628c475c87/g' -e 's/asterisk_13.13.1-1ubuntu1.debian.tar.xz/asterisk_13.13.1-1usecallmanager1.debian.tar.xz/g' -e 's/1ubuntu1/1usecallmanager1/g' -e 's/103640/156764/g' <asterisk_13.13.1-1ubuntu1.dsc >asterisk_13.13.1-1usecallmanager1.dsc
root@daft:/usr/src/ucm# diff asterisk_13.13.1-1ubuntu1.dsc asterisk_13.13.1-1usecallmanager1.dsc8c8
< Version: 1:13.13.1-1ubuntu1
---
> Version: 1:13.13.1-1usecallmanager1
34c34
< 704b12529f8c8881fc240a7f435548413cc3a2ba 103640 asterisk_13.13.1-1ubuntu1.debian.tar.xz
---
> 467a8176e83b3f4605feb233c1a7ac34482fb2e8 156764 asterisk_13.13.1-1usecallmanager1.debian.tar.xz
37c37
< 34fb8ab7ca49db4bf327887dced6a488c131ac3d875c187aaf114eea2d3c58bf 103640 asterisk_13.13.1-1ubuntu1.debian.tar.xz
---
> 21e66aa469b4d0b22096cbc22e30320d7355edfb7d291d9fc7fb3c0a1b91a45c 156764 asterisk_13.13.1-1usecallmanager1.debian.tar.xz
40c40
< c04e34de4c574e7b92a91316fb2fe1ce 103640 asterisk_13.13.1-1ubuntu1.debian.tar.xz
---
> d8684eb28b2b9e9fd5c6d3628c475c87 156764 asterisk_13.13.1-1usecallmanager1.debian.tar.xz
root@daft:/usr/src/ucm# mkdir try
root@daft:/usr/src/ucm# cd try
root@daft:/usr/src/ucm/try# cp -p ../asterisk_13.13.1-1usecallmanager1.debian.tar.xz ../asterisk_13.13.1-1usecallmanager1.dsc ../asterisk_13.13.1.orig.tar.gz .
root@daft:/usr/src/ucm/try# ls
asterisk_13.13.1-1usecallmanager1.debian.tar.xz asterisk_13.13.1-1usecallmanager1.dsc asterisk_13.13.1.orig.tar.gz
root@daft:/usr/src/ucm/try# dpkg-source --extract asterisk_13.13.1-1usecallmanager1.dsc
gpgv: Signature made Fr 16 Dez 2016 09:22:50 CET using DSA key ID F6E62D0F
gpgv: Can't check signature: public key not found
dpkg-source: warning: failed to verify signature on ./asterisk_13.13.1-1usecallmanager1.dsc
dpkg-source: info: extracting asterisk in asterisk-13.13.1
dpkg-source: info: unpacking asterisk_13.13.1.orig.tar.gz
dpkg-source: info: unpacking asterisk_13.13.1-1usecallmanager1.debian.tar.xz
dpkg-source: info: applying hack-multiple-app-voicemail
dpkg-source: info: applying astgenkey-security
dpkg-source: info: applying sound_files
dpkg-source: info: applying mpglib
dpkg-source: info: applying enable_addons
dpkg-source: info: applying no_uname
dpkg-source: info: applying ilbc_disable
dpkg-source: info: applying astdatadir
dpkg-source: info: applying reenable
dpkg-source: info: applying smsq_enable.patch
dpkg-source: info: applying aelparse_enable.patch
dpkg-source: info: applying systemd.patch
dpkg-source: info: applying configure-osarch
dpkg-source: info: applying cisco-usecallmanager-13.13.1.diff
root@daft:/usr/src/ucm/try# cd asterisk-13.13.1/
root@daft:/usr/src/ucm/try/asterisk-13.13.1# dpkg-buildpackage -us -uc
dpkg-buildpackage: source package asterisk
dpkg-buildpackage: source version 1:13.13.1-1ubuntu1
[…]
/usr/src/ucm/try/asterisk-13.13.1/build_tools/make_linker_version_script chan_sip "" "/usr/src/ucm/try/asterisk-13.13.1"
x86_64-linux-gnu-gcc -o chan_sip.so -pthread -Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now -shared -Wl,--version-script,chan_sip.exports,--warn-common chan_sip.o sip/security_events.o sip/dialplan_functions.o sip/reqresp_parser.o sip/utils.o sip/config_parser.o sip/route.o
x86_64-linux-gnu-g++ -o chan_vpb.oo -c chan_vpb.cc -MD -MT chan_vpb.oo -MF .chan_vpb.oo.d -MP -pthread -I/usr/src/ucm/try/asterisk-13.13.1/include -fgnu89-inline -g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/libxml2 -pipe -Wall -march=native -fPIC -DAST_MODULE=\"chan_vpb\"
cc1plus: warning: command line option ‘-fgnu89-inline’ is valid for C/ObjC but not for C++
chan_vpb.cc:391:1: sorry, unimplemented: non-trivial designated initializers not supported
};
^
chan_vpb.cc:391:1: sorry, unimplemented: non-trivial designated initializers not supported
[…]
chan_vpb.cc:421:1: sorry, unimplemented: non-trivial designated initializers not supported
/usr/src/ucm/try/asterisk-13.13.1/Makefile.rules:166: recipe for target 'chan_vpb.oo' failed
make[3]: *** [chan_vpb.oo] Error 1
make[3]: Leaving directory '/usr/src/ucm/try/asterisk-13.13.1/channels'
Makefile:402: recipe for target 'channels' failed
make[2]: *** [channels] Error 2
make[2]: Leaving directory '/usr/src/ucm/try/asterisk-13.13.1'
dh_auto_build: make -j1 AST_FORTIFY_SOURCE= DEBUG= OPTIMIZE= NOISY_BUILD=yes ASTDATADIR=/usr/share/asterisk ASTVARRUNDIR=/var/run/asterisk returned exit code 2
debian/rules:96: recipe for target 'override_dh_auto_build' failed
make[1]: *** [override_dh_auto_build] Error 2
make[1]: Leaving directory '/usr/src/ucm/try/asterisk-13.13.1'
debian/rules:14: recipe for target 'build' failed
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2
root@daft:/usr/src/ucm/try/asterisk-13.13.1#
So weit, so schlecht :-( WTF ist hier los? Was mache ich falsch, warum bricht g++ plötzlich ins Essen, obwohl der fragliche Code nicht einmal schief angesehen wurde beim Patchen?! Mag vielleicht jemand mit mehr deb-Bau-Erfahrung versuchen, den besagten Patch zu dem Package hinzuzufügen? Irgendwas mache ich ja offensichtlich falsch, nur was?
Update, 2017-01-27, 19:30: Eigentlich war’s dann ja doch ›einfach‹ — chan_vpb.cc zieht sich C-Include-Files, und eines davon, asterisk/channel.h, wird vom usecallmanager-Patch um eine Zeile in einem struct erweitert. Jenes struct wird in dem C++-Code ebenfalls benutzt, und nun fehlte da augenscheinlich der neue Eintrag aus der C-Strukturdefinition. Folgender Patch löst zumindest das Compilierproblem und sollte auch logisch stimmig sein ;)
root@daft:~# cat /tmp/chan_vpb.cc.patch --- channels/chan_vpb.cc 2017-01-27 19:20:00.000000000 +0100 +++ new/chan_vpb.cc 2017-01-27 19:23:11.285244635 +0100 @@ -367,6 +367,7 @@ properties: 0, requester: vpb_request, devicestate: NULL, + presencestate: NULL, send_digit_begin: vpb_digit_begin, send_digit_end: vpb_digit_end, call: vpb_call, @@ -397,6 +398,7 @@ properties: 0, requester: vpb_request, devicestate: NULL, + presencestate: NULL, send_digit_begin: vpb_digit_begin, send_digit_end: vpb_digit_end, call: vpb_call,
