bambu-studio: init at unstable-2023-01-11

Description of changes

BambuStudio is a slicer for 3D printers made by Bambu Lab, based on PrusaSlicer.
This isn't ready to be merged yet. There are still missing functionalities in the Linux version (e.g., camera livestream) and the slicer sometimes crashes upon startup. Previously building the package with libraries shipped by Nixpkgs required some invasive patches which have since been merged. Upstream has promised better Linux support so let's wait a bit. (camera stream is now working and slicer no longer crashes intermittently)
The last commit is bandaid from #206221. I will remove it once the mpfr fixes land in master. (done)
Ref: https://github.com/bambulab/BambuStudio/issues/12
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/)
23.05 Release Notes (or backporting 22.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.

Thanks to the amazing work by @jwise in https://github.com/bambulab/BambuStudio/pull/1053 and https://github.com/bambulab/BambuStudio/pull/1045, we can use the EGL-enabled version of wxWidgets and the camera stream is now working. I've also added a fix for the intermittent crash and this seems ready to be merged.

@zhaofengli What's the intermittent crash fix?  I know there's at least one I've been tracking.  Should we upstream it?

For some reason, glew sometimes isn't initialized correctly and __glewGenBuffers is NULL. We link dynamically in nixpkgs - The upstream setup links statically which doesn't seem to cause issues.
It dies here (see backtrace below):
   0x0000000000f1e6b9 <+25>:    push   %rbx
   0x0000000000f1e6ba <+26>:    mov    %rsi,%rbx
   0x0000000000f1e6bd <+29>:    lea    0x4(%rsi),%rsi
   0x0000000000f1e6c1 <+33>:    call   *(%r14)
=> 0x0000000000f1e6c4 <+36>:    mov    0xf7f4fd(%rip),%rbp        # 0x1e9dbc8
   0x0000000000f1e6cb <+43>:    mov    0x4(%rbx),%esi
   0x0000000000f1e6ce <+46>:    mov    $0x8892,%edi
(gdb) x $r14
0x7ffff0f12bf8 <__glewGenBuffers>:      0x00000000

Backtrace of segfault
At this point wxGetApp().init_opengl() was just called (see frame 8).
#0  0x0000000000000000 in ?? ()
#1  0x0000000000f1e6c4 in Slic3r::GUI::GLModel::send_to_gpu (this=<optimized out>, data=...,
    vertices=std::vector of length 900, capacity 900 = {...}, indices=std::vector of length 150, capacity 150 = {...})
    at /build/source/src/slic3r/GUI/GLModel.cpp:315
#2  0x0000000000f1eb94 in Slic3r::GUI::GLModel::init_from (this=0x4603560, its=..., bbox=...)
    at /build/source/src/slic3r/GUI/GLModel.cpp:106
#3  0x0000000000f1f441 in Slic3r::GUI::GLModel::init_from (this=this@entry=0x4603560, its=...)
    at /build/source/src/slic3r/GUI/GLModel.cpp:112
#4  0x0000000000eb0faa in Slic3r::GUI::GLGizmoBase::GLGizmoBase (this=this@entry=0x4603490, parent=..., icon_filename="toolbar_move.svg",
    sprite_id=sprite_id@entry=0) at /build/source/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp:164
#5  0x0000000000eb24bf in Slic3r::GUI::GLGizmoMove3D::GLGizmoMove3D (this=this@entry=0x4603490, parent=...,
    icon_filename="toolbar_move.svg", sprite_id=sprite_id@entry=0, obj_manipulation=obj_manipulation@entry=0x37ddfb0)
    at /build/source/src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:32
#6  0x0000000000ea7365 in Slic3r::GUI::GLGizmosManager::init (this=this@entry=0x37ddda8)
    at /build/source/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:189
#7  0x0000000000e7503c in Slic3r::GUI::GLCanvas3D::init (this=0x37ddc00) at /build/source/src/slic3r/GUI/GLCanvas3D.cpp:1220
#8  0x0000000000fa2202 in Slic3r::GUI::GUI_App::post_init (this=0x24505e0) at /build/source/src/slic3r/GUI/GUI_App.cpp:1025
#9  0x00007ffff0d30e96 in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) ()
   from /nix/store/83gnq2f6h1jw2n7fndjjfgf50gf4894i-wxwidgets-3.1.5/lib/libwx_baseu-3.1.so.5
#10 0x00007ffff0d311d6 in wxEvtHandler::SearchDynamicEventTable(wxEvent&) ()
   from /nix/store/83gnq2f6h1jw2n7fndjjfgf50gf4894i-wxwidgets-3.1.5/lib/libwx_baseu-3.1.so.5
#11 0x00007ffff0d31340 in wxEvtHandler::TryHereOnly(wxEvent&) ()
   from /nix/store/83gnq2f6h1jw2n7fndjjfgf50gf4894i-wxwidgets-3.1.5/lib/libwx_baseu-3.1.so.5
#12 0x00007ffff0d313eb in wxEvtHandler::ProcessEventLocally(wxEvent&) ()
   from /nix/store/83gnq2f6h1jw2n7fndjjfgf50gf4894i-wxwidgets-3.1.5/lib/libwx_baseu-3.1.so.5
#13 0x00007ffff0d31491 in wxEvtHandler::ProcessEvent(wxEvent&) ()
   from /nix/store/83gnq2f6h1jw2n7fndjjfgf50gf4894i-wxwidgets-3.1.5/lib/libwx_baseu-3.1.so.5
#14 0x00007ffff0c150f8 in wxAppConsoleBase::ProcessIdle() ()
   from /nix/store/83gnq2f6h1jw2n7fndjjfgf50gf4894i-wxwidgets-3.1.5/lib/libwx_baseu-3.1.so.5
#15 0x00007ffff07d7724 in wxAppBase::ProcessIdle() ()
   from /nix/store/83gnq2f6h1jw2n7fndjjfgf50gf4894i-wxwidgets-3.1.5/lib/libwx_gtk3u_core-3.1.so.5
#16 0x00007ffff0717aa9 in wxApp::DoIdle() ()
   from /nix/store/83gnq2f6h1jw2n7fndjjfgf50gf4894i-wxwidgets-3.1.5/lib/libwx_gtk3u_core-3.1.so.5
#17 0x00007ffff0717b83 in wxapp_idle_callback ()
   from /nix/store/83gnq2f6h1jw2n7fndjjfgf50gf4894i-wxwidgets-3.1.5/lib/libwx_gtk3u_core-3.1.so.5
#18 0x00007fffee06a8e4 in g_main_context_dispatch () from /nix/store/61qy7d70070djqcg135l22v18a5py758-glib-2.74.3/lib/libglib-2.0.so.0
#19 0x00007fffee06ac88 in g_main_context_iterate.constprop ()
   from /nix/store/61qy7d70070djqcg135l22v18a5py758-glib-2.74.3/lib/libglib-2.0.so.0
#20 0x00007fffee06af73 in g_main_loop_run () from /nix/store/61qy7d70070djqcg135l22v18a5py758-glib-2.74.3/lib/libglib-2.0.so.0
#21 0x00007fffee9c23c5 in gtk_main () from /nix/store/rv6nydaizz3n8s3l3jv6pss0pzxn3yzm-gtk+3-3.24.35/lib/libgtk-3.so.0
#22 0x00007ffff0727c65 in wxGUIEventLoop::DoRun() ()
   from /nix/store/83gnq2f6h1jw2n7fndjjfgf50gf4894i-wxwidgets-3.1.5/lib/libwx_gtk3u_core-3.1.so.5
#23 0x00007ffff0c3f37d in wxEventLoopBase::Run() ()
   from /nix/store/83gnq2f6h1jw2n7fndjjfgf50gf4894i-wxwidgets-3.1.5/lib/libwx_baseu-3.1.so.5
#24 0x00007ffff0c1491b in wxAppConsoleBase::MainLoop() ()
   from /nix/store/83gnq2f6h1jw2n7fndjjfgf50gf4894i-wxwidgets-3.1.5/lib/libwx_baseu-3.1.so.5
#25 0x00007ffff0c81eb6 in wxEntry(int&, wchar_t**) ()
   from /nix/store/83gnq2f6h1jw2n7fndjjfgf50gf4894i-wxwidgets-3.1.5/lib/libwx_baseu-3.1.so.5
#26 0x0000000000f6e46b in Slic3r::GUI::GUI_Run (params=...) at /build/source/src/slic3r/GUI/GUI_Init.cpp:64
#27 0x00000000007a8f1b in Slic3r::CLI::run (this=0x7fffffffb9c0, argc=<optimized out>, argv=<optimized out>)
    at /build/source/src/BambuStudio.cpp:452
#28 0x0000000000763255 in main (argc=<optimized out>, argv=<optimized out>) at /build/source/src/BambuStudio.cpp:2625

Oh, this is the crash where things go wrong if the window doesn't have focus?
You definitely should not be linking dynamically against an external GLEW, unless you are specifying that it is an EGL GLEW (or that the EGLness of the GLEW, anyway, is the same as the EGLness of the wxWidgets).  GLEW can either be built as EGL or GLX, but not both at the same time.  It is much better to use the vendored GLEW, for this reason.
Note also that if you are linking against an external wxWidgets, there are at least some BBS-specific patches to wxWidgets in their tree, too, which is why they build that statically...

This package is indeed specified to use the EGL version of GLEW and a special version of wxWidgets with WebRequests and private fonts enabled.[^1] When you specify a dependency, the resulting executables have their runpaths pinned to that specific version of dependency (e.g., /nix/store/83gnq2f6h1jw2n7fndjjfgf50gf4894i-wxwidgets-3.1.5). Everything is pinned and global libraries simply do not exist (no /lib or /usr/lib).
You can curl.overrideAttrs ({ patches ? [], ... } { patches = patches ++ [ ./my.patch ]; }) and it evaluates to a patched version of curl that gets installed to a path that doesn't affect any other curl in the system. It's all functional and I invite you to give it a try :smile:
Because each build happens in a clean sandbox without network access, it's difficult to use the vendored deps and we generally avoid doing so unless necessary. Regarding the wxWidgets patches, I don't immediately see a need from a quick glance but if we do, we can easily add them (see example above).
[^1]: Yes, I do need to remove the commented out withEGL = false override...

I'm running on latest nixos-unstable and I'm building/launching bambu-studio via
nix shell github:zhaofengli/nixpkgs/bambu-studio#bambu-studio
bambu-studio

Which starts-up (flashes open on my screen) and then crashes in the same moment.
As you might see on the video recording, you notice that the UI almost presents completely up until around these errors:
screencast.webm
(bambu-studio:8781): Gtk-CRITICAL **: 16:38:44.084: gtk_widget_set_size_request: assertion 'width >= -1' failed
libEGL warning: MESA-LOADER: failed to open radeonsi: /nix/store/wprxx5zkkk13hpj6k1v6qadjylh3vq9m-gcc-11.3.0-lib/lib/libstdc++.so.6: version
`GLIBCXX_3.4.30' not found (required by /nix/store/yvcnhajqbwcq35vpnsm1waw557dxcn5v-llvm-15.0.7-lib/lib/libLLVM-15.so) (search paths /run/ope
ngl-driver/lib/dri, suffix _dri)

libEGL warning: MESA-LOADER: failed to open swrast: /nix/store/wprxx5zkkk13hpj6k1v6qadjylh3vq9m-gcc-11.3.0-lib/lib/libstdc++.so.6: version `G
LIBCXX_3.4.30' not found (required by /nix/store/yvcnhajqbwcq35vpnsm1waw557dxcn5v-llvm-15.0.7-lib/lib/libLLVM-15.so) (search paths /run/openg
l-driver/lib/dri, suffix _dri)

EGLDisplay Initialization failed: EGL_NOT_INITIALIZED
Cannot create EGL context: invalid display (last error: EGL_SUCCESS)

(bambu-studio:8781): Gtk-CRITICAL **: 16:38:44.229: gtk_gesture_zoom_new: assertion 'GTK_IS_WIDGET (widget)' failed

I've rebased your branch to latest nixos-unstable and added some gcc-unwrapped as a dependency which is similarish to here, not sure if that was the cause but it builds now.
Also since they've just released the 1.5 Beta version, I gave building this a shot and it seems to be working.
Only issue right now is the error "Media playback error: Could not open audio device for playback." when I'm trying to start the webcam.

I've rebased your branch to latest nixos-unstable and added some gcc-unwrapped as a dependency which is similarish to here, not sure if that was the cause but it builds now.
Also since they've just released the 1.5 Beta version, I gave building this a shot and it seems to be working. 86286f4

Thanks! I've added the fix to the PR and bumped the version.

Only issue right now is the error "Media playback error: Could not open audio device for playback." when I'm trying to start the webcam.

Hmm, everything seems to be working fine for me with Pipewire.

I've also built https://github.com/SoftFever/BambuStudio-SoftFever, which supports other printers + several calibration gcode generators.
Might also be worth  packaging the @SoftFever version as it looks quite useful.
There is a known bug showing up, that's also affecting their app-image version and I've created a separate report for that https://github.com/SoftFever/BambuStudio-SoftFever/issues/442
diff --git a/pkgs/applications/misc/bambu-studio/default.nix b/pkgs/applications/misc/bambu-studio/default.nix
index 5ffceb22fd..acb2a0fb8b 100644
--- a/pkgs/applications/misc/bambu-studio/default.nix
+++ b/pkgs/applications/misc/bambu-studio/default.nix
@@ -50,14 +50,15 @@ let
   });
 in
 stdenv.mkDerivation rec {
-  pname = "bambu-studio";
-  version = "<IP_ADDRESS>";
+  pname = "bambu-studio-softfever";
+  version = "1.4.5";

   src = fetchFromGitHub {
-    owner = "bambulab";
-    repo = "BambuStudio";
+    owner = "softfever";
+    repo = "BambuStudio-SoftFever";
     rev = "v${version}";
-    hash = "sha256-NCd2hT6xVaTySYkacAV1wT1fOe8yq4qPxmEzUdVHEDw=";
+    hash = "sha256-jwtYzcDQb3LpABf8btgiKRuLPUMhrDTRE/lqtaTgGU4=";
   };

   nativeBuildInputs = [
@@ -158,7 +159,7 @@ stdenv.mkDerivation rec {

   meta = with lib; {
     description = "PC Software for BambuLab's 3D printers";
-    homepage = "https://github.com/bambulab/BambuStudio";
+    homepage = "https://github.com/SoftFever/BambuStudio-SoftFever";
     license = licenses.agpl3;
     maintainers = with maintainers; [ zhaofengli ];
     mainProgram = "bambu-studio";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 255e4b0a69..c1528d4f7d 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -33244,7 +33244,7 @@ with pkgs;

   super-slicer-latest = super-slicer.latest;

-  bambu-studio = callPackage ../applications/misc/bambu-studio {
+  bambu-studio-softfever = callPackage ../applications/misc/bambu-studio {
     inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-bad;

     # Needs to be the same version as in the closed-source networking plugin.

Random chime in...   (I'm a nixOS noob, so this may not be helpful)
I installed this on 22.11 via:
export REV=6b1493ed77d54947f043d30f1960ed343d90ca50
nix --extra-experimental-features flakes profile install --impure github:zhaofengli/nixpkgs/${REV}#bambu-studio

# Run it with LC_ALL or it will crash
LC_ALL=C bambu-studio

It starts to init, and then coredumps...   maybe it's because I'm running X11 instead of Wayland or something, could also be upstream bug... anywhere here's a backtrace
Thread 40 "bambu-stud:sh0" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff57fff640 (LWP 253620)]
0x00007fffde493b40 in llvm::MachinePointerInfo::getAddrSpace() const () from /nix/store/1a31x70as21dm8dbl25h1qqvy5if4qsi-llvm-15.0.7-lib/lib/libLLVM-15.so
(gdb) bt
#0  0x00007fffde493b40 in llvm::MachinePointerInfo::getAddrSpace() const () from /nix/store/1a31x70as21dm8dbl25h1qqvy5if4qsi-llvm-15.0.7-lib/lib/libLLVM-15.so
#1  0x00007fffde9c0a0a in AddNodeIDCustom(llvm::FoldingSetNodeID&, llvm::SDNode const*) () from /nix/store/1a31x70as21dm8dbl25h1qqvy5if4qsi-llvm-15.0.7-lib/lib/libLLVM-15.so
#2  0x00007fffde9c0f54 in llvm::FoldingSet<llvm::SDNode>::NodeEquals(llvm::FoldingSetBase const*, llvm::FoldingSetBase::Node*, llvm::FoldingSetNodeID const&, unsigned int, llvm::FoldingSetNodeID&) ()
   from /nix/store/1a31x70as21dm8dbl25h1qqvy5if4qsi-llvm-15.0.7-lib/lib/libLLVM-15.so
#3  0x00007fff5d9c09ab in llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) ()
   from /nix/store/gaamqa1p6ql40y80d18rpd2q6xi6w7hn-llvm-14.0.6-lib/lib/libLLVM-14.so
#4  0x00007fff5d9c0a90 in llvm::FoldingSetBase::GetOrInsertNode(llvm::FoldingSetBase::Node*, llvm::FoldingSetBase::FoldingSetInfo const&) () from /nix/store/gaamqa1p6ql40y80d18rpd2q6xi6w7hn-llvm-14.0.6-lib/lib/libLLVM-14.so
#5  0x00007fff5e4316e3 in llvm::SelectionDAG::AddModifiedNodeToCSEMaps(llvm::SDNode*) () from /nix/store/gaamqa1p6ql40y80d18rpd2q6xi6w7hn-llvm-14.0.6-lib/lib/libLLVM-14.so
#6  0x00007fff5e431eaa in llvm::SelectionDAG::ReplaceAllUsesWith(llvm::SDValue, llvm::SDValue) () from /nix/store/gaamqa1p6ql40y80d18rpd2q6xi6w7hn-llvm-14.0.6-lib/lib/libLLVM-14.so
#7  0x00007fff5e2dbcec in (anonymous namespace)::SelectionDAGLegalize::ReplaceNode(llvm::SDValue, llvm::SDValue) [clone .constprop.0] () from /nix/store/gaamqa1p6ql40y80d18rpd2q6xi6w7hn-llvm-14.0.6-lib/lib/libLLVM-14.so
#8  0x00007fff5e2f35b5 in llvm::SelectionDAG::Legalize() () from /nix/store/gaamqa1p6ql40y80d18rpd2q6xi6w7hn-llvm-14.0.6-lib/lib/libLLVM-14.so
#9  0x00007fff5e464af3 in llvm::SelectionDAGISel::CodeGenAndEmitDAG() () from /nix/store/gaamqa1p6ql40y80d18rpd2q6xi6w7hn-llvm-14.0.6-lib/lib/libLLVM-14.so
#10 0x00007fff5e4677fc in llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) () from /nix/store/gaamqa1p6ql40y80d18rpd2q6xi6w7hn-llvm-14.0.6-lib/lib/libLLVM-14.so
#11 0x00007fff5e46a012 in llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) [clone .part.0] () from /nix/store/gaamqa1p6ql40y80d18rpd2q6xi6w7hn-llvm-14.0.6-lib/lib/libLLVM-14.so
#12 0x00007fff5def2d97 in llvm::MachineFunctionPass::runOnFunction(llvm::Function&) () from /nix/store/gaamqa1p6ql40y80d18rpd2q6xi6w7hn-llvm-14.0.6-lib/lib/libLLVM-14.so
#13 0x00007fff5dc1fc30 in llvm::FPPassManager::runOnFunction(llvm::Function&) () from /nix/store/gaamqa1p6ql40y80d18rpd2q6xi6w7hn-llvm-14.0.6-lib/lib/libLLVM-14.so
#14 0x00007fff5f267eca in (anonymous namespace)::CGPassManager::runOnModule(llvm::Module&) () from /nix/store/gaamqa1p6ql40y80d18rpd2q6xi6w7hn-llvm-14.0.6-lib/lib/libLLVM-14.so
#15 0x00007fff5dc21634 in llvm::legacy::PassManagerImpl::run(llvm::Module&) () from /nix/store/gaamqa1p6ql40y80d18rpd2q6xi6w7hn-llvm-14.0.6-lib/lib/libLLVM-14.so
#16 0x00007fff712e2206 in ac_compile_module_to_elf () from /run/opengl-driver/lib/dri/radeonsi_dri.so
#17 0x00007fff712336e1 in si_compile_llvm () from /run/opengl-driver/lib/dri/radeonsi_dri.so
#18 0x00007fff71235e9c in si_llvm_compile_shader () from /run/opengl-driver/lib/dri/radeonsi_dri.so
#19 0x00007fff7123024e in si_compile_shader () from /run/opengl-driver/lib/dri/radeonsi_dri.so
#20 0x00007fff71256e1d in si_init_shader_selector_async(void*, void*, int) () from /run/opengl-driver/lib/dri/radeonsi_dri.so
#21 0x00007fff70ab7099 in util_queue_thread_func () from /run/opengl-driver/lib/dri/radeonsi_dri.so
#22 0x00007fff70b020c7 in impl_thrd_routine () from /run/opengl-driver/lib/dri/radeonsi_dri.so
#23 0x00007fffe9688e86 in start_thread () from /nix/store/76l4v99sk83ylfwkz8wmwrm4s8h73rhd-glibc-2.35-224/lib/libc.so.6
#24 0x00007fffe970fd30 in clone3 () from /nix/store/76l4v99sk83ylfwkz8wmwrm4s8h73rhd-glibc-2.35-224/lib/libc.so.6

@deftdawg Try the nix shell I've provided. Also (I'm not sure) but might be an issue with the mismatch between unstable vs 22.11. Also might be related to an outdated nix profile? At least back when nix-env -iA was still a thing you'd run into similar issues frequently.

@deftdawg Try the nix shell I've provided (Sorry might rebuild everything). Also (I'm not sure) but might be an issue with the mismatch between unstable vs 22.11. Also might be related to an outdated nix profile? At least back when nix-env -iA was still a thing you'd run into similar issues frequently.
nix shell github:zhaofengli/nixpkgs/bambu-studio#bambu-studio
bambu-studio

Thanks @norpol.  Result is the same, it's probably something with my setup...
The nix store artifact is the same when I build it through nix install profile or nix shell, maybe because it's cached...
In both cases it uses this:
/nix/store/ppiyw7yyfgh67yfb83z1ay9jcy1gymyx-bambu-studio-<IP_ADDRESS>/bin/bambu-studio
Is that the same hash you have for it?

@deftdawg /nix/store/ppiyw7yyfgh67yfb83z1ay9jcy1gymyx-bambu-studio-<IP_ADDRESS>/ same path indeed.

@norpol here's the LC_ALL=C strace -f -s1024 .bambu-studio-wrapped 2&> ~/bambu-studio-playbin-strace.txt
bambu-studio-playbin-strace.txt.gz
When I run the wrapper, it paints the following...  perhaps it can't find gstreamer or the network plugin.

I built Zhaofengli's older bambu-studio-old tag
export REV=b9f18ffc3489fc926843a4b64d9fae79ddee8aa8
nix --extra-experimental-features flakes profile install --impure github:zhaofengli/nixpkgs/${REV}#bambu-studio
bambu-studio

It still gives the same error message about invalid playbin, however it does not segfault...  So I'm using that for now.

Just bumped the version to <IP_ADDRESS> (diff) and it works for me. We should look deeper into why it's segfaulting for some people.

Newest build dies with same backtrace...  Since it says radeon (lines 13-19), makes me wonder what gpus @zhaofengli and @norpol are running?   AMD (me) / Nvidia / Intel?
export REV=e2f3ffe9d593412fd48bbf4ed382e4b5f219a523
time nix --extra-experimental-features flakes profile install --impure github:zhaofengli/nixpkgs/${REV}#bambu-studio
echo "bt" | coredumpctl debug # dump backtrace of last core

(gdb) bt
#0  0x00007f2a78693b40 in llvm::MachinePointerInfo::getAddrSpace() const () from /nix/store/1a31x70as21dm8dbl25h1qqvy5if4qsi-llvm-15.0.7-lib/lib/libLLVM-15.so
#1  0x00007f2a78bc0a0a in AddNodeIDCustom(llvm::FoldingSetNodeID&, llvm::SDNode const*) () from /nix/store/1a31x70as21dm8dbl25h1qqvy5if4qsi-llvm-15.0.7-lib/lib/libLLVM-15.so
#2  0x00007f28e99c0a7d in llvm::FoldingSetBase::GetOrInsertNode(llvm::FoldingSetBase::Node*, llvm::FoldingSetBase::FoldingSetInfo const&) ()
   from /nix/store/np4sh6in90c2yjm5znfr1qcaznlmyj7l-llvm-14.0.6-lib/lib/libLLVM-14.so
#3  0x00007f28ea4316e3 in llvm::SelectionDAG::AddModifiedNodeToCSEMaps(llvm::SDNode*) () from /nix/store/np4sh6in90c2yjm5znfr1qcaznlmyj7l-llvm-14.0.6-lib/lib/libLLVM-14.so
#4  0x00007f28ea4314e0 in llvm::SelectionDAG::ReplaceAllUsesWith(llvm::SDNode*, llvm::SDNode*) () from /nix/store/np4sh6in90c2yjm5znfr1qcaznlmyj7l-llvm-14.0.6-lib/lib/libLLVM-14.so
#5  0x00007f28ea2b0c78 in llvm::SelectionDAG::Combine(llvm::CombineLevel, llvm::AAResults*, llvm::CodeGenOpt::Level) ()
   from /nix/store/np4sh6in90c2yjm5znfr1qcaznlmyj7l-llvm-14.0.6-lib/lib/libLLVM-14.so
#6  0x00007f28ea464b58 in llvm::SelectionDAGISel::CodeGenAndEmitDAG() () from /nix/store/np4sh6in90c2yjm5znfr1qcaznlmyj7l-llvm-14.0.6-lib/lib/libLLVM-14.so
#7  0x00007f28ea4677fc in llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) () from /nix/store/np4sh6in90c2yjm5znfr1qcaznlmyj7l-llvm-14.0.6-lib/lib/libLLVM-14.so
#8  0x00007f28ea46a012 in llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) [clone .part.0] ()
   from /nix/store/np4sh6in90c2yjm5znfr1qcaznlmyj7l-llvm-14.0.6-lib/lib/libLLVM-14.so
#9  0x00007f28e9ef2d97 in llvm::MachineFunctionPass::runOnFunction(llvm::Function&) () from /nix/store/np4sh6in90c2yjm5znfr1qcaznlmyj7l-llvm-14.0.6-lib/lib/libLLVM-14.so
#10 0x00007f28e9c1fc30 in llvm::FPPassManager::runOnFunction(llvm::Function&) () from /nix/store/np4sh6in90c2yjm5znfr1qcaznlmyj7l-llvm-14.0.6-lib/lib/libLLVM-14.so
#11 0x00007f28eb267eca in (anonymous namespace)::CGPassManager::runOnModule(llvm::Module&) () from /nix/store/np4sh6in90c2yjm5znfr1qcaznlmyj7l-llvm-14.0.6-lib/lib/libLLVM-14.so
#12 0x00007f28e9c21634 in llvm::legacy::PassManagerImpl::run(llvm::Module&) () from /nix/store/np4sh6in90c2yjm5znfr1qcaznlmyj7l-llvm-14.0.6-lib/lib/libLLVM-14.so
#13 0x00007f2a022e2206 in ac_compile_module_to_elf () from /run/opengl-driver/lib/dri/radeonsi_dri.so
#14 0x00007f2a022336e1 in si_compile_llvm () from /run/opengl-driver/lib/dri/radeonsi_dri.so
#15 0x00007f2a02235e9c in si_llvm_compile_shader () from /run/opengl-driver/lib/dri/radeonsi_dri.so
#16 0x00007f2a0223024e in si_compile_shader () from /run/opengl-driver/lib/dri/radeonsi_dri.so
#17 0x00007f2a02256e1d in si_init_shader_selector_async(void*, void*, int) () from /run/opengl-driver/lib/dri/radeonsi_dri.so
#18 0x00007f2a01ab7099 in util_queue_thread_func () from /run/opengl-driver/lib/dri/radeonsi_dri.so
#19 0x00007f2a01b020c7 in impl_thrd_routine () from /run/opengl-driver/lib/dri/radeonsi_dri.so
#20 0x00007f2a83888e86 in start_thread () from /nix/store/76l4v99sk83ylfwkz8wmwrm4s8h73rhd-glibc-2.35-224/lib/libc.so.6
#21 0x00007f2a8390fd30 in clone3 () from /nix/store/76l4v99sk83ylfwkz8wmwrm4s8h73rhd-glibc-2.35-224/lib/libc.so.6
(gdb)

I'm using i915 (Arc A770).

/nix/store/bfbp3ypd9nm3fapz634gvvs738blrl0y-gcc-wrapper-12.2.0/bin/ar: unable to copy file 'liblibslic3r_gui.a'; reason: Success

Hmm, weird. Maybe something got OOM-killed and it was confused.

Hmm, weird. Maybe something got OOM-killed and it was confused.

Tried building it several times until I received a different error ar: reason: No space left on device which gave me the clue that I forgot that I changed /tmp a tmpfs which apparently is too small with 4GB (and memory pressure?) for the build. My build with a bigger disk tmpfs is successful and startup works too. Thank you @zhaofengli :)

Bumped to newest release <IP_ADDRESS> (1.6.2 beta) and rebuilt, it still crashes out:
diff --git a/pkgs/applications/misc/bambu-studio/default.nix b/pkgs/applications/misc/bambu-studio/default.nix
index bab2a82c38e..4925f23a9a0 100644
--- a/pkgs/applications/misc/bambu-studio/default.nix
+++ b/pkgs/applications/misc/bambu-studio/default.nix
@@ -51,13 +51,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "bambu-studio";
-  version = "<IP_ADDRESS>";
+  version = "<IP_ADDRESS>";

   src = fetchFromGitHub {
     owner = "bambulab";
     repo = "BambuStudio";
     rev = "v${version}";
-    hash = "sha256-ixZaU0Q8yI/z624KX6mbpZ7y0IsA5NMDadLmPHyGL64=";
+    hash = "sha256-k2/0ukIVjGhUUKhaJCldTRsQcHwX/mL2ROVaiTkv/eg=";
   };

   nativeBuildInputs = [

Now also seeing  Can't find variable: __wxOut0 before it core dumps - that's an upstream issue: https://github.com/bambulab/BambuStudio/issues/1701

I don't seem to be able to log in to Bambu Studio with this.
I'm getting this error followed by an HTTP request dump:

(bambu-studio:81108): Gtk-CRITICAL **: 22:21:40.235: gtk_cell_layout_get_cells: assertion 'GTK_IS_CELL_LAYOUT (cell_layout)' failed

** (bambu-studio:81108): CRITICAL **: 22:21:40.245: Cannot register URI scheme wxfs more than once

** (bambu-studio:81108): CRITICAL **: 22:21:40.245: Cannot register URI scheme memory more than once
/nix/store/kw3qkcg847yzrkaw0llnzlmkcih1mpls-gvfs-1.50.4/lib/gvfs/libgvfscommon.so: undefined symbol: g_task_set_static_name
Failed to load module: /nix/store/kw3qkcg847yzrkaw0llnzlmkcih1mpls-gvfs-1.50.4/lib/gio/modules/libgvfsdbus.so
libEGL warning: MESA-LOADER: failed to open radeonsi: /nix/store/76l4v99sk83ylfwkz8wmwrm4s8h73rhd-glibc-2.35-224/lib/libc.so.6: version `GLIBC_2.36' not found (required by /nix/store/98sq0hkrbda37k9iayqdqchkibp8530y-llvm-15.0.7-lib/lib/libLLVM-15.so) (search paths /run/opengl-driver/lib/dri, suffix _dri)

libEGL warning: MESA-LOADER: failed to open swrast: /nix/store/76l4v99sk83ylfwkz8wmwrm4s8h73rhd-glibc-2.35-224/lib/libc.so.6: version `GLIBC_2.36' not found (required by /nix/store/98sq0hkrbda37k9iayqdqchkibp8530y-llvm-15.0.7-lib/lib/libLLVM-15.so) (search paths /run/opengl-driver/lib/dri, suffix _dri)

EGLDisplay Initialization failed: EGL_NOT_INITIALIZED
Cannot create EGL context: invalid display (last error: EGL_SUCCESS)
*   Trying <IP_ADDRESS>:443...
* Connected to e.bambulab.com (<IP_ADDRESS>) port 443 (#0)
* ALPN: offers h2,http/1.1
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256
* ALPN: server accepted h2
* Server certificate:
*  subject: CN=*.bambulab.com
*  start date: Jun 30 00:00:00 2022 GMT
*  expire date: Jul 15 23:59:59 2023 GMT
*  issuer: C=US; O=DigiCert, Inc.; CN=RapidSSL Global TLS RSA4096 SHA256 2022 CA1
*  SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
* using HTTP/2
...

With #232521 merged, now the package can no longer be evaluated by default on top of master because the closed-source network plugin depends on OpenSSL 1.1 :disappointed: I'm thinking about opening an issue, but I guess it'll take time on their end.
@balacij There is likely a mismatch between the nixpkgs version your system is built on and the nixpkgs version in this PR. In the meantime, I'll probably create a flake with an overlay in a separate repo so this can be easily used.

I'm thinking about opening an issue, but I guess it'll take time on their end.

Done :smile:

Some good news, with the exception of the camera, this now builds and runs for me!
NIXPKGS_ALLOW_INSECURE=1 nix-build -A bambu-studio && result/bin/bambu-studio

Not sure if it's updating to 23.05 or just the upstream repo changes you just pushed...  But it's good good :+1: :+1:

Some good news, with the exception of the camera, this now builds and runs for me!

The camera works for me at least. Any logs with --debug 5?
There is a tiny patch to fix the wxTranslations::Get() segfault, but otherwise it's a simple bump.

Wonderful work so far, guys!
Can anyone else see if they run into the same issue? The application segfaults when doing the steps below.
Let me know if you want any more info.
Steps:
export NIXPKGS_ALLOW_INSECURE=1 export REV=fb3cca0aa1f240de37da7a3567b38b2961416394
nix profile install --impure github:zhaofengli/nixpkgs/${REV}#bambu-studio

Sign into bambu studio
try to edit filament
witness segfault

@JeremiahSecrist couldn't reproduce your bug on my machine on the latest commit. I will try to test it with a printer in following days.
@zhaofengli Does anything need to be addressed to finish this PR? Also, thanks for the great job on it!

Hey great work! If it is ready can we push it in the discourse to get it merged?

@noisersup maybe it is Wayland specific?

@noisersup maybe it is Wayland specific?

Don't known if this case, but OrcaSlicer (fork of Bambu studo) give segv after i try edit filament (before edit dialog shows)... I trace-it and this patch "fixed it" -- https://github.com/ovlach/nix-orca-slicer/blob/main/0001-segv-patches.patch. I don't have time to deeply analyze, so i only comment lines...

Won't build on master via nixpkgs-review due to openssl 1.1 being EOL and emitted warnings~

Just testing it with bambu lab X1 carbon. I was able to easily detect the printer, setup filament, slice and print the file. I encountered the segfault while trying to open camera though.
After updating package to v<IP_ADDRESS> there's no segfault, although it shows only the first frame of the stream.

@ovlach That is the issue I'm getting! I wonder why no one else here is running into it.
(bambu-studio:8077): Gtk-CRITICAL **: 22:22:33.992: gtk_window_resize: assertion 'height > 0' failed

Is this perhaps related to submodules? https://github.com/bambulab/BambuStudio/blob/master/BuildLinux.sh#L144C10-L144C18

Is there any way I can help move this along without super extensive knowledge of nix? If I can test some stuff for you guys or sth pls let me know. I'm dying to have this in the upstream nixpkgs

Is there any way I can help move this along without super extensive knowledge of nix? If I can test some stuff for you guys or sth pls let me know. I'm dying to have this in the upstream nixpkgs

The main holdover right now is the upstream's version of OpenSSL being EOL. It seems that it will be soon addressed though. https://github.com/bambulab/BambuStudio/issues/1843#issuecomment-1678483485

Hey all, I am brand new to NixOS and wanted to get the latest BambuStudio version running. I had to fork @zhaofengli's repo and make some changes for it to pull the latest version. For anyone else in the same boat, here's how to run it using my changes:
export NIXPKGS_ALLOW_INSECURE=1
export NIXPKGS_ALLOW_UNFREE=1
nix run "github:JeremyKennedy/nixpkgs?ref=40a6c60e6cc97b0d5db17a20f9953c9dbf2e0ea5#bambu-studio" --impure

And for anyone looking to update to a future version (in case myself or @zhaofengli don't make the change in time):

Update BambuStudio's default.nix with the new version found on the releases page, and the hash using the hash output from the commands below, where COMMIT is the commit found on the releases page.

nix-shell -p nix-prefetch-git
nix-prefetch-git http://github.com/bambulab/BambuStudio COMMIT

Commit these changes to your own repo, then update the nix run command above with the commit hash from your commit.

Apologies if these steps are not detailed enough, I just wanted to quickly get the info out there for anyone else.

Would it be possible to also integrate this patch?
https://github.com/NixOS/nixpkgs/pull/206495#issuecomment-1674364131
I cannot edit the filament settings without a crash and it seems this solves the issue.

It looks like all the dev activity for <IP_ADDRESS> has been occurring on the v1.7.2. branch, the release notes for v<IP_ADDRESS> suggest OpenSSL has been updated to 3.1.

Thanks @aacebedo reported it over at BambuLab https://github.com/bambulab/BambuStudio/issues/2605 and applied the patch for myself and verified this workaround is working at least to get the window open.
Thanks @zhaofengli for bumping, did the same last night and can very build working. Updated the Patch
Hope my patched git format-patch works, otherwise you'll have to copy the lines sorry.
From 9b54fe3e9eba2ad4fbb9248aa4e713d50634272d Mon Sep 17 00:00:00 2001
From: Phileas Lebada <invalid.invalid>
Date: Mon, 25 Sep 2023 00:00:26 +0100
Subject: [PATCH] bambu-studio: <IP_ADDRESS> -> <IP_ADDRESS> and apply workaround
 filament segvault

---
 .../misc/bambu-studio/0002-segv-patches.patch   | 17 +++++++++++++++++
 pkgs/applications/misc/bambu-studio/default.nix |  2 ++
 2 files changed, 19 insertions(+)
 create mode 100644 pkgs/applications/misc/bambu-studio/0002-segv-patches.patch

diff --git a/pkgs/applications/misc/bambu-studio/0002-segv-patches.patch b/pkgs/applications/misc/bambu-studio/0002-segv-patches.patch
new file mode 100644
index<PHONE_NUMBER>..6aef942da3
--- /dev/null
+++ b/pkgs/applications/misc/bambu-studio/0002-segv-patches.patch
@@ -0,0 +1,17 @@
+diff -ruN ./src/slic3r/GUI/Field.cpp ../../source/src/slic3r/GUI/Field.cpp
+--- ./src/slic3r/GUI/Field.cpp	1970-01-01 01:00:01.000000000 +0100
++++ ../../source/src/slic3r/GUI/Field.cpp	2023-07-20 01:19:02.755757640 +0200
+--- oldfile.cpp	2023-09-24 23:56:14.054014696 +0100
++++ newfile.cpp	2023-09-24 23:58:20.086430254 +0100
+@@ -1541,8 +1541,9 @@
+
+     wxButton* btn = dynamic_cast<wxButton*>(field->GetPickerCtrl());
+     wxImage image(btn->GetBitmap().GetSize());
+-    image.InitAlpha();
+-    memset(image.GetAlpha(), 0, image.GetWidth() * image.GetHeight());
++    // TODO: why initAlpha() raise segv?
++    /*image.InitAlpha();
++    memset(image.GetAlpha(), 0, image.GetWidth() * image.GetHeight());*/
+     wxBitmap   bmp(std::move(image));
+     wxMemoryDC dc(bmp);
+     if (!dc.IsOk()) return;
diff --git a/pkgs/applications/misc/bambu-studio/default.nix b/pkgs/applications/misc/bambu-studio/default.nix
index 191aa4659a..94d10e8d8a 100644
--- a/pkgs/applications/misc/bambu-studio/default.nix
+++ b/pkgs/applications/misc/bambu-studio/default.nix
@@ -105,6 +105,8 @@ stdenv.mkDerivation rec {
   patches = [
     # Fix for webkitgtk linking
     ./0001-not-for-upstream-CMakeLists-Link-against-webkit2gtk-.patch
+    # Fix from orca-slicer filament profile editor segvault crash workaround
+    ./0002-segv-patches.patch
   ];

   doCheck = true;
--
2.42.0

I updated my system to unstable 2 days ago and I can't start bambu-studio anymore (it segfaults immediately). Is anyone having the same problem?

<IP_ADDRESS> s

I tried <IP_ADDRESS> same issue. Plus the fact that on Hyprland it just closes itself immediately (no segfault).

I updated my system a couple of days ago, I hand't tried to start bambu-studio since, just tried it now, and I am also getting a segmentation fault. Although I am still on BambuStudio-<IP_ADDRESS>.

I updated my system a couple of days ago, I hand't tried to start bambu-studio since, just tried it now, and I am also getting a segmentation fault. Although I am still on BambuStudio-<IP_ADDRESS>.

I tried <IP_ADDRESS> same issue. Plus the fact that on Hyprland it just closes itself immediately (no segfault).

The same segfault issue after the update, both on wayland, and x11.

The same segfault issue after the update, both on wayland, and x11.

Also tried the other PR for orca slicer. Same issue.

Okay, got some time and tried to obtain a bit more information.
 Maybe it's related to Glib which bumped version in the meantime?

Yes, it's likely the glibc version. Starting with --debug 5 will show some glibc related error messages. I've rebased and switched to the latest beta release (1.8.0), but that now fails because of changes in tbb and wxGTK. Starting point might be prusa-slicer which incorporates some patches to support wxGTK32 patches.
With glibc updated, tbb newer and openvdb related to that I get till (diff).
Found also another issue with the same error https://github.com/prusa3d/PrusaSlicer/issues/9294
which probably talks about this gentoo prusaslicer boost patch
include/boost/filesystem/detail/path_traits.hpp:495: error: call of overloaded '_check_convertible_to_path_source(const wxCStrData&)' is ambiguous

I'm not sure if just that patch will do the job, the prusa-slicer has no boost patch but instead patches wxGTK32 to be compatible.
https://github.com/NixOS/nixpkgs/blob/f2bd8adf7b78d7616b52d0ef08865c7c2fcf189d/pkgs/applications/misc/prusa-slicer/default.nix#L147C46-L152

Cannot get default EGL display: EGL_BAD_PARAMETER
Cannot create EGL sharing context: invalid display (last error: EGL_SUCCESS)
Cannot create EGL context: invalid display (last error: EGL_SUCCESS)
Cannot get default EGL display: EGL_BAD_PARAMETER
Cannot get default EGL display: EGL_BAD_PARAMETER
Cannot create EGL sharing context: invalid display (last error: EGL_SUCCESS)
Cannot create EGL sharing context: invalid display (last error: EGL_SUCCESS)
Cannot create EGL context: invalid display (last error: EGL_SUCCESS)
Cannot create EGL context: invalid display (last error: EGL_SUCCESS)

I've upgrade to 23.11/Unstable (needed to move up to keep Jovian-NixOS working :smile: ) and I get the above as well with the window opening and then crashing... Put gdb on it and captured this backtrace of the segfault happening at ImFont::CalcTextSizeA.
echo -e "run\nbt\n\n" | LC_ALL=C gdb ./bambu-studio

...
Thread 1 "bambustu_main" received signal SIGSEGV, Segmentation fault.
0x0000000001c8cf13 in ImFont::CalcTextSizeA(float, float, float, char const*, char const*, char const**) const ()
(gdb) bt
#0  0x0000000001c8cf13 in ImFont::CalcTextSizeA(float, float, float, char const*, char const*, char const**) const ()
#1  0x0000000001c42bd3 in ImGui::CalcTextSize(char const*, char const*, bool, float) ()
#2  0x0000000001699304 in Slic3r::GUI::NotificationManager::HintNotification::count_spaces() ()
#3  0x000000000169940b in Slic3r::GUI::NotificationManager::HintNotification::init() ()
#4  0x00000000016a279a in Slic3r::GUI::NotificationManager::HintNotification::retrieve_data(bool) ()
#5  0x0000000001456b27 in Slic3r::GUI::NotificationManager::push_hint_notification(bool) ()
#6  0x000000000110cc6b in Slic3r::GUI::GUI_App::post_init() ()
#7  0x000000000110f0fd in Slic3r::GUI::GUI_App::on_init_inner()::{lambda(wxIdleEvent&)#6}::operator()(wxIdleEvent&) const [clone .constprop.0] ()
#8  0x00007ffff0bbfd12 in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) () from /nix/store/rqqa7v39hzy4ppvjw9iqqsqr3i9g87q1-wxwidgets-3.1.7/lib/libwx_baseu-3.1.so.7
#9  0x00007ffff0bc0047 in wxEvtHandler::SearchDynamicEventTable(wxEvent&) () from /nix/store/rqqa7v39hzy4ppvjw9iqqsqr3i9g87q1-wxwidgets-3.1.7/lib/libwx_baseu-3.1.so.7
#10 0x00007ffff0bc01b0 in wxEvtHandler::TryHereOnly(wxEvent&) () from /nix/store/rqqa7v39hzy4ppvjw9iqqsqr3i9g87q1-wxwidgets-3.1.7/lib/libwx_baseu-3.1.so.7
#11 0x00007ffff0bc025a in wxEvtHandler::ProcessEventLocally(wxEvent&) () from /nix/store/rqqa7v39hzy4ppvjw9iqqsqr3i9g87q1-wxwidgets-3.1.7/lib/libwx_baseu-3.1.so.7
#12 0x00007ffff0bc0301 in wxEvtHandler::ProcessEvent(wxEvent&) () from /nix/store/rqqa7v39hzy4ppvjw9iqqsqr3i9g87q1-wxwidgets-3.1.7/lib/libwx_baseu-3.1.so.7
#13 0x00007ffff0aa29d2 in wxAppConsoleBase::ProcessIdle() () from /nix/store/rqqa7v39hzy4ppvjw9iqqsqr3i9g87q1-wxwidgets-3.1.7/lib/libwx_baseu-3.1.so.7
#14 0x00007ffff060e454 in wxAppBase::ProcessIdle() () from /nix/store/rqqa7v39hzy4ppvjw9iqqsqr3i9g87q1-wxwidgets-3.1.7/lib/libwx_gtk3u_core-3.1.so.7
#15 0x00007ffff054cc9a in wxApp::DoIdle() () from /nix/store/rqqa7v39hzy4ppvjw9iqqsqr3i9g87q1-wxwidgets-3.1.7/lib/libwx_gtk3u_core-3.1.so.7
#16 0x00007ffff054cd73 in wxapp_idle_callback () from /nix/store/rqqa7v39hzy4ppvjw9iqqsqr3i9g87q1-wxwidgets-3.1.7/lib/libwx_gtk3u_core-3.1.so.7
#17 0x00007fffede1cc4f in g_main_context_dispatch () from /nix/store/fr53rm643lg0rp4qmgzzpwsz5xxdqwk0-glib-2.76.3/lib/libglib-2.0.so.0
#18 0x00007fffede1d028 in g_main_context_iterate.constprop () from /nix/store/fr53rm643lg0rp4qmgzzpwsz5xxdqwk0-glib-2.76.3/lib/libglib-2.0.so.0
#19 0x00007fffede1d2df in g_main_loop_run () from /nix/store/fr53rm643lg0rp4qmgzzpwsz5xxdqwk0-glib-2.76.3/lib/libglib-2.0.so.0
#20 0x00007fffee605d75 in gtk_main () from /nix/store/9f63g8hd0f2iyxzpw41jrr9qqqhcfdab-gtk+3-3.24.38/lib/libgtk-3.so.0
#21 0x00007ffff055d8e5 in wxGUIEventLoop::DoRun() () from /nix/store/rqqa7v39hzy4ppvjw9iqqsqr3i9g87q1-wxwidgets-3.1.7/lib/libwx_gtk3u_core-3.1.so.7
#22 0x00007ffff0acc6fd in wxEventLoopBase::Run() () from /nix/store/rqqa7v39hzy4ppvjw9iqqsqr3i9g87q1-wxwidgets-3.1.7/lib/libwx_baseu-3.1.so.7
#23 0x00007ffff0aa221b in wxAppConsoleBase::MainLoop() () from /nix/store/rqqa7v39hzy4ppvjw9iqqsqr3i9g87q1-wxwidgets-3.1.7/lib/libwx_baseu-3.1.so.7
#24 0x00007ffff0b0d8f7 in wxEntry(int&, wchar_t**) () from /nix/store/rqqa7v39hzy4ppvjw9iqqsqr3i9g87q1-wxwidgets-3.1.7/lib/libwx_baseu-3.1.so.7
#25 0x00000000010d40ab in Slic3r::GUI::GUI_Run(Slic3r::GUI::GUI_InitParams&) ()
#26 0x000000000083b54b in Slic3r::CLI::run(int, char**) ()
#27 0x00000000007e04f4 in main ()

@deftdawg Did you get it running already?
Seems to be a bug that was reported in PursaSlicer too.
https://github.com/prusa3d/PrusaSlicer/issues/9774

After way too many weekends working on this I finally got it to compile:

wxGTK31
boost179
bambu-studio <IP_ADDRESS>
opvdb & tbb at 2021

Here is my branch https://github.com/zhaofengli/nixpkgs/pull/2

@deftdawg Did you get it running already?

Hi @norpol, my home Internet's been offline all weekend, just got back online and tried with your PR merged into @zhaofengli fork.  Works 100%, thank you for pushing up that fix.  :beers:

Now that this is building, all checks are passing, and users are reporting that it's working, can a maintainer with permissions merge it? It would be great to have some movement on this since #239390, the package request for OrcaSlicer, depends on it.

I think it's okay to merge in its current state, though it'd be good to have the edit filaments crash (mentioned above) fixed upstream.
That being said I can't see why merging orcaslicer would depend on this...

Will build and test in slicing, and then merge.

OrcaSlicer builds and works with this current PR (just need to point the package to OrcaSlicer). OrcaSlicer already fixed the "Edit Filament" bug and as of latest beta release of BambuStudio they've also pulled in that fix (fix number 17 at the release notes).
I'd suggest to wait for the final 01.08 release and then finally merge.
https://github.com/bambulab/BambuStudio/issues/2605#issuecomment-1837613536
https://github.com/bambulab/BambuStudio/releases/tag/v<IP_ADDRESS>

OrcaSlicer builds and works with this current PR (just need to point the package to OrcaSlicer). OrcaSlicer already fixed the "Edit Filament" bug and as of latest beta release of BambuStudio they've also pulled in that fix (fix number 17 at the release notes).
I'd suggest to wait for the final 01.08 release and then finally merge.
bambulab/BambuStudio#2605 (comment)
https://github.com/bambulab/BambuStudio/releases/tag/v<IP_ADDRESS>

We will always be able to merge it afterwards.

Yup, everything builds and appears to be working in current state. Merging <3

OrcaSlicer builds and works with this current PR (just need to point the package to OrcaSlicer). OrcaSlicer already fixed the "Edit Filament" bug and as of latest beta release of BambuStudio they've also pulled in that fix (fix number 17 at the release notes).
I'd suggest to wait for the final 01.08 release and then finally merge.
bambulab/BambuStudio#2605 (comment)
https://github.com/bambulab/BambuStudio/releases/tag/v<IP_ADDRESS>

But yeah, edit filament is unfortunate

Will bump to 57, and then let's re-check it

https://github.com/NixOS/nixpkgs/pull/273350


chore: update docker-credential-acr-env

This updates the docker-credential-acr-env dependency, which allows this project to be used in AKS with multiple user-assigned identities

Thanks for your contribution @theSuess!


Official documentation now available

There is now an official list of all cookies used across the whole Episerver platform available here:
https://world.episerver.com/documentation/developer-guides/tracking/episerver-cookies/

The above link is now incorrect (bad Optimizely redirect).  The relevant page is now: https://docs.developers.optimizely.com/digital-experience-platform/docs/optimizely-platform-cookies


Adding knabben to OWNERS file

Adding knabben to the OWNERS file

opened request on https://github.com/kubernetes/org/issues/2940

Please alphabetize!


Fix dynamic positioning

Includes changes from #2
Dynamic positioning failed to work due to the GetCanvasScreenPosition method in the crosshair component always returning a zero vector. The variable _cachedCanvas always has a zero vector assigned to its RectTransform's sizeDelta.
private Vector2 GetCanvasScreenPosition(Vector3 worldPoint)
{
    var canvasRect = _cachedCanvas.GetRectTransform(); // canvasRect.sizeDelta is a zero vector
    var viewportPoint = _cachedCamera.WorldToViewportPoint(worldPoint);

    // Therefore viewportPoint is always multiplied by 0
    return new Vector2(
            (viewportPoint.x * canvasRect.sizeDelta.x) - (canvasRect.sizeDelta.x * 0.5f),
            (viewportPoint.y * canvasRect.sizeDelta.y) - (canvasRect.sizeDelta.y * 0.5f));
    }

We can work around this by using the parent of the canvas RectTransform instead, which has a populated sizeDelta.
private Vector2 GetCanvasScreenPosition(Vector3 worldPoint)
{
    var canvasRect = _cachedCanvas.GetRectTransform().parent.GetRectTransform(); // Workaround to get a valid sizeDelta
    var viewportPoint = _cachedCamera.WorldToViewportPoint(worldPoint);
    return new Vector2(
        (viewportPoint.x * canvasRect.sizeDelta.x) - (canvasRect.sizeDelta.x * 0.5f),
        (viewportPoint.y * canvasRect.sizeDelta.y) - (canvasRect.sizeDelta.y * 0.5f));
}

After this change, dynamic positioning works perfectly on SPT 3.9.4!

Looks good, thanks for the PR!


Some questions...

Some questions...
1-It would be possible to change the purchase priority of the game to:
First: Internal Market
Second: Common Market
Third: World Market
Fourth: National Stock
Ps: That way it would be more realistic, the pops and factories would only resort to the stock if there were not in the world market
2-I still do not understand how "economic sanctions" works, after generating the casus beli I must declare war? After declaring war, should I attack the enemy?
3-In 1993 there was the Brazilian constitutional referendum to determine the form of government of the country, could it be included in the game?
https://en.wikipedia.org/wiki/Brazilian_constitutional_referendum,_1993

Don't think this is moddable.
Need to investigate.
Yes, that is a fun add-on.

For 2. and 3. could you please create separate issues. It is easier for me to keep tracek, 2. may be a bug, and 3. is an enhancement.


Support pubsub feature for the sensor network.

The sensor network is sort of a sensor cloud. It is nice to have a pubsub feature.

supported by this commit: e6e8509071db2e491e8fca1f02930674a4a3ebac


[1.18.1] Messages sent by "say" command in console doesn't get sent to discord.

Title ^  (could affect other versions aswell)
Info
Typing anything into console w/ the "say" command will not relay the message to discord. Nothing shows up at all.
Versions:
MC: 1.18.1
Forge: 39.0.5
MC2Discord: 1.18.x-3.2.2
- Gbergz

Indeed. Some internal change of forge / mc broke the command. That's now fixed in 3.2.3
Thanks you for reporting the issue


Resolve Iris, Tgrade prefix and "panic: pubkey is incorrect size" problems

Resolve Iris, Tgrade prefix problem
Update and Add Iris, Tgrade alternative valoper prefix
"iva": "ica", // Iris hub
"tgrade": "tgrade", // Tgrade

Resolve panic: pubkey is incorrect size(#34) problem
Support not only ed25519 but also secp256k1 and secp256r1 for deriving key

Tried to merge locally.
Fixes (at least) the Iris panic and also the Band same problem


BZ-Next WebGL BZFlag tools and client

You are applying for validated OSS program

[X] My project is OSS licensed and open to public. (Must have LICENSE file)
[X] My project has more than 5 ⭐stars on Github, which is the required for this program.

Repository URL to your project
https://github.com/bz-next/bz-next
URL to your website
https://bz-next.github.io/
https://bz-next.github.io/mapviewer/mapviewer.html
Expected Quota of usage
Probably ~100 per day as I develop some web-enabled open source apps. If more people start using these apps, it's probably around ~10 per user. The BZFlag community is small.
To start, requests would only be going to images.bzflag.org, to load textures. images.bzflag.org employs content moderation and most textures are under CC or other open licenses. This is a workaround until images.bzflag.org enables CORS.
Details
- Category: Open source, online game, editors, tools
- License: LGPL 2.1 and MPL 2.0

BZFlag is an open-source online game developed since the 90s. Textures for community-made maps are served at images.bzflag.org, which currently does not enable CORS.

To start, requests would only be going to images.bzflag.org, to load textures. images.bzflag.org employs content moderation and most textures are under CC or other open licenses. This is a workaround until images.bzflag.org enables CORS.

Later I might want to request some other content, like lists of active servers from web services.

Anything else?
About: https://bz-next.github.io/about
Online map editor demo: https://bz-next.github.io/mapviewer/mapviewer.html
Here's a map you can try with the demo, if you're curious to see it in action :)
fair.bzw.zip
Even if images.bzflag.org (the bzflag texture repository) enables CORS, it would be handy to have this service in my back pocket as a workaround for other data that map editors, experimental BZFlag clients, etc might need to access from a WebGL app.

Hi. while revewing yours, after I download the zip, it will unzip a hidden file I cannot locate on my finder?


Cherry-pick concurrency docs

This PR incorporates the documentation changes to async sequences and tasks for Swift 5.5.  Since I ran into conflicts and other issues using git cherry-pick to bring over the specific commits from 'release/5.5', I manually compared the two branches and copied the changes inside /// comments.
Confirmed that there are no unexpected changes outside of doc comments by running the following:
git diff github/main | grep '^+\|^-' | grep -v '^+++\|^---' \ |  grep -v '^- *///\|^+ *///'

In Task.swift a blank line was removed.  This was from removing what looks like a doc comment that got left behind after the symbol it goes to was removed.
In TaskSleep.swift the comment "No public initializers" was changed from a /// comment to a regular // comment in to places.  This change was also made on 'release/5.5'.  It's a comment on a non-public symbol and isn't meant to be a documentation comment.
All of the documentation comments match what was on the Swift 5.5 release branch, except for a spelling mistake that had been corrected on 'main' but not on the release branch.  I made these comparisons when 'main' was at 9c5e5efc9e6052228418b4b18bd1742befd05b1b and 'release/5.5' was at 18a849ecece601331f7014d8f30b3564451444d2.

@swift-ci Please smoke test.

@swift-ci Please smoke test Linux.

Looks good


 For example: the avpkt->size = 20118, but the returned bs.DataOffset = 20117. Need to return 20118, but returned 20117, so it leaves 1 byte file in the buf and cause the "missing picture in access unit".
Tracing into the clips:
SUFFIX_SEI of this clips: {0x46, 0x94, 0x62, 0xc9, 0x78, 0xc7, 0x75, 0x20, 0xd9, 0x6b, 0x82, 0x62, 0x4e, 0xb8, 0x98, 0xd5, 0x54, 0xcc, 0x6f, 0x8, 0xa3, 0xe, 0xec, 0xb2, 0x89, 0x86, 0xe7, 0xd, 0x80, 0xa8, 0x3d, 0x80, 0x0}
The SUFFIX_SEI at the end of each pkt has a 0x00 after 0x80, and MSDK just splits between the 0x80 and the 0x00.(etc 20117 end up with 0x80, and the left size 1 buf only havs 0x00, which leads to the "missing picture in access unit")

"Error during QSV decoding.: incompatible video parameters (-14)"
Error while decoding stream #0:0: Invalid argument.

Tested with vaapi and software codec, the outputs don't have garbage, but have different md5.
Try to decode with sample_decode:
$ ./sample_decode h265 -i<EMAIL_ADDRESS>-o msdk.yuv
Got the output:
Decoding started
Frame number: 16, fps: 106.152, fread_fps: 0.000, fwrite_fps: 229.545
ERROR: Incompatible video parameters detected. Recovering...
Frame number: 32, fps: 136.011, fread_fps: 0.000, fwrite_fps: 231.924
ERROR: Incompatible video parameters detected. Recovering...

Libmfx got the same error, but vaapi didn't. So i thought this issue is more relevant to MSDK.

[LOG]
root@media_lj_kbl:/home/linjiefu/Videos/bug_fix/kbl_hevc_10bit_decoding# ./sample_decode h265 -i<EMAIL_ADDRESS>-p010 -o msdk.yuv -n 100
plugin_loader.h :186 [INFO] Plugin was loaded from GUID: { 0x33, 0xa6, 0x1c, 0x0b, 0x4c, 0x27, 0x45, 0x4c, 0xa8, 0xd8, 0x5d, 0xde, 0x75, 0x7c, 0x6f, 0x8e } (Intel (R) Media SDK HW plugin for HEVC DECODE)
libva info: VA-API version 1.4.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'iHD'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri//iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_4
libva info: va_openDriver() returns 0
Decoding Sample Version 8.3.26.
Input video	HEVC
Output format	P010
Input:
Resolution	1296x720
Crop X,Y,W,H	0,0,0,0
Output:
Resolution	1296x720
Frame rate	60.00
Memory type		system
MediaSDK impl		hw
MediaSDK version	1.28
Decoding started
Frame number:   16, fps: 73.410, fread_fps: 0.000, fwrite_fps: 116.174
ERROR: Incompatible video parameters detected. Recovering...
Frame number:   32, fps: 84.235, fread_fps: 0.000, fwrite_fps: 117.759
ERROR: Incompatible video parameters detected. Recovering...
Frame number:   64, fps: 90.785, fread_fps: 0.000, fwrite_fps: 118.307
ERROR: Incompatible video parameters detected. Recovering...
Frame number:   80, fps: 91.774, fread_fps: 0.000, fwrite_fps: 117.478
ERROR: Incompatible video parameters detected. Recovering...
Frame number:   96, fps: 92.149, fread_fps: 0.000, fwrite_fps: 117.668
ERROR: Incompatible video parameters detected. Recovering...
[WARNING] Decoder returned error MFX_ERR_NONE that could be compensated during next iterations of decoding process.                                    But requested amount of frames is already successfully decoded, so whole process is finished successfully.Frame number:  100, fps: 90.811, fread_fps: 0.000, fwrite_fps: 116.560
Decoding finished
plugin_loader.h :212 [INFO] MFXBaseUSER_UnLoad(session=0x0x55c7b6a92260), sts=0
But the output file could not display correctly.
This clips has small resolution change in IDR frame (height 712 -> 720 -> 728 ...). FFmpeg qsv has the resolution change detection and reinit method, but based on 16 alignment compare:
https://github.com/FFmpeg/FFmpeg/blob/ed20fbcd48b02597a39ec25676615a9ef4bf3d00/libavcodec/qsvdec.c#L528
Using a hack way to work around and force reinit if the resolution changes, garbages are gone, but found duplicated or lack of frames in the output files.
Have two concerns:
About the work around way:

The frame width for init in MSDK is an aligned value, so the change from 712 to 720 will make no difference after the resolution change occurs. Still investigating the key parameter passed to MSDK.
https://github.com/FFmpeg/FFmpeg/blob/ed20fbcd48b02597a39ec25676615a9ef4bf3d00/libavcodec/qsvdec.c#L130

About the data flush when reinit occurs:

The first frame to decode is an IDR frame, but  MFX still returns MFX_ERR_MORE_DATA. Is there some dependency issues for the IDR frame? (as far as i know, More Data means more input is needed)

Will investigate more to find  the key parameter and the reason of frame duplicated. (Appreciated if you have any advice)

Patch has been sent to fix the resolution change issue:
https://patchwork.ffmpeg.org/patch/12059/
Thanks.

@fulinjie: does the patch https://patchwork.ffmpeg.org/patch/12059/ fully fix the issue on your side?

But the md5 is still different from the reference output got from software decode:
ffmpeg -hwaccel qsv -hwaccel_device /dev/dri/renderD128 -v verbose -c:v hevc_qsv -load_plugin hevc_hw -i<EMAIL_ADDRESS>-vf hwdownload,format=p010le -frames 50 -y dump.yuv
ffmpeg -v verbose -y -i<EMAIL_ADDRESS>-pix_fmt p010le -frames 50 -y ref.yuv
md5sum *.yuv
b32ae9d03238d8c7c067bfa024e1b66b  dump.yuv
d50727eab060973653694a9369298f41  ref.yuv
I thought it is similar to issue #1027, which blocks the 10 bit hevc decode pass rate.

@fulinjie @dvrogozh , I would like to treat https://patchwork.ffmpeg.org/patch/12059/  as a workaround solution.  Yes,  "pic_height_in_luma_samples" is keeping change (712->720->728), but the CropH is never change, keeping as 712. And ffmpeg allocates a enough large surface to hold the frames.   Could you please keep debugging in MSDK side to see why and how decoding is failed?  (We tested lots of h264 clips but haven't found similar issue,  then I guess probably it is  hevc ONLY issue).
BTW, @dvrogozh , I noted sample_decode can't handle resolution change (the MFXVideoDECODE_DecodeHeader() is just call at the start, so it can't detect resolution change),  do you have a plan to fix it?

I noted sample_decode can't handle resolution change

You are wrong. dample_decode most definitely supports resolution change handling. Decoder reset and decoder header will be triggered from here: https://github.com/Intel-Media-SDK/MediaSDK/blob/master/samples/sample_decode/src/sample_decode.cpp#L714

Yes, "pic_height_in_luma_samples" is keeping change...

Media SDK signals that it can't continue decoding as is by returning MFX_ERR_INCOMPATIBLE_VIDEO_PARAM from DecodeFrameAsync. Upon receiving this you need to perform some actions to handle the situation:

Flush cached frames from medisdk decoder passing nullptr bitstream to DecodeFrameAsync
Run decode header and get updated parameters
Check (via QueryIOSurf) and potentially reallocate surfaces to satisfy new bitstream requirement
Reset decoder with new parameters

MFX_ERR_INCOMPATIBLE_VIDEO_PARAM could be returned because of a range of different reasons. This could be resolution change which is most typical, but it also could be profile/level change or some other change in bitstream which will require reset. That's up to application to handle it. And application may attempt to optimize procedure on step 3 above and avoid surfaces reallocation if possible. That's up to application to perform.

Just for note, in case of  MFX_ERR_INCOMPATIBLE_VIDEO_PARAM handling -

Reset decoder with new parameters

means decoder's Close/Init not just MFXVideoDECODE_Reset

Hi @dvrogozh ,
From the API document, I can see the output of MSDK parser filled in mfxFrameInfo is a 16 aligned result.
Width and height of the video frame in pixels; Width must be a multiple of 16. Height must be a multiple of 16 for progressive frame sequence and a multiple of 32 otherwise.
https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md#mfxFrameInfo
FFmpeg qsv has transfer to MSDK parser,  and we are not able to be aware of tiny resolution changes (from 712 to 720) in ffmpeg level since they are 16 aligned, thus the reset or re-initialization procedure could not be triggered.
It's still a problem.

Hi @fulinjie ,

FFmpeg qsv has transfer to MSDK parser, and we are not able to be aware of tiny resolution changes (from 712 to 720) in ffmpeg level since they are 16 aligned, thus the reset or re-initialization procedure could not be triggered.

Two points here:

MSDK reports crops per each frame. Does ffmpeg take it into account?
If decoder can't continue with currently allocated surfaces, it returns MFX_ERR_INCOMPATIBLE_VIDEO_PARAM.

Two points here:

MSDK reports crops per each frame. Does ffmpeg take it into account?

I've tried with Crop width/height when I commented this on Sept, and I kind of remember that it didn't helps in this dilemma in ffmpeg. (more details could be provided if it's needed)

If decoder can't continue with currently allocated surfaces, it returns MFX_ERR_INCOMPATIBLE_VIDEO_PARAM.

The situation is:
712: allocate 720, and the actual height is 712;
720: allocate 720, but the actual height changes into 720;
However, decoder can continue with currently allocated surface, but it generates
error results, because application cannot get the correct height information(changed a little).

more details could be provided if it's needed

Yes, can you please share details.

However, decoder can continue with currently allocated surface, but it generates
error results, because application cannot get the correct height information(changed a little).

For me it's sound weird because app can get current (correct/actual) height from crops. So I don't understand  what a problem here is. Can you please explain more?

The result I observed is:
frame number:          0th    |     16th
avctx->height:          712    |      720
FrameInfo.Height:    720    |      720
FrameInfo.CropH:    712    |      712
The actual height is not strictly matched by CropH.
The reason is display_window_flag is set in this clips, and conf_win_bottom_offset(also left/right/top offset) is taken into account to figure out the CropH and CropW for display/render.
Thus IMHO the crop width/height could not represent the actual width/height totally.

Just to be on the same page, let me ask you another way: what exactly do you mean by the actual width/height?
Another qq: could you explain what app needs to know about this tiny width/heigh changes? Is it needed to render surfaces correctly or reallocate surfaces or .. ?

Just to be on the same page, let me ask you another way: what exactly do you mean by the actual width/height?

Sorry for being unclear and thanks for the patience,  IMHO, the actual width/height means seq->pic_width_in_luma_samples and seq->pic_height_in_luma_samples:
https://github.com/Intel-Media-SDK/MediaSDK/blob/741d3292ae5cc7bfbac63ae5a899349bc2169a09/_studio/shared/umc/codec/h265_dec/src/umc_h265_mfx_utils.cpp#L312

Another qq: could you explain what app needs to know about this tiny width/heigh changes? Is it needed to render surfaces correctly or reallocate surfaces or .. ?

And as we see, CropH, for example, is calculated by :
https://github.com/Intel-Media-SDK/MediaSDK/blob/741d3292ae5cc7bfbac63ae5a899349bc2169a09/_studio/shared/umc/codec/h265_dec/src/umc_h265_mfx_utils.cpp#L327
If the pic_height_in_luma_samples changes little from 712 to 720, the aligned par->mfx.FrameInfo.Height would remain 720, but the CropH would still equal 712 since the seq->conf_win_bottom_offset  increases.
See analysis in VQ:

The application needs to know the original pic_height_in_luma_samples to output the raw video and check whether it needs to reset the parameters.
The directly parsed value could not be transferred to app.
Please correct me if my understanding was wrong.

Another input:
When AddSource is called for decode, SPS will be parsed and compared with the old_sps.
If the resolution changes, it reports an error of  UMC_NTF_NEW_RESOLUTION, then MFX_ERR_INCOMPATIBLE_VIDEO_PARAM, even if there is no need for surface reallocation.
https://github.com/Intel-Media-SDK/MediaSDK/blob/741d3292ae5cc7bfbac63ae5a899349bc2169a09/_studio/shared/umc/codec/h265_dec/src/umc_h265_task_supplier.cpp#L1102
Call Stacks:

bt
#0  UMC_HEVC_DECODER::TaskSupplier_H265::xDecodeSPS (this=0x555558221590, bs=0x7fffffffbf20)
at /home/linjiefu/data/Documents/git/msdk/_studio/shared/umc/codec/h265_dec/src/umc_h265_task_supplier.cpp:1101
#1  0x00007fffe8ac9921 in UMC_HEVC_DECODER::TaskSupplier_H265::DecodeHeaders (this=0x555558221590, nalUnit=0x555557c71e98)
at /home/linjiefu/data/Documents/git/msdk/_studio/shared/umc/codec/h265_dec/src/umc_h265_task_supplier.cpp:1396
#2  0x00007fffe8abeab0 in UMC_HEVC_DECODER::MFXTaskSupplier_H265::DecodeHeaders (this=0x555558221590, nalUnit=0x555557c71e98)
at /home/linjiefu/data/Documents/git/msdk/_studio/shared/umc/codec/h265_dec/src/umc_h265_mfx_supplier.cpp:262
#3  0x00007fffe8acaa32 in UMC_HEVC_DECODER::TaskSupplier_H265::AddOneFrame (this=0x555558221590, pSource=0x7fffffffc350)
at /home/linjiefu/data/Documents/git/msdk/_studio/shared/umc/codec/h265_dec/src/umc_h265_task_supplier.cpp:1803
#4  0x00007fffe8aca13a in UMC_HEVC_DECODER::TaskSupplier_H265::AddSource (this=0x555558221590, pSource=0x7fffffffc350)
at /home/linjiefu/data/Documents/git/msdk/_studio/shared/umc/codec/h265_dec/src/umc_h265_task_supplier.cpp:1592
#5  0x00007fffe8ab6fcd in VideoDECODEH265::DecodeFrameCheck (this=0x555558222df0, bs=0x7fffffffc7e0, surface_work=0x555557cc8908, surface_out=0x7fffffffc7c0)
at /home/linjiefu/data/Documents/git/msdk/_studio/mfx_lib/decode/h265/src/mfx_h265_dec_decode.cpp:985
#6  0x00007fffe8ab6915 in VideoDECODEH265::DecodeFrameCheck (this=0x555558222df0, bs=0x7fffffffc7e0, surface_work=0x555557cc8908, surface_out=0x7fffffffc7c0, pEntryPoint=0x7fffffffc608)
at /home/linjiefu/data/Documents/git/msdk/_studio/mfx_lib/decode/h265/src/mfx_h265_dec_decode.cpp:867
#7  0x00007fffe89d8822 in MFXVideoDECODE_DecodeFrameAsync (session=0x555557c66078, bs=0x7fffffffc7e0, surface_work=0x555557cc8908, surface_out=0x7fffffffc7c0, syncp=0x555557ce9a80)
at /home/linjiefu/data/Documents/git/msdk/_studio/mfx_lib/shared/src/libmfxsw_decode.cpp:511
#8  0x00007ffff594f9ea in MFXVideoDECODE_DecodeFrameAsync (session=0x555557c66078, bs=0x7fffffffc7e0, surface_work=0x555557cc8908, surface_out=0x7fffffffc7c0, syncp=0x555557ce9a80)
at /home/linjiefu/data/Documents/git/msdk/api/mfx_dispatch/linux/mfxvideo_functions.h:75
#9  0x000055555684cdef in qsv_decode (avctx=0x555557b59900, q=0x555557b72988, frame=0x555557b57540, got_frame=0x7fffffffcab8, avpkt=0x555557b72a78) at libavcodec/qsvdec.c:458
#10 0x000055555684d770 in ff_qsv_process_data (avctx=0x555557b59900, q=0x555557b72988, frame=0x555557b57540, got_frame=0x7fffffffcab8, pkt=0x555557b72a78) at libavcodec/qsvdec.c:649

Hi @dmitryermilov , a PR #1758  has been sent to fix this.
Would you please help to review?

Sorry for being unclear and thanks for the patience, IMHO, the actual width/height means seq->pic_width_in_luma_samples and seq->pic_height_in_luma_samples:

MediaSDK/_studio/shared/umc/codec/h265_dec/src/umc_h265_mfx_utils.cpp

Thank you for explanation. So you need to know coded picture size. Okay, I got it.

The application needs to know the original pic_height_in_luma_samples to output the raw video

Usually applications need to know "picture size" which mean :

either coded picture side if there are no crops in VUI
or crops size (if they are present in VUI)

To my regret, for me it seems it's not possible to always get coded picture size  if there are crops in VUI with current msdk design.  @dmitry-gurulev , what do you think?  But @fulinjie , probably you don't need it. Please see below ...

and check whether it needs to reset the parameters.
Could you explain what exact parameters?

When AddSource is called for decode, SPS will be parsed and compared with the old_sps.
If the resolution changes, it reports an error of UMC_NTF_NEW_RESOLUTION, then MFX_ERR_INCOMPATIBLE_VIDEO_PARAM, even if there is no need for surface reallocation.

It's correct. MFX_ERR_INCOMPATIBLE_VIDEO_PARAM doesn't necessarily mean that application needs to reallocate surfaces. It means that decoder can't continue with initial initialization mfxVideoParams, and application needs to call decoder->Reset() with new mfxVideoParams. Surfaces reallocation depends on a fact how app originally allocated surfaces. If they big enough to continue, then there is no need to reallocate them.
I looked at the PR #1758 . IMO, it (@dmitry-gurulev , can you please also take a look?) contradicts MSDK design. But if this change helps to fix the issue, then I assume it's a mistake ('bug') on ffmpeg side. I mean it's most likely incorrect understanding of how MFX_ERR_INCOMPATIBLE_VIDEO_PARAM should be handled.
In fact the PR #1758 disables reporting of MFX_ERR_INCOMPATIBLE_VIDEO_PARAM on tiny resolution change and it somehow fixes the issue event without reporting of real coded picture size (as you requested above), right? So, could you explain how ffmpeg treats MFX_ERR_INCOMPATIBLE_VIDEO_PARAM right now? Perhps it should be changed ...

Usually applications need to know "picture size" which mean :

either coded picture side if there are no crops in VUI
or crops size (if they are present in VUI)

For the 2nd one, I don't know cases when application needs to handle areas output of crops. @fulinjie , probably you don't need it. Please see below ...

Areas output of crops may not be handled, and what I intend to do is to find a method to get some information or flags to indicate the mfxVideoParams should be reset, before the decoder returned MFX_ERR_INCOMPATIBLE_VIDEO_PARAM.
https://github.com/FFmpeg/FFmpeg/blob/a7245adee3e98d4b2e2a1bb7ddc0caae898b5193/libavcodec/qsvdec.c#L592

If you really need it, you can use mfxExtCodingOptionSPSPPS and parse only coded picture sizes.

Thanks for the information.
I'll see if there is a more proper way to handle this with mfxExtCodingOptionSPSPPS.

I looked at the PR #1758 . IMO, it (@dmitry-gurulev , can you please also take a look?) contradicts MSDK design. But if this change helps to fix the issue, then I assume it's a mistake ('bug') on ffmpeg side. I mean it's most likely incorrect understanding of how MFX_ERR_INCOMPATIBLE_VIDEO_PARAM should be handled.

Yes, it's more like a work around.

In fact the PR #1758 disables reporting of MFX_ERR_INCOMPATIBLE_VIDEO_PARAM on tiny resolution change and it somehow fixes the issue event without reporting of real coded picture size (as you requested above), right?

Coded picture size is for detecting parameter change in advance.

So, could you explain how ffmpeg treats MFX_ERR_INCOMPATIBLE_VIDEO_PARAM right now? Perhps it should be changed ...

IMHO, currently it just reports an error and continue to decode other frames, since previously ffmpeg could parse and get the sps info more directly to detect the parameter change in advance and reset before the decode begins .
We may hold this,  and I'll collect more information and try above suggestions to:

Use mfxExtCodingOptionSPSPPS to detecet the parameter change in advance as a first choice;
handle MFX_ERR_INCOMPATIBLE_VIDEO_PARAM as a second choice;

Hi @fulinjie ,
Do you have any news?


[FEATURE]: Dynamic Page Titles for Consistency

Detailed description
Currently, the homepage title is set as "Vibey," but when navigating to other pages, the title remains the same, lacking the necessary context. To enhance user experience and maintain consistency, it would be beneficial to dynamically update the page titles across the website.
Context
Benefits:

Improved User Experience: Dynamic page titles give users a clear understanding of their current location within the website.
Consistent Branding: By appending "Vibey" to each page's title, we reinforce the brand and maintain a cohesive identity.
SEO Optimization: Dynamic page titles with relevant keywords can positively impact search engine rankings, enhancing the website's visibility.

Possible implementation
No response
Additional information
Let's work together to enhance the website's usability and branding by implementing this simple yet effective improvement.
Code of Conduct

[X] I agree to follow this project's Code of Conduct

@s2sharpit how will you update page title dynamically? Please tell me more with one example.

To update the page title dynamically in Next.js, we can use the Head component from next/head.
For the homepage, we want the title to be set to 'Vibey'. However, on other pages, we'll follow the format <page title> - Vibey to ensure a consistent branding experience.
Here's an example of how we can achieve this:
import Head from 'next/head';

function IndexPage() {
  return (

        <title>Vibey</title>

Hello world!

  );
}

export default IndexPage;

Assigned @s2sharpit
Good luck


Stable merge window for week 51 of 2020

Updated Packages:

rmkit split

harmony -> 0.1.0-1
mines -> 0.1.0-1
nao -> 0.1.0-1
remux -> 0.1.1-1
simple -> 0.1.0-1

oxide -> 2.0.1~beta-1

New Packages:

vnsee -> 0.3.0-1

Tooling Changes:

add noextract command
add prepare section to package

I was trying to test vnsee, but there is computer side setup that I was unable to get working. If someone else wants to test to make sure it's working go ahead. Otherwise I think it's likely good enough.

We should consider to change the rM2 badge as well for this merge window.
Probably mark it orange and say something like "partially", "experimental" or similar. Just so people know, that they can try it out if they wish.

good idea! rm2fb isn't in this window, so let's make the badge change in testing and merge it in next week


autoincrement=true

When using autoincrement on a primary key field
example:
long id;```

it appears the counter is getting reset when items are deleted. In other words, available ID's lower than the MAX ID in a table are being re-used. It appears DB flow is managing its own internal autoincrement value?

In a scenario of insert record a, b, c.  Their IDs become 1,2,3 respectively.  If I remove item c and add item d I would expect item d's ID to be 4, but its not, its 3.

Is this the desired behaviour?

can you send me an example of your Model class? We are simply at the base, using the standard Android SQLite methods. For insert statements, we're calling SQLiteStatement.executeInsert(), for updates we're using the:
long count;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO) {
            count = database.updateWithOnConflict(tableName, contentValues, where, whereArgs, conflictAlgorithm);
        } else {
            count = database.update(tableName, contentValues, where, whereArgs);
        }
        return count;

methods

Here is an example of the class. Appreciate you looking into this..
To remove (delete) I just call someInstance.delete();
If I remove all items in the table, the next insert starts with an ID of 0.
`package com.fish4fun.myapp.models;
import android.util.Log;
import com.raizlabs.android.dbflow.annotation.Column;
import com.raizlabs.android.dbflow.annotation.ModelContainer;
import com.raizlabs.android.dbflow.annotation.PrimaryKey;
import com.raizlabs.android.dbflow.annotation.Table;
import com.raizlabs.android.dbflow.structure.BaseModel;
import java.io.File;
@ModelContainer
@Table(database = MyAppDatabase.class)
public class SomeEntity extends BaseModel {
@PrimaryKey(autoincrement = true)
long id;

@Column
int order;

@Column
String name;

@Column
String filename;

@Column
String code;

@Column
String type;

@Column
int color;

@Column
long created;

@Column
long modified;

public SomeEntity() {
    super();
}

public long getId() {
    return id;
}

public void setId(long id) {
    this.id = id;
}

more getters and setters...
}`

+1 for this
My problem is similar. I am working on project where I sync database between iOS and Android app.
So for example Entities that are coming from iOS and their primary IDs are not pretty. For example
1, 2, 4, 6, 10, 15 (because some entities were removed)
But when I insert into db on android it removes original id and set them as
1, 2, 3, 4, 5, 6
this is causing issues because in referencing entity it lost the relation with original primary key.

I found out that insert() method is using String from public final String getInsertStatementQuery() of some table adapter. And that String from adapter lacks id if it's auto-incremented.

This will be fixed in 3.0-beta4. What happened in since beta1 was actually the id was more of a ROWID, meaning it mirrored the maximum row number if you specified autoincrement=true. In (https://github.com/Raizlabs/DBFlow/blob/develop/dbflow-tests/src/test/java/com/raizlabs/android/dbflow/test/sql/FixPrimaryKeyMigration.java) there's a migration you can run to fix this on your table. The only way to fix it is to:

Create a temp table
Insert existing data into this table
Delete old table
Rename temp table to the original table

This is a one-time fix and if you used < 3.0.0-beta1 on certain devices with existing databases, they won't be affected. This will perform check to see if table was created properly.

If you wish to keep beta1-beta3 behavior, just change @PrimarKey(autoincrement=true) to @PrimaryKey(rowId=true)

in develop


Branche3

With this initial upload, I am creating the folder named "Mazarine_Inc59" with its two subfiles "models" and "source". It corresponds to my part of the project Boccace, training a segmentation and a recognition model for the incunabulum Bibliothèque Mazarine Inc.59 with OCR/HTR software eScriptorium, transcribing a part of it, as well as exporting the .txt and .XMLALTO versions (of the training corpus and the verification corpus) to upload.

corresponds and responds to issue #14.


Using date presence instead of active

We are checking for active, but the embargo will be inactive when we want to deactivate it
Checking for the date presence will make sure it will not be deactivated twice
fixes #1455

Coverage remained the same at 57.903% when pulling 99fec8898393dc9396c98bf39dbc438a7d325569 on i#1455 into 98198e1ff59866e6b14358e748387e5ee1186a9e on release-3.5.0.


konflux: remove task sbom-json-check

Description
This replaces https://github.com/openshift/lightspeed-operator/pull/360 that replaces the task task sbom-json-check from the konflux pipelines as Konflux team instructed.
Type of change

[ ] Refactor
[ ] New feature
[ ] Bug fix
[ ] CVE fix
[ ] Optimization
[ ] Documentation Update
[x] Configuration Update
[ ] Bump-up dependent library

/lgtm

/approve

/override "Red Hat Konflux / ols-enterprise-contract / bundle"
/override "Red Hat Konflux / ols-enterprise-contract / lightspeed-operator"


--no-color strips all color, emojis, animations from workload tail output

Description of problem
The --no-color flag update made in PR #362 covers all scenarios except for some of the workload tail output remains colorized despite providing the --no-color flag
Proposed solution
remove all color when --no-color is provided
Example screenshot

Additional context
From @odinnordico:
stern (tail-lib) uses a different library to color the output, that is why the it needs to be handle different than other parts in the plugin
From @scothis:
The color is in the content being tailed. You could strip all ansi control characters

stern (tail-lib) uses a different library to color the output

This isn't correct. Stern also uses github.com/fatih/color.
The apps plugin is correctly disabling the color output that stern adds to the logs. What remains is the actual content of the logs. Be conservative about the modifications you make to content you didn't define and don't control. Stripping color and animations seems safe as the source has no idea if a compatible terminal is viewing the content. Stripping emoji feels wrong unless you are sure you understand the context the emoji was expressed or the original meaning remains accessible.


Regression failure: [uvm_test_top] Did not receive core_status IN_DEBUG_MODE within 1000 cycle timeout period

Ibex: 7506d4da2ac624bd144630f6ccb8660abfce3a7f
Seed: 20063
Test: riscv_debug_single_step_test

2021-07-14T05:38:05.2059915Z riscv_debug_single_step_test.20065
2021-07-14T05:38:05.2060819Z ----------------------------------
2021-07-14T05:38:05.2061789Z Test binary: out/seed-20063/instr_gen/asm_test/riscv_debug_single_step_test_2.o
2021-07-14T05:38:05.2062902Z UVM log: out/seed-20063/rtl_sim/riscv_debug_single_step_test.20065/sim.log
2021-07-14T05:38:05.2064017Z RTL trace: out/seed-20063/rtl_sim/riscv_debug_single_step_test.20065/trace_core_00000000.log
2021-07-14T05:38:05.2064495Z
2021-07-14T05:38:05.2065448Z UVM_FATAL /azp/agent/_work/1/s/dv/uvm/core_ibex/tests/core_ibex_base_test.sv(211) @<PHONE_NUMBER>: uvm_test_top [uvm_test_top] Did not receive core_status IN_DEBUG_MODE within 1000 cycle timeout period
2021-07-14T05:38:05.2066691Z [FAILED]: sim error seen

Closing this without resolution as the DV environment is switching to the new co-simulation environment and the testbench being altered to remove checking that is no longer required. We'll go through and examine current failures once that work is complete.


[BUG] UI - Unable to edit availability query of an application in application analytics

What is the bug?
In Dashboards, unable to edit availability of an application in application analytics. In the attached video, I'm trying to edit the span interval of the query and refresh to run the query. I'm getting a blank page
How can one reproduce the bug?
Steps to reproduce the behavior:
https://user-images.githubusercontent.com/844111/201191582-42a55cbe-2fec-4ef2-acde-c65ba4dec30e.mp4
What is the expected behavior?
User should be able to edit the application availability criteria at any time.
What is your host/environment?

OS: [e.g. iOS]: linux docker image
Version [e.g. 22] : 2.3
Plugins

Do you have any screenshots?
If applicable, add screenshots to help explain your problem.
Do you have any additional context?
Add any other context about the problem.

Looks like this wasn't closed with the above PR, closing now.


The buffer of decoder grows until it panic

Version
0.1.0-alpha.1
Platform
Linux pc 4.19.69-1-MANJARO #1 SMP PREEMPT Thu Aug 29 08:51:46 UTC 2019 x86_64 GNU/Linux
Description
It seems decoder didn't free its buffer in time so it gets panic very soon when transmitting messages continuously.
Backtrace:
tokio-runtime-worker-4' panicked at 'assertion failed: self.remaining_mut() >= src.remaining()', /home/skye/.cargo/registry/src/github.com-1ecc6299db9ec823/bytes-0.4.12/src/buf/buf_mut.rs:230:9
stack backtrace:
   0:     0x55b8f58d6be2 - backtrace::backtrace::libunwind::trace::hc13eee94dc9acf87
                               at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.35/src/backtrace/libunwind.rs:88
   1:     0x55b8f58d6be2 - backtrace::backtrace::trace_unsynchronized::heb95bad2d38970b7
                               at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.35/src/backtrace/mod.rs:66
   2:     0x55b8f58d6be2 - std::sys_common::backtrace::_print::hc7c53d16b772cd09
                               at src/libstd/sys_common/backtrace.rs:47
   3:     0x55b8f58d6be2 - std::sys_common::backtrace::print::h1a5c96cc746359e4
                               at src/libstd/sys_common/backtrace.rs:36
   4:     0x55b8f58d6be2 - std::panicking::default_hook::{{closure}}::h09e52b8c91cd08d3
                               at src/libstd/panicking.rs:200
   5:     0x55b8f58d68c6 - std::panicking::default_hook::h683e3e2fe7c55791
                               at src/libstd/panicking.rs:214
   6:     0x55b8f58d7335 - std::panicking::rust_panic_with_hook::h185be11cf56dd6c5
                               at src/libstd/panicking.rs:477
   7:     0x55b8f5861545 - std::panicking::begin_panic::h26f44ad2be4189d7
                               at /rustc/9eae1fc0ea9b00341b8fe191582c4decb5cb86a3/src/libstd/panicking.rs:411
   8:     0x55b8f4f3c1e6 - bytes::buf::buf_mut::BufMut::put::h1eda9ff079116541
                               at /home/skye/rusty-p4/benchmark/<::std::macros::panic macros>:3
   9:     0x55b8f4e29730 - <tonic::codec::decode::Streaming<T> as futures_core::stream::Stream>::poll_next::hbf98f28ee14a6dcc
                               at /home/skye/.cargo/registry/src/github.com-1ecc6299db9ec823/tonic-0.1.0-alpha.1/src/codec/decode.rs:237

@another-s347 hi! Do you know how you were able to produce this?

@another-s347 hi this should be fixed on master.


Support key export from Key Vault

For Key Vault 7.2-preview, we need to add support to export keys. This would be a method like KeyClient.ExportKey that takes the key name, key version (both required), and a body with the KeyExportParameters model found in the link below. This only has a single required property named environment (model property: env), so we should take this as a parameter. This returns a KeyVaultKey (model KeyBundle).
This requires a number of other changes:

[ ] Add optional Exportable boolean property to KeyProperties.
[ ] Add ReleasePolicy property to KeyProperties of type KeyReleasePolicy.
[ ] Add PublicExponent integer property to CreateKeyOptions.
[ ] Add "export" to KeyOperation enum. This will correctly impact the CreateKeyOptions class and the KeyClient.UpdateKey method..
[ ] Add ReleasePolicy property to CreateKeyOptions.
[ ] Add ReleasePolicy property to ImportKeyOptions.

See the service version 7.1 -> 7.2-preview diff 🔒 for details.

Note from Heath, from the teams chat:

[1:10 PM] Heath Stewart
Service - KeyVault - hold off on implementing secure key release for now. The design is being changed after last week's service/client sync-up.

[9/16 2:54 PM] Heath Stewart
For now, hold off. I looped you all into a thread where MHSM just wants this as an opaque JSON blob, so model structure won't matter.

😉

I didn't see that on time! Thank you!

I'll push this for next month's release due to time budget.

Maor is currently assigned to the update and cleanup of the Key Vault Admin API. We won't be releasing export/release this month though, so we will likely push this issue for a later date, but in the mean time I'll keep this issue open so Maor can decide.

Maor is currently assigned to the update and cleanup of the Key Vault Admin API. We won't be releasing export/release this month though, so we will likely push this issue for a later date, but in the mean time I'll keep this issue open so Maor can decide.

This should be moved out of February GA and done for 7.3-preview service version.

This should be moved out of February GA and done for 7.3-preview service version.

I created #16086 to support SKR. Key Export is not yet ready on the service side. Moving this to backlog

This doesn't need to be tracked, let's add a new task when key export is ready on the service side.


error in: start.sh

UbuntuSRV ~/ncp-monitoring-dashboard$ sh start.sh
start.sh: 35: [[: not found
start.sh: 43: .: .env: not found

1º git clone https://github.com/theCalcaholic/ncp-monitoring-dashboard

You need to execute the script with bash, not sh.
Try bash start.sh or simply ./start.sh


Test div2

Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily get feedback. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers.
Motivation and Context

Description

Use cases (Optional)

BC-breaking (Optional)

Checklist
Before PR:

[ ] I have read and followed the workflow indicated in the Contributors.md to create this PR.
[ ] Pre-commit or linting tools indicated in Contributors.md are used to fix the potential lint issues.
[ ] Bug fixes are covered by unit tests, the case that causes the bug should be added in the unit tests.
[ ] New functionalities are covered by complete unit tests. If not, please add more unit test to ensure the correctness.
[ ] The documentation has been modified accordingly, including docstring or example tutorials.

After PR:

[ ] CLA has been signed and all committers have signed the CLA in this PR.

second test for div

 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.


Currently exposed prometheus metrics are not enough for problem analysis

I've tried to analyze the reason why prometheus server is utilizing more than 128GB of RAM (causing its killing by OOMKiller), but I could not find the reason for it, as there is no time series and samples/sec metrics exposed anymore.  samples/sec may be Prometheus specific, but amount of series is definitely TSDB specific.
I believe we need something like this:
https://github.com/prometheus/tsdb/blob/master/head.go#L219-L221
but on "global" level.
If you think that 1.x era metrics are not applicable anymore, could you please provide the list of metrics to pay attention and some performance indicators?

You can still get samples per second via rate(tsdb_samples_appended_total[5m]).
Total amount of series in the DB is actually non-trivial to even compute, but currently active series can be queried via sum(scrape_samples_scraped).
(I told you out of band, but just again here for public reference)

Amount of metrics has significantly increased in master, giving detailed overviews of active series, in-memory chunks, and more. They are all available under tsdb_*.


Create the Wireframes and Lo-fi for the Terms of Service Page

@tersoo-ahire  I have created the wireframe for this page. The lo-fi requires the audience of the designers because it requires UX Writing which would be discussed in the next meeting we'll have on Figma.
Question: Can you use the wireframe alone to do you need the lo-fi to make the page responsive? Although they would only need a tick box.

https://www.figma.com/file/HDodbxGZGTlpZFJKqWSV2C/Team-50-Chunk-Files?node-id=541%3A184


fix: gsheets import headers fix

Description
For /token call during import process, the env API is not fetched so the envId passed was wrong. Earlier, we used to fetch from localstorage. This PR adds the wait call in the saga so that the envs are always fetched before we can use the token call.
PR fixes following issue(s)
Fixes #27172
Type of change

Bug fix (non-breaking change which fixes an issue)

Testing

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration.
Delete anything that is not relevant

[ ] Manual
[ ] JUnit
[ ] Jest
[ ] Cypress

Test Plan

Add Testsmith test cases links that relate to this PR

Issues raised during DP testing

Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR)

Checklist:
Dev activity

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] 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
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] PR is being merged under a feature flag

QA activity:

[ ] Speedbreak features have been covered
[ ] Test plan covers all impacted features and areas of interest
[ ] Test plan has been peer reviewed by project stakeholders and other QA members
[ ] Manually tested functionality on DP
[ ] We had an implementation alignment call with stakeholders post QA Round 2
[ ] Cypress test cases have been added and approved by SDET/manual QA
[ ] Added Test Plan Approved label after Cypress tests were reviewed
[ ] Added Test Plan Approved label after JUnit tests were reviewed

/ok-to-test


Integer Field not accepting 0 as a value

Integer Field is not accepting 0 as a value and when it's defined as a required field and given 0 as a value, behaves as if 0 is not a value.

Can this line of code:
        return "Required";
}```

be modified as:

```if (field.isRequired && (_.isUndefined(fieldValue) || field.length === 0)) {
        return "Required";
}```

to address this issue?

Please send link to this line.

https://github.com/allcount/allcountjs/blob/9565fd684904b94717facddfa9c4a4f575fac48e/services/validation-service.js

Fixed in #111


Add branch angle computation

Codecov Report

Merging #3 (533f8c5) into master (0c479f4) will decrease coverage by 1.66%.
The diff coverage is 25.92%.

@@            Coverage Diff             @@
##           master       #3      +/-   ##
==========================================
- Coverage   50.57%   48.91%   -1.67%
==========================================
  Files           5        5
  Lines         261      276      +15
==========================================
+ Hits          132      135       +3
- Misses        129      141      +12

Impacted Files
Coverage Δ

neuromorpholib/swc/__init__.py
48.46% <25.92%> (-2.89%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0c479f4...533f8c5. Read the comment docs.


Execute a Wire from a string representation

Currently we can execute a Wire from a external file.
(WireLoader (Wire* "file.edn"))

We should be able to do it from a string in memory (for instance using a string context variable).
(WireLoader (Wire$ .code))

Hey team! Please add your planning poker estimate with ZenHub @sinkingsugar @guusw

we got EDN.Eval now, clarify if this is still necessary? @Kryptos-FR

Maybe it's not. We might want to revisit it once we have the online sandbox. But for now, let's close this issue.


Logout error

I get this error on logout

I got those sometimes, when the state got mixed up during debugging and hot code reload and clicking Back. But not regularly.


Konflux integration tests

Creating a pipeline for the provisioning and deprovisioning of ROSA clusters and running an 'installer' and 'test' tasks
Description

Type of change

[ ] Refactor
[ ] New feature
[ ] Bug fix
[ ] CVE fix
[ ] Optimization
[ ] Documentation Update
[ ] Configuration Update
[ ] Bump-up dependent library

Related Tickets & Documents

Related Issue #
Closes #

Checklist before requesting a review

[ ] I have performed a self-review of my code.
[ ] PR has passed all pre-merge test jobs.
[ ] If it is a core feature, I have added thorough tests.

Testing

Please provide detailed steps to perform tests related to this code change.
How were the fix/results from this change verified? Please provide relevant screenshots or results.

/lgtm
/approve


LPUART type mismatch & some other issues about UART peripheral implementation

Hi all,
Sorry for this stupid question, I'm new to Embedded Rust. I'm trying to use this HAL crate with RTIC together to implement a UART-LoRa modem. But so far I just couldn't figure out this issue when I try to enable RXNEIE (receive data register not empty interrupt):

Here's the code: https://github.com/huming2207/lowu-basestation/blob/cdf87dbade6c983cbe4c77556b336dfc17320af9/src/bin/app.rs
I've also tried replacing the uart_p to dp.LPUART but still no luck, and Rust compiler complains the exact same error when compiling so it's not a language server or VSCode plugin's false positive. Anyway, may I ask if is there any suggestion on how to get RXNEIE to be set?
Meanwhile I've also got another issue with defmt-serial earlier in July: https://github.com/gauteh/defmt-serial/issues/1
Basically, the author tested his implementation works fine on some other microcontrollers, but it didn't work at all on my RAK3172 (STM32WLE5JC) development kit. I'm not sure if this issue is related to the USART/LPUART implementation in this crate, but I've brought it here just in case.
Regards,
Jackson

Ouch, that is an unfortunately difficult error message :(
What it is saying is that the closure |_, w| { ... } expects a different return type.
uart_p.cr1.modify(|_, w| {
    w.rxneie().enabled();
});

The semicolon after enabled() makes it look like this to the compiler:
uart_p.cr1.modify(|_, w| {
    w.rxneie().enabled();
    return ();
});

Without the semicolon it compiles:
uart_p.cr1.modify(|_, w| w.rxneie().enabled());

For the other issue I'm unfamiliar with defmt-serial, will take a closer look when I have more time this weekend :)

Ah oops, my bad! 😅  Thanks for your info!
I will have a try again later tonight.

I can now confirm it's working. Sorry again, I completely misread the error message earlier.

No worries, I've hit that one myself, embedded rust can be difficult at times, happy to help out!


User's current Session will not get terminate when the multi attribute set as the login identifier is updated from myaccount

How to reproduce:
Scenario

Enable Multi attribute login in super tenant flow for claim http://wso2.org/claims/mobile
Set mobile number in the user profile
Login to console as super admin providing the mobile number set in user profile
SSO to myaccount
Update the mobile number (login identifier)
Comeback to console tab and refresh
Still you will be logged in the console app

Scenario 2

Enable Multi attribute login in super tenant flow for claim http://wso2.org/claims/mobile
Set mobile number in the user profile
Login to console as super admin providing the mobile number set in user profile using firefox browser
Login to myaccount from chrome browser
Update the mobile number (login identifier) from chrome
Comeback to console app opened in firefox and refresh the page
0713344556

Actual Behavior
Even though you have changed the login identifier still you can do any operation from your previously logged in session. Isn't it required to logout the users from their current sessions by taking their consent when the attribute set as the login identifier is updated.
https://user-images.githubusercontent.com/31848014/157819250-161d40df-b449-417a-8d8a-93df4a154175.mp4
Environment information (Please complete the following information; remove  any unnecessary fields) :
IS 5.12.0 alpha 15
Primary US - unique id ldap
H2 Default

It is not a frequest operation. So we don't need to revoke the tokens or sessions


Init hostname only once

Hi @toorop
This has been very helpful for me in using logrus with gin.
While I was trying to integrate this, thought about this what if we initialise hostname only once.
Let me know what you think about it.

thx ;)