• Smapi

    From Nicholas Boel@1:154/10 to All on Sun Mar 3 15:37:30 2024
    Hello All,

    Is smapi-2.5-current basically the same thing as smapi-2.4-rc5, just
    changed to be a part of the huskyproject? Or were there significant
    changes made to the sources between the two?

    Regards,
    Nick

    ... "Take my advice, I don't use it anyway."
    --- Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:115.0) Gecko/20100101 Thunderb
    * Origin: _thePharcyde distribution system (Wisconsin) (1:154/10)
  • From Michael Dukelsky@2:5020/1042 to Nicholas Boel on Mon Mar 4 10:41:46 2024
    Hello Nicholas,

    Sunday March 03 2024, Nicholas Boel wrote to All:

    Is smapi-2.5-current basically the same thing as smapi-2.4-rc5, just changed to be a part of the huskyproject? Or were there significant changes made to the sources between the two?

    There was no tag for smapi-2.4-rc5 in the current git repository. I've set a new tag 'smapi-2_4-RC5' for 9355cf5 commit made on 2006-02-09. Multiple bugs were fixed since then.

    Michael

    ... node (at) f1042 (dot) ru
    --- GoldED+/LNX 1.1.5-b20231008
    * Origin: Moscow, Russia (2:5020/1042)
  • From Nicholas Boel@1:154/10 to Michael Dukelsky on Mon Mar 4 18:15:52 2024
    On Mon, 4 Mar 2024 16:41:46 +0300, Michael Dukelsky -> Nicholas Boel wrote:

    Is smapi-2.5-current basically the same thing as smapi-2.4-rc5, just
    changed to be a part of the huskyproject? Or were there significant
    changes made to the sources between the two?

    There was no tag for smapi-2.4-rc5 in the current git repository. I've
    set a new tag 'smapi-2_4-RC5' for 9355cf5 commit made on 2006-02-09. Multiple bugs were fixed since then.

    Ok, that answered that question. The next one would be, is there a way
    to get the latest smapi-2.5-current to not require most of the rest of
    the husky project to be built at the same time? Is there an older
    makefile still included that would only compile smapi instead of using
    the new 'build.sh' method?

    And if there was a separate way outside of 'build.sh', if I remember
    right, the order was huskybse, huskylib, then smapi.. and I don't
    remember if huskybse actually compiled anything, so I assume smapi only requires huskylib to be compiled?

    Regards,
    Nick

    ... "Take my advice, I don't use it anyway."
    --- Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:115.0) Gecko/20100101 Thunderb
    * Origin: _thePharcyde distribution system (Wisconsin) (1:154/10)
  • From Nil Alexandrov@1:16/101 to Nicholas Boel on Tue Mar 5 04:43:56 2024
    Hello, Nicholas!

    Monday March 04 2024 18:15, from Nicholas Boel -> Michael Dukelsky:

    The next one would be, is there a way to get the latest
    smapi-2.5-current to not require most of the rest of the husky project
    to be built at the same time? Is there an older makefile still
    included that would only compile smapi instead of using
    the new 'build.sh' method?

    Current SMAPI version from HUSKY has dependency on Huskylib. You can use any build system, makefiles, cmake, you name it, but SMAPI lib requires some functionality from Huskylib.

    You are probably looking for something old like this https://github.com/pgul/smapi. Even this ancient 2.5 version includes a small portion of huskylib inside but very limited, just a compiler definition compiler.h header and locking.{h,c} file for portable file locking primitives.

    Please don't be confused with the original Squish MSGAPI0 library, copyright 1991 by Scott J. Dudley. The HUSKY SMAPI library branched from the original Squish MSGAPI0, added OPUS/MSG format and reused jamlib as well to provide a message API abstraction for manipulating all three message databases with the a single API.

    Best Regards,
    Nil
    --- GoldED+/LNX 1.1.5
    * Origin: KC1GSH (1:16/101)
  • From Nicholas Boel@1:154/10 to Nil Alexandrov on Mon Mar 4 22:28:56 2024
    On Tue, 5 Mar 2024 10:43:56 +0300, Nil Alexandrov -> Nicholas Boel wrote:

    Current SMAPI version from HUSKY has dependency on Huskylib. You can use any build system, makefiles, cmake, you name it, but SMAPI lib requires some functionality from Huskylib.

    Ok, thank you for clarification.

    You are probably looking for something old like this https://github.com/pgul/smapi. Even this ancient 2.5 version includes a small portion of huskylib inside but very limited, just a compiler definition compiler.h header and locking.{h,c} file for portable file locking primitives.

    If I can use the latest, I would much rather do so.

    Please don't be confused with the original Squish MSGAPI0 library, copyright 1991 by Scott J. Dudley. The HUSKY SMAPI library branched
    from the original Squish MSGAPI0, added OPUS/MSG format and reused
    jamlib as well to provide a message API abstraction for manipulating all three message databases with the a single API.

    I'm not confused. huskylib/smapi is exactly what I'm looking for for
    what I'm trying to do, just without the rest of the husky project.

    For the record, I'm working on Smapinntpd a bit. It requires smapi
    which, in turn, will require huskylib. I installed it fairly easy with
    some tinkering, because I have all of the husky project already
    installed and in use on my system, but for someone downloading the
    program and trying to install it without the husky project already
    installed will be confusing. I'm trying to figure out the easiest way to
    do so, so I can either write up more current installation instructions,
    or somehow provide these with the package so one can just install
    everything in one shot.

    Regards,
    Nick

    ... "Take my advice, I don't use it anyway."
    --- Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:115.0) Gecko/20100101 Thunderb
    * Origin: _thePharcyde distribution system (Wisconsin) (1:154/10)
  • From Nil Alexandrov@1:16/101 to Nicholas Boel on Tue Mar 5 07:49:42 2024
    Hello, Nicholas!

    Monday March 04 2024 22:28, from Nicholas Boel -> Nil Alexandrov:

    For the record, I'm working on Smapinntpd a bit. It requires smapi
    which, in turn, will require huskylib. I installed it fairly easy with some tinkering, because I have all of the husky project already
    installed and in use on my system, but for someone downloading the
    program and trying to install it without the husky project already installed will be confusing. I'm trying to figure out the easiest way
    to do so, so I can either write up more current installation
    instructions, or somehow provide these with the package so one can
    just install everything in one shot.

    I personally prefer cmake, not low-level make files. I use smapi+huskylib in my pet project. I just fetch and compile both smapi and huskylib from my main CMakeLists.txt. I also replace their CMakeLists.txt and apply my patch, otherwise I am having issue compiling for mingw64 and other fancy stuff.

    # Import Husky libraries
    include(FetchContent)
    message(STATUS "Importing huskylib library from github")
    FetchContent_Declare(
    huskylib
    GIT_REPOSITORY "https://github.com/huskyproject/huskylib.git"
    GIT_TAG d3c0c1c3b643d7fce45f82d6c8378802e85d9205
    # Patch command will ru-run every cmake reload, so the patch should not return an error.
    # This fix won't work in Windows environment.
    PATCH_COMMAND ${GIT_EXECUTABLE} apply --ignore-whitespace "${CMAKE_CURRENT_LIST_DIR}/huskylib.patch" || true
    )
    FetchContent_Populate(huskylib)
    # replace the cmake file
    configure_file(CMakeLists_huskylib.txt ${huskylib_SOURCE_DIR}/CMakeLists.txt COPYONLY)
    # generate the date file, content is not that important
    file(WRITE ${huskylib_SOURCE_DIR}/cvsdate.h "char cvs_date[]=\"2024-01-01\";") # delete the version file which confuses the MacOSX12.sdk/usr/include/c++/v1/cstddef
    file(REMOVE ${huskylib_SOURCE_DIR}/version) add_subdirectory(${huskylib_SOURCE_DIR} huskylib) target_compile_options(huskylib INTERFACE -Wno-register) target_compile_options(huskylib PRIVATE -Wfatal-errors -Wno-register)

    message(STATUS "Importing smapi library from github")
    FetchContent_Declare(
    smapi
    GIT_REPOSITORY "https://github.com/huskyproject/smapi.git"
    GIT_TAG c2fc9ecb0dd1ec8909e9e9709bfdd0031d5b9bf2
    )
    FetchContent_Populate(smapi)
    # replace the cmake file
    configure_file(CMakeLists_smapi.txt ${smapi_SOURCE_DIR}/CMakeLists.txt COPYONLY)
    # generate the date file, content is not that important
    file(WRITE ${smapi_SOURCE_DIR}/cvsdate.h "char cvs_date[]=\"2024-01-01\";")
    # delete the version file which confuses the MacOSX12.sdk/usr/include/c++/v1/cstddef
    file(REMOVE ${smapi_SOURCE_DIR}/version)
    add_subdirectory(${smapi_SOURCE_DIR} smapi)

    Best Regards,
    Nil
    --- GoldED+/LNX 1.1.5
    * Origin: KC1GSH (1:16/101)
  • From Michael Dukelsky@2:5020/1042 to Nicholas Boel on Tue Mar 5 10:33:00 2024
    Hello Nicholas,

    Monday March 04 2024, Nicholas Boel wrote to Michael Dukelsky:

    Is smapi-2.5-current basically the same thing as smapi-2.4-rc5,
    just changed to be a part of the huskyproject? Or were there
    significant changes made to the sources between the two?

    There was no tag for smapi-2.4-rc5 in the current git repository.
    I've set a new tag 'smapi-2_4-RC5' for 9355cf5 commit made on
    2006-02-09. Multiple bugs were fixed since then.

    Ok, that answered that question. The next one would be, is there a way
    to get the latest smapi-2.5-current to not require most of the rest of
    the husky project to be built at the same time?

    Smapi depends on huskylib only. If you do not want this dependency, the code from huskylib used by smapi should be inserted back into smapi. I made it when I ported smapi-2.5 to RNtrack. So, if you need smapi for your pet project, you may take it from there. I do not support RNtrack anymore and I gave away its git repository to Max Vasilyev.

    https://github.com/vasilyevmax/rntrack

    Is there an older makefile still included that would only compile
    smapi instead of using the new 'build.sh' method?

    No, Nil has already explained it.

    And if there was a separate way outside of 'build.sh', if I remember right, the order was huskybse, huskylib, then smapi.. and I don't
    remember if huskybse actually compiled anything, so I assume smapi
    only requires huskylib to be compiled?

    Yes, that is right.

    Michael

    ... node (at) f1042 (dot) ru
    --- GoldED+/LNX 1.1.5-b20231008
    * Origin: Moscow, Russia (2:5020/1042)
  • From Nicholas Boel@1:154/10 to Michael Dukelsky on Wed Mar 6 05:41:50 2024
    On Tue, 5 Mar 2024 16:33:00 +0300, Michael Dukelsky -> Nicholas Boel wrote:

    Smapi depends on huskylib only. If you do not want this dependency, the code from huskylib used by smapi should be inserted back into smapi. I made it when I ported smapi-2.5 to RNtrack. So, if you need smapi for
    your pet project, you may take it from there. I do not support RNtrack anymore and I gave away its git repository to Max Vasilyev.

    https://github.com/vasilyevmax/rntrack

    Thanks! This worked perfectly, and was a lot easier than I thought it
    would be.

    Regards,
    Nick

    ... "Take my advice, I don't use it anyway."
    --- Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:115.0) Gecko/20100101 Thunderb
    * Origin: _thePharcyde distribution system (Wisconsin) (1:154/10)