• HPT Compile Error

    From Dan Richter@1:317/3 to All on Wednesday, June 26, 2019 00:03:24
    Hi All,

    I've been playing around with trying to get HPT compiled under Ubuntu 18.04 here, and I keep getting errors. Just about everything else will compile with no problems, but not HPT.

    When I try 'make all install' in /hpt, I get a bunch of warnings that look like:

    src/perl.c: In function 'perl_robotmsg': /usr/lib/x86_64-linux-gnu/perl/5.26/CORE/perl.h:529:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
    # define STMT_START (void)( /* gcc supports "({ STATEMENTS; })" */

    Then it will exit with error 1:

    makefile.inc:28: recipe for target 'perl.o' failed
    make: *** [perl.o] Error 1

    I know I have perl installed on that computer. When I run perl --version I
    get:

    This is perl 5, version 26, subversion 1 (v5.26.1) built for x86_64-linux-gnu-thread-multi
    (with 67 registered patches, see perl -V for more detail)

    I'm not sure what I'm missing. Is there another dependency for perl that I've missed?

    Thanks


    ---

    |03B|09lack |03P|09anther|03(|09RCS|03)|07

    --- Mystic BBS v1.12 A43 2019/03/02 (Linux/64)
    * Origin: Castle Rock BBS - bbs.castlerockbbs.com (1:317/3)
  • From mark lewis@1:3634/12.73 to Dan Richter on Wednesday, June 26, 2019 13:39:54
    WARNING: this is long, detailed, and maybe in left field...


    On 2019 Jun 26 00:03:24, you wrote to All:

    I've been playing around with trying to get HPT compiled under Ubuntu
    18.04
    here, and I keep getting errors. Just about everything else will compile with no problems, but not HPT.

    because of your message, i just tried this on my ubuntu server 18.04 LTS...

    When I try 'make all install' in /hpt, I get a bunch of warnings that
    look like:

    what method in the huskybse/INSTALL file did you choose to go with?

    i've used the II.1.* format where you copy huskybse/huskymak.cfg to your husky-dev root and edit it if needed... i do all of my stuff as individual account installations and not system-wide installations... the only gotcha that
    i cannot remember how i fixed was creating a file in /etc/ld.so.conf.d for my user... i'll explain how to do this below after we get the husky stuff built...

    cd ~
    mkdir -p fido-dev/husky
    cd ~/fido-dev/husky
    #
    # here i get the husky modules i need either by pulling them
    # from CVS or by tarball. i did it with CVS but don't recall
    # exactly how... either way, i end up with a tree like this
    #
    # /home/myuser/fido-dev
    # /home/myuser/fido-dev/husky
    # /home/myuser/fido-dev/husky/areafix
    # /home/myuser/fido-dev/husky/fidoconf
    # /home/myuser/fido-dev/husky/hpt
    # /home/myuser/fido-dev/husky/htick
    # /home/myuser/fido-dev/husky/huskybse
    # /home/myuser/fido-dev/husky/huskylib
    # /home/myuser/fido-dev/husky/smapi
    # /home/myuser/fido-dev/husky/sqpack
    #
    # at this point, we find and start following the huskybse/INSTALL file
    # and we chose to follow section II.1 for building and installing...
    #
    # so after we read a little but, we start with II.1.2 Configuring
    #
    # we copy the huskymak.cfg file to our ~/fido-dev directory
    #
    cp huskybse/huskymak.cfg .
    #
    # and edit huskymak.cfg
    # the only thing i do is set the PREFIX to home/myuser/fido
    # everything else i leave alone
    #
    gedit huskymak.cfg
    #
    # now we move to II.1.3 Compiling and Installing...
    #
    # there's a missed step in the INSTALL FILE, huskybse/README.Makefiles
    # says
    #
    # "Please first do "make install" in huskylib before you try to
    # compile smapi or fidoconfig, and do "make install" in fidoconfig
    # and/or smapi before you try to compile any of the other programs."
    #
    # so here we go with the tasks...
    #
    # do huskylib 1st
    #
    cd ~/fido-dev/huskylib
    make clean
    sudo make install
    #
    # now we can go back to the huskybse/INSTALL file and pick up II.1.3
    # where we left off...
    #
    # do smapi 2nd
    #
    cd ~/fido-dev/smapi
    make clean
    make all
    sudo make install
    #
    # do fidoconf 3rd
    #
    cd ~/fido-dev/fidoconf
    make clean
    make all
    sudo make install
    #
    # the rest can probably be done in any order but check the docs
    # i did them in this order...
    #
    # areafix 4th because others need its lib file
    #
    cd ~/fido-dev/areafix
    make clean
    make all
    sudo make install
    #
    cd ~/fido-dev/sqpack
    make clean
    make all
    sudo make install
    #
    cd ~/fido-dev/htick
    make clean
    make all
    sudo make install
    #
    cd ~/fido-dev/hpt
    make clean
    make all
    sudo make install


    i split the "make all install" commands because i didn't want the binaries to be root:root... but the install part complains about
    Can't create temporary cache file /etc/ld.so.cache~: Permission denied

    so i "sudo make install" to handle that problem as we carry on with each step until we reach the end ;)


    now about that file in /etc/ld.so.conf.d that i mentioned before we started the
    above process... i do not recall how or when i created it but it does exist and it points to my ~/fido/lib directory so the husky stuff, at least, can find
    the lib files we compiled above... the file is named

    /etc/ld.so.conf.d/myuser.conf

    and contains the following

    ----- snip -----
    # libc configuration for myuser
    /home/myuser/fido/lib
    ----- snip -----

    on my system, the above file is chmod 644 and chown root:root
    after you create the file and place it in /etc/ld.so.conf.d, run

    sudo ldconfig

    to get it registered... after that you can test by running one of the small tools that was built...

    ~/fido/bin/pktinfo --version

    and it should run... you could also

    ldd ~/fido/bin/pktinfo

    if you wanted to make sure none of the libs are "=> not found"... if they are, then the we missed something above... see below for example ldd output showing that the husky libs are now find in our ~/fido/lib directory...


    so if you've made it this far, you can now jump to section III in the INSTALL file and figure out how to configure the thing... i found a tool called "fidoinst for bash" which set up my initial configuration which i then went digging through and adjusting... i don't remember where i found "fidoinst" or how i ran it... i just know that i came up with a working setup that the tparser liked and passed...


    src/perl.c: In function 'perl_robotmsg': /usr/lib/x86_64-linux-gnu/perl/5.26/CORE/perl.h:529:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic] # define
    STMT_START
    (void)( /* gcc supports "({ STATEMENTS; })" */

    yeah, even with my method there are a lot of warnings and even a bunch of errors but they're ignored... mostly the errors seem to be for installing man pages but they're not where man can find them anyway...

    Then it will exit with error 1:

    makefile.inc:28: recipe for target 'perl.o' failed
    make: *** [perl.o] Error 1

    the method i describe above doesn't add perl into hpt... in fact, the huskymak.cfg file specifically has

    PERL=0

    in it and perl is not included in the build AFAICT...

    ~/fido-dev/husky/hpt$ ldd ~/fido/bin/hpt
    linux-vdso.so.1 (0x00007ffe00fc0000)
    libareafix.so.1.9 => /home/myuser/fido/lib/libareafix.so.1.9 (0x00007f96f80b2000)
    libfidoconfig.so.1.9 => /home/myuser/fido/lib/libfidoconfig.so.1.9 (0x00007f96f7e87000)
    libsmapi.so.2.5 => /home/myuser/fido/lib/libsmapi.so.2.5 (0x00007f96f7c6d000)
    libhusky.so.1.9 => /home/myuser/fido/lib/libhusky.so.1.9 (0x00007f96f7a5b000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f96f766a000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f96f84ee000)


    I know I have perl installed on that computer. When I run perl
    --version I get:

    that's the manually run stuff... not the -dev stuff for embedded...

    I'm not sure what I'm missing. Is there another dependency for perl
    that I've missed?

    perl-dev maybe? but you don't need really need perl embedded in hpt, do you? i've never found a use for it, TBH...

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... I'm not as stupid as I look, but I hope to be some day.
    ---
    * Origin: (1:3634/12.73)
  • From Dan Richter@1:317/3 to mark lewis on Wednesday, June 26, 2019 18:21:30
    I'm not sure what I'm missing. Is there another dependency for perl that I've missed?

    perl-dev maybe? but you don't need really need perl embedded in hpt, do you? i've never found a use for it, TBH...

    Alright. I got it to install... In the huskymak.cfg file that I was using, there is an option for perl that I commented out.

    # Perl support
    PERL=1

    After that, it compiled just fine...

    Thank you for the assistance. I'll now be working on getting the config files set up... :)


    ---

    |03B|09lack |03P|09anther|03(|09RCS|03)|07

    --- Mystic BBS v1.12 A43 2019/03/02 (Linux/64)
    * Origin: Castle Rock BBS - bbs.castlerockbbs.com (1:317/3)
  • From Dan Richter@1:317/3 to mark lewis on Wednesday, June 26, 2019 17:26:51
    On 26 Jun 2019, mark lewis said the following...

    WARNING: this is long, detailed, and maybe in left field...

    It is very appreciated... :) Let's give it a shot.

    what method in the huskybse/INSTALL file did you choose to go with?

    i've used the II.1.* format where you copy huskybse/huskymak.cfg to your husky-dev root and edit it if needed... i do all of my stuff as
    individual account installations and not system-wide installations...

    I also did the II.1.* install method.

    # /home/myuser/fido-dev/husky

    Similar directory setup. Mine is in /home/myuser/husky/

    # the only thing i do is set the PREFIX to home/myuser/fido
    # everything else i leave alone

    I changed the PREFIX line, and also the CFGDIR lines. They both read /home/myuser/husky

    cd ~/fido-dev/huskylib
    make clean
    sudo make install

    The only differences that I had, was I didn't use sudo, and ran 'make all install'. I did just rerun it as you have here with no problems.

    cd ~/fido-dev/smapi
    make clean
    make all
    sudo make install

    Done with no issues.

    cd ~/fido-dev/fidoconf
    make clean
    make all
    sudo make install

    Done with no issues.

    cd ~/fido-dev/areafix
    cd ~/fido-dev/sqpack
    cd ~/fido-dev/htick

    Done...

    cd ~/fido-dev/hpt
    make clean
    make all
    sudo make install

    This is where I run into issues. As soon as I run 'make all', I get:

    makefile.inc:28: recipe for target 'perl.o' failed
    make: *** [perl.o] Error 1

    I'm wondering if I somehow ended up with a different version or something...
    I know it's v1.9.0-cur 2019-01-08


    ---

    |03B|09lack |03P|09anther|03(|09RCS|03)|07

    --- Mystic BBS v1.12 A43 2019/03/02 (Linux/64)
    * Origin: Castle Rock BBS - bbs.castlerockbbs.com (1:317/3)
  • From mark lewis@1:3634/12.73 to Dan Richter on Thursday, June 27, 2019 11:18:46

    On 2019 Jun 26 18:21:30, you wrote to me:

    perl-dev maybe? but you don't need really need perl embedded in hpt,
    do you? i've never found a use for it, TBH...

    Alright. I got it to install...

    excellent! i hope my post was helpful...

    In the huskymak.cfg file that I was using, there is an option for perl that I commented out.

    # Perl support
    PERL=1

    you could have just changed it to a zero to set it off/false...

    After that, it compiled just fine...

    Thank you for the assistance. I'll now be working on getting the config files set up... :)

    there ya go :)

    i toyed with several different ways of doing it and came up with using include files for each system i am linked to... it may not be the best but i like being
    able to keep global settings together and splitting per system settings into separate files and even splitting them into different parts like linked echos, linked FDNs, routing, etc...

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... Yeah yeah, I know... the check is in the mail!
    ---
    * Origin: (1:3634/12.73)
  • From Michael Dukelsky@2:5020/1042 to Dan Richter on Thursday, June 27, 2019 19:41:10
    Hello Dan,

    Wednesday June 26 2019, Dan Richter wrote to mark lewis:

    cd ~/fido-dev/hpt
    make clean
    make all
    sudo make install

    This is where I run into issues.

    I understand that it's very interesting to build hpt by yourself but just want you to know that it was already built and one may find it here: https://github.com/huskyproject/hpt/releases/latest

    For instance, there is a .deb package hpt-1.9.20190108-Linux.x86_64.deb there.

    Michael

    ... node (at) f1042 (dot) ru
    --- GoldED+/LNX 1.1.5-b20170303
    * Origin: Moscow, Russia (2:5020/1042)
  • From Dan Richter@1:317/3 to Michael Dukelsky on Thursday, June 27, 2019 13:13:10
    On 27 Jun 2019, Michael Dukelsky said the following...

    I understand that it's very interesting to build hpt by yourself but
    just want you to know that it was already built and one may find it here: https://github.com/huskyproject/hpt/releases/latest

    Now you tell me... :)

    I probably would have still built it myself, as I like the challenge. :)

    Thank you for the great project!


    ---

    |03B|09lack |03P|09anther|03(|09RCS|03)|07

    --- Mystic BBS v1.12 A43 2019/03/02 (Linux/64)
    * Origin: Castle Rock BBS - bbs.castlerockbbs.com (1:317/3)
  • From Dan Richter@1:317/3 to mark lewis on Thursday, June 27, 2019 13:23:40
    On 27 Jun 2019, mark lewis said the following...

    Alright. I got it to install...

    excellent! i hope my post was helpful...

    Yes, it was very helpful. Thank you.

    # Perl support
    PERL=1

    you could have just changed it to a zero to set it off/false...

    I wanted to make sure it was off... :)

    i toyed with several different ways of doing it and came up with using include files for each system i am linked to... it may not be the best
    but i like being able to keep global settings together and splitting per system settings into separate files and even splitting them into
    different parts like linked echos, linked FDNs, routing, etc...

    When I used HPT a couple years ago, I had everything in one large config
    file, that was probably around 1000 lines or so. That was a pain...

    This time, I'm splitting them up, but I'm trying to follow the examples. (config, linkes, areas, etc). It seems to make sense that way. Right now,
    I've got 4 different feeds for fidonet, and one downlink, for example. I
    would think that could be tough to do with dividing it by system...

    I don't know. I'm not an expert, by any means. I'll let you know how it goes when I get to the point of running tparser on my config... ;)


    ---

    |03B|09lack |03P|09anther|03(|09RCS|03)|07

    --- Mystic BBS v1.12 A43 2019/03/02 (Linux/64)
    * Origin: Castle Rock BBS - bbs.castlerockbbs.com (1:317/3)