argtable: 3.0.1 -> 3.1.5

Motivation for this change
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 108801 1

1 package failed to build:

libjson-rpc-cpp

2 packages built:

argtable
clustal-omega

Result of nixpkgs-review pr 108801 1

1 package failed to build:

libjson-rpc-cpp

2 packages built:

argtable
clustal-omega

I don't know what other maintainers would prefer, but I would prefer this to be split in multiple commits. At least, one for the bump and other for the refactors (migrating to cmake, moving to libraries).

Moving files to more meaningful locations doesn't change the outputs. After all, if someone was crazy enough, all the packages could be put in a same directory...

I don't know what other maintainers would prefer, but I would prefer this to be split in multiple commits. At least, one for the bump and other for the refactors (migrating to cmake, moving to libraries).

Moving files to more meaningful locations doesn't change the outputs. After all, if someone was crazy enough, all the packages could be put in a same directory...

Moving files to more meaningful locations doesn't change the outputs. After all, if someone was crazy enough, all the packages could be put in a same directory...

Yeah, I know, but the reason I am saying this is because this makes the review easier.
For now, it is very difficult to understand what is changing because I can't really diff your changes thanks to the file you moved. If this was a separate commit I could look commit by commit to understand whats happening.

Moving files to more meaningful locations doesn't change the outputs. After all, if someone was crazy enough, all the packages could be put in a same directory...

Yeah, I know, but the reason I am saying this is because this makes the review easier.
For now, it is very difficult to understand what is changing because I can't really diff your changes thanks to the file you moved. If this was a separate commit I could look commit by commit to understand whats happening.

 Even if you use git commands to highlight a change, it treats it as a delete-plus-create.
On the case at point, libjson-rpc-cpp fails with this message:

libjson-rpc-cpp> build flags: SHELL=/nix/store/zcl19h06322c3kss6bvf05w2pxg4kfll-bash-4.4-p23/bin/bash
libjson-rpc-cpp> Scanning dependencies of target jsonrpccommon
libjson-rpc-cpp> [  1%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpccommon.dir/common/errors.cpp.o
libjson-rpc-cpp> [  2%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpccommon.dir/common/exception.cpp.o
libjson-rpc-cpp> [  4%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpccommon.dir/common/procedure.cpp.o
libjson-rpc-cpp> [  5%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpccommon.dir/common/specificationparser.cpp.o
libjson-rpc-cpp> /build/source/src/jsonrpccpp/common/specificationparser.cpp: In static member function 'static std::vectorjsonrpc::Procedure jsonrpc::SpecificationParser::GetProceduresFromString(const string&)':
libjson-rpc-cpp> /build/source/src/jsonrpccpp/common/specificationparser.cpp:27:16: warning: 'Reader' is deprecated: Use CharReader and CharReaderBuilder instead. [8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wdeprecated-declarations-Wdeprecated-declarations8;;]
libjson-rpc-cpp>    27 |   Json::Reader reader;
libjson-rpc-cpp>       |                ^~~~~~
libjson-rpc-cpp> In file included from /nix/store/flfgmrd00q5dh6mr4dfd7yhfmw48284f-jsoncpp-1.9.4-dev/include/json/json.h:11,
libjson-rpc-cpp>                  from /build/source/Build/gen/jsonrpccpp/common/jsonparser.h:13,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/common/procedure.h:16,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/common/specificationparser.h:13,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/common/specificationparser.cpp:10:
libjson-rpc-cpp> /nix/store/flfgmrd00q5dh6mr4dfd7yhfmw48284f-jsoncpp-1.9.4-dev/include/json/reader.h:37:63: note: declared here
libjson-rpc-cpp>    37 |     "Use CharReader and CharReaderBuilder instead.") JSON_API Reader {
libjson-rpc-cpp>       |                                                               ^~~~~~
libjson-rpc-cpp> /build/source/src/jsonrpccpp/common/specificationparser.cpp:27:16: warning: 'Json::Reader::Reader()' is deprecated: Use CharReader and CharReaderBuilder instead [8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wdeprecated-declarations-Wdeprecated-declarations8;;]
libjson-rpc-cpp>    27 |   Json::Reader reader;
libjson-rpc-cpp>       |                ^~~~~~
libjson-rpc-cpp> In file included from /nix/store/flfgmrd00q5dh6mr4dfd7yhfmw48284f-jsoncpp-1.9.4-dev/include/json/json.h:11,
libjson-rpc-cpp>                  from /build/source/Build/gen/jsonrpccpp/common/jsonparser.h:13,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/common/procedure.h:16,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/common/specificationparser.h:13,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/common/specificationparser.cpp:10:
libjson-rpc-cpp> /nix/store/flfgmrd00q5dh6mr4dfd7yhfmw48284f-jsoncpp-1.9.4-dev/include/json/reader.h:56:3: note: declared here
libjson-rpc-cpp>    56 |   Reader();
libjson-rpc-cpp>       |   ^~~~~~
libjson-rpc-cpp> [  6%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpccommon.dir/common/specificationwriter.cpp.o
libjson-rpc-cpp> [  8%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpccommon.dir/common/streamreader.cpp.o
libjson-rpc-cpp> [  9%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpccommon.dir/common/streamwriter.cpp.o
libjson-rpc-cpp> [ 10%] Linking CXX shared library ../../lib/libjsonrpccpp-common.so
libjson-rpc-cpp> [ 10%] Built target jsonrpccommon
libjson-rpc-cpp> Scanning dependencies of target jsonrpcserver
libjson-rpc-cpp> [ 12%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/server/abstractprotocolhandler.cpp.o
libjson-rpc-cpp> /build/source/src/jsonrpccpp/server/abstractprotocolhandler.cpp: In member function 'virtual void jsonrpc::AbstractProtocolHandler::HandleRequest(const string&, std::string&)':
libjson-rpc-cpp> /build/source/src/jsonrpccpp/server/abstractprotocolhandler.cpp:31:16: warning: 'Reader' is deprecated: Use CharReader and CharReaderBuilder instead. [8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wdeprecated-declarations-Wdeprecated-declarations8;;]
libjson-rpc-cpp>    31 |   Json::Reader reader;
libjson-rpc-cpp>       |                ^~~~~~
libjson-rpc-cpp> In file included from /nix/store/flfgmrd00q5dh6mr4dfd7yhfmw48284f-jsoncpp-1.9.4-dev/include/json/json.h:11,
libjson-rpc-cpp>                  from /build/source/Build/gen/jsonrpccpp/common/jsonparser.h:13,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/../jsonrpccpp/common/procedure.h:16,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/server/abstractprotocolhandler.h:17,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/server/abstractprotocolhandler.cpp:10:
libjson-rpc-cpp> /nix/store/flfgmrd00q5dh6mr4dfd7yhfmw48284f-jsoncpp-1.9.4-dev/include/json/reader.h:37:63: note: declared here
libjson-rpc-cpp>    37 |     "Use CharReader and CharReaderBuilder instead.") JSON_API Reader {
libjson-rpc-cpp>       |                                                               ^~~~~~
libjson-rpc-cpp> /build/source/src/jsonrpccpp/server/abstractprotocolhandler.cpp:31:16: warning: 'Json::Reader::Reader()' is deprecated: Use CharReader and CharReaderBuilder instead [8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wdeprecated-declarations-Wdeprecated-declarations8;;]
libjson-rpc-cpp>    31 |   Json::Reader reader;
libjson-rpc-cpp>       |                ^~~~~~
libjson-rpc-cpp> In file included from /nix/store/flfgmrd00q5dh6mr4dfd7yhfmw48284f-jsoncpp-1.9.4-dev/include/json/json.h:11,
libjson-rpc-cpp>                  from /build/source/Build/gen/jsonrpccpp/common/jsonparser.h:13,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/../jsonrpccpp/common/procedure.h:16,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/server/abstractprotocolhandler.h:17,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/server/abstractprotocolhandler.cpp:10:
libjson-rpc-cpp> /nix/store/flfgmrd00q5dh6mr4dfd7yhfmw48284f-jsoncpp-1.9.4-dev/include/json/reader.h:56:3: note: declared here
libjson-rpc-cpp>    56 |   Reader();
libjson-rpc-cpp>       |   ^~~~~~
libjson-rpc-cpp> [ 13%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/server/abstractserverconnector.cpp.o
libjson-rpc-cpp> [ 15%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/server/abstractthreadedserver.cpp.o
libjson-rpc-cpp> [ 16%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/server/requesthandlerfactory.cpp.o
libjson-rpc-cpp> [ 17%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/server/rpcprotocolserver12.cpp.o
libjson-rpc-cpp> /build/source/src/jsonrpccpp/server/rpcprotocolserver12.cpp: In member function 'virtual void jsonrpc::RpcProtocolServer12::HandleRequest(const string&, std::string&)':
libjson-rpc-cpp> /build/source/src/jsonrpccpp/server/rpcprotocolserver12.cpp:25:16: warning: 'Reader' is deprecated: Use CharReader and CharReaderBuilder instead. [8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wdeprecated-declarations-Wdeprecated-declarations8;;]
libjson-rpc-cpp>    25 |   Json::Reader reader;
libjson-rpc-cpp>       |                ^~~~~~
libjson-rpc-cpp> In file included from /nix/store/flfgmrd00q5dh6mr4dfd7yhfmw48284f-jsoncpp-1.9.4-dev/include/json/json.h:11,
libjson-rpc-cpp>                  from /build/source/Build/gen/jsonrpccpp/common/jsonparser.h:13,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/../jsonrpccpp/common/procedure.h:16,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/server/abstractprotocolhandler.h:17,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/server/rpcprotocolserver12.h:13,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/server/rpcprotocolserver12.cpp:10:
libjson-rpc-cpp> /nix/store/flfgmrd00q5dh6mr4dfd7yhfmw48284f-jsoncpp-1.9.4-dev/include/json/reader.h:37:63: note: declared here
libjson-rpc-cpp>    37 |     "Use CharReader and CharReaderBuilder instead.") JSON_API Reader {
libjson-rpc-cpp>       |                                                               ^~~~~~
libjson-rpc-cpp> /build/source/src/jsonrpccpp/server/rpcprotocolserver12.cpp:25:16: warning: 'Json::Reader::Reader()' is deprecated: Use CharReader and CharReaderBuilder instead [8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wdeprecated-declarations-Wdeprecated-declarations8;;]
libjson-rpc-cpp>    25 |   Json::Reader reader;
libjson-rpc-cpp>       |                ^~~~~~
libjson-rpc-cpp> In file included from /nix/store/flfgmrd00q5dh6mr4dfd7yhfmw48284f-jsoncpp-1.9.4-dev/include/json/json.h:11,
libjson-rpc-cpp>                  from /build/source/Build/gen/jsonrpccpp/common/jsonparser.h:13,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/../jsonrpccpp/common/procedure.h:16,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/server/abstractprotocolhandler.h:17,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/server/rpcprotocolserver12.h:13,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/server/rpcprotocolserver12.cpp:10:
libjson-rpc-cpp> /nix/store/flfgmrd00q5dh6mr4dfd7yhfmw48284f-jsoncpp-1.9.4-dev/include/json/reader.h:56:3: note: declared here
libjson-rpc-cpp>    56 |   Reader();
libjson-rpc-cpp>       |   ^~~~~~
libjson-rpc-cpp> [ 19%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/server/rpcprotocolserverv1.cpp.o
libjson-rpc-cpp> [ 20%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/server/rpcprotocolserverv2.cpp.o
libjson-rpc-cpp> [ 21%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/server/connectors/httpserver.cpp.o
libjson-rpc-cpp> /build/source/src/jsonrpccpp/server/connectors/httpserver.cpp: In member function 'virtual bool jsonrpc::HttpServer::StartListening()':
libjson-rpc-cpp> /build/source/src/jsonrpccpp/server/connectors/httpserver.cpp:79:60: error: invalid conversion from 'int ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, size_t*, void**)' {aka 'int ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, long unsigned int*, void**)'} to 'MHD_AccessHandlerCallback' {aka 'MHD_Result ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, long unsigned int*, void**)'} [8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-fpermissive-fpermissive8;;]
libjson-rpc-cpp>    79 |             mhd_flags, this->port, NULL, NULL, HttpServer::callback, this,
libjson-rpc-cpp>       |                                                ~~~~~~^~
libjson-rpc-cpp>       |                                                            |
glibjson-rpc-cpp>       |                                                            int ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, size_t*, void**) {aka int ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, long unsigned int*, void**)}
libjson-rpc-cpp> In file included from /build/source/src/jsonrpccpp/server/connectors/httpserver.h:33,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/server/connectors/httpserver.cpp:10:
libjson-rpc-cpp> /nix/store/qfyczzgvf9ykamaaj78i8m6ca0vvxr42-libmicrohttpd-0.9.72-dev/include/microhttpd.h:2443:45: note:   initializing argument 5 of 'MHD_Daemon* MHD_start_daemon(unsigned int, uint16_t, MHD_AcceptPolicyCallback, void*, MHD_AccessHandlerCallback, void*, ...)'
libjson-rpc-cpp>  2443 |                   MHD_AccessHandlerCallback dh, void dh_cls,
libjson-rpc-cpp>       |                   ~~~~~~~~~~~~~~~~~~~~~~~~~~^~
libjson-rpc-cpp> /build/source/src/jsonrpccpp/server/connectors/httpserver.cpp:89:25: error: invalid conversion from 'int ()(void*, MHD_Connection*, const char*, const char*, const char*, const char*, size_t*, void**)' {aka 'int ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, long unsigned int*, void**)'} to 'MHD_AccessHandlerCallback' {aka 'MHD_Result ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, long unsigned int*, void**)'} [8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-fpermissive-fpermissive8;;]
libjson-rpc-cpp>    89 |             HttpServer::callback, this, MHD_OPTION_HTTPS_MEM_KEY,
libjson-rpc-cpp>       |             ~~~~~~^~
libjson-rpc-cpp>       |                         |
libjson-rpc-cpp>       |                         int ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, size_t*, void**) {aka int ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, long unsigned int*, void**)}
libjson-rpc-cpp> In file included from /build/source/src/jsonrpccpp/server/connectors/httpserver.h:33,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/server/connectors/httpserver.cpp:10:
libjson-rpc-cpp> /nix/store/qfyczzgvf9ykamaaj78i8m6ca0vvxr42-libmicrohttpd-0.9.72-dev/include/microhttpd.h:2443:45: note:   initializing argument 5 of 'MHD_Daemon* MHD_start_daemon(unsigned int, uint16_t, MHD_AcceptPolicyCallback, void*, MHD_AccessHandlerCallback, void*, ...)'
libjson-rpc-cpp>  2443 |                   MHD_AccessHandlerCallback dh, void dh_cls,
libjson-rpc-cpp>       |                   ~~~~~~~~~~~~~~~~~~~~~~~~~~^~
libjson-rpc-cpp> /build/source/src/jsonrpccpp/server/connectors/httpserver.cpp:98:58: error: invalid conversion from 'int ()(void*, MHD_Connection*, const char*, const char*, const char*, const char*, size_t*, void**)' {aka 'int ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, long unsigned int*, void**)'} to 'MHD_AccessHandlerCallback' {aka 'MHD_Result ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, long unsigned int*, void**)'} [8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-fpermissive-fpermissive8;;]
libjson-rpc-cpp>    98 |           mhd_flags, this->port, NULL, NULL, HttpServer::callback, this,
libjson-rpc-cpp>       |                                              ~~~~~~^~
libjson-rpc-cpp>       |                                                          |
libjson-rpc-cpp>       |                                                          int ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, size_t*, void**) {aka int ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, long unsigned int*, void**)}
libjson-rpc-cpp> In file included from /build/source/src/jsonrpccpp/server/connectors/httpserver.h:33,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/server/connectors/httpserver.cpp:10:
libjson-rpc-cpp> /nix/store/qfyczzgvf9ykamaaj78i8m6ca0vvxr42-libmicrohttpd-0.9.72-dev/include/microhttpd.h:2443:45: note:   initializing argument 5 of 'MHD_Daemon* MHD_start_daemon(unsigned int, uint16_t, MHD_AcceptPolicyCallback, void*, MHD_AccessHandlerCallback, void*, ...)'
libjson-rpc-cpp>  2443 |                   MHD_AccessHandlerCallback dh, void dh_cls,
libjson-rpc-cpp>       |                   ~~~~~~~~~~~~~~~~~~~~~~~~~~^~
libjson-rpc-cpp> make[2]: *** [src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/build.make:173: src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/server/connectors/httpserver.cpp.o] Error 1
libjson-rpc-cpp> make[1]: *** [CMakeFiles/Makefile2:253: src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/all] Error 2
libjson-rpc-cpp> make: *** [Makefile:182: all] Error 2
error: --- Error ----------------------------------------------------------------------------------------------------------------- nix
error: --- Error --- nix-daemon
builder for '/nix/store/fljvpghjijn9x3lmyxix1r3d4l8w4qqh-libjson-rpc-cpp-1.3.0.drv' failed with exit code 2; last 10 log lines:
|                                                          |
|                                                          int ()(void*, MHD_Connection*, const char*, const char*, const char*, const char*, size_t*, void**) {aka int ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, long unsigned int*, void**)}
In file included from /build/source/src/jsonrpccpp/server/connectors/httpserver.h:33,
from /build/source/src/jsonrpccpp/server/connectors/httpserver.cpp:10:
/nix/store/qfyczzgvf9ykamaaj78i8m6ca0vvxr42-libmicrohttpd-0.9.72-dev/include/microhttpd.h:2443:45: note:   initializing argument 5 of 'MHD_Daemon* MHD_start_daemon(unsigned int, uint16_t, MHD_AcceptPolicyCallback, void*, MHD_AccessHandlerCallback, void*, ...)'
2443 |                   MHD_AccessHandlerCallback dh, void *dh_cls,
|                   ~~~~~~~~~~~~~~~~~~~~~~~~~~^~
make[2]: *** [src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/build.make:173: src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/server/connectors/httpserver.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:253: src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/all] Error 2
make: *** [Makefile:182: all] Error 2

Unbfortunately git is very dumb on this aspect. Even if you use git commands to highlight a change, it treats it as a delete-plus-create.
On the case at point, libjson-rpc-cpp fails with this message:

libjson-rpc-cpp> build flags: SHELL=/nix/store/zcl19h06322c3kss6bvf05w2pxg4kfll-bash-4.4-p23/bin/bash
libjson-rpc-cpp> Scanning dependencies of target jsonrpccommon
libjson-rpc-cpp> [  1%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpccommon.dir/common/errors.cpp.o
libjson-rpc-cpp> [  2%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpccommon.dir/common/exception.cpp.o
libjson-rpc-cpp> [  4%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpccommon.dir/common/procedure.cpp.o
libjson-rpc-cpp> [  5%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpccommon.dir/common/specificationparser.cpp.o
libjson-rpc-cpp> /build/source/src/jsonrpccpp/common/specificationparser.cpp: In static member function 'static std::vectorjsonrpc::Procedure jsonrpc::SpecificationParser::GetProceduresFromString(const string&)':
libjson-rpc-cpp> /build/source/src/jsonrpccpp/common/specificationparser.cpp:27:16: warning: 'Reader' is deprecated: Use CharReader and CharReaderBuilder instead. [8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wdeprecated-declarations-Wdeprecated-declarations8;;]
libjson-rpc-cpp>    27 |   Json::Reader reader;
libjson-rpc-cpp>       |                ^~~~~~
libjson-rpc-cpp> In file included from /nix/store/flfgmrd00q5dh6mr4dfd7yhfmw48284f-jsoncpp-1.9.4-dev/include/json/json.h:11,
libjson-rpc-cpp>                  from /build/source/Build/gen/jsonrpccpp/common/jsonparser.h:13,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/common/procedure.h:16,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/common/specificationparser.h:13,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/common/specificationparser.cpp:10:
libjson-rpc-cpp> /nix/store/flfgmrd00q5dh6mr4dfd7yhfmw48284f-jsoncpp-1.9.4-dev/include/json/reader.h:37:63: note: declared here
libjson-rpc-cpp>    37 |     "Use CharReader and CharReaderBuilder instead.") JSON_API Reader {
libjson-rpc-cpp>       |                                                               ^~~~~~
libjson-rpc-cpp> /build/source/src/jsonrpccpp/common/specificationparser.cpp:27:16: warning: 'Json::Reader::Reader()' is deprecated: Use CharReader and CharReaderBuilder instead [8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wdeprecated-declarations-Wdeprecated-declarations8;;]
libjson-rpc-cpp>    27 |   Json::Reader reader;
libjson-rpc-cpp>       |                ^~~~~~
libjson-rpc-cpp> In file included from /nix/store/flfgmrd00q5dh6mr4dfd7yhfmw48284f-jsoncpp-1.9.4-dev/include/json/json.h:11,
libjson-rpc-cpp>                  from /build/source/Build/gen/jsonrpccpp/common/jsonparser.h:13,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/common/procedure.h:16,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/common/specificationparser.h:13,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/common/specificationparser.cpp:10:
libjson-rpc-cpp> /nix/store/flfgmrd00q5dh6mr4dfd7yhfmw48284f-jsoncpp-1.9.4-dev/include/json/reader.h:56:3: note: declared here
libjson-rpc-cpp>    56 |   Reader();
libjson-rpc-cpp>       |   ^~~~~~
libjson-rpc-cpp> [  6%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpccommon.dir/common/specificationwriter.cpp.o
libjson-rpc-cpp> [  8%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpccommon.dir/common/streamreader.cpp.o
libjson-rpc-cpp> [  9%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpccommon.dir/common/streamwriter.cpp.o
libjson-rpc-cpp> [ 10%] Linking CXX shared library ../../lib/libjsonrpccpp-common.so
libjson-rpc-cpp> [ 10%] Built target jsonrpccommon
libjson-rpc-cpp> Scanning dependencies of target jsonrpcserver
libjson-rpc-cpp> [ 12%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/server/abstractprotocolhandler.cpp.o
libjson-rpc-cpp> /build/source/src/jsonrpccpp/server/abstractprotocolhandler.cpp: In member function 'virtual void jsonrpc::AbstractProtocolHandler::HandleRequest(const string&, std::string&)':
libjson-rpc-cpp> /build/source/src/jsonrpccpp/server/abstractprotocolhandler.cpp:31:16: warning: 'Reader' is deprecated: Use CharReader and CharReaderBuilder instead. [8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wdeprecated-declarations-Wdeprecated-declarations8;;]
libjson-rpc-cpp>    31 |   Json::Reader reader;
libjson-rpc-cpp>       |                ^~~~~~
libjson-rpc-cpp> In file included from /nix/store/flfgmrd00q5dh6mr4dfd7yhfmw48284f-jsoncpp-1.9.4-dev/include/json/json.h:11,
libjson-rpc-cpp>                  from /build/source/Build/gen/jsonrpccpp/common/jsonparser.h:13,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/../jsonrpccpp/common/procedure.h:16,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/server/abstractprotocolhandler.h:17,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/server/abstractprotocolhandler.cpp:10:
libjson-rpc-cpp> /nix/store/flfgmrd00q5dh6mr4dfd7yhfmw48284f-jsoncpp-1.9.4-dev/include/json/reader.h:37:63: note: declared here
libjson-rpc-cpp>    37 |     "Use CharReader and CharReaderBuilder instead.") JSON_API Reader {
libjson-rpc-cpp>       |                                                               ^~~~~~
libjson-rpc-cpp> /build/source/src/jsonrpccpp/server/abstractprotocolhandler.cpp:31:16: warning: 'Json::Reader::Reader()' is deprecated: Use CharReader and CharReaderBuilder instead [8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wdeprecated-declarations-Wdeprecated-declarations8;;]
libjson-rpc-cpp>    31 |   Json::Reader reader;
libjson-rpc-cpp>       |                ^~~~~~
libjson-rpc-cpp> In file included from /nix/store/flfgmrd00q5dh6mr4dfd7yhfmw48284f-jsoncpp-1.9.4-dev/include/json/json.h:11,
libjson-rpc-cpp>                  from /build/source/Build/gen/jsonrpccpp/common/jsonparser.h:13,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/../jsonrpccpp/common/procedure.h:16,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/server/abstractprotocolhandler.h:17,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/server/abstractprotocolhandler.cpp:10:
libjson-rpc-cpp> /nix/store/flfgmrd00q5dh6mr4dfd7yhfmw48284f-jsoncpp-1.9.4-dev/include/json/reader.h:56:3: note: declared here
libjson-rpc-cpp>    56 |   Reader();
libjson-rpc-cpp>       |   ^~~~~~
libjson-rpc-cpp> [ 13%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/server/abstractserverconnector.cpp.o
libjson-rpc-cpp> [ 15%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/server/abstractthreadedserver.cpp.o
libjson-rpc-cpp> [ 16%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/server/requesthandlerfactory.cpp.o
libjson-rpc-cpp> [ 17%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/server/rpcprotocolserver12.cpp.o
libjson-rpc-cpp> /build/source/src/jsonrpccpp/server/rpcprotocolserver12.cpp: In member function 'virtual void jsonrpc::RpcProtocolServer12::HandleRequest(const string&, std::string&)':
libjson-rpc-cpp> /build/source/src/jsonrpccpp/server/rpcprotocolserver12.cpp:25:16: warning: 'Reader' is deprecated: Use CharReader and CharReaderBuilder instead. [8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wdeprecated-declarations-Wdeprecated-declarations8;;]
libjson-rpc-cpp>    25 |   Json::Reader reader;
libjson-rpc-cpp>       |                ^~~~~~
libjson-rpc-cpp> In file included from /nix/store/flfgmrd00q5dh6mr4dfd7yhfmw48284f-jsoncpp-1.9.4-dev/include/json/json.h:11,
libjson-rpc-cpp>                  from /build/source/Build/gen/jsonrpccpp/common/jsonparser.h:13,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/../jsonrpccpp/common/procedure.h:16,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/server/abstractprotocolhandler.h:17,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/server/rpcprotocolserver12.h:13,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/server/rpcprotocolserver12.cpp:10:
libjson-rpc-cpp> /nix/store/flfgmrd00q5dh6mr4dfd7yhfmw48284f-jsoncpp-1.9.4-dev/include/json/reader.h:37:63: note: declared here
libjson-rpc-cpp>    37 |     "Use CharReader and CharReaderBuilder instead.") JSON_API Reader {
libjson-rpc-cpp>       |                                                               ^~~~~~
libjson-rpc-cpp> /build/source/src/jsonrpccpp/server/rpcprotocolserver12.cpp:25:16: warning: 'Json::Reader::Reader()' is deprecated: Use CharReader and CharReaderBuilder instead [8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wdeprecated-declarations-Wdeprecated-declarations8;;]
libjson-rpc-cpp>    25 |   Json::Reader reader;
libjson-rpc-cpp>       |                ^~~~~~
libjson-rpc-cpp> In file included from /nix/store/flfgmrd00q5dh6mr4dfd7yhfmw48284f-jsoncpp-1.9.4-dev/include/json/json.h:11,
libjson-rpc-cpp>                  from /build/source/Build/gen/jsonrpccpp/common/jsonparser.h:13,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/../jsonrpccpp/common/procedure.h:16,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/server/abstractprotocolhandler.h:17,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/server/rpcprotocolserver12.h:13,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/server/rpcprotocolserver12.cpp:10:
libjson-rpc-cpp> /nix/store/flfgmrd00q5dh6mr4dfd7yhfmw48284f-jsoncpp-1.9.4-dev/include/json/reader.h:56:3: note: declared here
libjson-rpc-cpp>    56 |   Reader();
libjson-rpc-cpp>       |   ^~~~~~
libjson-rpc-cpp> [ 19%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/server/rpcprotocolserverv1.cpp.o
libjson-rpc-cpp> [ 20%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/server/rpcprotocolserverv2.cpp.o
libjson-rpc-cpp> [ 21%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/server/connectors/httpserver.cpp.o
libjson-rpc-cpp> /build/source/src/jsonrpccpp/server/connectors/httpserver.cpp: In member function 'virtual bool jsonrpc::HttpServer::StartListening()':
libjson-rpc-cpp> /build/source/src/jsonrpccpp/server/connectors/httpserver.cpp:79:60: error: invalid conversion from 'int ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, size_t*, void**)' {aka 'int ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, long unsigned int*, void**)'} to 'MHD_AccessHandlerCallback' {aka 'MHD_Result ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, long unsigned int*, void**)'} [8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-fpermissive-fpermissive8;;]
libjson-rpc-cpp>    79 |             mhd_flags, this->port, NULL, NULL, HttpServer::callback, this,
libjson-rpc-cpp>       |                                                ~~~~~~^~
libjson-rpc-cpp>       |                                                            |
glibjson-rpc-cpp>       |                                                            int ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, size_t*, void**) {aka int ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, long unsigned int*, void**)}
libjson-rpc-cpp> In file included from /build/source/src/jsonrpccpp/server/connectors/httpserver.h:33,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/server/connectors/httpserver.cpp:10:
libjson-rpc-cpp> /nix/store/qfyczzgvf9ykamaaj78i8m6ca0vvxr42-libmicrohttpd-0.9.72-dev/include/microhttpd.h:2443:45: note:   initializing argument 5 of 'MHD_Daemon* MHD_start_daemon(unsigned int, uint16_t, MHD_AcceptPolicyCallback, void*, MHD_AccessHandlerCallback, void*, ...)'
libjson-rpc-cpp>  2443 |                   MHD_AccessHandlerCallback dh, void dh_cls,
libjson-rpc-cpp>       |                   ~~~~~~~~~~~~~~~~~~~~~~~~~~^~
libjson-rpc-cpp> /build/source/src/jsonrpccpp/server/connectors/httpserver.cpp:89:25: error: invalid conversion from 'int ()(void*, MHD_Connection*, const char*, const char*, const char*, const char*, size_t*, void**)' {aka 'int ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, long unsigned int*, void**)'} to 'MHD_AccessHandlerCallback' {aka 'MHD_Result ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, long unsigned int*, void**)'} [8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-fpermissive-fpermissive8;;]
libjson-rpc-cpp>    89 |             HttpServer::callback, this, MHD_OPTION_HTTPS_MEM_KEY,
libjson-rpc-cpp>       |             ~~~~~~^~
libjson-rpc-cpp>       |                         |
libjson-rpc-cpp>       |                         int ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, size_t*, void**) {aka int ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, long unsigned int*, void**)}
libjson-rpc-cpp> In file included from /build/source/src/jsonrpccpp/server/connectors/httpserver.h:33,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/server/connectors/httpserver.cpp:10:
libjson-rpc-cpp> /nix/store/qfyczzgvf9ykamaaj78i8m6ca0vvxr42-libmicrohttpd-0.9.72-dev/include/microhttpd.h:2443:45: note:   initializing argument 5 of 'MHD_Daemon* MHD_start_daemon(unsigned int, uint16_t, MHD_AcceptPolicyCallback, void*, MHD_AccessHandlerCallback, void*, ...)'
libjson-rpc-cpp>  2443 |                   MHD_AccessHandlerCallback dh, void dh_cls,
libjson-rpc-cpp>       |                   ~~~~~~~~~~~~~~~~~~~~~~~~~~^~
libjson-rpc-cpp> /build/source/src/jsonrpccpp/server/connectors/httpserver.cpp:98:58: error: invalid conversion from 'int ()(void*, MHD_Connection*, const char*, const char*, const char*, const char*, size_t*, void**)' {aka 'int ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, long unsigned int*, void**)'} to 'MHD_AccessHandlerCallback' {aka 'MHD_Result ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, long unsigned int*, void**)'} [8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-fpermissive-fpermissive8;;]
libjson-rpc-cpp>    98 |           mhd_flags, this->port, NULL, NULL, HttpServer::callback, this,
libjson-rpc-cpp>       |                                              ~~~~~~^~
libjson-rpc-cpp>       |                                                          |
libjson-rpc-cpp>       |                                                          int ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, size_t*, void**) {aka int ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, long unsigned int*, void**)}
libjson-rpc-cpp> In file included from /build/source/src/jsonrpccpp/server/connectors/httpserver.h:33,
libjson-rpc-cpp>                  from /build/source/src/jsonrpccpp/server/connectors/httpserver.cpp:10:
libjson-rpc-cpp> /nix/store/qfyczzgvf9ykamaaj78i8m6ca0vvxr42-libmicrohttpd-0.9.72-dev/include/microhttpd.h:2443:45: note:   initializing argument 5 of 'MHD_Daemon* MHD_start_daemon(unsigned int, uint16_t, MHD_AcceptPolicyCallback, void*, MHD_AccessHandlerCallback, void*, ...)'
libjson-rpc-cpp>  2443 |                   MHD_AccessHandlerCallback dh, void dh_cls,
libjson-rpc-cpp>       |                   ~~~~~~~~~~~~~~~~~~~~~~~~~~^~
libjson-rpc-cpp> make[2]: *** [src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/build.make:173: src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/server/connectors/httpserver.cpp.o] Error 1
libjson-rpc-cpp> make[1]: *** [CMakeFiles/Makefile2:253: src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/all] Error 2
libjson-rpc-cpp> make: *** [Makefile:182: all] Error 2
error: --- Error ----------------------------------------------------------------------------------------------------------------- nix
error: --- Error --- nix-daemon
builder for '/nix/store/fljvpghjijn9x3lmyxix1r3d4l8w4qqh-libjson-rpc-cpp-1.3.0.drv' failed with exit code 2; last 10 log lines:
|                                                          |
|                                                          int ()(void*, MHD_Connection*, const char*, const char*, const char*, const char*, size_t*, void**) {aka int ()(void, MHD_Connection*, const char*, const char*, const char*, const char*, long unsigned int*, void**)}
In file included from /build/source/src/jsonrpccpp/server/connectors/httpserver.h:33,
from /build/source/src/jsonrpccpp/server/connectors/httpserver.cpp:10:
/nix/store/qfyczzgvf9ykamaaj78i8m6ca0vvxr42-libmicrohttpd-0.9.72-dev/include/microhttpd.h:2443:45: note:   initializing argument 5 of 'MHD_Daemon* MHD_start_daemon(unsigned int, uint16_t, MHD_AcceptPolicyCallback, void*, MHD_AccessHandlerCallback, void*, ...)'
2443 |                   MHD_AccessHandlerCallback dh, void *dh_cls,
|                   ~~~~~~~~~~~~~~~~~~~~~~~~~~^~
make[2]: *** [src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/build.make:173: src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/server/connectors/httpserver.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:253: src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/all] Error 2
make: *** [Makefile:182: all] Error 2

Error reported here too:
https://github.com/cinemast/libjson-rpc-cpp/pull/299

Error reported here too:
https://github.com/cinemast/libjson-rpc-cpp/pull/299

This is a semi-automatic executed nixpkgs-review which does not build all packages (e.g. lumo, tensorflow or pytorch)
If you find some bugs or got suggestions for further things to search or run please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 108801 run on x86_64-linux 1

1 package failed to build and are new build failure:

libjson-rpc-cpp: log https://termbin.com/ku8l

2 packages built:

argtable
clustal-omega

This is a semi-automatic executed nixpkgs-review which does not build all packages (e.g. lumo, tensorflow or pytorch)
If you find some bugs or got suggestions for further things to search or run please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 108801 run on x86_64-linux 1

1 package failed to build and are new build failure:

libjson-rpc-cpp: log https://termbin.com/ku8l

2 packages built:

argtable
clustal-omega

This is a semi-automatic executed nixpkgs-review which does not build all packages (e.g. lumo, tensorflow or pytorch)
If you find some bugs or got suggestions for further things to search or run please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 108801 run on x86_64-darwin 1

3 packages built:

argtable
clustal-omega
libmicrohttpd_0_9_72

This is a semi-automatic executed nixpkgs-review which does not build all packages (e.g. lumo, tensorflow or pytorch)
If you find some bugs or got suggestions for further things to search or run please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 108801 run on x86_64-darwin 1

3 packages built:

argtable
clustal-omega
libmicrohttpd_0_9_72

I will erase the latest upload. It causes a massive rebuild.

I will erase the latest upload. It causes a massive rebuild.

This is a semi-automatic executed nixpkgs-review which does not build all packages (e.g. lumo, tensorflow or pytorch)
If you find some bugs or got suggestions for further things to search or run please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 108801 run on x86_64-linux 1

1 package failed to build and are new build failure:

libjson-rpc-cpp: log https://termbin.com/6wdn

3 packages built:

argtable
clustal-omega
libmicrohttpd_0_9_72

This is a semi-automatic executed nixpkgs-review which does not build all packages (e.g. lumo, tensorflow or pytorch)
If you find some bugs or got suggestions for further things to search or run please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 108801 run on x86_64-linux 1

1 package failed to build and are new build failure:

libjson-rpc-cpp: log https://termbin.com/6wdn

3 packages built:

argtable
clustal-omega
libmicrohttpd_0_9_72

I am also fixing libjson-rpc-cpp in this commit.

I am also fixing libjson-rpc-cpp in this commit.

Result of nixpkgs-review pr 108801 1

4 packages built:

argtable
clustal-omega
libjson-rpc-cpp (libjson_rpc_cpp)
libmicrohttpd_0_9_72

Result of nixpkgs-review pr 108801 1

4 packages built:

argtable
clustal-omega
libjson-rpc-cpp (libjson_rpc_cpp)
libmicrohttpd_0_9_72

This is a semi-automatic executed nixpkgs-review which does not build all packages (e.g. lumo, tensorflow or pytorch)
If you find some bugs or got suggestions for further things to search or run please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 108801 run on x86_64-darwin 1

3 packages built:

argtable
clustal-omega
libmicrohttpd_0_9_72

This is a semi-automatic executed nixpkgs-review which does not build all packages (e.g. lumo, tensorflow or pytorch)
If you find some bugs or got suggestions for further things to search or run please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 108801 run on x86_64-darwin 1

3 packages built:

argtable
clustal-omega
libmicrohttpd_0_9_72

This is a semi-automatic executed nixpkgs-review which does not build all packages (e.g. lumo, tensorflow or pytorch)
If you find some bugs or got suggestions for further things to search or run please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 108801 run on x86_64-linux 1

4 packages built:

argtable
clustal-omega
libjson-rpc-cpp
libmicrohttpd_0_9_72

This is a semi-automatic executed nixpkgs-review which does not build all packages (e.g. lumo, tensorflow or pytorch)
If you find some bugs or got suggestions for further things to search or run please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 108801 run on x86_64-linux 1

4 packages built:

argtable
clustal-omega
libjson-rpc-cpp
libmicrohttpd_0_9_72


Fix main10 bug

Pull Request checklist
Note: these are not necessarily requirements

[ ] I reformatted the code with clang-format
[x] I checked to make sure my submission worked
[x] I am the author of submission or have permission from the original author
[ ] Requires update of the PS2SDK
[ ] Requires update of the gsKit
[ ] Others (please specify below)

Pull Request description
This is a fix for a very old bug with custom themes that use the info page where if the main page elements go into double digits, e.g. "main10:", the single digit info page elements are not loaded, e.g. "info0:" to "info9:".
We are now using 2 digit integers, left padded with zeroes.
The default theme has been updated for compatibility.
From this commit, custom theme creators should use the new element naming convention.
E.g. "main00:", "main01:" etc.
Unfortunately this fix breaks custom theme compatibility, however, thanks to @dekkit, here is a .bat file that can be used to update custom themes very simply to be compatible. Read me is included.
https://www.sendspace.com/file/6w2zp1
Test build: https://www.sendspace.com/file/zwlonn
Test theme: https://www.sendspace.com/file/qutppm

That's reaaaally cool, haha!
Good collaboration on that issue!
I knew that more items were possible, but this issue was reeeeaaaaalllly annoying for theme-creation...
THX to @dekkit 's .bat, every/most (updated) themes should be compatible as well!
Great!

This sounds like a workaround, and not a fix for the bug. Why can't we have main0 to main10 AND info0 to main9 at the same time? That's the real bug.
Since this workaround makes all existing themes incompatible I don't think this PR should be merged.

If it is not the Root-Cause of the issue, the root should be tracked and then fixed.

@rickgaiser
@TnA-Plastic
@Tupakaveli
The root-cause of the issue “appears” to be the way it was originally coded, having the integer switch to double digits then back to single “appears” to cause undefined behaviour. We tried many other things before settling on this fix, since it was the only change that actually fixed it.
Notice I keep putting appears in quotes, this is because I am not 100% certain it’s just what we found to be the case after hours of testing multiple possible fixes. Idea was for main00 etc to be the new standard for theming as of 0.9.4 which we were trying to help progress towards with small fixes.
It is a slight inconvenience but really just requires double clicking a bat file to update themes. However if we can’t all agree that this is the way forward in relation to this issue, no hard feelings.

This bug took me longer to find than I'm willing to admit, but it's in this line:
https://github.com/ifcaro/Open-PS2-Loader/blob/master/src/config.c#L100
strncpy does not write a terminating zero.
Adding prefix[colpos - line] = 0; after this line will fix the bug.
@Tupakaveli can you test this and create another PR?

@rickgaiser thank you, I will test when I get home from work.
Originally I thought it was a problem with the null terminator except that I thought something weird was happening like it was being read as 0 because info10 is loaded but not info0 - info9. I used ps2client with the listen option, a debug build and printf() so I could see what was being written to the buffer on every iteration of the loops but it all looked correct.
Later I thought the problem could be in config.c but I couldn't see it...

Sounds as if the buffer - where strncpy copies the number to - is overflowing, thus handling info9, info19 and info29 (and the others as well) as the same and the last read string-combo with 'infox9' will be the value used.
Judging from "This bug took me longer to find than I'm willing to admit, but it's in this line:" @rickgaiser wasn't happy to find a "Layman's-bug".
The 0-termination-bugs are one of the most common IMO!
What about using another function than 'strncpy' instead? I am not sure if strlcpy or similar would work and I am not sure, if it is supported by the SDK and libs, given our GCC and a lot of tools are very old.

I was able to test the code suggestion by @rickgaiser and it seems to be working.  I just added main10: to a custom theme, and the INFO page was still working after that. :)

Would you mind trying to load a second theme with main10, after the first one was loaded?
Another thing to try is using something like main40 to main55 and load it as secondary theme and then also load the first theme again (just making sure, the buffers and links are properly flushed).

Are you referring to the default theme, then test a custom theme, with both having main10:?
As to your second test: main40 to main55 -- Hmm?  I'd be running out of things to add on the main page.  Keeping in mind that there is a limit of attributes that I can add.  I just don't see anyone adding that many items to the main page.

Those tests are unnecessary.
As far as I understand it, it has to do with the length of the src and destination strncpy() is copying from / to.

Yes! Please try two custom themes with main10 added and switch them during runtime!

Well, it is 16 items... It is just for a matter of testing if the buffers are cleared correctly and the test is using higher numbers for it... You can use main20 to main35 or whatever... The numbers were just an example. They just should be higher then those of the first custom theme you load.

How to use so many pictures on a main-page?
Well... Use a 1920 * 1080 background and implement it into a theme via slicing it into 6 parts.
If you remember the 1080i-test (along others), you see how it can be of use! ;)
https://www.psx-place.com/threads/opl-huge-advancements.19308/
Maybe 'snprintf' or 'strlcat' are viable alternatives here as well?
Anyway... If Rick's manual code does the job (and no alternative more sane function than 'strncpy' is available [also no custom 'str'-function]), I am for a merge.

Had a similar issue with fgets() in another application, further testing isn’t required rickgaiser already explained why it happens and has provided a fix.

@TnA-Plastic , okay, I compiled OPL to make sure it had main10: -- plus the INFO page.
It loaded fine with the default theme to be the first things it loads, but I don't know if this is simply just an isolated glitch, but when I tried to change to a custom theme that doesn't have up to main10:  -- only has up to main9: -- OPL froze up when pressing OK under Display Settings.  I had to reset the PS2 unit.
I'll do more testing...
I want to also test going from default custom theme with main10: going to a custom theme up to main11: and etc.

Hm... That 'number' might be chopped off (again?), but shifted to the beginning/by one number.
Sounds like an issue caused by a fixed buffer-size, but could be something else of course...

@TnA-Plastic -- it might of been a one time glitch, because after restarting my PS2 unit and testing again the same custom OPL version, I then tried again and switch to that custom theme, and this time no freeze up.
I then proceeded from going from the default theme with main10: to a custom theme up to main11: and no issues.  I can jump back and forth and no issues.  Plus also jump to themes with less items on the main page.
If I wanted to test higher numbers of main#: -- I would need to get creative by stacking stuff up.  I just don't think it would be a suitable test, since I may end repeating gameimages to stack on the main page.
I'd say, let's accept this merge, then you and others can see if you could break OPL by adding more items to the main page.
Keeping in mind that the main page currently doesn't accept any attributetext nor attributeimages.  Only the INFO page accepts those, so like I said above, there is a limited amount of items that can be added to the Main page, unless we deliberately start stacking (repeated) gameimages.

THX for doing some tests with it!
Sure, like I marked in bold: I am for a merge (if it is the best way)!

I think I found another issue.  As we keep switching custom themes, OPL starts to show signs like it's corrupting itself on the screen.  You end up with streaks of colors across the screen, where only the game list text and the default icons display, but the rest doesn't.  Next time I'll remind myself to take a picture of it.
First you will see that the BGs for the games no longer display on a custom theme that has that enabled.
Then there will be times that it will refuse to display the background image of a custom theme.
It gets to the point that it's looks like a mess (streaks of colors across the screen horizontally), that your only option is to restart OPL.  And perhaps only stick to a custom theme (or the default theme) and stop trying to test a whole bunch of custom themes during the same session.
For reference my Display Settings are:
Scrolling: Medium
Automatic sorting: On
Automatic refresh: Off
Enable Cover Art: On
Display Info page: On

Video mode: EDTV 640x448p @60Hz 24bit
H-POS: 0
V-POS: 0
Overscan: 0
Widescreen: On

Though I was testing the custom OPL with up to main10: on the default theme, but something tells me this issue is not even the fix we did here, but perhaps been around for a while.  I haven't spotted it before, since I haven't worked on custom themes for a long time now.
I'll do more testing later on today...  I'll keep you posted here or at PS2-HOME by starting a new help topic about it.  Once I am able to figure out what the hell is really going on...

@Jay-Jay-OPL are you compiling ifcaro or daily builds?
I just tested switching between a whole bunch of custom themes, the default theme and my test theme with 15 main elements and 15 info elements and everything was fine.

@Jay-Jay-OPL: Regarding @rickgaiser 's fix/change not being the root of other issues - which might have been there all along -, which might get easier triggered by either this change or possibly did so all along, simply during theme-changing (that would affect the last beta-build as well), is what I meant when I wrote the reply to the necessity/non-necessity of the tests.
Quote: Edit: Well, but that doesn't mean that these test would be 'unnecessary' IMO, because they might still trigger a bug which is not directly related to THIS specific problem (strncpy), but the theme-engine (and possible other bugs therein).
Please make sure it doesn't happen on the newest or a bit older Betas as well and make sure to test the ifcaro-beta (as well as the DB to see if it is a separate issue from the ifcaro-builds).
I would hope for these 'number'-tests as well, because a freeze could indicate at segmentation fault or a chopping-issue of what is str'd... (meaning either the leading or ending number gets chopped off... This could be caused by a fixed buffer-size and an unknown issue which causes a Byte-shift or Adress-shift of a Byte due to new or old themes requiring a buffer for either one or two numbers... In that case, the easiest solution is to simply use 2 digits, which is basically what Tupakavelis PR does as well and thus would avoid that issue, if present.)

tl;dr
I think the issue you / @Jay-Jay-OPL observed is present, but I believe it is an old issue which might get easier triggered now (in Layman-terms without techno-babble: possibly easier triggered, due to the varying number-count or something else...).
Why? I am sure I observed this issue on older builds before and I think I posted it as well!

Sorry, for the late replies, my last reply above was at 1:30am Pacific Time and I went to bed after that.
I was only testing the ifcaro repo, by adding the code that rickgaiser offered above, plus a modded conf_theme_OPL.cfg by adding two more elements to make main10: (basically adding support for the back cover (COV2) and LOGO (LGO).
I haven't been able to replicate the issue again this morning, but I will keep trying, there has to be some type of pattern.  What I was doing is tweaking the CFG of a custom theme, and adding more elements on the main page, while I was making OPL fetch the new adjustments, but switching to the default theme, then back to the custom theme that I was editing, and then I was pressing the D-PAD down to scroll through a few games, and then repeat the process a few times.

Even tho' you couldn't trigger it again (yet), THX for your tests!
It seems to be quite stable and a viable solution, even tho' it might not be bug-free, because it is definitely better than before, IMO!

...and...
Dude... You don't have to say sorry about something like 'going to bed'!
I am REALLY grateful for you doing all these tests!!!


Add CVE-2020-5237: Relative Path Traversal (CWE-23) in chunked uploads

For more information see https://github.com/1up-lab/OneupUploaderBundle/security/advisories/GHSA-x8wj-6m73-gfqp.

Thank you @fabpot!


Daemon mode not working

Need to make a true daemon mode.

After spending hours tying to get DaemonContext to work with this code, I give up.  It simply keeps crashing with no error information.  Use nohup or cron or system service tools to accomplish this.


Could not load file or assembly "Newtonsoft.Json"

Hello again!
It appears the compiler is playing up again. At this point, I have finished coding the system and have gone to start my debugging & testing.
It was compiling and working fine right up until I reference Netwonsoft throughout some models to make sure the JSON Serialisation process succeeded correctly (well, it could have happened before then, but that was the latest change before I attempted to build it again).
Then, when I went to run unit tests, I get:
Microsoft (R) Build Engine version <IP_ADDRESS>72 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  Restore completed in 73.91 ms for /Users/adamshort/Desktop/Code/collaboro/ice/ICE/ICE.csproj.
Services/Implementations/TableService.cs(44,37): warning CS0168: The variable 'ex' is declared but never used [/Users/adamshort/Desktop/Code/collaboro/ice/ICE/ICE.csproj]
  ICE -> /Users/adamshort/Desktop/Code/collaboro/ice/ICE/bin/Debug/netstandard2.0/bin/ICE.dll

  Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'Newtonsoft.Json, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'. The system cannot find the file specified.

     at System.ModuleHandle.ResolveType(RuntimeModule module, Int32 typeToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount, ObjectHandleOnStack type)
     at System.ModuleHandle.ResolveTypeHandleInternal(RuntimeModule module, Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
     at System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
     at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttributeRecord caRecord, MetadataImport scope, Assembly& lastAptcaOkAssembly, RuntimeModule decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, Object[] attributes, IList derivedAttributes, RuntimeType& attributeType, IRuntimeMethodInfo& ctor, Boolean& ctorHasParameters, Boolean& isVarArg)
     at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes, Boolean isDecoratedTargetSecurityTransparent)
     at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimePropertyInfo property, RuntimeType caType)
     at System.Attribute.InternalGetCustomAttributes(PropertyInfo element, Type type, Boolean inherit)
     at System.Attribute.GetCustomAttribute(MemberInfo element, Type attributeType, Boolean inherit)
     at System.Reflection.CustomAttributeExtensions.GetCustomAttribute[T](MemberInfo element)
     at FunctionMonkey.Infrastructure.PostBuildPatcher.<>c.<ExtractPossibleQueryParameters>b__3_0(PropertyInfo x) in D:\wip\myOpenSource\functionMonkey\Source\FunctionMonkey\Infrastructure\PostBuildPatcher.cs:line 95
     at System.Linq.Enumerable.WhereSelectArrayIterator`2.ToArray()
     at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
     at FunctionMonkey.Infrastructure.PostBuildPatcher.ExtractPossibleQueryParameters(HttpFunctionDefinition httpFunctionDefinition1) in D:\wip\myOpenSource\functionMonkey\Source\FunctionMonkey\Infrastructure\PostBuildPatcher.cs:line 92
     at FunctionMonkey.Infrastructure.PostBuildPatcher.Patch(FunctionHostBuilder builder, String newAssemblyNamespace) in D:\wip\myOpenSource\functionMonkey\Source\FunctionMonkey\Infrastructure\PostBuildPatcher.cs:line 54
     at FunctionMonkey.Compiler.Implementation.FunctionCompiler.Compile() in D:\wip\myOpenSource\functionMonkey\Source\FunctionMonkey.Compiler\Implementation\FunctionCompiler.cs:line 67
     at FunctionMonkey.Compiler.Program.Main(String[] args) in D:\wip\myOpenSource\functionMonkey\Source\FunctionMonkey.Compiler\Program.cs:line 45
  /var/folders/ws/8qmgsd2d5qzgk18kqcr5tgb80000gn/T/tmpa999974e51404dffa5791cf067b9a5e3.exec.cmd: line 2: 91716 Abort trap: 6           dotnet "/Users/adamshort/.nuget/packages/functionmonkey.compiler/0.12.1-beta000/build/netstandard1.0/../../tools/netcoreapp2.0/FunctionMonkey.Compiler.dll" "/Users/adamshort/Desktop/Code/collaboro/ice/ICE/bin/Debug/netstandard2.0/bin/ICE.dll"
/Users/adamshort/.nuget/packages/functionmonkey.compiler/0.12.1-beta000/build/netstandard1.0/FunctionMonkey.Compiler.targets(11,5): error MSB3073: The command "dotnet "/Users/adamshort/.nuget/packages/functionmonkey.compiler/0.12.1-beta000/build/netstandard1.0/../../tools/netcoreapp2.0/FunctionMonkey.Compiler.dll" "/Users/adamshort/Desktop/Code/collaboro/ice/ICE/bin/Debug/netstandard2.0/bin/ICE.dll"" exited with code 134. [/Users/adamshort/Desktop/Code/collaboro/ice/ICE/ICE.csproj]

Build FAILED.

Services/Implementations/TableService.cs(44,37): warning CS0168: The variable 'ex' is declared but never used [/Users/adamshort/Desktop/Code/collaboro/ice/ICE/ICE.csproj]
/Users/adamshort/.nuget/packages/functionmonkey.compiler/0.12.1-beta000/build/netstandard1.0/FunctionMonkey.Compiler.targets(11,5): error MSB3073: The command "dotnet "/Users/adamshort/.nuget/packages/functionmonkey.compiler/0.12.1-beta000/build/netstandard1.0/../../tools/netcoreapp2.0/FunctionMonkey.Compiler.dll" "/Users/adamshort/Desktop/Code/collaboro/ice/ICE/bin/Debug/netstandard2.0/bin/ICE.dll"" exited with code 134. [/Users/adamshort/Desktop/Code/collaboro/ice/ICE/ICE.csproj]
    1 Warning(s)
    1 Error(s)

Time Elapsed 00:00:07.96

Which is a gleefully large error message that seems to be just saying that it can't find Newtonsoft.
Which is troubling, as I have 11.0.2 installed across the platform and it is referenced from multiple dependencies as well. I have tried clearing the bin & obj, restoring, reinstalling Newtonsoft, downgrading Newtonsoft, ect...
But with no success.
Let me know if there are any other details you require,
Cheers,
Adam.

I have narrowed it down a bit - the error seems to appear if I use JsonProperty on an ICommand-implementing class (in my case, AddTenantToPolicyCommand.cs) as followed:
using AzureFromTheTrenches.Commanding.Abstractions;
using ICE.Models;
using Newtonsoft.Json;

namespace ICE.Commands.Policies
{
    public class AddTenantToPolicyCommand : ICommand<Policy>
    {
        [JsonProperty("name")] // Commenting this out stops the error.
        public string PolicyName { get; set; }

        // [JsonProperty("newTenant")]
        public int NewTenant { get; set; }
    }
}

I have a sneaking suspicion that this has something to do with the way JSON serialisation & deserialisation is done natively by FM?

Or, if a command subclasses from a class with JsonProperties.

Apologies - struggled to find any time the last couple of days but almost certainly will over the weekend.

Could you give this a go on the latest Azure Functions runtime with Function Monkey v0.13 please and let me know how you get on?
I'm struggling to replicate it but my attempts to do so have taken place after updating Function Monkey to be compatible with the new runtime.

Yep will do - currently doing some spring cleaning on the codebase but I should get around to this in 3-4hrs.

I can, in fact, confirm this isn't happening anymore. Weird, perhaps due to the new AZ function runtime?

Yes I think so - I'd suspected it might be. They've done a lot of work around the dependency compatibility issues caused by things being in process and packages in the core runtime in the last couple of releases and the last update made the final set of changes for v2. It was super easy to get into a pickle before.
Phew.
Thanks for reporting and working through with me, much appreciated.

Hi James,
This seems to have reared its head again.  Using FM 3.0.17 with Microsoft.NET.sdk.Functions 1.0.30-beta2 results in :
13>Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'Newtonsoft.Json, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'. Could not find or load a specific file. (Exception from HRESULT: 0x80131621) 13>   at System.ModuleHandle.ResolveType(RuntimeModule module, Int32 typeToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount, ObjectHandleOnStack type) 13>   at System.ModuleHandle.ResolveTypeHandleInternal(RuntimeModule module, Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext) 13>   at System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments) 13>   at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttributeRecord caRecord, MetadataImport scope, Assembly& lastAptcaOkAssembly, RuntimeModule decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, Object[] attributes, IList derivedAttributes, RuntimeType& attributeType, IRuntimeMethodInfo& ctor, Boolean& ctorHasParameters, Boolean& isVarArg) 13>   at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes) 13>   at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimePropertyInfo property, RuntimeType caType) 13>   at System.Attribute.InternalGetCustomAttributes(PropertyInfo element, Type type, Boolean inherit)


Latest binary available (v 0.1.2) crashes when creating new disk

Host : Windows 10
Guest : IBM XT286, AT Fixed disk adapter, 1 disk existing (MFM/RLL)
Creating a new disk crashes with dump :
Exception details:
NTSTATUS code: 0xc0000005
Address: 0x0073BBEA
Number of parameters: 2
Exception parameters: 0x00000000 0xFFFFFFFF
Register dump:
EIP:0x0073bbea
EAX:0x000000ff EBX:0x00000000 ECX:0x00000000 EDX:0x00000000
EBP:0x00000000 ESP:0x18f2e6a4 ESI:0x76b04090 EDI:0x000000ff

Hi,
I just posted new binaries on the website (2018/03/17) ... does it still happen there?
Thanks,
--waltje

On Sat, 3/17/18, Altheos<EMAIL_ADDRESS>wrote:
Subject: [VARCem/VARCem] Latest binary available (v 0.1.2) crashes when creating new disk (#17)
To: "VARCem/VARCem"<EMAIL_ADDRESS>Cc: "Subscribed"<EMAIL_ADDRESS>Date: Saturday, March 17, 2018, 5:31 PM
Host : Windows 10
Guest : IBM XT286, AT Fixed disk adapter, 1 disk existing
(MFM/RLL)
Creating a new disk crashes with dump :
Exception details:
NTSTATUS code: 0xc0000005
Address: 0x0073BBEA
Number of parameters: 2
Exception parameters: 0x00000000 0xFFFFFFFF
Register dump:
EIP:0x0073bbea
EAX:0x000000ff EBX:0x00000000 ECX:0x00000000 EDX:0x00000000
EBP:0x00000000 ESP:0x18f2e6a4 ESI:0x76b04090
EDI:0x000000ff
—
You are receiving this because you are subscribed to this
thread.
Reply to this email directly, view it on
GitHub, or mute
the thread.

It still crashes with theses binaries:
Register dump:
EIP:0x0073858a
EAX:0x000000ff EBX:0x00000000 ECX:0x00000000 EDX:0x00000000
EBP:0x00000000 ESP:0x0199e6a4 ESI:0x76b04090 EDI:0x000000ff

I just uploaded new binaries (20180318) and tested with the OpenXT (the soon to be default machine for the emulator) and I was able to boot DOS 3.31 on A: (regular IMA file), and then create a new 360K disk on B:, using 86F as format.  Then formatted the drive with DOS, and booted the machine off of that.
Could you try again?  If it still does not work, please let us know which machine you are using..
Thanks!

Thanks but it still not working. VARCem crashes at first launch whichever machine i try (including OpenXT).
Host is Windows 10 1709, Antivirus is disabled, binaries extracted to SSD folder or shared folder.
Here is a gdb backtrace if it may help you :
#0  0x0073835a in ?? ()
#1  0x74fee0bb in USER32!AddClipboardFormatListener ()
from C:\WINDOWS\System32\user32.dll
#2  0x74ff8849 in USER32!EndTask () from C:\WINDOWS\System32\user32.dll
#3  0x00736700 in ?? ()
#4  0x74ffac8c in USER32!EndTask () from C:\WINDOWS\System32\user32.dll
#5  0x00000110 in ?? ()
#6  0x00090718 in ?? ()
#7  0x74fdbf65 in USER32!GetKeyState () from C:\WINDOWS\System32\user32.dll
#8  0x74fdbe45 in USER32!GetKeyState () from C:\WINDOWS\System32\user32.dll
#9  0x74fee0bb in USER32!AddClipboardFormatListener ()
from C:\WINDOWS\System32\user32.dll
#10 0x74ff8849 in USER32!EndTask () from C:\WINDOWS\System32\user32.dll
#11 0x74fdbe20 in USER32!GetKeyState () from C:\WINDOWS\System32\user32.dll
#12 0x74ffb145 in USER32!EndTask () from C:\WINDOWS\System32\user32.dll
#13 0x00000110 in ?? ()
#14 0x00090718 in ?? ()
#15 0x74ffa89c in USER32!EndTask () from C:\WINDOWS\System32\user32.dll
#16 0xbb84fc30 in ?? ()
#17 0x00007ffd in ?? ()
#18 0x00000110 in ?? ()
#19 0x00090718 in ?? ()
#20 0x75005b67 in USER32!EndTask () from C:\WINDOWS\System32\user32.dll
#21 0x045db390 in ?? ()
#22 0x75006533 in USER32!EndTask () from C:\WINDOWS\System32\user32.dll
#23 0x00400000 in ?? ()
#24 0x74fe6a22 in USER32!DialogBoxIndirectParamAorW ()
from C:\WINDOWS\System32\user32.dll
#25 0x7503bc05 in USER32!DialogBoxParamW ()
from C:\WINDOWS\System32\user32.dll
#26 0x0073385f in ?? ()
#27 0x74fee0bb in USER32!AddClipboardFormatListener ()
from C:\WINDOWS\System32\user32.dll
#28 0x74ff8849 in USER32!EndTask () from C:\WINDOWS\System32\user32.dll
#29 0x007333e0 in ?? ()
#30 0x74ffacd3 in USER32!EndTask () from C:\WINDOWS\System32\user32.dll
#31 0x00000111 in ?? ()
#32 0x0000046c in ?? ()
#33 0x001706a0 in ?? ()
#34 0x74fdbf65 in USER32!GetKeyState () from C:\WINDOWS\System32\user32.dll
#35 0x74fdbe45 in USER32!GetKeyState () from C:\WINDOWS\System32\user32.dll
#36 0x74fee0bb in USER32!AddClipboardFormatListener ()
from C:\WINDOWS\System32\user32.dll
#37 0x74ff8849 in USER32!EndTask () from C:\WINDOWS\System32\user32.dll
#38 0x74fdbe20 in USER32!GetKeyState () from C:\WINDOWS\System32\user32.dll
#39 0x74ffb145 in USER32!EndTask () from C:\WINDOWS\System32\user32.dll
#40 0x00000111 in ?? ()
#41 0x0000046c in ?? ()
#42 0x001706a0 in ?? ()
#43 0x74ffa89c in USER32!EndTask () from C:\WINDOWS\System32\user32.dll
#44 0xbb84fc30 in ?? ()
#45 0x00007ffd in ?? ()
#46 0x00000111 in ?? ()
#47 0x0000046c in ?? ()
#48 0x001706a0 in ?? ()
#49 0x74fdb95b in USER32!SendMessageW () from C:\WINDOWS\System32\user32.dll
#50 0x73d06934 in CreateMappedBitmap ()
from C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.16299.309_none_5d7d0b9ba7da9417\comctl32.dll
#51 0x73d1c14b in ImageList_GetIconSize ()
from C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.16299.309_none_5d7d0b9ba7da9417\comctl32.dll
#52 0x74fee0bb in USER32!AddClipboardFormatListener ()
from C:\WINDOWS\System32\user32.dll
#53 0x74ff8849 in USER32!EndTask () from C:\WINDOWS\System32\user32.dll
#54 0x73d1b890 in ImageList_GetIconSize ()
from C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.16299.309_none_5d7d0b9ba7da9417\comctl32.dll
#55 0x74ffb145 in USER32!EndTask () from C:\WINDOWS\System32\user32.dll
#56 0x00000202 in ?? ()
#57 0x00000000 in ?? ()

Own compiled build on host cpu (i5-3570) works fine : make -j4 -f Makefile.local

Finally found the issue, and worked around it. It seems to work OK now.


Datastore - what controls the batch size of query results?

What controls the batch size on the number of results returned from a datastore query?
For example, let's say I have 2000 recipes in datastore.
datastore = Google::Cloud::Datastore.new
query = datastore.query "Recipe"

When I perform run on the query, I initially get 300 results.
query_results = dataset.run query
When I execute all on the QueryResults enumerator, I get all 2000 recipes 300 at a time.
query_results.all
But where is this batch size of 300 configured? Is it dynamically handled by datastore? Can it be overridden for testing? We just got caught where one of our query methods was missing the .all.

Results are returned in batches, and the batch size is determined by the Datastore API. AFAIK there is no mechanism for controlling the size of a batch, but you can use Query#limit to control the total number of results that would be returned across all batches.
Batch size is not guaranteed. I believe it will be affected by the size of the data being returned, and by other forces such as how distributed and/or consistent the data in Datastore is.
Does this help? If not, can you ask a follow up question? If it does help, can you mark the issue closed?
Thanks @bmclean!

Thanks @blowmage. Yes, that helps. I think we can add a regression test for the missing all by validating Enumerator vs Google::Cloud::Datastore::Dataset::QueryResults.


Structure of Code

WHEN I view the structure of the HTML elements
THEN I find that the elements follow a logical structure independent of styling and positioning

Code is squeaky clean!


New Languages supported

It seems like we are not updating docs with new languages that are currently available in PVA

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 72c0f147-9e5c-a437-0873-7be9ce4809b6
Version Independent ID: 95fa1262-ca57-e6fc-0de5-c4628fda0c16
Content: Language support - Power Virtual Agents
Content Source: power-virtual-agents/authoring-language-support.md
Service: power-virtual-agents
GitHub Login: @iaanw
Microsoft Alias: iawilt

Thanks for your comment, @pavecer. This issue has been assigned to the doc author for review.

@pavecer Thank you for your report, an update to this article has now been published.


improve metashape data import

support multiple sensors
support fisheye and equirectangular sensors
support multiple components with transforms
fix bug when image name has a '.' in it, excluding the prefix separator

Hey, is the fisheye camera importing already working?
Because for me something is wrong and I'm not sure if I'm doing something wrong, or it's not working yet. :)
https://github.com/nerfstudio-project/nerfstudio/assets/32915902/cbca50b1-0947-4843-b07f-971b4f00695d

Yes it's working well, but you want to also use masks in your case (photo not covering the whole image)

I had to change in transforms.json camera model to "OPENCV_FISHEYE" :)
ps. can you give me a hint how can I apply masks for fisheye?
I tried to export png's with alpha channel, but It looks like it's ignoring them :)
Thanks!

computing the mask:
cat > compute_mask.py <<EOF
#!/usr/bin/env python
import cv2
import sys
import numpy as np

iterations = 8

# Import all image files with the .jpg extension
files = sys.argv[1:]
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))
for i, f in enumerate(files):
    img = cv2.imread(f, cv2.IMREAD_GRAYSCALE)
    img = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel, iterations=iterations)
    if i == 0:
        avg = img
        # max = img
    else:
        alpha = 1.0 / (i + 1)
        beta = 1.0 - alpha
        avg = cv2.addWeighted(img, alpha, avg, beta, 0.0)

avg = cv2.morphologyEx(avg, cv2.MORPH_CLOSE, kernel, iterations=iterations)
avg = np.uint8(avg)
ret, avg = cv2.threshold(avg, 0, 255, cv2.THRESH_OTSU)
cv2.imwrite("mask.png", avg)
print("wrote mask.png")
EOF

adding the mask to transforms.json:
cat > add_mask_to_transforms_json.py <<EOF
#!/usr/bin/env python
import sys
import json

if len(sys.argv) != 3:
    print(f"Usage: {sys.argv[0]} input_transforms.json output_transforms.json")
    sys.exit(1)
with open(sys.argv[1]) as input_file:
    file_contents = input_file.read()
parsed_json = json.loads(file_contents)
for frame in parsed_json["frames"]:
    frame["mask_path"] = "masks/mask.png"
with open(sys.argv[2], "w") as output_file:
    json.dump(parsed_json, output_file, indent=4)
EOF

downsizing the masks:
cat > downsize_mask.py <<EOF
#!/usr/bin/env python
import cv2
import sys
import json
from pathlib import Path

if len(sys.argv) != 2:
    print(f"Usage: {sys.argv[0]} path_to/mask.png")
    print(f"Output is path_to/masks_{downscale}/mask.png")
    sys.exit(1)
mask_path = Path(sys.argv[1])
mask = cv2.imread(str(mask_path), cv2.IMREAD_GRAYSCALE)
height, width = mask.shape[:2]
processed_data_dir = mask_path.parent
downscale_factors = [2, 4, 8]
for downscale in downscale_factors:
    mask_path_i = processed_data_dir / f"masks_{downscale}"
    mask_path_i.mkdir(exist_ok=True)
    mask_path_i = mask_path_i / "mask.png"
    mask_i = cv2.resize(
        mask, (width // downscale, height // downscale), interpolation=cv2.INTER_NEAREST
    )
    cv2.imwrite(str(mask_path_i), mask_i)
    print(f"Wrote {mask_path_i}")
EOF


Overflowed by pixels issue

This app is not responsive and in devices with a smaller screen, the user will face overflowed by pixels issue.

This app is not responsive and in devices with a smaller screen, the user will face overflowed by pixels issue.

I will fix it soon.

This app is not responsive and in devices with a smaller screen, the user will face overflowed by pixels issue.

I will fix it soon.

دم شما هم گرم اقا یوسف


🐞 Test linear integration

What is the issue?
New issue to test linear integration.
Dagger version
v0.9.4
Steps to reproduce
No response
Log output
No response

comment from GH

reply from linear

anoher comment from GH


Question on WIKI and Reddit Data

Hello, my question is closely related to this issue: https://github.com/amazon-research/tgl/issues/5.
Basically, I'd like to confirm if my understanding is correct. In the issue above, it said both WIKI and Reddit graphs are undirected. Take WIKI data as an example, does that mean if an user U edited a page P at time T, there will be two edges in edges.csv: 1. U as source node and P as destination node with timestamp T 2. P as source node and U as destination node with timestamp T? So if we start with a bipartite graph where source nodes are always 1 type and destination nodes are always of the other type, we basically need to preprocess the bipartite graphs to add a reverse copy for each edge, is that correct?

Yes, this is correct. If we do not add the reverse edge, then the node in one partition would never have neighbors.

Thank you, that makes sense.

Hi, edges.csv does not have added reversed links. The reversed links are added in the generated T-CSR data structure ("--add_reverse" flag in gen_graph.py).

Got it, I was actually just checking gen_graph.py and saw that option. Thanks for the really quick response!
So just to confirm, even after data preprocessing, edges.csv doesn't have reverse links, the T-CSR data structures (all the *.npz files) are the only only files containing reverse links right?
Then in train.py, only samplers are aware of the reverse links so they can collect neighbors for all node types, the rest of the code that iterates through edges just follows edges.csv chronologically, correct?

Right.


[Ubuntu] Download with Retry: Added HTTP status code check

Description
According to the latest unstable builds, it makes sense to implement HTTP status code check along with downloading a package from a source to make sure we download the package and not the web page with some error on it.
Related issue:
https://github.com/actions/virtual-environments-internal/issues/2402
Check list

[x] Related issue / work item is attached
[ ] Tests are written (if applicable)

/azp run ubuntu1804, ubuntu2004

/azp run ubuntu1804, ubuntu2004

/azp run ubuntu1804, ubuntu2004

/azp run ubuntu1804, ubuntu2004

/azp run ubuntu1804, ubuntu2004


[Error] Could not create temporary table: invalid column name: 0

Hi,
I have a procedure that has only one input parameter that is a table. And I am passing the input parameter as show below:

Then, calling callProcedurePromisified throws an error invalid column name.
I checked the issue and it is occuring in wrap-params file in below function.

It is returning false which causes the params to go in wrong format and it throws an error during insertion in the temporary table. This works fine with more than 1 parameter.
Procedure definition:
PROCEDURE "zp_get_execution_ids"(
	IN PLAN_IDS TABLE(PLAN_ID BIGINT),
	OUT RESULT TABLE(PLAN_ID BIGINT, EXECUTION_ID BIGINT)
)
LANGUAGE SQLSCRIPT
SQL SECURITY INVOKER
READS SQL DATA
AS
BEGIN

RESULT = SELECT PLAN_ID, 1 AS EXECUTION_ID
        FROM :PLAN_IDS;

END;

API Call
app.get("/checkProc", async (req, res) => {
	try {
		const DbClass = require("sap-hdbext-promisfied");

		const db = new DbClass(req.db);
		const loadProcedure = await db.loadProcedurePromisified(hdbext, null, "zp_get_execution_ids");
		const params = [{
			"PLAN_ID": 49284
		}, {
			"PLAN_ID": 49304
		}, {
			"PLAN_ID": 49305
		}];
		const storedProc = await db.callProcedurePromisified(loadProcedure, [params]);
		const results = storedProc.outputScalar;

		return results;
	} catch (err) {
		console.error(err.message);
	}
});

Is there something that I am doing wrong or is it a bug?

Well first I think you are actually discussing something that occurs not in this module but in the standard @sap/hdbext.  This module just adds a Promisified wrapper and few other utilities around @sap/hdbext.  But the check you are referring to is in the standard module.
That said I do believe you are calling it wrong. The input JSON needs to list all the parameters at the first level.  You don't have an element in your JSON for PLAN_IDS.  You need PLAN_IDS that in turn is an object with the individual records.

Thanks for the quick reply but I am still not clear about it. So, if I understand correctly we have 2 cases:

Only one input param which is table: In that case, we pass input parameter as array of items of that table i.e. in this case

[{
	"PLAN_ID": 49284
	}, {
	"PLAN_ID": 49304
	}, {
	"PLAN_ID": 49305
}];

All other cases: we pass array of all parameters. Example

[
    1,
    "abc",
    [{
        "PLAN_ID": 49284
    },{
        "PLAN_ID": 49304
    },{
        "PLAN_ID": 49305
    }]
];

If this is the case, then it is working fine.
In case, this is not the right platform to discuss this issue can you tell me where can I create the issue for @sap/hdbext?

I think I might see your error. You are creating params as an array:
const params = [{
"PLAN_ID": 49284
}, {
"PLAN_ID": 49304
}, {
"PLAN_ID": 49305
}];
But then you are passing it into the procedure call within another array:
const storedProc = await db.callProcedurePromisified(loadProcedure, [params]);
Look at the example from the @sap/hdbext help:
https://www.npmjs.com/package/@sap/hdbext#loadprocedureclient-schemaname-procedurename-callback
hdbext.loadProcedure(client, null, 'getCustomers', function (err, sp) {
if (err) {
return console.error(err);
}
sp([
{ ID: 1, NAME: 'Alex' },
{ ID: 2, NAME: 'Peter' }
], function (err, parameters, tableRows) {
if (err) {
return console.error(err);
}
console.log(parameters);
console.log(tableRows);

});
});
So if you are going to create params as an array, don't also put it in an array.  Have you tried just calling it as
const storedProc = await db.callProcedurePromisified(loadProcedure, params);

Yes, it works that way. But in case there are more params, say for example another table or parameter input, then it has to be sent in an array.
Previously, I generalized the input but it seems that is not the case. So, I have updated my logic to send the params without array if there is one single table input and in other cases as array of all input parameters. It works fine that way.


Missing "similar playlists" at bottom of playlist page

Is there a way to get the list of similar playlists that shows at the bottom on a playlist?

I have never heared of similar playlists under spotify playlist page. there will be only similar songs under a playlists.
You can describe your problem with a screenshot so i cant understand easly

Apologies, I was mistakenly referring to the discography section at the bottom of an album.. lack of sleep can make you see funny things..


remove hxmpv1 exclude file, use clade to filter'

this removes one of the exclude files (hmpxv1) and replaces it by the generic one for the larger clade. Filtering is instead done by a --exclude-where clade!=hmpxv via a generic filters field in the config.

this currently fails because the example data doesn't has the clade column


slightly more honest compilation to wasm

Also I add unit tests to CI in this commit

@birchmd we fixed all your notes or decided to make from them new big tasks. Please, take a look


Fix tracking event replication progress

Send notification about written replicated events from
Replicator to Acceptor to track replication progress for
event recovery
remove Thread.sleep from tests to control flow more
accurately
closes #159

LGTM


erika: new volunteer via Mozilla Science Lab Collaborate

HI,
If you're not opposed to someone that is just starting out but has experience working in research , psych and the medical field that loves front end ux / design I'm all in.This issue was created by @erikasf via Mozilla Science Lab Collaborate

Welcome! Contributions are welcome and very much appreciated. Take a look at the list of issues and see if there is something you'd like to work on. If you have a different kind of contribution in mind, propose it as a new issue and we can discuss it.

Thanks! I'll take a look at the issues list and will let you know what I can do to help, or at least what I can attempt to do, after a lot of newly invented curse words comeout of my brain !


#1204

#I want to make navigation bar look more attractive of Hotel project folder  Title and Issue number

Close #<issue_no>

Checklist:

[] I have mentioned the issue number in my Pull Request.
[] I have commented my code, particularly in hard-to-understand areas
[] I have created a helpful and easy to understand README.md

Wrong files committed


[Select] active pseudo-class only triggered on close

🐛 Bug report
active pseudo-class only triggered on closing of options, not on opening click.
💥 Steps to reproduce

Go to https://codesandbox.io/s/select-active-style-l10vz0 - see styles.css for active style definition on button
Click on the button - bg doesn't turn red
Click on the button again to close the menu - bg turns red

💻 Link to reproduction
https://codesandbox.io/s/select-active-style-l10vz0
🧐 Expected behavior
Active styling actives on all button clicks.
🌍 System information

Software
Version(s)

Zag Version
0.10.2

Browser
Arc browser Version 0.106.1 (39259) - Chromium Engine Version 114.0.5735.45

Operating System
MacOS 13.3.1

📝 Additional information
https://github.com/chakra-ui/zag/assets/23258552/311ff62e-5254-401a-8bca-8db91fd66e27

@hadar759 the :active pseudo is not from zag, that's just native button pseudo. The reason it's not active when opening the select is because the focus is on the select's content when opening it.

I see, thank you 🙏


Bugfixes

Work in progress for https://github.com/spacetelescope/jdaviz/pull/2179.

Dev test failing due to remote URL timeout.


Pocket detection fails on batch of structures

https://files.rcsb.org/view/5W92.pdb
5VPT
5VPX
5VQN
5VRJ
5w92
5wa6
atypical pdb format? bfactors wrongly read in?

fixed by https://github.com/Discngine/fpocket/tree/3.1.1


How to get Headers when writing a CSV file?

I have to write a CSV file, except that I have columns that can not be null. I researched the issues and other places on the internet, but I did not find anything that would help me. I want to know is: how do I get the headers by the SuperCsvConstraintViolationException exception when the file is being written?
I don't save the generated file. I just export from browser.

@lukaz-sampaio
I do n’t understand the problem, could you provide a sample？

@dota17  Perhaps you can reproduce by writing a file with a column notnull and provide a null value. the exception then does not give enough information as to what is wrong apparently

Hi, @lukaz-sampaio
In the exception information, there is columnNo. You can save the header information to List<String> headers when using the writeHeader() method, and then get the information through headers.get (columnN0)

Hi, @lukaz-sampaio
In the exception information, there is columnNo. You can save the header information to List<String> headers when using the writeHeader() method, and then get the information through headers.get (columnN0)

Hi, @kbilsted
I think the exception information here is enough. There is rowNo, columnNo. if the header information is needed to add in the exception:

there might be no header in csv data.
Add header information in Cellprocessor Exception need to change executeCellProcessors() method. This can cause a lot of file changes.

I don't think it's a cost-effective change, your opinion?


Use separate Helm drivers for source and destination registries

Use separate Helm drivers for source and destination registries. To avoid credential conflicts.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/close


Update free-programming-interactive-tutorials-en.md

What does this PR do?
Add resource
For resources
A free Kotlin course for app dev by Google available on Udacity
Why is this valuable (or not)?
It is a free informative course for intermediate level users on app dev
How do we know it's really free?
Udacity offers certain courses for free
For book lists, is it a book? For course lists, is it a course? etc.
Checklist:

[X] Read our contributing guidelines
[X] Search for duplicates.
[X] Include author(s) and platform where appropriate.
[X] Put lists in alphabetical order, correct spacing.
[X] Add needed indications (PDF, access notes, under construction)

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

duplicate - in courses


Good Job

You have done a good job.
I also want to remake a homm3 game.
Util now, I only read HD version Pak file, deal with the textures, and draw it with opengl, sprite animation can be viewed. HD verison is good texture resource, has x2, x3 texture resources to use. The missing sprite can be redraw by Super Resolution Algorithm.
Qt is good for PC.
Is that a good choice for phone or pad with multitouch screen?

The missing sprite can be redraw by Super Resolution Algorithm.
I wanna warn you it's not that easy (you need to deal with transparency for sprites, and superres network gave meh result for me. so... manual work is required).

Qt is ok for phon / tablet is has gestures and multitouch support.
However, if you want to have close to native UI and UX, you ought to move from Qt to some native framework.  If we talking about Qt Widgets.
If you choose Qt QML, it's fantastic for mobile but for desktop UI you will have a lot of extra work... no silver bullet as far as I know.
Also I have little mobile XP, so take this with grain of salt.

Any reason to NOT contribute to VCMI? it has mobile support already.

If you click on my github profile, you can find discord ID. It is much better then creating issues only for the conversation.

maybe on slack
discord is not work in China😂

@jxo  I am in Russia so I understand 'a lot of stuff do not work' . Slack is banned btw. well... you can continue here as you wish!

@mapron
I pull the new codes, project has changed a lot.
But it can't be compiled on linux now on my laptop which runs Archlinux.
Perhaps you develop mainly on windows, have not tested on linux yet.
There are some problems that I encountered.

cmake command AddCompilerFlagIfSupported can't be found.
Mernel depends on 7zip_static, but 7zip_static uses windows.h
Some errors from clang-format, "format is not conforming to the current style" mostly on c++20 concepts.  My clang verison is 15.0.7
If you have the time and could help solve these small problems, it would be great.

HD Sprite is much better

Perhaps you develop mainly on windows, have not tested on linux yet.

That how it goes, right, did not fix UNIX compilation yet since last tag in git. I burned one of my two PC's recently, so I stuck with Win machine for a while, need to make dualboot setup.

Some errors from clang-format, "format is not conforming to the current style" mostly on c++20 concepts. My clang verison is 15.0.7
Oops, yeah, forgot to update to recent version.
Need to specify somehow in cmake what clang-format is set in CLANG_FORMAT_COMMAND, as every major version is incompatible .
fixed format in the main.

Mernel depends on 7zip_static, but 7zip_static uses windows.h

not really depends, it just provide a target. 7zip used for win32 self-extracting archive, installer.cmake in FreeHeroes.
I added ifdef in cmake, so you should be fine for now (at least at cmake-level, not sure if clang/gcc errors persist)

cmake command AddCompilerFlagIfSupported can't be found.

forgot to mention, I hope I fixed that as well.

HD Sprite is much better

sure, I also got 'great' on black background. But when you put sprite back to transparent form, you lose a lot and contours look like mess (also don't forget sprites has semi-shadows and selection regions. My png converter gave them special transparency codes as well).

@mapron I do a pull request on mernel and this project, to fix build on linux.
I added extra includes for addtarget, I find you have fix ed it in mernel targets.cmake

@jxo  please check my comments in the review.

@jxo  thank you for taking your time on that.
Feel free to check master branch again if something went wrong after merge.

@mapron ok.
what I can help for?

run app in linux, fix more runtime problems?
translations for chinese?
HD Sprites?

3 HD Sprites?
no, they will violate the copyright, no open-source project can provide them. I have HD sprites support already, technically.

if you have hota / SoD with chinise translation somehow, would be nice if you adopted translation conversion  for Chinise
https://github.com/mapron/FreeHeroes/blob/master/src/Gui/LegacyConverterUtil/LocalizationConverter.cpp#L109
https://github.com/mapron/FreeHeroes/blob/master/src/Gui/LegacyConverterUtil/LocalizationConverter.cpp#L247

If there no such distros (with LOD/lng files), not really needed translation I think.
You can add Qt ts files for zh_cn, but, I don't think is highly needed (probably loc strings will be rewritten multiple times).
So auto-conversion from SoD is all help I really need.

What app? for battle emulator it worked fine I used it while developing on linux. For other apps, most of them console, so. Not really.

You can play around with MapToolUI/MapEditor pair (latter is run from MapTool, so only MapTool is really needed).
Some UI glitches/quirks maybe.
If you really want to do it :)

3 HD Sprites? no, they will violate the copyright, no open-source project can provide them. I have HD sprites support already, technically.

Ubi HD Version use .pak sprite format, they packed sprite on several texturesheets, and provide descriptions of every frame.
If we do not provide pak files it's ok for users who already have pak files, I don't think this will violate the copyright.
For some missing sprites in SOD, this can't be solved easily.

Ubi HD edition sprites you mean? Support importing them with  converter? well... I did not even think about it. At least in russian community consensus is HD edition sucks, no one ever wanted it and their 'remaster' too. But I understand some people can want to import those, yeah.
At first I thought you suggested neural upscale sprites and provide in distro (and THAT I said is not copyright friendly, as upscaling is not enough of rework to avoid issues).

@mapron the Ubi HD edition game is not so good, that is made by dotemu, just want to earn quick money. But HD Resources are the same and better, ubi redraws the sprites for x2, x3 large by human, support
transparency not replace color with palette.

But missing some sprites in HD edition compares to SOD, not too much

'not too many' are AB, SoD and HotA sprites :)
I don't agree with ' But HD Resources are the same and better' , sorry. that is matter of taste.  What we are talking about, again? From technical perspective?
Support import of HD edition data? Ok you can investigate that (1 . patches to my FH  project or 2 in your own project and share the parser code). That's ok, no objection on that part.

drawn by community

I saw one porject of 'redrawing' for all these years. I mean, from scratch. And that project looked awful. I believe only commercial company with a lot of money ca create good set of hand-drawn sprites, not one enthusiast.

@mapron technically, supporting HD means supporting different scale factor and dealing with different screen resolution, for example support for 4K screen maybe.

and maybe hardcoded coordinates and sizes should not be used.

, supporting HD means supporting different scale factor and dealing with different screen resolution

That already done.
Coordinates like 'position of arrow shooting' is bound to sprite json, not program code.
I already said that I tested 2x sprites upscaled with network in battle emulator. Why we are discussing this?

I have not done a research about the sprites and bitmap differences between ROE and SOD.

Depends of what you are interested in. There are several formats for RLE, most of them are from RoE already, so no difference.
You can check this
https://github.com/mapron/FreeHeroes/blob/master/src/Gui/LegacyConverterUtil/BitmapFile.cpp#L161
for reading different sprites (well, and writing them too)

I have not done a research about the sprites and bitmap differences between ROE and SOD.

Depends of what you are interested in. There are several formats for RLE, most of them are from RoE already, so no difference. You can check this https://github.com/mapron/FreeHeroes/blob/master/src/Gui/LegacyConverterUtil/BitmapFile.cpp#L161 for reading different sprites (well, and writing them too)

Not the image compression format differences, just for missing creatures, towns, and others which in SOD but not in ROE.

Some work can be improved for UI sprites, but I try to vector recnder UI anyway most of the time. (things like morale icons or skill icons can be improved for HD tho)

Maybe use SVG morale icons and skill icons.

I missing your point overall. What do you want :)

Thank you for your time and patience.
The goal of the project is very appealling.
I want nothing, just think about what to do next.
And maybe make graphics better.
This guy said in https://github.com/mapron/FreeHeroes/issues/1#issue-988597366
Export HD resources from offical, maybe the same meaning.

Support import of HD edition data? Ok you can investigate that (1 . patches to my FH project

I will do import HD edition data next.

My current focus (as you see by latest git history) - is map generation; then map editor, then (probably) something like map playtest-singleplayer stuff;  several months probably I will be focused on map generator only (as it is a usable product for HotA playerbase  and have an interest today).
So don't expect much work from me on battle emulator or adventure mode.

@mapron
Is translation rework finished?
https://github.com/mapron/FreeHeroes/blob/master/src/Gui/Localization/LocalizationManager.cpp#L87
I add zh_CN, convertion is ok, but translation seems not work

QStandardPath::AppLocalDataLocation
in linux is username/.local/share/FreeHeroes
But Mernel AppLocations::getAppdataDir is username/FreeHeroes
Different resources path.

LocalizationManager doesn't do much atm. Probably will remove that class entirely some day.