Setup for NodeJS at Apple Silicon

Required Info

Camera Model
L515

Firmware Version
<IP_ADDRESS>

Operating System & Version
MacOS Apple Silicon

SDK Version
2

Language
nodejs

Issue Description
Hi, I feel confused when setting up a new project with NodeJS language. Step I do :

Install XCode from the apps store
Already installed homebrew
Install the following packages via brew:
brew install cmake libusb pkg-config
brew install arch -arm64 brew install vulkan-sdk (adjusted for Apple M1)
Set env variable

export<EMAIL_ADDRESS>export<EMAIL_ADDRESS>export<EMAIL_ADDRESS>export<EMAIL_ADDRESS>

git clone https://github.com/IntelRealSense/librealsense
cd librealsense
Edit file src/proc/color-formats-converter.cpp and change #if defined (ANDROID) || (defined (__linux__) && !defined (__x86_64__)) to #if defined (ANDROID) || (defined (__linux__) && !defined (__x86_64__)) || defined(__aarch64__) https://github.com/IntelRealSense/librealsense/issues/8090#issuecomment-826164584
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=true -DBUILD_NODEJS_BINDINGS=1 -DCMAKE_APPLE_SILICON_PROCESSOR=arm64 -DCMAKE_BUILD_TYPE=release
make -j2

But from all step reproduce 2 error
1.
[ 99%] Linking CXX executable realsense-viewer
ld: warning: ignoring file ../../libcurl/libcurl_install/lib/libcurl.a, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
2.
[100%] Linking CXX executable rs-depth-quality
ld: warning: ignoring file ../../libcurl/libcurl_install/lib/libcurl.a, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
I'm frustrated LOL. Anyone can help me? I know you may be referred to this #8090 , but I don't know what step I wrong. Thanks

I am still having errors over here building on M1.  Let's keep trying!! Success is on the way!

I get stuck here...
the error is in the /src/proc/color-formats.cpp file
setting up the project with
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=true -DBUILD_NODEJS_BINDINGS=1 -DCMAKE_APPLE_SILICON_PROCESSOR=arm64 -DCMAKE_BUILD_TYPE=release
when running make -j4
1 warning generated. [ 29%] Building CXX object CMakeFiles/realsense2.dir/src/proc/depth-formats-converter.cpp.o /Users/gennaroschiano/Documents/GitHub/librealsense/src/proc/color-formats-converter.cpp:21:73: error: token is not a valid binary operator in a preprocessor subexpression #if defined (ANDROID) || (defined (__linux__) && !defined (__x86_64__)) to #if defined (ANDROID) || (defined (__linux__) && !defined (__x86_64__)) || defined(__aarch64__)                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ In file included from /Users/gennaroschiano/Documents/GitHub/librealsense/src/proc/color-formats-converter.cpp:31: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:11:2: error: this header is for x86 only #error this header is for x86 only  ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:280:5: error: invalid output constraint '=a' in asm     __cpuid(__leaf, __eax, __ebx, __ecx, __edx);     ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:245:11: note: expanded from macro '__cpuid'         : "=a"(__eax), "=r" (__ebx), "=c"(__ecx), "=d"(__edx) \           ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:295:5: error: invalid output constraint '=a' in asm     __cpuid(__leaf, *__eax, *__ebx, *__ecx, *__edx);     ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:245:11: note: expanded from macro '__cpuid'         : "=a"(__eax), "=r" (__ebx), "=c"(__ecx), "=d"(__edx) \           ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:309:5: error: invalid output constraint '=a' in asm     __cpuid_count(__leaf, __subleaf, *__eax, *__ebx, *__ecx, *__edx);     ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:252:11: note: expanded from macro '__cpuid_count'         : "=a"(__eax), "=r" (__ebx), "=c"(__ecx), "=d"(__edx) \           ^ /Users/gennaroschiano/Documents/GitHub/librealsense/src/proc/color-formats-converter.cpp:33:5: error: invalid output constraint '=a' in asm     __cpuid_count(info_type, 0, info[0], info[1], info[2], info[3]);     ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:252:11: note: expanded from macro '__cpuid_count'         : "=a"(__eax), "=r" (__ebx), "=c"(__ecx), "=d"(__edx) \           ^ 6 errors generated. make[2]: *** [CMakeFiles/realsense2.dir/src/proc/color-formats-converter.cpp.o] Error 1 make[2]: *** Waiting for unfinished jobs.... clang: warning: -latomic: 'linker' input unused [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-mfpu=neon' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-mfloat-abi=hard' [-Wunused-command-line-argument] make[1]: *** [CMakeFiles/realsense2.dir/all] Error 2 make: *** [all] Error 2
on other build settings ... I get this error cpuid.h is causing it
4 warnings generated. [ 30%] Building CXX object CMakeFiles/realsense2.dir/src/proc/auto-exposure-processor.cpp.o /Users/gennaroschiano/Documents/GitHub/librealsense/src/proc/color-formats-converter.cpp:21:73: error: token is not a valid binary operator in a preprocessor subexpression #if defined (ANDROID) || (defined (__linux__) && !defined (__x86_64__)) to #if defined (ANDROID) || (defined (__linux__) && !defined (__x86_64__)) || defined(__aarch64__)                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ In file included from /Users/gennaroschiano/Documents/GitHub/librealsense/src/proc/color-formats-converter.cpp:31: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:11:2: error: this header is for x86 only #error this header is for x86 only  ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:280:5: error: invalid output constraint '=a' in asm     __cpuid(__leaf, __eax, __ebx, __ecx, __edx);     ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:245:11: note: expanded from macro '__cpuid'         : "=a"(__eax), "=r" (__ebx), "=c"(__ecx), "=d"(__edx) \           ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:295:5: error: invalid output constraint '=a' in asm     __cpuid(__leaf, *__eax, *__ebx, *__ecx, *__edx);     ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:245:11: note: expanded from macro '__cpuid'         : "=a"(__eax), "=r" (__ebx), "=c"(__ecx), "=d"(__edx) \           ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:309:5: error: invalid output constraint '=a' in asm     __cpuid_count(__leaf, __subleaf, *__eax, *__ebx, *__ecx, *__edx);     ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:252:11: note: expanded from macro '__cpuid_count'         : "=a"(__eax), "=r" (__ebx), "=c"(__ecx), "=d"(__edx) \           ^ /Users/gennaroschiano/Documents/GitHub/librealsense/src/proc/color-formats-converter.cpp:33:5: error: invalid output constraint '=a' in asm     __cpuid_count(info_type, 0, info[0], info[1], info[2], info[3]);     ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:252:11: note: expanded from macro '__cpuid_count'         : "=a"(__eax), "=r" (__ebx), "=c"(__ecx), "=d"(__edx) \

I am still having errors over here building on M1.  Let's keep trying!! Success is on the way!

Yes!! I hope Intel developer can make better documentation and proper step to build on M1

I get stuck here...
the error is in the /src/proc/color-formats.cpp file
setting up the project with
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=true -DBUILD_NODEJS_BINDINGS=1 -DCMAKE_APPLE_SILICON_PROCESSOR=arm64 -DCMAKE_BUILD_TYPE=release
when running make -j4
1 warning generated. [ 29%] Building CXX object CMakeFiles/realsense2.dir/src/proc/depth-formats-converter.cpp.o /Users/gennaroschiano/Documents/GitHub/librealsense/src/proc/color-formats-converter.cpp:21:73: error: token is not a valid binary operator in a preprocessor subexpression #if defined (ANDROID) || (defined (__linux__) && !defined (__x86_64__)) to #if defined (ANDROID) || (defined (__linux__) && !defined (__x86_64__)) || defined(__aarch64__)                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ In file included from /Users/gennaroschiano/Documents/GitHub/librealsense/src/proc/color-formats-converter.cpp:31: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:11:2: error: this header is for x86 only #error this header is for x86 only  ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:280:5: error: invalid output constraint '=a' in asm     __cpuid(__leaf, __eax, __ebx, __ecx, __edx);     ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:245:11: note: expanded from macro '__cpuid'         : "=a"(__eax), "=r" (__ebx), "=c"(__ecx), "=d"(__edx) \           ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:295:5: error: invalid output constraint '=a' in asm     __cpuid(__leaf, *__eax, *__ebx, *__ecx, *__edx);     ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:245:11: note: expanded from macro '__cpuid'         : "=a"(__eax), "=r" (__ebx), "=c"(__ecx), "=d"(__edx) \           ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:309:5: error: invalid output constraint '=a' in asm     __cpuid_count(__leaf, __subleaf, *__eax, *__ebx, *__ecx, *__edx);     ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:252:11: note: expanded from macro '__cpuid_count'         : "=a"(__eax), "=r" (__ebx), "=c"(__ecx), "=d"(__edx) \           ^ /Users/gennaroschiano/Documents/GitHub/librealsense/src/proc/color-formats-converter.cpp:33:5: error: invalid output constraint '=a' in asm     __cpuid_count(info_type, 0, info[0], info[1], info[2], info[3]);     ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:252:11: note: expanded from macro '__cpuid_count'         : "=a"(__eax), "=r" (__ebx), "=c"(__ecx), "=d"(__edx) \           ^ 6 errors generated. make[2]: *** [CMakeFiles/realsense2.dir/src/proc/color-formats-converter.cpp.o] Error 1 make[2]: *** Waiting for unfinished jobs.... clang: warning: -latomic: 'linker' input unused [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-mfpu=neon' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-mfloat-abi=hard' [-Wunused-command-line-argument] make[1]: *** [CMakeFiles/realsense2.dir/all] Error 2 make: *** [all] Error 2
on other build settings ... I get this error cpuid.h is causing it
4 warnings generated. [ 30%] Building CXX object CMakeFiles/realsense2.dir/src/proc/auto-exposure-processor.cpp.o /Users/gennaroschiano/Documents/GitHub/librealsense/src/proc/color-formats-converter.cpp:21:73: error: token is not a valid binary operator in a preprocessor subexpression #if defined (ANDROID) || (defined (__linux__) && !defined (__x86_64__)) to #if defined (ANDROID) || (defined (__linux__) && !defined (__x86_64__)) || defined(__aarch64__)                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ In file included from /Users/gennaroschiano/Documents/GitHub/librealsense/src/proc/color-formats-converter.cpp:31: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:11:2: error: this header is for x86 only #error this header is for x86 only  ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:280:5: error: invalid output constraint '=a' in asm     __cpuid(__leaf, __eax, __ebx, __ecx, __edx);     ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:245:11: note: expanded from macro '__cpuid'         : "=a"(__eax), "=r" (__ebx), "=c"(__ecx), "=d"(__edx) \           ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:295:5: error: invalid output constraint '=a' in asm     __cpuid(__leaf, *__eax, *__ebx, *__ecx, *__edx);     ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:245:11: note: expanded from macro '__cpuid'         : "=a"(__eax), "=r" (__ebx), "=c"(__ecx), "=d"(__edx) \           ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:309:5: error: invalid output constraint '=a' in asm     __cpuid_count(__leaf, __subleaf, *__eax, *__ebx, *__ecx, *__edx);     ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:252:11: note: expanded from macro '__cpuid_count'         : "=a"(__eax), "=r" (__ebx), "=c"(__ecx), "=d"(__edx) \           ^ /Users/gennaroschiano/Documents/GitHub/librealsense/src/proc/color-formats-converter.cpp:33:5: error: invalid output constraint '=a' in asm     __cpuid_count(info_type, 0, info[0], info[1], info[2], info[3]);     ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.5/include/cpuid.h:252:11: note: expanded from macro '__cpuid_count'         : "=a"(__eax), "=r" (__ebx), "=c"(__ecx), "=d"(__edx) \

I think you edit wrong file bro. See my step on number 7. Make sure after edit you delete all things on build folder and do cmake ....... again

I've also tried to compile with xcode using this command
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/homebrew/Cellar/librealsense/2.48.0 -DBUILD_WITH_OPENMP=OFF -DENABLE_CCACHE=OFF -DCMAKE_HAVE_THREADS_LIBRARY=1 -DCMAKE_THREAD_LIBS_INIT="-lpthread" -DCMAKE_USE_WIN32_THREADS_INIT=0 -DTHREADS_PREFER_PTHREAD_FLAG=ON -DCMAKE_USE_PTHREADS_INIT=1 -DOPENSSL_ROOT_DIR=/opt/homebrew/opt/openssl -DCMAKE_CXX_FLAGS="-w" -DCMAKE_C_FLAGS="-w" -G Xcode
then open in Xcode and try to compile get this error
`
Showing Recent Messages
Ld /Users/gennaroschiano/Documents/GitHub/librealsense/build/librealsense2.build/Debug/realsense2.build/Objects-normal/x86_64/Binary/librealsense<IP_ADDRESS>.dylib normal x86_64 (in target 'realsense2' from project 'librealsense2')
cd /Users/gennaroschiano/Documents/GitHub/librealsense
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -target x86_64-apple-macos11.3 -dynamiclib -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk -L/Users/gennaroschiano/Documents/GitHub/librealsense/build/Debug -F/Users/gennaroschiano/Documents/GitHub/librealsense/build/Debug -filelist /Users/gennaroschiano/Documents/GitHub/librealsense/build/librealsense2.build/Debug/realsense2.build/Objects-normal/x86_64/realsense<IP_ADDRESS>.LinkFileList -install_name /librealsense<IP_ADDRESS>.dylib -Xlinker -object_path_lto -Xlinker /Users/gennaroschiano/Documents/GitHub/librealsense/build/librealsense2.build/Debug/realsense2.build/Objects-normal/x86_64/realsense<IP_ADDRESS>_lto.o -Xlinker -no_deduplicate -dynamiclib -Wl,-headerpad_max_install_names -install_name @rpath/librealsense2.2.49.dylib -framework CoreFoundation -framework IOKit /Users/gennaroschiano/Documents/GitHub/librealsense/build/common/fw/Debug/libfw.a /Users/gennaroschiano/Documents/GitHub/librealsense/build/third-party/realsense-file/Debug/librealsense-file.a -lpthread /opt/homebrew/lib/libusb-1.0.dylib -Xlinker -no_adhoc_codesign -compatibility_version 2.49.0 -current_version 2.49.0 -Xlinker -dependency_info -Xlinker /Users/gennaroschiano/Documents/GitHub/librealsense/build/librealsense2.build/Debug/realsense2.build/Objects-normal/x86_64/realsense<IP_ADDRESS>_dependency_info.dat -o /Users/gennaroschiano/Documents/GitHub/librealsense/build/librealsense2.build/Debug/realsense2.build/Objects-normal/x86_64/Binary/librealsense<IP_ADDRESS>.dylib
ld: warning: ignoring file /opt/homebrew/lib/libusb-1.0.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64
Undefined symbols for architecture x86_64:
"_libusb_alloc_transfer", referenced from:
librealsense::platform::usb_request_libusb::usb_request_libusb(libusb_device_handle*, std::__1::shared_ptrlibrealsense::platform::usb_endpoint) in request-libusb.o
"_libusb_bulk_transfer", referenced from:
librealsense::platform::usb_messenger_libusb::bulk_transfer(std::__1::shared_ptrlibrealsense::platform::usb_endpoint const&, unsigned char*, unsigned int, unsigned int&, unsigned int) in messenger-libusb.o
"_libusb_cancel_transfer", referenced from:
librealsense::platform::usb_messenger_libusb::cancel_request(std::__1::shared_ptrlibrealsense::platform::usb_request const&) in messenger-libusb.o
librealsense::platform::usb_request_libusb::~usb_request_libusb() in request-libusb.o
"_libusb_claim_interface", referenced from:
librealsense::platform::handle_libusb::claim_interface(unsigned char) in device-libusb.o
"_libusb_clear_halt", referenced from:
librealsense::platform::usb_messenger_libusb::reset_endpoint(std::__1::shared_ptrlibrealsense::platform::usb_endpoint const&, unsigned int) in messenger-libusb.o
"_libusb_close", referenced from:
librealsense::platform::handle_libusb::~handle_libusb() in device-libusb.o
"_libusb_control_transfer", referenced from:
librealsense::platform::usb_messenger_libusb::control_transfer(int, int, int, int, unsigned char*, unsigned int, unsigned int&, unsigned int) in messenger-libusb.o
"_libusb_detach_kernel_driver", referenced from:
librealsense::platform::handle_libusb::claim_interface(unsigned char) in device-libusb.o
"_libusb_exit", referenced from:
librealsense::platform::usb_context::~usb_context() in context-libusb.o
"_libusb_free_config_descriptor", referenced from:
librealsense::platform::usb_device_libusb::usb_device_libusb(libusb_device*, libusb_device_descriptor const&, librealsense::platform::usb_device_info const&, std::__1::shared_ptrlibrealsense::platform::usb_context) in device-libusb.o
librealsense::platform::get_subdevices(libusb_device*, libusb_device_descriptor) in enumerator-libusb.o
"_libusb_free_device_list", referenced from:
librealsense::platform::usb_context::~usb_context() in context-libusb.o
"_libusb_free_transfer", referenced from:
librealsense::platform::usb_request_libusb::usb_request_libusb(libusb_device_handle*, std::__1::shared_ptrlibrealsense::platform::usb_endpoint)::$_0::operator()(libusb_transfer*) const in request-libusb.o
"_libusb_get_bus_number", referenced from:
librealsense::platform::get_device_path(libusb_device*) in enumerator-libusb.o
"_libusb_get_config_descriptor", referenced from:
librealsense::platform::usb_device_libusb::usb_device_libusb(libusb_device*, libusb_device_descriptor const&, librealsense::platform::usb_device_info const&, std::__1::shared_ptrlibrealsense::platform::usb_context) in device-libusb.o
librealsense::platform::get_subdevices(libusb_device*, libusb_device_descriptor) in enumerator-libusb.o
"_libusb_get_device_address", referenced from:
librealsense::platform::get_device_path(libusb_device*) in enumerator-libusb.o
"_libusb_get_device_descriptor", referenced from:
librealsense::platform::get_device_path(libusb_device*) in enumerator-libusb.o
librealsense::platform::usb_enumerator::query_devices_info() in enumerator-libusb.o
librealsense::platform::usb_enumerator::create_usb_device(librealsense::platform::usb_device_info const&) in enumerator-libusb.o
"_libusb_get_device_list", referenced from:
librealsense::platform::usb_context::usb_context() in context-libusb.o
"_libusb_get_port_numbers", referenced from:
librealsense::platform::get_device_path(libusb_device*) in enumerator-libusb.o
"_libusb_handle_events_completed", referenced from:
librealsense::platform::usb_context::start_event_handler()::$_0::operator()() const in context-libusb.o
"_libusb_init", referenced from:
librealsense::platform::usb_context::usb_context() in context-libusb.o
"_libusb_interrupt_transfer", referenced from:
librealsense::platform::usb_messenger_libusb::bulk_transfer(std::__1::shared_ptrlibrealsense::platform::usb_endpoint const&, unsigned char*, unsigned int, unsigned int&, unsigned int) in messenger-libusb.o
"_libusb_kernel_driver_active", referenced from:
librealsense::platform::handle_libusb::claim_interface(unsigned char) in device-libusb.o
"_libusb_open", referenced from:
librealsense::platform::handle_libusb::handle_libusb(std::__1::shared_ptrlibrealsense::platform::usb_context, libusb_device*, std::__1::shared_ptrlibrealsense::platform::usb_interface_libusb) in device-libusb.o
"_libusb_ref_device", referenced from:
librealsense::platform::usb_device_libusb::usb_device_libusb(libusb_device*, libusb_device_descriptor const&, librealsense::platform::usb_device_info const&, std::__1::shared_ptrlibrealsense::platform::usb_context) in device-libusb.o
"_libusb_release_interface", referenced from:
librealsense::platform::handle_libusb::~handle_libusb() in device-libusb.o
"_libusb_submit_transfer", referenced from:
librealsense::platform::usb_messenger_libusb::submit_request(std::__1::shared_ptrlibrealsense::platform::usb_request const&) in messenger-libusb.o
"_libusb_unref_device", referenced from:
librealsense::platform::usb_device_libusb::~usb_device_libusb() in device-libusb.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Build target libcurl of project librealsense2 with configuration Debug
WriteAuxiliaryFile /Users/gennaroschiano/Documents/GitHub/librealsense/build/librealsense2.build/Debug/libcurl.build/Script-611BFFFE38F83ED1EBDEAE07.sh (in target 'libcurl' from project 'librealsense2')
cd /Users/gennaroschiano/Documents/GitHub/librealsense
write-file /Users/gennaroschiano/Documents/GitHub/librealsense/build/librealsense2.build/Debug/libcurl.build/Script-611BFFFE38F83ED1EBDEAE07.sh
PhaseScriptExecution Generate\ libcurl/src/libcurl-stamp/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/libcurl-mkdir /Users/gennaroschiano/Documents/GitHub/librealsense/build/librealsense2.build/Debug/libcurl.build/Script-611BFFFE38F83ED1EBDEAE07.sh (in target 'libcurl' from project 'librealsense2')
cd /Users/gennaroschiano/Documents/GitHub/librealsense
/bin/sh -c /Users/gennaroschiano/Documents/GitHub/librealsense/build/librealsense2.build/Debug/libcurl.build/Script-611BFFFE38F83ED1EBDEAE07.sh
WriteAuxiliaryFile /Users/gennaroschiano/Documents/GitHub/librealsense/build/librealsense2.build/Debug/libcurl.build/Script-D316BE8B38B0E3DE179CA6A2.sh (in target 'libcurl' from project 'librealsense2')
cd /Users/gennaroschiano/Documents/GitHub/librealsense
write-file /Users/gennaroschiano/Documents/GitHub/librealsense/build/librealsense2.build/Debug/libcurl.build/Script-D316BE8B38B0E3DE179CA6A2.sh
`

You got error when run cmake? Not make?

I get the error running make now... or when trying to build using Xcode.

Try to add this option
-DCMAKE_APPLE_SILICON_PROCESSOR=arm64
Anyway, what your target programming language?

ultimately I was planning on using C.  I want to create a program that stitches multiple realsense cameras in real time and be able to send that texture into realtime 3d software.  So my plan was using C to stitch together multiple feeds that I can then lookup from my 3d software to create the 3d effects in real time like unreal engine I'm getting started on this on pc and it's moving slow but moving haha.  Ultimately I like how the shaders look with the default setup on the intel realsense for some performances I want to do and composite the real sense images into another 3D scene in real time... I just want to use it on my mac to do some live performances.

If we succeed build in Apple M1, we can use it with any programming language?

Hi @shadowgroundz  As you suggested, https://github.com/IntelRealSense/librealsense/issues/8090 is usually the best place to seek advice about installing librealsense on an Apple Silicon M1 model of Mac, and the fellow M1 users are always pleased to offer advice in addition to the solutions already posted.  There are also links to other discussions about M1 installation within https://github.com/IntelRealSense/librealsense/issues/8090 and most problems that are encountered have already had possible solutions suggested in these cases.
As your Intel support contact on this case, I am also happy to help if possible (though I do not have a Mac at my location to test with).
Once the RealSense SDK is successfully installed on your M1 Mac then you should be able to use it with any language that the SDK is able to interface with and which works on your Mac.  A directory of compatibility wrappers can be found at the link below.
https://github.com/IntelRealSense/librealsense/tree/master/wrappers

I have one example that success build on xcode.I'm not familiar with XCode. When finished build, I try to go to wrappers on root => nodeJS and try to npm install and enter to examples folder and run node ./nodejs-capture.js and show modules not found
I'll give exact information about this error soon. Because I not front my laptop. But, did I do correct step?

@shadowgroundz  A RealSense user successfully built the Node.js wrapper with npm install on a MacOS Catalina machine in May 2021 )probably therefore an older Intel-based Mac model rather than an M1).  Their case is at https://github.com/IntelRealSense/librealsense/issues/9068

@shadowgroundz A RealSense user successfully built the Node.js wrapper with npm install on a MacOS Catalina machine in May 2021 (probably therefore an older Intel-based Mac model rather than an M1). Their case is at #9068

Okay I got the pattern from #8090 and follow this instruction https://dev.intelrealsense.com/docs/macos-installation-for-intel-realsense-sdk

Set env variable

export<EMAIL_ADDRESS>export<EMAIL_ADDRESS>export<EMAIL_ADDRESS>export<EMAIL_ADDRESS>

git clone https://github.com/IntelRealSense/librealsense
cd librealsense
Edit file src/proc/color-formats-converter.cpp and change #if defined (ANDROID) || (defined (__linux__) && !defined (__x86_64__)) to #if defined (ANDROID) || (defined (__linux__) && !defined (__x86_64__)) || defined(__aarch64__) same with  https://github.com/IntelRealSense/librealsense/issues/8090#issuecomment-826164584
Edit file CMake/external_libcurl.cmake same as https://github.com/IntelRealSense/librealsense/issues/8090#issuecomment-836892782
cmake .. -DBUILD_EXAMPLES=true -DBUILD_WITH_OPENMP=false -DCMAKE_APPLE_SILICON_PROCESSOR=arm64 -DHWM_OVER_XU=false -G Xcode . I add -DCMAKE_APPLE_SILICON_PROCESSOR=arm64 because if not I got error on libusb
Open librealsense2.xcodeproj then go to Product -> Clean Build Folder then Product -> Build

And voila. Build success. But, I don't know how to test. I'm trying to do this
Go to root folder -> wrappers/nodejs and npm install. But I got error clang: error: no such file or directory: 'XXXXXXXX/wrappers/nodejs/../../build/Release/librealsense2.dylib'
In other CMAKE configurations, there is librealsense2.dylib in build folder. So I make a new folder Release and copy librealsense2.dylib. Any suggestion?

@shadowgroundz A RealSense user successfully built the Node.js wrapper with npm install on a MacOS Catalina machine in May 2021 (probably therefore an older Intel-based Mac model rather than an M1). Their case is at #9068

And anyway it looks different error with mine

I success running realsense-viewer on xcode. But I don't know how to use with nodejs, Becasu have an error when trying to npm install

node I understand very well.. I'm going to try your suggested build pattern now.   What is the node error?

node I understand very well.. I'm going to try your suggested build pattern now. What is the node error?

Thanks to try help. I got some error when npm install : clang: error: no such file or directory: 'XXXXXXXX/wrappers/nodejs/../../build/Release/librealsense2.dylib'

You have to build the bindings in the build command for node.. try to add that.

hmm I feel like running those path commands messed me up... now open ssl isn't linking.

hmm I feel like running those path commands messed me up... now open ssl isn't linking.

Hmm adjust with your own

You have to build the bindings in the build command for node.. try to add that.

I found a new error when node nodejs-capture.js in examples folder. Step to reproduce :

I build with cmake .. -DBUILD_EXAMPLES=true -DBUILD_WITH_OPENMP=false -DCMAKE_BUILD_TYPE=release -DCMAKE_APPLE_SILICON_PROCESSOR=arm64 -DHWM_OVER_XU=false -G Xcode and build with xcode
After success build with xcode, enter to /wrappers/nodejs and npm install
Enter to examples folder and npm install again
Run node nodejs-capture.js

dyld: lazy symbol binding failed: Symbol not found: _glfwInit
  Referenced from: /Users/vinzlee/Documents/IntelRealSense/testing/librealsenseV2/wrappers/nodejs/examples/node_modules/node-12-glfw-3/build/Release/glfw.node
  Expected in: flat namespace

dyld: Symbol not found: _glfwInit
  Referenced from: /Users/vinzlee/Documents/IntelRealSense/testing/librealsenseV2/wrappers/nodejs/examples/node_modules/node-12-glfw-3/build/Release/glfw.node
  Expected in: flat namespace

zsh: abort      node nodejs-capture.js

I forgot to mention, at https://dev.intelrealsense.com/docs/macos-installation-for-intel-realsense-sdk I change glfw3 at step brew install homebrew/core/glfw3 because M1 not support on M1

I forgot to mention, at https://dev.intelrealsense.com/docs/macos-installation-for-intel-realsense-sdk I change glfw3 to glfw at step brew install homebrew/core/glfw3 because M1 not support on M1

finally got it to compile following your steps.. I added to the file .. external_libcurl.cmale after line 35
<EMAIL_ADDRESS>

`

It is running pretty laggy to start however... new sleuthing to go on!

Thanks @MartyG-RealSense for continuing to follow up with me... I know I will need more help now that I'm finally using the software!

Thanks @MartyG-RealSense for continuing to follow up with me... I know I will need more help now that I'm finally using the software!

Congrats

@gschian0   It's great to hear that you got it working!
@shadowgroundz   Thanks very much for your advice to @gschian0  :)

Okay, after trial and error, finally I got the perfect step for mine (I hope can help others too). And please note my environment, different versions may cause different effects !!

Required Info

Camera Model
L515

Firmware Version
<IP_ADDRESS>

Device
Macbook Pro Apple Silicon (M1)

Operating System & Version
MacOS  11.5.2

SDK Version
2

Target Programming Language
NodeJS

NodeJS Version
14.17.3

STEP

Same as instruction at this link https://dev.intelrealsense.com/docs/macos-installation-for-intel-realsense-sdk . Make sure you install Xcode via App Store & HomeBrew running on native and make sure installed on /opt/homebrew not usr/local because usr/local running on rosetta

Install homebrew package

brew install libusb pkg-config
brew install glfw
brew install cmake

Not use brew install homebrew/core/glfw3 because not compatible in M1. Make sure all packages installed on /opt/homebrew/lib . If failed follow an instruction

Set env variable

export<EMAIL_ADDRESS>export<EMAIL_ADDRESS>export<EMAIL_ADDRESS>export<EMAIL_ADDRESS>
In my case, I use .zshrc at /Users/Username/.zshrc. So edit the file and source ~/.zshrc and make sure use path same with your installation path
4. Clone repository from git clone https://github.com/IntelRealSense/librealsense
5. Edit file src/proc/color-formats-converter.cpp and change #if defined (ANDROID) || (defined (__linux__) && !defined (__x86_64__)) to #if defined (ANDROID) || (defined (__linux__) && !defined (__x86_64__)) || defined(__aarch64__) at line 21
6. Edit file CMake/external_libcurl.cmake and add -DOPENSSL_ROOT_DIR=/opt/homebrew/opt/openssl after line 35. Once again make sure to use same path with your current path
7. Enter directory cd librealsense
8. Make folder build and enter directory with command mkdir build && cd build
9. sudo xcode-select --reset
10. cmake .. -DBUILD_EXAMPLES=true -DBUILD_WITH_OPENMP=false -DCMAKE_APPLE_SILICON_PROCESSOR=arm64 -DBUILD_NODEJS_BINDINGS=1 -DHWM_OVER_XU=false -G Xcode
11. Open librealsense2.xcodeproj on folder build with Xcode then go to Product -> Clean Build Folder then Product -> Build
12. After build finish you can try to running viewer with connect camera via USB then select realsense-viewer and click button play as picture

If you succeed running with camera, you finish to Build Native C++ librealsense on Apple Silicon M1
Running SDK with NodeJS Wrapper

After succeed make connection with camera, duplicate folder build/Debug that contain

librealsense2.2.49.dylib
librealsense2.dylib
librealsense<IP_ADDRESS>.dylib

and rename duplicated folder to Release
2. npm install / yarn install
3. Enter examples directory and npm install / yarn install and  node nodejs-capture.js
Hope with detail step can help other and @MartyG-RealSense and other Intel team can improve documentation special for Apple Silicon (M1). Feel free if you have another question

Thanks so much @shadowgroundz  for sharing your guide!  Each solution to problems that M1 users share makes it easier for other M1 users to achieve a successful build of librealsense  :)


Properties are declared ? when they're not in the openapi spec

Description
I'm unsure if this is a bug or a feature report, but:
I have a response in my API, where the open API spec looks like this:
"MyResponse": {
        "type": "object",
        "properties": {
          "id": { // <-- always has a value
            "type": "string"
          },
          "nestedObjects": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MyNestedObject"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },

MyResponse looks great in the generated typescript, however all the properties on MyNestedObject are being generated as being optional, which they're not.
"MyNestedObject": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string" // <-- id, and other props here always have a value, if the object exists in the parent
          },
          "currency": {
            "type": "string"
          },
        "additionalProperties": false
      },

This is the typescript generated:
export type MyResponse= {
    id?: string; // <-- seems optional here, but it's not
    nestedObjects?: Array<MyNestedObject> | null; // <-- ? and | null is fine here, since it is indeed not always present
};

export type MyNestedObject = {
    id?: string; // <-- always has a value
    currency?: string;  // <-- always has a value
};

Reproducible example or configuration
https://stackblitz.com/edit/hey-api-client-fetch-example
OpenAPI specification (optional)
No response
System information (optional)
No response

@rigtigeEmil This is a bug in your spec https://json-schema.org/understanding-json-schema/reference/object#required

@mrlubos oh wow, I didn't even think of that, and I'm not sure it makes sense to me, since this is the response from the API.
Everywhere that it's the request model, I think this makes good sense, but since the API is returning this model, required just seems off?

@mrlubos have you seen my comment above? I'm don't believe it's quite right to add required attributes on a model that represents the response of an endpoint. Do you think that's the best solution?

@rigtigeEmil Can you link the part of JSON Schema/OpenAPI specification that leads you to believe this?


Day 3 in nodejs, and giving up

Hopefully this will save someone else some time.  This is definitely not criticism of AWS or OTEL -- OTEL is essentially experimental, and thus AWS too.  I can't stress how much I appreciate that this work is all happening.
But, as someone coming fresh to opentelemetry: this all is a minefield.  Things are moving quickly and definitely breaking things over at otel js.  Tutorials/help docs are outdated and incorrect.  Versions and types don't line up.  😭
Personally, I'll be waiting for more stability.  It has been 3 days and I didn't even come close to getting off the ground with the embedded cloudwatch/xray+adot stuff.  But... I'm excited for the future.  Can't wait.

It's a nightmare.

@ThomasGHenry please do elaborate.

My current issue is how to record the exception against a span (asked here: https://github.com/aws-observability/aws-otel-community/discussions/418)
I noticed that the aws x-ray exporter (https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/awsxrayexporter) doesn't support the Logging pipeline yet. Correct me if I'm wrong.


Create application launcher to run custom command in taskbar panel

For example, I would like to create an application launcher (preferrably also with an icon) for "urxvt" on my taskbar panel. However, when I go to Desktop Settings > Panels and add the application launcher to the panel, it doesn't let me write a custom command; instead, it provides a list of installed applications to choose from. Is there any way of doing this?

Urxvt isnt registering itself as a XDG application because there is no .desktop file associated with the application.  That's what the panel application launcher is looking for to know what options are available.  This is also the same thing that determines if an application shows up in the application menu or not.
I just committed a graphical utility in Lumina for generating the .desktop files so that you can register applications (like urxvt) in Lumina so that they show up in the applications list as well as within any Lumina utility that gives you a list of potential applications.   That's the short term solution, run it and then move the .desktop file it creates in your home directory to /usr/local/share/applications/
You will also be able to use this utility to register custom shell scripts as a xdg application so that it'll show up in the application menu launcher.
I'm not going to close this ticket right now, Ken and I talked today about other options on how to tackle this in the future so this ticket will serve as a reminder of that.

Just to follow up with what @q5sys already said:
Long-term solution)
The best solution is for the application (or FreeBSD port) to install an application registration file when the utility is installed - that will fix it showing up on the system for all desktop environments and not just Lumina. If you want to use the utility that q5sys just committed to generate the .desktop entry and submit that to the upstream project, then I think that is the best course of action for the long-term.
Short-term solution)
The short term solution is very similar and still requires generating the .desktop file on your own system. Once that file is created, you can put it into "~/.local/share/applications" to register it locally for your user, or in "/usr/local/share/applications" to register it globally for the system.
Background)
The XDG entry specification[1] is one of the foundations of the FreeDesktop standards system and ties into all sorts of various other standards used around the system. We could write up bypasses for this standard into individual sections of the Lumina desktop, but that would just open the floodgates for introducing more hacks/bypasses into other subsystems to get around the issues that the XDG entry specification was designed to solve (associating apps with particular file types, localization, icons, etc..) so I would rather not do this unless we have no other choice.
[1] https://standards.freedesktop.org/desktop-entry-spec/latest/


Printing measurements to stdout via Rake tasks

Is there a way to make the measurement Rake tasks output results to stdout instead of a file, just as the CLI does? It looks like Yardstick::Config#output is coerced into a Yardstick::ReportOutput, which in turn coerces its target to a Pathname. I'd like to be able to just set config.output to an IO object directly.

+1

I managed to accomplish this via:
require 'yard'
require 'yaml'
require 'yardstick/rake/measurement'
require 'yardstick/rake/verify'

namespace :doc do
  yardstick_opts = YAML.load(File.read('.yardstick.yml'))
  yardstick_report = File.join('doc', 'coverage', 'report.txt')
  Yardstick::Rake::Measurement.new(:lint, yardstick_opts) do |measurement|
    measurement.output = yardstick_report
  end
  task :output_report do
    puts File.read(yardstick_report)
  end
  namespace :lint do
    Yardstick::Rake::Verify.new(:verify, yardstick_opts) do |verify|
      verify.threshold = 95
    end
  end
end

YARD::Rake::YardocTask.new(:doc) do |t|
  t.files         = ['lib/**/*.rb', 'spec/**/*_spec.rb']
  t.stats_options = ['--list-undoc']
end

Rake::Task[:'doc:lint'].enhance do
  Rake::Task[:'doc:output_report'].invoke
end

Rake::Task[:doc].enhance do
  Rake::Task[:'doc:lint'].invoke
  Rake::Task[:'doc:lint:verify'].invoke
end


GitBASH on windows throws character set not supported

$ DEBUG=1 kubectx
+ set -eou pipefail
+ IFS='
        '
+ SELF_CMD=/c/apps/Kubernetes/kubectx
+ KUBECTX=/c/Users/me/.kube/kubectx
+ main
+ [[ 0 -eq 0 ]]
+ [[ -t 1 ]]
+ [[ -z '' ]]
++ type fzf
++ echo 0
+ [[ 0 -eq 0 ]]
+ choose_context_interactive
+ local choice
++ FZF_DEFAULT_COMMAND=/c/apps/Kubernetes/kubectx
++ fzf --ansi
character set not supported
++ true
+ choice=
+ [[ -z '' ]]
+ echo 'error: you did not choose any of the options'
error: you did not choose any of the options
+ exit 1

Hmm. It looks like you have fzf installed. (Let me know if you don't.)
Can you run
FZF_DEFAULT_COMMAND=/c/apps/Kubernetes/kubectx  fzf --ansi

and
FZF_DEFAULT_COMMAND=/c/apps/Kubernetes/kubectx  fzf

I suspect one of these will fail and one won't

FZF_DEFAULT_COMMAND=/c/apps/Kubernetes/kubectx  fzf --ansi just hangs
FZF_DEFAULT_COMMAND=/c/apps/Kubernetes/kubectx  fzf
character set not supported

Does fzf alone work? (it's supposed to show files in that directory and let you choose from them)

I suspect this is some term weirdness. Thankfully we have an escape hatch for ignoring existence of fzf.
Set this in your .bashrc or .zshrc:
export KUBECTX_IGNORE_FZF=1


Is it possible to control the schema response in ASP.NET Core?

I would like to set my own response schema in the 400 Bad Request response.
e.g.
{
    "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
    "title": "One or more validation errors occurred.",
    "status": 400,
    "traceId": "00-0a4404bdf847cb8cf5f696aac649ee61-5dff3d630c7d9c63-00",
    "errors": {
        "ShownGenderOnProfile": [
            "ShownGenderOnProfile must not be empty"
        ]
    }
}

I am using the auto-validation package SharpGrip.FluentValidation.AutoValidation.Mvc.

Hi @xplatsolutions, interesting feature. Perhaps it's already possible by customizing the default problem details as explained here: https://learn.microsoft.com/en-us/aspnet/core/web-api/handle-errors?view=aspnetcore-7.0#implement-problemdetailsfactory.
Let me look into it and if it's not possible I'll integrate it into the MVC package and perhaps the Minimal APIs package.

That would be amazing if we figure it out, can be tricky but I imagine something like adding our own JSON for each error.

I just finished the initial work for a custom result factory. In your case it would work something like this:
using SharpGrip.FluentValidation.AutoValidation.Mvc.Extensions;

builder.Services.AddFluentValidationAutoValidation(configuration =>
{
    // Replace the default result factory with a custom implementation.
    configuration.OverrideDefaultResultFactoryWith<CustomResultFactory>();
});

public class CustomResultFactory : IFluentValidationAutoValidationResultFactory
{
    public IActionResult CreateActionResult(ActionExecutingContext context, ValidationProblemDetails? validationProblemDetails)
    {
        return new BadRequestObjectResult(new {Title = "Validation errors", ValidationErrors = validationProblemDetails?.Errors});
    }
}

You can return a fully custom response when the model state is invalid. You will be able to access the ValidationProblemDetails containing the validation errors and the full ActionExecutingContext. Would something like this help you?

This looks like exactly what I need to create my own custom response with all the errors! I can try it out ASAP if you want :)

Hi @xplatsolutions, I just released the v1.1.0 versions of the packages containing the option for providing a custom result factory.

I will check it out ASAP! Thanks for this one

Confirming the approach worked like a charm! Thank you

Awesome! Thanks for getting back.


Baresip places different src port in Contact header

Hello.
Can you please advice why baresip agent sends TCP Register from one src port, but in the Contact header it places another one? Please see the attached screenshot of a wireshark packet.
And I have an additional question: may the src port be configured?
Thank you in advance.

one?

the TCP source port is an ephemeral port selected by the operating system.
use the /sipstat command to show the SIP listening ports:
/sipstat
transports:
  <IP_ADDRESS>:62368 (UDP)
  <IP_ADDRESS>:63291 (TCP)
  <IP_ADDRESS>:63292 (TLS)
client transactions:
server transactions:

the SIP listening port can be configured with sip_listen directive
sip_listen             <IP_ADDRESS>:5060

For SIP over TCP the inbound request is sent via:

if SIP outbound is used, reuse the same TCP connection from client to server
otherwise server to server, use the port number in the Contact header

the SIP stack is correctly implemented.

Thanks for your reply Alfred.
My application creates several client agents, so I believe sip_listen parameter is not sutable for me as it's configured in config file right?
Is it possible to make baresip put the same port into the Contact header as the src port it opened and sends the packets from?
Different Contact and src ports produce an issue with incoming calls because user agent puts wrong port in Contact header of 200Ok response that's why ACK request from the SIP proxy is tried to be sent to the port which is not opened by user agent.

it is not possible to configure the local source port for TCP connections.
did you enable Record Routing on your SIP proxy ?
the SIP stack is listening on a single port for incoming TCP connections,
this port can easily be reused by many User-Agents.
can you please share the full SIP trace of your failing scenario?
(please use ngrep and paste the trace inline verbatim).

Hi Alfred.
Below is the SIP trace of incoming call.
Alfred I was wrong when said that baresip puts wrong port in 200Ok responce to Invite. Port in 200Ok is good, the only wrong port is in REGISTER, and looks like SIP proxy is trying to send ACK to the Contact from REGISTER.
`T 2019/09/09 07:09:40.084179 <IP_ADDRESS>:58750 -> <IP_ADDRESS>:5090 [AP]
REGISTER sip:sip.ringcentral.com SIP/2.0.
Via: SIP/2.0/TCP <IP_ADDRESS>:43233;branch=z9hG4bK8af881c7f57f5424;rport.
Contact: sip:19705303795-0x2499890@<IP_ADDRESS>:43233;transport=tcp;expires=3815.
Max-Forwards: 70.
Route: sip:sip126.ringcentral.com:5090;transport=tcp;lr.
To<EMAIL_ADDRESS>From: sip:19705303795@sip.ringcentral.com;tag=bea1e2d9db14314b.
Call-ID: e184317bbfd294c1.
CSeq: 6322 REGISTER.
User-Agent: baresip v0.6.3 (x86_64/linux).
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,NOTIFY,SUBSCRIBE,INFO,MESSAGE,REFER.
Content-Length: 0.
.
T 2019/09/09 07:09:40.091922 <IP_ADDRESS>:5090 -> <IP_ADDRESS>:58750 [AP]
SIP/2.0 100 Giving a try.
Via: SIP/2.0/TCP <IP_ADDRESS>:43233;branch=z9hG4bK8af881c7f57f5424;rport=58750.
To<EMAIL_ADDRESS>From: sip:19705303795@sip.ringcentral.com;tag=bea1e2d9db14314b.
Call-ID: e184317bbfd294c1.
CSeq: 6322 REGISTER.
Server: kamailio (5.1.1 (x86_64/linux)).
Content-Length: 0.
.
T 2019/09/09 07:09:40.095967 <IP_ADDRESS>:5090 -> <IP_ADDRESS>:58750 [AP]
SIP/2.0 401 Unauthorized.
Via: SIP/2.0/TCP <IP_ADDRESS>:43233;branch=z9hG4bK8af881c7f57f5424;rport=58750.
To: sip:19705303795@sip.ringcentral.com;tag=bf6db0a8e1b42850df523c1d97291cbe-e836.
From: sip:19705303795@sip.ringcentral.com;tag=bea1e2d9db14314b.
Call-ID: e184317bbfd294c1.
CSeq: 6322 REGISTER.
WWW-Authenticate: Digest realm="sip.ringcentral.com", nonce="XXX74F11+rR8tsxqqx6kD6hgOS703TK5".
Content-Length: 0.
.
T 2019/09/09 07:09:40.598376 <IP_ADDRESS>:58750 -> <IP_ADDRESS>:5090 [AP]
REGISTER sip:sip.ringcentral.com SIP/2.0.
Via: SIP/2.0/TCP <IP_ADDRESS>:43233;branch=z9hG4bK0984f1885e7551f8;rport.
Contact: sip:19705303795-0x2499890@<IP_ADDRESS>:43233;transport=tcp;expires=3815.
Max-Forwards: 70.
Authorization: Digest username="15932361020", realm="sip.ringcentral.com", nonce="XXX74F11+rR8tsxqqx6kD6hgOS703TK5", uri="sip:sip.ringcentral.com", response="d9e47881bbee165f60b7b510f6163924".
Route: sip:sip126.ringcentral.com:5090;transport=tcp;lr.
To<EMAIL_ADDRESS>From: sip:19705303795@sip.ringcentral.com;tag=bea1e2d9db14314b.
Call-ID: e184317bbfd294c1.
CSeq: 6323 REGISTER.
User-Agent: baresip v0.6.3 (x86_64/linux).
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,NOTIFY,SUBSCRIBE,INFO,MESSAGE,REFER.
Content-Length: 0.
.
T 2019/09/09 07:09:40.604215 <IP_ADDRESS>:5090 -> <IP_ADDRESS>:58750 [AP]
SIP/2.0 100 Giving a try.
Via: SIP/2.0/TCP <IP_ADDRESS>:43233;branch=z9hG4bK0984f1885e7551f8;rport=58750.
To<EMAIL_ADDRESS>From: sip:19705303795@sip.ringcentral.com;tag=bea1e2d9db14314b.
Call-ID: e184317bbfd294c1.
CSeq: 6323 REGISTER.
Server: kamailio (5.1.1 (x86_64/linux)).
Content-Length: 0.
.
T 2019/09/09 07:09:40.614220 <IP_ADDRESS>:5090 -> <IP_ADDRESS>:58750 [AP]
SIP/2.0 200 OK.
Via: SIP/2.0/TCP <IP_ADDRESS>:43233;branch=z9hG4bK0984f1885e7551f8;rport=58750.
To: sip:19705303795@sip.ringcentral.com;tag=77efe03e7c518d3cd3c9d0a5defcade8-ad43.
From: sip:19705303795@sip.ringcentral.com;tag=bea1e2d9db14314b.
Call-ID: e184317bbfd294c1.
CSeq: 6323 REGISTER.
Contact: sip:19705303795-0x2499890@<IP_ADDRESS>:43233;transport=tcp;expires=3600.
Content-Length: 0.
.
T 2019/09/09 07:10:10.865301 <IP_ADDRESS>:5090 -> <IP_ADDRESS>:58750 [AP]
INVITE sip:19705303795-0x2499890@<IP_ADDRESS>:43233;transport=tcp SIP/2.0.
Via: SIP/2.0/TCP <IP_ADDRESS>:5090;branch=z9hG4bKsjo3ra208oh7m33gh750.1.
Max-Forwards: 68.
User-Agent: RC_SIPWRP_22.254.
From: "Dmitry Babintsev" sip:6502654878@<IP_ADDRESS>;tag=<IP_ADDRESS>-5070-9d9d361d3f0042.
To: "Dmitry Babintsev"<EMAIL_ADDRESS>Contact: sip:6502654878@<IP_ADDRESS>:5090;transport=tcp.
Call-ID: 66799578d7704ff9be1b1b21af112955.
CSeq: 17513 INVITE.
Call-Info: <5oBGYaIK1kNctHtoqIC0RA..>;purpose=info.
Allow: SUBSCRIBE, NOTIFY, REFER, INVITE, ACK, BYE, CANCEL, UPDATE, INFO.
Supported: replaces, timer, diversion.
Session-Expires: 14400;refresher=uac.
Min-SE: 90.
Content-Type: application/sdp.
Content-Length: 531.
P-Acme-VSA: 200:5oBGYaIK1kNctHtoqIC0RA...
.
v=0.
o=-<PHONE_NUMBER>485824558<PHONE_NUMBER>466916702 IN IP4 <IP_ADDRESS>.
s=SmcSip.
c=IN IP4 <IP_ADDRESS>.
t=0 0.
m=audio 26828 RTP/AVP 8 9 0 18 96 109 111 101.
a=rtpmap:8 pcma/8000.
a=rtpmap:9 g722/8000.
a=rtpmap:0 pcmu/8000.
a=rtpmap:18 g729/8000.
a=fmtp:18 annexb=no.
a=rtpmap:96 ilbc/8000.
a=fmtp:96 mode=20.
a=rtpmap:109 OPUS/16000.
a=fmtp:109 useinbandfec=1.
a=rtcp-fb:109 ccm tmmbr.
a=rtpmap:111 OPUS/48000/2.
a=fmtp:111 useinbandfec=1.
a=rtcp-fb:111 ccm tmmbr.
a=rtpmap:101 telephone-event/8000.
a=fmtp:101 0-15.
a=sendrecv.
T 2019/09/09 07:10:10.865925 <IP_ADDRESS>:58750 -> <IP_ADDRESS>:5090 [AP]
SIP/2.0 180 Ringing.
Via: SIP/2.0/TCP <IP_ADDRESS>:5090;branch=z9hG4bKsjo3ra208oh7m33gh750.1.
From: "Dmitry Babintsev" sip:6502654878@<IP_ADDRESS>;tag=<IP_ADDRESS>-5070-9d9d361d3f0042.
To: "Dmitry Babintsev" sip:19705303795@<IP_ADDRESS>;tag=91dfd6cc9fcd60e2.
Call-ID: 66799578d7704ff9be1b1b21af112955.
CSeq: 17513 INVITE.
Server: baresip v0.6.3 (x86_64/linux).
Contact: sip:19705303795-0x2499890@<IP_ADDRESS>:58750;transport=tcp.
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,NOTIFY,SUBSCRIBE,INFO,MESSAGE,REFER.
Content-Length: 0.
.
T 2019/09/09 07:10:12.634644 <IP_ADDRESS>:58750 -> <IP_ADDRESS>:5090 [AP]
SIP/2.0 200 Answering.
Via: SIP/2.0/TCP <IP_ADDRESS>:5090;branch=z9hG4bKsjo3ra208oh7m33gh750.1.
From: "Dmitry Babintsev" sip:6502654878@<IP_ADDRESS>;tag=<IP_ADDRESS>-5070-9d9d361d3f0042.
To: "Dmitry Babintsev" sip:19705303795@<IP_ADDRESS>;tag=91dfd6cc9fcd60e2.
Call-ID: 66799578d7704ff9be1b1b21af112955.
CSeq: 17513 INVITE.
Server: baresip v0.6.3 (x86_64/linux).
Contact: sip:19705303795-0x2499890@<IP_ADDRESS>:58750;transport=tcp.
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,NOTIFY,SUBSCRIBE,INFO,MESSAGE,REFER.
Content-Type: application/sdp.
Content-Length: 341.
.
v=0.
o=- 862138928<PHONE_NUMBER> IN IP4 <IP_ADDRESS>.
s=-.
c=IN IP4 <IP_ADDRESS>.
t=0 0.
a=tool:baresip 0.6.3.
m=audio 16168 RTP/AVP 8 0 101.
a=rtpmap:8 PCMA/8000.
a=rtpmap:0 PCMU/8000.
a=rtpmap:101 telephone-event/8000.
a=fmtp:101 0-15.
a=sendrecv.
a=label:1.
a=rtcp-rsize.
a=ssrc:2832096280<EMAIL_ADDRESS>a=ptime:20.
T 2019/09/09 07:10:13.134594 <IP_ADDRESS>:58750 -> <IP_ADDRESS>:5090 [AP]
SIP/2.0 200 Answering.
Via: SIP/2.0/TCP <IP_ADDRESS>:5090;branch=z9hG4bKsjo3ra208oh7m33gh750.1.
From: "Dmitry Babintsev" sip:6502654878@<IP_ADDRESS>;tag=<IP_ADDRESS>-5070-9d9d361d3f0042.
To: "Dmitry Babintsev" sip:19705303795@<IP_ADDRESS>;tag=91dfd6cc9fcd60e2.
Call-ID: 66799578d7704ff9be1b1b21af112955.
CSeq: 17513 INVITE.
Server: baresip v0.6.3 (x86_64/linux).
Contact: sip:19705303795-0x2499890@<IP_ADDRESS>:58750;transport=tcp.
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,NOTIFY,SUBSCRIBE,INFO,MESSAGE,REFER.
Content-Type: application/sdp.
Content-Length: 341.
.
v=0.
o=- 862138928<PHONE_NUMBER> IN IP4 <IP_ADDRESS>.
s=-.
c=IN IP4 <IP_ADDRESS>.
t=0 0.
a=tool:baresip 0.6.3.
m=audio 16168 RTP/AVP 8 0 101.
a=rtpmap:8 PCMA/8000.
a=rtpmap:0 PCMU/8000.
a=rtpmap:101 telephone-event/8000.
a=fmtp:101 0-15.
a=sendrecv.
a=label:1.
a=rtcp-rsize.
a=ssrc:2832096280<EMAIL_ADDRESS>a=ptime:20.
T 2019/09/09 07:10:14.134585 <IP_ADDRESS>:58750 -> <IP_ADDRESS>:5090 [AP]
SIP/2.0 200 Answering.
Via: SIP/2.0/TCP <IP_ADDRESS>:5090;branch=z9hG4bKsjo3ra208oh7m33gh750.1.
From: "Dmitry Babintsev" sip:6502654878@<IP_ADDRESS>;tag=<IP_ADDRESS>-5070-9d9d361d3f0042.
To: "Dmitry Babintsev" sip:19705303795@<IP_ADDRESS>;tag=91dfd6cc9fcd60e2.
Call-ID: 66799578d7704ff9be1b1b21af112955.
CSeq: 17513 INVITE.
Server: baresip v0.6.3 (x86_64/linux).
Contact: sip:19705303795-0x2499890@<IP_ADDRESS>:58750;transport=tcp.
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,NOTIFY,SUBSCRIBE,INFO,MESSAGE,REFER.
Content-Type: application/sdp.
Content-Length: 341.
.
v=0.
o=- 862138928<PHONE_NUMBER> IN IP4 <IP_ADDRESS>.
s=-.
c=IN IP4 <IP_ADDRESS>.
t=0 0.
a=tool:baresip 0.6.3.
m=audio 16168 RTP/AVP 8 0 101.
a=rtpmap:8 PCMA/8000.
a=rtpmap:0 PCMU/8000.
a=rtpmap:101 telephone-event/8000.
a=fmtp:101 0-15.
a=sendrecv.
a=label:1.
a=rtcp-rsize.
a=ssrc:2832096280<EMAIL_ADDRESS>a=ptime:20.
T 2019/09/09 07:10:16.134603 <IP_ADDRESS>:58750 -> <IP_ADDRESS>:5090 [AP]
SIP/2.0 200 Answering.
Via: SIP/2.0/TCP <IP_ADDRESS>:5090;branch=z9hG4bKsjo3ra208oh7m33gh750.1.
From: "Dmitry Babintsev" sip:6502654878@<IP_ADDRESS>;tag=<IP_ADDRESS>-5070-9d9d361d3f0042.
To: "Dmitry Babintsev" sip:19705303795@<IP_ADDRESS>;tag=91dfd6cc9fcd60e2.
Call-ID: 66799578d7704ff9be1b1b21af112955.
CSeq: 17513 INVITE.
Server: baresip v0.6.3 (x86_64/linux).
Contact: sip:19705303795-0x2499890@<IP_ADDRESS>:58750;transport=tcp.
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,NOTIFY,SUBSCRIBE,INFO,MESSAGE,REFER.
Content-Type: application/sdp.
Content-Length: 341.
.
v=0.
o=- 862138928<PHONE_NUMBER> IN IP4 <IP_ADDRESS>.
s=-.
c=IN IP4 <IP_ADDRESS>.
t=0 0.
a=tool:baresip 0.6.3.
m=audio 16168 RTP/AVP 8 0 101.
a=rtpmap:8 PCMA/8000.
a=rtpmap:0 PCMU/8000.
a=rtpmap:101 telephone-event/8000.
a=fmtp:101 0-15.
a=sendrecv.
a=label:1.
a=rtcp-rsize.
a=ssrc:2832096280<EMAIL_ADDRESS>a=ptime:20.
`

Hi @dmitriybabintsev,
ACK is sent directy from<EMAIL_ADDRESS>to<EMAIL_ADDRESS>bypassing your kamailio server. You need to enable Record Routing in kamailio to prevent that.

Hi @GGGO
I don't have kamailio in my network.
<IP_ADDRESS> (user agent)  is interacting directly with <IP_ADDRESS>(sip proxy)

@dmitriybabintsev
please report the issue to your SIP provider. this is not a bug in baresip.

But how can I make baresip put the correct port in Contact header of REGISTER request?
It's unclear for me why it places a correct port into the INVITE's Contact but a wrong one into REGISTER

a client that is behind NAT can only make a TCP connection from the client
to the server. making a TCP connection from a server to NAT'ed client is not possible.
look carefully at the 200 ok response to the INVITE:
T 2019/09/09 07:10:12.634644 <IP_ADDRESS>:58750 -> <IP_ADDRESS>:5090 [AP]
SIP/2.0 200 Answering.
Contact: <sip:19705303795-0x2499890@<IP_ADDRESS>:58750;transport=tcp>.
...

the port in Contact (58750) matches the TCP traffic. This is the port that the
ACK should be sent to, if it was not record routed.
But in a NAT'ed scenario the server MUST use recording routing.
It is very clear that your provider has a very buggy setup. Please report the
issue to them and ask them to enable Record-Routing.

Alfred, I don't have NAT in this scenario.
And the question is why:
T 2019/09/09 07:09:40.084179 <IP_ADDRESS>:58750 -> <IP_ADDRESS>:5090 [AP]
REGISTER sip:sip.ringcentral.com SIP/2.0.
Via: SIP/2.0/TCP <IP_ADDRESS>:43233;branch=z9hG4bK8af881c7f57f5424;rport.
Contact: <sip:19705303795-0x2499890@<IP_ADDRESS>:43233;transport=tcp>;expires=3815.

Actual src port was 58750, but in Contact -  43233
While both ports in INVITE are correct - 58750
Network interface of the host I use to start baresip agent has the only IP:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet <IP_ADDRESS>

Actually I can reproduce such behaviour on different hosts (when baresip places different TCP port into the Contact header of REGISTER)

Hi Alfred, below is the statistics of a created TCP connection
/uanew <sip:12054849118@sip.ringcentral.com>;auth_user=XXX;auth_pass=XXX;outbound="sip:sip125.ringcentral.com:5090;transport=tcp"
Creating UA for <sip:12054849118@sip.ringcentral.com>;auth_user=XXX;auth_pass=XXX;outbound="sip:sip125.ringcentral.com:5090;transport=tcp" ...
Entering sipreg_register function...
Dialog RURI in sip_dialog_alloc: sip:sip.ringcentral.com
Setting dlg->route from routes
Sending register request...
query: function entered
query: assigning dns query handler...
query: qp is not NULL
><EMAIL_ADDRESS>      zzz

Exiting from create_ua function
request.c: Request stateless
query: function entered
query: assigning dns query handler...
query: qp is not NULL
request.c: Request stateless
<EMAIL_ADDRESS>{0/TCP/v4} 200 OK () [1 binding]
All 1 useragent registered successfully! (10198 ms)
Useragent registered successfully

/sipstat
transports:
  <IP_ADDRESS>:53318 (UDP)
  <IP_ADDRESS>:42069 (TCP)
  <IP_ADDRESS>:9 (WS)
  <IP_ADDRESS>:41421 (TLS)
  <IP_ADDRESS>:9 (WSS)
connections:
  [1]   UDP  <IP_ADDRESS>:33752 --> <IP_ADDRESS>:5090  (Established)
client transactions:
server transactions:

It seems strange to me why it shows  <IP_ADDRESS>:42069 (TCP) but the connection is marked as UDP (real is TCP):
[1]   UDP  <IP_ADDRESS>:33752

it looks like you already have the SIP over Websocket patch working :)
many people are asking for that ..

yes, I previously applied this patch

I used this patch Alfred
https://github.com/alfredh/patches/blob/master/re-sip-websock-003.patch

But one more fix is required to prevent memory leak:
in file baresip-0.6.3/src/ua.c in condition if (uag.use_wss) you need to add if (!uag.tls) before tls_alloc function call:
if (uag.use_wss) {
                if (!uag.tls) {
                        err = tls_alloc(&uag.tls, TLS_METHOD_SSLV23, NULL, NULL);
                        if (err) {
                                warning("ua: tls_alloc() failed: %m\n", err);
                                return err;
                        }
                }
               ...

it is the baresip patch that is missing. do you still have this one ?

no, that's all I have

@alfredh is this the missing patch: https://github.com/sreimers/baresip/commits/sip_websock

Thank you, Sebastian!
I have created a Wiki page for SIP over Websockets:
https://github.com/alfredh/baresip/wiki/SIP-over-Websockets

Page
https://github.com/alfredh/baresip/wiki/SIP-over-Websockets
tells:
SIP over Websockets is currently an experimental feature.

Apply this patch to libre:

It would be simpler, it this patch would be included in
https://github.com/alfredh/re

this issue became a bit off-topic ..
about the original issue: Please report the bug to your provider and
ask them to enable Record-Routing. This is not a bug in baresip.


rt-tests: init at 2.3

Description of changes
Add realtime tests suite
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Hi, @poelzi
This package will install two python modules into $(out)/lib/python/. But currently it is not work well with python3.withPackages and we cannot run the modules by running python -m hwlatdetect without manually setting PYTHONPATH to an obscure /nix/store path. Is it possible to fix this?

@peng1999 the installer is quite strange and wants to place the python script inside the site-packages. I did not think anybody will run this as a python module but only use the bin symlink installed. I will look how to fix this if running this as a python module is that
important.

@peng1999 better now ?

@poelzi Thanks for your improvement.

@poelzi It looks like you just did a wrong force-push. Could you re-apply the suggested changes?

@muscaln damn it, i messed up :-) Should be good now


Piral Extension Components do not render when used inside MudDialog

Piral extensions are not rendered inside a MudBlazor MudDialog Component.
The problem can be reproduced here:
https://github.com/luckyluggi/piral_net8_extensions
I think this might be because <MudDialogProvider /> is included in a [PiralProvider]-Component.

I don't know yet when I can have a look at this.
My assumption is that this needs to be addressed in piral-blazor.

The assumption is correct. Will be fixed in piral-blazor at version 1.6.0.


Tweet translation

As suggested in #132, I've implemented tweet translation.
Features:

Translate a tweet to the system language with a button in the button bar
Untranslate a tweet by clicking the button again on a translated tweet.

Behind the scenes:
Translation requests are sent to the libretranslate.de API.
I chose this specific Libretranslate instance because it doesn't require an API key.
Previews:
Untranslated:

Translated:

The same language as the system language:

Sorry this is taking me so long to review - I've a lot of stuff happening IRL at the moment, but I promise I'll review soon!

Would love lf translation was done from https://lingva.ml/ or checking on its code here https://github.com/TheDavidDelta/lingva-translate Libretranslate is good but as this is a twitter client lingva is a google translate client without tracking . We do know google translate is far refined than libre so until libre beats it better have lingva as I need to copy and paste on lingva as some tweets dont make sense

Would love lf translation was done from https://lingva.ml/ or checking on its code here https://github.com/TheDavidDelta/lingva-translate Libretranslate is good but as this is a twitter client lingva is a google translate client without tracking . We do know google translate is far refined than libre so until libre beats it better have lingva as I need to copy and paste on lingva as some tweets dont make sense

Awesome! I had no idea that even existed. But maybe there should be an option for using it instead of Libretranslate. Seeing as problably many of Fritters users care about software freedom.


Provide an optimized file ingestion method

Provide an optimized version of ingest_external_file_cf. It will first try to ingest files without blocking and fallback to a blocking ingestion if the optimization fails. See the comment for more details.

LGTM.


I still meet this warning "ListView is deprecated"

Hello, every contributor.
First off, I want to thanks to you all for contributing such a great UI framework using React Native.
Could you please fix this issue?
Originally I believe that it was already fixed, but I found the following code in the sources of this project.
There are more codes using ListView of ReactNative.
If I misunderstood about this issue, then please kindly let me know.
https://github.com/GeekyAnts/NativeBase/blob/2bd57b74697694a15f8db2790e6da1d8aea4a428/index.d.ts#L387

Hi @railsjack , How do you produce this warning? Kindly let us know if the warning still persists?

I am sorry, but I don't use native-base for now (used RN's FlastList instead).
I will let you know as soon as I start a new one with native-base.

we will appreciate your effort. Closing for now. Let us know once you face this warning.


WIP: Support source routing

Support below lines in desire state for configuring source routing:
route-rules:
  config:
    - ip-from: <IP_ADDRESS>/32
      ip-to: <IP_ADDRESS>/24
      priority: 30000
      route-table: 200

Coverage remained the same at ?% when pulling b35643ab8de2e49405f0ea49883b1060ea821784 on cathay4t:source_routing into 34ee4efc751816a8a6ec1f806f802c61ff1c5199 on nmstate:master.

This is not really source routing but policy-based routing using the source port, see:
https://en.wikipedia.org/wiki/Source_routing
https://en.wikipedia.org/wiki/Policy-based_routing
Please consider this when finalizing the commit message(s), docs or changelog.

This is not really source routing but policy-based routing using the source port, see:
https://en.wikipedia.org/wiki/Source_routing
https://en.wikipedia.org/wiki/Policy-based_routing
Please consider this when finalizing the commit message(s), docs or changelog.

Thanks for mentioning that.
Let me do the minimum PR with support of https://www.ovirt.org/develop/release-management/features/network/multiple-gateways.html

@EdDev Can you confirm whether above schema covers all your needs in oVirt/VDSM?
Working progress:

Done:

Schema
Implementation
Integration tests

TODO:

Unit test cases

Closing. This PR has been split in to small ones.


Compute hash as we decode

With the binary encoding we can compute the hash of sub values as we read the data.
When we start reading a value we start a new Hash. As we read the data we both feed that into the current "hashers" and into the decoder. When a value is completed we already have the hash for that value and we can just set it on the object once and for all.
@rafael-atticlabs

I think we should prefer the other direction and not only lazily compute hashes, but lazily decode values. I.e. https://github.com/attic-labs/noms/issues/2270
There are places that caching the hash of a value will matter alot, such as sorting non-scalar values for insertion into collections, but I think those should be handled specially.
@arv, can we close this?

@rafael-atticlabs I don't see how lazily decoding values changes this? I can see that if we hold on to the chunk instead of creating the value and discarding the chunks, computing the hash will be a lot cheaper since we do not need to encode the chunk again.


Don't make 14 MB download on import

Defer the download until needed -- which may never happen if you're not looking to analyze papers using internal models

Slightly modified suggestion:
@lru_cache
def download_punkt():
    nltk.download("punkt", quiet=False)

Superseded by #239

Ah sorry, was going to get to this! Will comment in the superseded PR


[screengrab] Flutter/Android: Permission denied pulling captured screenshots from the emulator

Most of the steps of Fastlane Android Screengrab work as intended: building my app in debug with the given environment parameter, building the Android tests, running the Android tests in the emulator, and storing the screenshots on the device (see logcat output below) however when Fastlane attempts to pull the screenshots from the emulator it stops polling locations after a "permission denied" error.
[20:55:07]: Pulling captured screenshots from the device
ls: /sdcard/io.outright.my_flutter_app/screengrab: No such file or directory
[20:55:07]: Exit status: 1
ls: /data/data/io.outright.my_flutter_app/app_screengrab: Permission denied
[20:55:07]: Exit status: 1
[20:55:07]: Make sure you've used Screengrab.screenshot() in your tests and that your expected tests are being run.

I have confirmed that I am using Screengrab.screenshot() in my tests and my expected tests are being run. This is from logcat of the emulator while the test ran:
... Screengrab    io.outright.my_flutter_app      D  Using screenshot storage directory: /data/user/0/io.outright.my_flutter_app/app_screengrab/en_US/images/screenshots
... Screengrab    io.outright.my_flutter_app      D  Captured screenshot "0_StartScreen.png"
... Screengrab    io.outright.my_flutter_app      D  Using screenshot storage directory: /data/user/0/io.outright.my_flutter_app/app_screengrab/en_US/images/screenshots
... Screengrab    io.outright.my_flutter_app      D  Captured screenshot "1_SetupScreen.png"
... Screengrab    io.outright.my_flutter_app      D  Using screenshot storage directory: /data/user/0/io.outright.my_flutter_app/app_screengrab/en_US/images/screenshots
... Screengrab    io.outright.my_flutter_app      D  Captured screenshot "2_GameScreen.png"
... Screengrab    io.outright.my_flutter_app      D  Using screenshot storage directory: /data/user/0/io.outright.my_flutter_app/app_screengrab/en_US/images/screenshots

Attempt to see these files with adb shows the same permission error:
$ adb shell ls /data/user/0/io.outright.my_flutter_app/app_screengrab/en_US/images/screenshots

ls: /data/user/0/io.outright.my_flutter_app/app_screengrab/en_US/images/screenshots: Permission denied

There used to be a use_adb_root parameter for Fastlane but it is now deprecated and does not work in any version since 2.0
Environment

macOS Sonoma 14.7.1
Chip Apple M1 Pro
Fastlane 2.225.0
Fastlane installed and run with ruby 3.2.2 and Bundler 2.5.22
Android Emulator running Pixel 6a API 34 with UpsideDownCake Android 14.0 arm64-v8a

Screengrabfile
app_package_name('io.outright.my_flutter_app')
use_tests_in_packages(['io.outright.my_flutter_app'])
tests_package_name('io.outright.my_flutter_app.test')

app_apk_path('../build/app/outputs/apk/debug/app-debug.apk')
tests_apk_path('../build/app/outputs/apk/androidTest/debug/app-debug-androidTest.apk')

test_instrumentation_runner 'androidx.test.runner.AndroidJUnitRunner'

locales(['en-US'])

clear_previous_screenshots(true)

Fastfile
default_platform(:android)

platform :android do

  desc "Capture screenshots"
  lane :screenshots do
    sh("flutter", "build", "apk", "--debug", "--dart-define=DEMO=true")
    build_android_app(
      task: 'assemble',
      build_type: 'AndroidTest'
    )
    capture_android_screenshots
  end

end

app/build.gradle
...

dependencies {
    testImplementation 'junit:junit:4.13.2'

    androidTestImplementation 'tools.fastlane:screengrab:2.1.1'
    androidTestImplementation 'androidx.test:runner:1.5.2'
    androidTestImplementation 'androidx.test:rules:1.5.0'
    androidTestImplementation 'androidx.test.ext:junit:1.2.1'
    androidTestImplementation "androidx.test.uiautomator:uiautomator:2.2.0"
}

Logs
$ bundle exec fastlane screenshots

[✔] 🚀
+-----------------------------------------------------------------------------------------------------+
|                                            Used plugins                                             |
+------------------------------------+---------+------------------------------------------------------+
| Plugin                             | Version | Action                                               |
+------------------------------------+---------+------------------------------------------------------+
| fastlane-plugin-versioning_android | 0.1.1   | android_get_version_code, android_get_version_name,  |
|                                    |         | android_set_version_code, android_set_version_name   |
+------------------------------------+---------+------------------------------------------------------+

[20:54:38]: ------------------------------
[20:54:38]: --- Step: default_platform ---
[20:54:38]: ------------------------------
[20:54:38]: Driving the lane 'android screenshots' 🚀
[20:54:38]: -----------------------------------------------------------------
[20:54:38]: --- Step: flutter build apk --debug --dart-define\=DEMO\=true ---
[20:54:38]: -----------------------------------------------------------------
[20:54:38]: $ flutter build apk --debug --dart-define\=DEMO\=true
[20:54:38]: ▸ Changing current working directory to: /Users/kaye375751/om/MyFlutterApp
[20:54:45]: ▸ Running Gradle task 'assembleDebug'...                              5.0s
[20:54:46]: ▸ ✓ Built build/app/outputs/flutter-apk/app-debug.apk
[20:54:46]: ---------------------------------
[20:54:46]: --- Step: assembleAndroidTest ---
[20:54:46]: ---------------------------------
[20:54:46]: $ /Users/kaye375751/om/MyFlutterApp/android/gradlew assembleAndroidTest -p .
[20:54:47]: ▸ > Task :gradle:compileJava NO-SOURCE
[20:54:47]: ▸ > Task :gradle:compileGroovy UP-TO-DATE
[20:54:47]: ▸ > Task :gradle:pluginDescriptors UP-TO-DATE
[20:54:47]: ▸ > Task :gradle:processResources UP-TO-DATE
[20:54:47]: ▸ > Task :gradle:classes UP-TO-DATE
[20:54:47]: ▸ > Task :gradle:jar UP-TO-DATE

.........many Gradle tasks.........

[20:54:50]: ▸ BUILD SUCCESSFUL in 4s
[20:54:50]: ▸ 280 actionable tasks: 1 executed, 279 up-to-date
[20:54:50]: Couldn't find any new signed apk files...
[20:54:50]: -----------------------------------------
[20:54:50]: --- Step: capture_android_screenshots ---
[20:54:50]: -----------------------------------------
[20:54:50]: Successfully loaded '/Users/kaye375751/om/MyFlutterApp/android/fastlane/Screengrabfile' 📄

+----------------------------------------------------------------------------------------------------+
|                          Detected Values from './fastlane/Screengrabfile'                          |
+-----------------------------+----------------------------------------------------------------------+
| app_package_name            | io.outright.my_flutter_app                                      |
| use_tests_in_packages       | ["io.outright.my_flutter_app"]                                  |
| tests_package_name          | io.outright.my_flutter_app.test                                 |
| app_apk_path                | ../build/app/outputs/apk/debug/app-debug.apk                         |
| tests_apk_path              | ../build/app/outputs/apk/androidTest/debug/app-debug-androidTest.apk |
| test_instrumentation_runner | androidx.test.runner.AndroidJUnitRunner                              |
| locales                     | ["en-US"]                                                            |
| clear_previous_screenshots  | true                                                                 |
+-----------------------------+----------------------------------------------------------------------+

[20:54:50]: The `aapt` command could not be found relative to your provided ANDROID_HOME at /Users/kaye375751/Library/Android/sdk
[20:54:50]: Please ensure that the Android SDK is installed and you have the build tools downloaded

+----------------------------------------------------------------------------------------------------+
|                                    Summary for screengrab 1.0.0                                    |
+-----------------------------+----------------------------------------------------------------------+
| android_home                | /Users/kaye375751/Library/Android/sdk                                |
| locales                     | ["en-US"]                                                            |
| clear_previous_screenshots  | true                                                                 |
| output_directory            | fastlane/metadata/android                                            |
| skip_open_summary           | false                                                                |
| app_package_name            | io.outright.my_flutter_app                                      |
| tests_package_name          | io.outright.my_flutter_app.test                                 |
| use_tests_in_packages       | ["io.outright.my_flutter_app"]                                  |
| test_instrumentation_runner | androidx.test.runner.AndroidJUnitRunner                              |
| ending_locale               | en-US                                                                |
| app_apk_path                | ../build/app/outputs/apk/debug/app-debug.apk                         |
| tests_apk_path              | ../build/app/outputs/apk/androidTest/debug/app-debug-androidTest.apk |
| device_type                 | phone                                                                |
+-----------------------------+----------------------------------------------------------------------+

[20:54:50]: Clearing phoneScreenshots within fastlane/metadata/android
[20:54:50]: $ adb devices -l
[20:54:51]: ▸ List of devices attached
[20:54:51]: ▸ emulator-5554          device product:sdk_gphone64_arm64 model:sdk_gphone64_arm64 device:emu64a transport_id:2
[20:54:51]: $ adb -s emulator-5554 shell echo \$EXTERNAL_STORAGE
[20:54:51]: ▸ /sdcard
[20:54:51]: Cleaning screenshots on device
ls: /sdcard/io.outright.my_flutter_app/screengrab: No such file or directory
[20:54:51]: Exit status: 1
ls: /data/data/io.outright.my_flutter_app/app_screengrab: No such file or directory
[20:54:51]: Exit status: 1
[20:54:51]: The `aapt` command could not be found on your system, so your app APK could not be validated
[20:54:51]: Installing app APK
[20:54:51]: $ adb -s emulator-5554 install -r ../build/app/outputs/apk/debug/app-debug.apk
[20:54:51]: ▸ Performing Streamed Install
[20:54:52]: ▸ Success
[20:54:52]: Installing tests APK
[20:54:52]: $ adb -s emulator-5554 install -r ../build/app/outputs/apk/androidTest/debug/app-debug-androidTest.apk
[20:54:52]: ▸ Performing Streamed Install
[20:54:52]: ▸ Success
[20:54:52]: Granting the permission necessary to change locales on the device
[20:54:52]: $ adb -s emulator-5554 shell pm grant io.outright.my_flutter_app android.permission.CHANGE_CONFIGURATION
[20:54:52]: $ adb -s emulator-5554 shell getprop ro.build.version.sdk
[20:54:52]: ▸ 34
[20:54:52]: Granting the permissions necessary to access device external storage
[20:54:52]: $ adb -s emulator-5554 shell pm grant io.outright.my_flutter_app android.permission.WRITE_EXTERNAL_STORAGE
[20:54:52]: $ adb -s emulator-5554 shell pm grant io.outright.my_flutter_app android.permission.READ_EXTERNAL_STORAGE
[20:54:52]: Running tests for locale: en-US
[20:54:52]: $ adb -s emulator-5554 shell am instrument --no-window-animation -w \
-e testLocale en_US \
-e endingLocale en_US \
-e package io.outright.my_flutter_app \
io.outright.my_flutter_app.test/androidx.test.runner.AndroidJUnitRunner
[20:55:00]: ▸ io.outright.my_flutter_app.ScreengrabTest:s_glBindAttribLocation: bind attrib 0 name position
[20:55:00]: ▸ s_glBindAttribLocation: bind attrib 1 name color
[20:55:00]: ▸ s_glBindAttribLocation: bind attrib 2 name localCoord
[20:55:07]: ▸ .
[20:55:07]: ▸ Time: 13.232
[20:55:07]: ▸ OK (1 test)
[20:55:07]: Pulling captured screenshots from the device
ls: /sdcard/io.outright.my_flutter_app/screengrab: No such file or directory
[20:55:07]: Exit status: 1
ls: /data/data/io.outright.my_flutter_app/app_screengrab: Permission denied
[20:55:07]: Exit status: 1
[20:55:07]: Make sure you've used Screengrab.screenshot() in your tests and that your expected tests are being run.
+-----------------------------------------------------------+
|                       Lane Context                        |
+-------------------------------------+---------------------+
| DEFAULT_PLATFORM                    | android             |
| PLATFORM_NAME                       | android             |
| LANE_NAME                           | android screenshots |
| GRADLE_BUILD_TYPE                   | AndroidTest         |
| GRADLE_ALL_APK_OUTPUT_PATHS         | []                  |
| GRADLE_ALL_AAB_OUTPUT_PATHS         | []                  |
| GRADLE_ALL_OUTPUT_JSON_OUTPUT_PATHS | []                  |
| GRADLE_ALL_MAPPING_TXT_OUTPUT_PATHS | []                  |
+-------------------------------------+---------------------+
[20:55:07]: Called from Fastfile at line 62
[20:55:07]: ```
[20:55:07]:     60:           build_type: 'AndroidTest'
[20:55:07]:     61:         )
[20:55:07]:  => 62:         capture_android_screenshots
[20:55:07]:     63:         upload_to_play_store
[20:55:07]:     64:       end
[20:55:07]: ```
[20:55:07]: No screenshots were detected 📷❌

+--------------------------------------------------------------------------+
|                             fastlane summary                             |
+------+-----------------------------------------------------+-------------+
| Step | Action                                              | Time (in s) |
+------+-----------------------------------------------------+-------------+
| 1    | default_platform                                    | 0           |
| 2    | flutter build apk --debug --dart-define\=DEMO\=true | 7           |
| 3    | assembleAndroidTest                                 | 4           |
| 💥   | capture_android_screenshots                         | 16          |
+------+-----------------------------------------------------+-------------+

[20:55:07]: fastlane finished with errors

[!] No screenshots were detected 📷❌

I suspect the problem is related to this message in the logs:

The aapt command could not be found relative to your provided ANDROID_HOME?

But I've been having a hell of a time getting that fixed. I do in fact have aapt at the path they specify, /Users/kaye375751/Library/Android/sdk  -- it's in a folder called /Users/kaye375751/Library/Android/sdk/build-tools/34.0.0 and I even tried copying it into the root of /Users/kaye375751/Library/Android/sdk/build-tools


ALWAYS GET SYSTEM DATA DURING INIT

Instead of assuming when system data might be needed, just get it always on init. Will make future adaptions also easier since assumptions don't need to be revisited.

Introduced for solving Issue #9


Error when I run a build

Hi guys, how's it going?
So, when I'm building my production site, it's showing the following error:
./node_modules/ngx-isr/fesm2015/ngx-isr.mjs:666:37-47 - Error: export 'catchError' (imported as 'catchError') was not found in 'rxjs' (possible exports: ArgumentOutOfRangeError, AsyncSubject, BehaviorSubject, ConnectableObservable, EMPTY, EmptyError, GroupedObservable, NEVER, Notification, NotificationKind, ObjectUnsubscribedError, Observable, ReplaySubject, Scheduler, Subject, Subscriber, Subscription, TimeoutError, UnsubscriptionError, VirtualAction, VirtualTimeScheduler, animationFrame, animationFrameScheduler, asap, asapScheduler, async, asyncScheduler, bindCallback, bindNodeCallback, combineLatest, concat, config, defer, empty, forkJoin, from, fromEvent, fromEventPattern, generate, identity, iif, interval, isObservable, merge, never, noop, observable, of, onErrorResumeNext, pairs, partition, pipe, queue, queueScheduler, race, range, scheduled, throwError, timer, using, zip
As far as I could see, I follow steps correctly. Nevertheless, this error's happening.
I appreciate your attention.

I forgot to say. My Angular version is 14.2.2

Hello @baucosta
This is an issue with the rxjs version you're using. The plugin is using   "rxjs": "~7.5.5",
so probably you're in an older version and that's what is happening.
Probably I should add rxjs to peerDependencies.
Can you test with a new version of rxjs and let me know?

Hi @eneajaho . Thanks for your help.
It worked, very good.
I'd like to  thank you guys for this lib. It'll help us so much, rss.
Best regards

Hi @baucosta
Please, let us know for any inconvenience, or issue or things we can improve.
Thanks.


Add translation policy on API error msg

Record Zulip's translation policy on API error messages
This was discussed at CZO but not recorded in documentation.
When I was working on a translation I had the same question

Testing plan:
GIFs or screenshots:

Merged, after tweaking the text a bit, thanks @legopin!

Merged, after tweaking the text a bit, thanks @legopin!


Possible DAO HF impl for reference

This supersedes #382 after #373 was finished.

There should be tests for this PR!


institution_id registration of CMCC

institution_id = CMCC
institution = Fondazione Centro Euro-Mediterraneo sui Cambiamenti Climatici, Italy

@escoccimarro your CMCC institution_id is now revised to the correct identifier. Please review the information at CMIP6_institution_id.html and let me know if any amendments are required.


Bug: Contributor Insight selection does not reflect selected

Describe the bug

Steps to reproduce
Add 2 contributors to an insight, uncheck one.

.take


Syntax Highlighting for HTML, CSS, JS, XML, JSON and SVG

Sorry for the delays, I am kinda busy with travelling these days...
So yeah, this PR adds syntax highlighting to the responses powered by Prism.
It looks at the returned content-type and applies the equivalent highlighting...
Well, I had to change a bit in the way how the responses are rendered, it relies on a property (responseHtml) now to render the raw html into the response box. Also, since textarea doesn't allow formatting, when an unsupported MIME type is returned, it defaults to the old textarea based layout but when a supported mime is returned, instead the content is rendered within a code tag inside a pre tag (ie,
{{ content }}
).
There are some stuff we will lose like the stretching textarea and stuff, and if there are no line breaks, the content box keeps expanding even out of the viewport. Someone should like update this PR with the ability to have proper overflow handling (I kinda don't want to work with the CSS on that one).

Hey @AndrewBastin,
Your changes look good to me!
View build log
TravisBuddy Request Identifier: 11b636c0-c97d-11e9-9f48-711252adc810

Report
what works:

HTML syntax highlighting
JSON syntax highlighting
JS syntax highlighting
CSS syntax highlighting
(prolly xml,css,svg too)

what does't works:

responsive UI is broken
copyResponse() is broken
preview HTML is broken

:point_up_2: even though syntax highlighting works, HTML tags are trimmed at unusual points such as closing tags and all.

Report
what works:
* HTML syntax highlighting

* JSON syntax highlighting

* JS syntax highlighting

* CSS syntax highlighting

* (prolly xml,css,svg too)

what does't works:
* responsive UI is broken

* copyResponse() is broken

* preview HTML is broken

I will work on the copy response and the preview HTML bugs, I am not really fluent in CSS stuff for doing proper overflow handling... So peeps with the knowledge please send a PR to my repo and help me out.

I'll take a look at the CSS when I get home, that's no problem! I can also add draggable resizing ability (or maybe we should do show more/show less instead?).
I think rather than juggling two layouts (which adds more points of potential failure) we should just change it over to the pre unilaterally.
I've already done that for the websocket page as I had to add message formatting to make it readable.

+1 for

I'll take a look at the CSS when I get home, that's no problem! I can also add draggable resizing ability (or maybe we should do show more/show less instead?).
I think rather than juggling two layouts (which adds more points of potential failure) we should just change it over to the pre unilaterally.
I've already done that for the websocket page as I had to add message formatting to make it readable.

I think so too, I just kept it there because I felt like the behaviour shouldn't affect unsupported MIME types, mostly just for the resizable stuff... That's mostly it.... I too support the move to  tag completely...
By the way, can someone report whether the copy response works on IE10 ? I don't use Windows so I can't check if so... Else, I have to move from the hack and use a hidden textarea with the content and run copy from there...

I'll take a look at the CSS when I get home, that's no problem! I can also add draggable resizing ability (or maybe we should do show more/show less instead?).
I think rather than juggling two layouts (which adds more points of potential failure) we should just change it over to the pre unilaterally.
I've already done that for the websocket page as I had to add message formatting to make it readable.

I think so too, I just kept it there because I felt like the behaviour shouldn't affect unsupported MIME types, mostly just for the resizable stuff... That's mostly it.... I too support the move to tag completely...
By the way, can someone report whether the copy response works on IE10 ? I don't use Windows so I can't check if so... Else, I have to move from the hack and use a hidden textarea with the content and run copy from there...

Report
what works:
* HTML syntax highlighting

* JSON syntax highlighting

* JS syntax highlighting

* CSS syntax highlighting

* (prolly xml,css,svg too)

what does't works:
* responsive UI is broken

* copyResponse() is broken

* preview HTML is broken

I don't think the Preview HTML problem is related to my code as far as I can see, the code doesn't depend on the syntax highlighter div or anything and I have made sure that response.body property is never touched by the syntax highlighting code, the togglePreview() function doesn't even refer to any of my code.

Preview HTML covers up the textarea, so it may be a change to the HTML structure that caused it?

Oh I just checked the code - if I understand it correctly - a fix for the responsive UI issue is changing the style for the pre tags to include white-space: pre-wrap.

Oh I just checked the code, a fix for the responsive UI issue is changing the style for the pre tags to include white-space: pre-wrap;.
Alternatively, I guess you can just make it scrollable by changing it to overflow: auto;?

The white-space stuff didn't work, the overflow: auto option I tried before, but it didn't work, we have to give a fixed width for that to work....
I am kinda busy with some travel stuff right now, so I will be a bit slow to respond to stuff, sorry...

Report
what works:
* HTML syntax highlighting

* JSON syntax highlighting

* JS syntax highlighting

* CSS syntax highlighting

* (prolly xml,css,svg too)

what does't works:
* responsive UI is broken

* copyResponse() is broken

* preview HTML is broken

Btw, I just checked, preview HTML isn't broken, well it might have been some bug with dev.to which didn't make it render properly with our weird stretched out viewport :man_shrugging:
It is rendering fine now....

Let me run some tests once again

If you need a fixed width, off the top of my head I think you can try wrapping the response in a div that's display: block; position: relative; and then making it width: 100%;, but if that doesn't work I'll play around with it.

If you need a fixed width, off the top of my head I think you can try wrapping the response in a div that's display: block; position: relative; and then making it width: 100%;, but if that doesn't work I'll play around with it.

I tried it, by adding a max-width (75vw, or 85 rem), max-height and scroll to pre , but doesn't work very well with view port width 720 - 1200 ... cannot use percentage, cause the HTML thing is wildly long, and none of the parents has a fixed width ...


Add more html ,css ,javascript projects

Add folder in this repository with HTML CSS javascript

Add folder in this repository with HTML CSS javascript

Can I add my calculator project in this? Please assigned me this.

yes u can pls do it and star this repo and follow me bro

please assign this to me.

@AnushkaSingh1 you can send ur PR to me and  pls star this repo and follow me


feat: asio as interface library, option to enable/disable deprecated …

Part of PR #17
Fix #16
asio as interface library, option to enable/disable deprecated asio functions, default asio version as asio-1-31-0 and avoid re-including cpm if already initiliazed

@OlivierLDff asio is now an interface library and therefore the target asio does not exists anymore. Build only examples in CI?

Again can we split this PR,

the CPM_INITIALIZED thing can fit in its own PR for fast merging.
The new option about deprecated asio stuff can also be in a separate PR
Updating default asio is a separate PR
Updating PackageProject and using the lartian upstream is a PR
We can have a general PR with renovation about the license year (we can even remove it), and all the cosmetic stuff that don't change anything.

Then we can discuss the interface vs static library. In general I think we don't want to change how asio is created as a static library, with source pre-compiled. Then we can add a CMake option to use ASIO as a pure interface. Maybe I'm missing a point, but tell me why using an interface would always be better?

PR #29
Waiting other PR to be merged
PR #30
PR #31
What is missing other than finishing CMakeLists.txt?
We have the GitHub workflow that automatically create a PR to update the license year on 1st January

Asio is an header only library and therefore should be an INTERFACE library similarly to nlohmann/json.
Moreover almost every snippet (e.g. from CPM's asio-standalone) or example on how to use Asio (standalone) with CMake defines it as an INTERFACE library.

I understand the fact you need/want INTERFACE library, but at the moment this project is building asio with ASIO_SEPARATE_COMPILATION.
I'm ok to add support for interface library, but the default way this project behave shouldn't change.
I suggest adding an option ASIO_SEPARATE_COMPILATION that is default to ON and then deal with the logic to support both. Like that user can choose which variants he wants.
Most example show the header only inclusion because it's easier to configure. The main goal of this repo was to take care of the "complex" so it's easy to add a compiled asio version to your project.
So if you go with the option way, please also update CI to test both cases

@OlivierLDff What do you think if we add a boolean option (e.g. ASIO_SEPARATE_COMPILATION):

If false, build asio as an INTERFACE library.
If true, build the library as a STATIC library (if BUILD_SHARED_LIBS is not defined or false). Otherwise build the library as a SHARED library defining also ASIO_DYN_LINK.

Le me know what you think.
Nevertheless, I think the default behavior should be INTERFACE library since asio is known to be a header only library. If someone want/know that it can be built as a STATIC/SHARED must opt-in.

Create a first PR to introduce ASIO_SEPARATE_COMPILATION. I don't want to change the default behavior of the project. Default values are part of the "public API" of the repo. Changing a default would be breaking change and we definitely don't want that over the argument that example of asio usage are using the library as a header only library.
Another PR can follow with ASIO_DYN_LINK, same static library as default should be maintained and a new ASIO_DYN_LINK can be introduced with default value BUILD_SHARED_LIBS

Please see PR https://github.com/OlivierLDff/asio.cmake/pull/35


QR CODE has been invalid in the Readme.md

QR CODE has been invalid in the readme.md, how can I enter the React Chinese group~

添加印记中文小助手（docschina-bot），添加成功后，回复 react 即可


Fixing dependabot

Updating milestone for 1.5
Using different name for spring boot

Thanks a lot @spikymonkey!


bumped react-native & react-navigation

react-native => 0.57.7
react-navigation => 3.0.0

:tada: This PR is included in version 1.1.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[WIP] Support Node.js Execution Environment for SSX

Description
This adds support for signers in the node execution environment (such as ethers) instead of assuming a browser environment. It also adds an example in node. This addresses #83
Type

[x] New feature (non-breaking change which adds functionality)

Diligence Checklist
(Please delete options that are not relevant)

[x] This change requires a documentation update
[ ] I have included unit tests
[ ] I have updated and/or included new integration tests
[ ] I have updated and/or included new end-to-end tests
[x] I have performed a self-review of my code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Closing for now. We are overhauling ssx and adding support for node as part of this. Part of the challenge for this PR has to do this have to do with the wasm bundle we use, it's build for the browser to be able to be consumed by downstream packages. Adding support for node is nontrivial and we are going to do this while we update our wasm and rust bundling process for ssx-rs.


Pining provider Due to regresion

what

Provider regression disable anonymous github access

why

Test are failing due to missing credential

references

https://github.com/terraform-providers/terraform-provider-github/pull/464

/test all