With a loss of the carrier and geographic lookup functionality, it may be possible for you to compile by removing -DHASCARRIERLOOKUP from the server/Makefile.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Not working for me...I tried commenting out that whole block but still getting the same error. I realize this is bleeding edge so I'll stand by until you've had a chance to review the situation.
Thanks.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi Dan,
I assumed you were using Raspbian Bullseye and release 1.12. I downloaded the NCID 1.12 source. on Raspbian Bullseye. Here is how I compiled just ncidd:
libcarrier must be installed first when not using the top level Makefile:
tar -xzf ncid-1.12-src.tar.gz
cd ncid/libcarrier
make libcarrier
make install
The server was compiled next:
cd ../server
make server
The server compiled successfully and ran with no problems using libphonenumber 8. I also rebuilt all the binary packages successfully. ldd ncidd was used to verify that libphonenumber 8 was used.
Your failure seems to indicate you did not install libicu. Here is the required package list:
Success. I tried a rebuild today for the first time since December. ncid 1.12 now build fine from source on this system. I don't know what changed but looks like something in the Raspberry Pi OS repos that was applied on an update must have been fixed.
Thanks for the offers of assistance.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
After upgrading an RPi running ncidd, libphonenumber7 has been replaced
with libphonenumber8.
An attempt to recompile yields a number of undefined references.
/usr/bin/ld: nciddPN.o: in function
GetCompleteInfoFromNumber': nciddPN.cpp:(.text+0xd18): undefined reference to
i18n::phonenumbers::PhoneNumberOfflineCarrier::GetDescriptionForNumberabi:cxx11 const'
/usr/bin/ld: ../libcarrier/libcarrier.so: undefined reference to
vtable for icu_63::Replaceable' /usr/bin/ld: ../libcarrier/libcarrier.so: undefined reference to
vtable for icu_63::UnicodeString'/usr/bin/ld: ../libcarrier/libcarrier.so: undefined reference to
vtable for icu_63::UObject' /usr/bin/ld: ../libcarrier/libcarrier.so: undefined reference to
icu_63::ByteSink::GetAppendBuffer(int, int, char, int, int)'/usr/bin/ld: ../libcarrier/libcarrier.so: undefined reference
troot@asterisk:/usr/local/src/ncid#
o
icu_63::UnicodeString::toUTF8(icu_63::ByteSink&) const' /usr/bin/ld: ../libcarrier/libcarrier.so: undefined reference to
icu_63::UMemory::operator delete(void)'/usr/bin/ld: ../libcarrier/libcarrier.so: undefined reference to
icu_63::Locale::Locale(char const*, char const*, char const*, char const*)' /usr/bin/ld: ../libcarrier/libcarrier.so: undefined reference to
icu_63::Locale::~Locale()'/usr/bin/ld: ../libcarrier/libcarrier.so: undefined reference to
vtable for icu_63::ByteSink' /usr/bin/ld: ../libcarrier/libcarrier.so: undefined reference to
icu_63::ByteSink::~ByteSink()'/usr/bin/ld: ../libcarrier/libcarrier.so: undefined reference to
icu_63::ByteSink::Flush()' /usr/bin/ld: ../libcarrier/libcarrier.so: undefined reference to
icu_63::Locale::getDisplayCountry(icu_63::Locale const&,icu_63::UnicodeString&) const'
/usr/bin/ld: ../libcarrier/libcarrier.so: undefined reference to
icu_63::UnicodeString::~UnicodeString()' /usr/bin/ld: ../libcarrier/libcarrier.so: undefined reference to
typeinfo for icu_63::ByteSink'collect2: error: ld returned 1 exit status
make[2]: [Makefile:192: ncidd] Error 1
make[2]: Leaving directory '/usr/local/src/ncid/server'
make[1]: [Makefile:243: serverdir] Error 2
make[1]: Leaving directory '/usr/local/src/ncid'
make: ** [Makefile:319: raspbian] Error 2
With a loss of the carrier and geographic lookup functionality, it may be possible for you to compile by removing -DHASCARRIERLOOKUP from the server/Makefile.
After removal:
$ make server
g++ -I. -I.. -I../lib -I../libcarrier -I/usr/local/include -O2 -g -DCONFIG=\"/etc/ncid/ncidd.conf\" -DCIDALIAS=\"/etc/ncid/ncidd.alias\" -DBLACKLIST=\"/etc/ncid/ncidd.blacklist\" -DWHITELIST=\"/etc/ncid/ncidd.whitelist\" -DCIDLOG=\"/var/log/cidcall.log\" -DTTYPORT=\"/dev/modem\" -DDATALOG=\"/var/log/ciddata.log\" -DLOGFILE=\"/var/log/ncidd.log\" -DPIDFILE=\"/var/run/ncidd.pid\" -DLOCKFILE=\"/var/lock/lockdev/LCK..\" -DNCIDUPDATE=\"/usr/bin/cidupdate\" -DNCIDUTIL=\"/usr/bin/ncidutil\" -DNCIDEXT=\"/usr/share/ncid/extensions\" -DNCIDANN=\"/usr/share/ncid/recordings\" -DRECORDING=\"DisconnectedNotInService.rmd\" -DHUPEXTENSION=\"hangup-nohangup\" -Wall -Wmissing-declarations -Wuninitialized -Wsign-compare -Wno-stringop-truncation -c nciddPN.cpp -o nciddPN.o
nciddPN.cpp: In function ‘char GetCompleteInfoFromNumber(const char)’:
nciddPN.cpp:301:14: error: ‘Carrier’ was not declared in this scope
301 | strcpy(Carrier, "-");
| ^~~~~~~
make: *** [Makefile:187: nciddPN.o] Error 1
It looks like I missed one while I was wrapping things in #ifdef's.
You could comment that line 301 out,
All of this is a work-around until a better way to resolve the versioning is found.
Not working for me...I tried commenting out that whole block but still getting the same error. I realize this is bleeding edge so I'll stand by until you've had a chance to review the situation.
Thanks.
Hi Dan,
I assumed you were using Raspbian Bullseye and release 1.12. I downloaded the NCID 1.12 source. on Raspbian Bullseye. Here is how I compiled just ncidd:
libcarrier must be installed first when not using the top level Makefile:
The server was compiled next:
The server compiled successfully and ran with no problems using libphonenumber 8. I also rebuilt all the binary packages successfully. ldd ncidd was used to verify that libphonenumber 8 was used.
Your failure seems to indicate you did not install libicu. Here is the required package list:
FYI:
dpkg --list | grep libicu
ii libicu-dev:armhf 67.1-7
armhf Development files for International Components for Unicode
ii libicu67:armhf 67.1-7
armhf International Components for Unicode
(edited to remove duplicate posting info inserted by SourceForge forum software)
Last edit: Todd Andrews 2021-12-22
I get the same version of libicu as you.
Which version of Raspbian are you using? We assumed it is bullseye.
Raspberry Pi OS Bullseye 11.1 armv7l
Success. I tried a rebuild today for the first time since December. ncid 1.12 now build fine from source on this system. I don't know what changed but looks like something in the Raspberry Pi OS repos that was applied on an update must have been fixed.
Thanks for the offers of assistance.