Menu

Raspbian Bullseye

2021-11-23
2022-03-07
  • Dan Srebnick

    Dan Srebnick - 2021-11-23

    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 toi18n::phonenumbers::PhoneNumberOfflineCarrier::GetDescriptionForNumber
    abi:cxx11 const'
    /usr/bin/ld: ../libcarrier/libcarrier.so: undefined reference to
    vtable for icu_63::Replaceable' /usr/bin/ld: ../libcarrier/libcarrier.so: undefined reference tovtable 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 toicu_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 toicu_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 toicu_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 toicu_63::ByteSink::~ByteSink()'
    /usr/bin/ld: ../libcarrier/libcarrier.so: undefined reference to
    icu_63::ByteSink::Flush()' /usr/bin/ld: ../libcarrier/libcarrier.so: undefined reference toicu_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 totypeinfo 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

     
  • Ed Attfield

    Ed Attfield - 2021-11-23

    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.

     
  • Dan Srebnick

    Dan Srebnick - 2021-11-24

    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

     
  • Ed Attfield

    Ed Attfield - 2021-11-24

    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.

     
  • Dan Srebnick

    Dan Srebnick - 2021-11-24

    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.

     
  • John L. Chmielewski

    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:

    Packages that need to be installed if building a package.
    The first line is installed when the OS is installed:
    
        sudo apt install build-essential fakeroot
        sudo aptget install libpcap-dev libpcre3-dev
        sudo apt install libphonenumber-dev libicu-dev
        sudo apt install libconfig-simple-perl libdata-hexdump-perl
    
     
    • Dan Srebnick

      Dan Srebnick - 2021-12-19

      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
  • John L. Chmielewski

    I get the same version of libicu as you.

    Which version of Raspbian are you using? We assumed it is bullseye.

     
  • Dan Srebnick

    Dan Srebnick - 2021-12-22

    Raspberry Pi OS Bullseye 11.1 armv7l

     
  • Dan Srebnick

    Dan Srebnick - 2022-03-07

    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.

     

Log in to post a comment.