{
  "_class" : "hudson.matrix.MatrixBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "org.jenkinsci.plugins.workflow.support.steps.build.BuildUpstreamCause",
          "shortDescription" : "Started by upstream project \"gerrit-libosmocore\" build number 2,186",
          "upstreamBuild" : 2186,
          "upstreamProject" : "gerrit-libosmocore",
          "upstreamUrl" : "job/gerrit-libosmocore/"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "hudson.model.ParametersAction",
      "parameters" : [
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "COMMENT_TYPE",
          "value" : ""
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "DISTRO",
          "value" : ""
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "GERRIT_BRANCH",
          "value" : "master"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "GERRIT_CHANGE_NUMBER",
          "value" : "41813"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "GERRIT_HOST",
          "value" : "gerrit.osmocom.org"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "GERRIT_PATCHSET_NUMBER",
          "value" : "8"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "GERRIT_PATCHSET_REVISION",
          "value" : "1a1bd380de6c8d6abfe9d7b996b8cf2668f9dac2"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "GERRIT_PATCHSET_UPLOADER_NAME",
          "value" : "Timur Davydov"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "GERRIT_PORT",
          "value" : "29418"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "GERRIT_PROJECT",
          "value" : "libosmocore"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "GERRIT_REFSPEC",
          "value" : "refs/changes/13/41813/8"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "GERRIT_REPO_URL",
          "value" : "ssh://jenkins@gerrit.osmocom.org:29418/libosmocore"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "PIPELINE_BUILD_URL",
          "value" : "https://jenkins.osmocom.org/jenkins/job/gerrit-libosmocore/2186/"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "PROJECT_NAME",
          "value" : "libosmocore"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "BRANCH_CI",
          "value" : "master"
        }
      ]
    },
    {
      "_class" : "jenkins.metrics.impl.TimeInQueueAction",
      "blockedDurationMillis" : 0,
      "blockedTimeMillis" : 0,
      "buildableDurationMillis" : 0,
      "buildableTimeMillis" : 0,
      "buildingDurationMillis" : 82830,
      "executingTimeMillis" : 82830,
      "executorUtilization" : 1.0,
      "subTaskCount" : 0,
      "waitingDurationMillis" : 5640,
      "waitingTimeMillis" : 5640
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "osmith/1.9.1" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 1315,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "197248107c5c2007b44c4df1bec011e6c1754cda",
            "branch" : [
              {
                "SHA1" : "197248107c5c2007b44c4df1bec011e6c1754cda",
                "name" : "osmith/1.9.1"
              }
            ]
          },
          "revision" : {
            "SHA1" : "197248107c5c2007b44c4df1bec011e6c1754cda",
            "branch" : [
              {
                "SHA1" : "197248107c5c2007b44c4df1bec011e6c1754cda",
                "name" : "osmith/1.9.1"
              }
            ]
          }
        },
        "pespin/rel-1.12.0" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 2156,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "d38417e5965ae02eaffdd87d281098f30105b8b7",
            "branch" : [
              {
                "SHA1" : "d38417e5965ae02eaffdd87d281098f30105b8b7",
                "name" : "pespin/rel-1.12.0"
              }
            ]
          },
          "revision" : {
            "SHA1" : "d38417e5965ae02eaffdd87d281098f30105b8b7",
            "branch" : [
              {
                "SHA1" : "d38417e5965ae02eaffdd87d281098f30105b8b7",
                "name" : "pespin/rel-1.12.0"
              }
            ]
          }
        },
        "osmith/1.9.2" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 1319,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "3f0bbe398e16513906d29802d058a87655fceaf1",
            "branch" : [
              {
                "SHA1" : "3f0bbe398e16513906d29802d058a87655fceaf1",
                "name" : "osmith/1.9.2"
              }
            ]
          },
          "revision" : {
            "SHA1" : "3f0bbe398e16513906d29802d058a87655fceaf1",
            "branch" : [
              {
                "SHA1" : "3f0bbe398e16513906d29802d058a87655fceaf1",
                "name" : "osmith/1.9.2"
              }
            ]
          }
        },
        "osmith/wip" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 1773,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "aa177c0f4457df953e3e6e121e8806a4cf403d72",
            "branch" : [
              {
                "SHA1" : "aa177c0f4457df953e3e6e121e8806a4cf403d72",
                "name" : "osmith/wip"
              }
            ]
          },
          "revision" : {
            "SHA1" : "aa177c0f4457df953e3e6e121e8806a4cf403d72",
            "branch" : [
              {
                "SHA1" : "aa177c0f4457df953e3e6e121e8806a4cf403d72",
                "name" : "osmith/wip"
              }
            ]
          }
        },
        "pespin/rel-1.10.0" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 1877,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "a32a6ee4a6532e0c1d358ecebb8f13b8acc75dc1",
            "branch" : [
              {
                "SHA1" : "a32a6ee4a6532e0c1d358ecebb8f13b8acc75dc1",
                "name" : "pespin/rel-1.10.0"
              }
            ]
          },
          "revision" : {
            "SHA1" : "a32a6ee4a6532e0c1d358ecebb8f13b8acc75dc1",
            "branch" : [
              {
                "SHA1" : "a32a6ee4a6532e0c1d358ecebb8f13b8acc75dc1",
                "name" : "pespin/rel-1.10.0"
              }
            ]
          }
        },
        "osmith/1.11.2" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 2093,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "22a11a35e3feec31b86738d19f3d85406feb099a",
            "branch" : [
              {
                "SHA1" : "22a11a35e3feec31b86738d19f3d85406feb099a",
                "name" : "osmith/1.11.2"
              }
            ]
          },
          "revision" : {
            "SHA1" : "22a11a35e3feec31b86738d19f3d85406feb099a",
            "branch" : [
              {
                "SHA1" : "22a11a35e3feec31b86738d19f3d85406feb099a",
                "name" : "osmith/1.11.2"
              }
            ]
          }
        },
        "osmith/1.11.3" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 2118,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "17ca3339e13d779a330781334e92f48d7ea87d36",
            "branch" : [
              {
                "SHA1" : "17ca3339e13d779a330781334e92f48d7ea87d36",
                "name" : "osmith/1.11.3"
              }
            ]
          },
          "revision" : {
            "SHA1" : "17ca3339e13d779a330781334e92f48d7ea87d36",
            "branch" : [
              {
                "SHA1" : "17ca3339e13d779a330781334e92f48d7ea87d36",
                "name" : "osmith/1.11.3"
              }
            ]
          }
        },
        "rel-1.9.1" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 1740,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "3a1bb866bbc481b379034723ede51a2e4e8b9c65",
            "branch" : [
              {
                "SHA1" : "3a1bb866bbc481b379034723ede51a2e4e8b9c65",
                "name" : "rel-1.9.1"
              }
            ]
          },
          "revision" : {
            "SHA1" : "3a1bb866bbc481b379034723ede51a2e4e8b9c65",
            "branch" : [
              {
                "SHA1" : "3a1bb866bbc481b379034723ede51a2e4e8b9c65",
                "name" : "rel-1.9.1"
              }
            ]
          }
        },
        "arehbein/osmo_io_ipa" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 833,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "d75a0cca8117b609da75111388bf8baea5dac0a5",
            "branch" : [
              {
                "SHA1" : "d75a0cca8117b609da75111388bf8baea5dac0a5",
                "name" : "arehbein/osmo_io_ipa"
              }
            ]
          },
          "revision" : {
            "SHA1" : "d75a0cca8117b609da75111388bf8baea5dac0a5",
            "branch" : [
              {
                "SHA1" : "d75a0cca8117b609da75111388bf8baea5dac0a5",
                "name" : "arehbein/osmo_io_ipa"
              }
            ]
          }
        },
        "rel-1.11.1" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 1946,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "87de74a9f5835fb56a4758860aea3e673c29060e",
            "branch" : [
              {
                "SHA1" : "87de74a9f5835fb56a4758860aea3e673c29060e",
                "name" : "rel-1.11.1"
              }
            ]
          },
          "revision" : {
            "SHA1" : "87de74a9f5835fb56a4758860aea3e673c29060e",
            "branch" : [
              {
                "SHA1" : "87de74a9f5835fb56a4758860aea3e673c29060e",
                "name" : "rel-1.11.1"
              }
            ]
          }
        },
        "rel-1.9.3" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 1743,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "55ea51049775e623880f62026ad827f580aec7a2",
            "branch" : [
              {
                "SHA1" : "55ea51049775e623880f62026ad827f580aec7a2",
                "name" : "rel-1.9.3"
              }
            ]
          },
          "revision" : {
            "SHA1" : "55ea51049775e623880f62026ad827f580aec7a2",
            "branch" : [
              {
                "SHA1" : "55ea51049775e623880f62026ad827f580aec7a2",
                "name" : "rel-1.9.3"
              }
            ]
          }
        },
        "master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 2187,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "1a1bd380de6c8d6abfe9d7b996b8cf2668f9dac2",
            "branch" : [
              {
                "SHA1" : "1a1bd380de6c8d6abfe9d7b996b8cf2668f9dac2",
                "name" : "master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "1a1bd380de6c8d6abfe9d7b996b8cf2668f9dac2",
            "branch" : [
              {
                "SHA1" : "1a1bd380de6c8d6abfe9d7b996b8cf2668f9dac2",
                "name" : "master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "1a1bd380de6c8d6abfe9d7b996b8cf2668f9dac2",
        "branch" : [
          {
            "SHA1" : "1a1bd380de6c8d6abfe9d7b996b8cf2668f9dac2",
            "name" : "master"
          }
        ]
      },
      "remoteUrls" : [
        "ssh://jenkins@gerrit.osmocom.org:29418/libosmocore"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#2187",
  "duration" : 82830,
  "estimatedDuration" : 129731,
  "executor" : None,
  "fullDisplayName" : "gerrit-libosmocore-build #2187",
  "id" : "2187",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 2187,
  "queueId" : 6847,
  "result" : "FAILURE",
  "timestamp" : 1768830523408,
  "url" : "https://jenkins.osmocom.org/jenkins/job/gerrit-libosmocore-build/2187/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/core/netdev.c",
          "configure.ac",
          "include/osmocom/core/netns.h",
          "include/osmocom/core/logging.h",
          "src/core/osmo_io_internal.h",
          "src/core/tun.c",
          "src/core/Makefile.am",
          "src/core/libosmocore.map",
          "src/core/socket.c",
          "src/vty/logging_vty.c",
          "src/core/logging_emscripten.c",
          "src/core/stats_tcp.c"
        ],
        "commitId" : "1a1bd380de6c8d6abfe9d7b996b8cf2668f9dac2",
        "timestamp" : 1768830424000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/dtv.comp",
          "fullName" : "dtv.comp"
        },
        "authorEmail" : "dtv.comp@gmail.com",
        "comment" : "Add Emscripten build support and JS callback logging backend\u000a\u000aThis change enables building libosmocore for sandboxed, non-POSIX\u000aenvironments, specifically WebAssembly targets produced via the\u000aEmscripten toolchain.\u000a\u000aThe broader motivation is to allow partial execution of selected\u000aOsmocom components in isolated runtime environments where direct access\u000ato hardware and traditional operating system facilities (filesystem,\u000asockets, privileged execution) is not available.\u000a\u000aOne intended use case is running a GSM 2G base station where the\u000aradio-facing components are executed inside a web environment, while\u000athe remaining Osmocom stack and core network components continue to run\u000aunchanged on a conventional backend server. In this model, highly\u000astripped-down variants of osmo-bts and osmo-trx are built as static\u000aWebAssembly libraries and executed in the browser, while depending on\u000acore libraries such as libosmocore, libosmo-netif, and libosmo-abis.\u000a\u000aA practical advantage of this approach is that no deployment or\u000aprivileged setup is required on the radio endpoint side. A user can\u000ainstantiate a radio endpoint with minimal configuration, while all\u000astateful logic and operational complexity remains centralized on the\u000abackend. Multiple such radio endpoints may connect to the same backend\u000acore network, effectively forming a single logical network from the\u000acore network perspective, independent of the physical location of the\u000aradio endpoints.\u000a\u000aExisting libosmocore build logic and platform assumptions rely on the\u000aavailability of POSIX APIs and OS services which are not present in\u000aWebAssembly runtimes. This currently prevents libosmocore from being\u000abuilt for such targets without targeted, build-time adjustments. This\u000apatch introduces the minimal set of changes required to enable such\u000abuilds, without affecting native platforms.\u000a\u000aAs part of this groundwork, a minimal callback-based logging hook is\u000aintroduced. When building for Emscripten, this hook allows forwarding\u000alog messages to an external environment via a user-provided JavaScript\u000acallback. This enables integration with browser-side logging or UI\u000ainfrastructure without introducing new logging backends or runtime\u000adependencies. For all other build targets, the hook resolves to a no-op\u000aimplementation and does not alter existing logging behavior.\u000a\u000aNo runtime behavior, protocol semantics, or network interactions are\u000achanged by this patch. All modifications are strictly limited to\u000abuild-time and platform-specific code paths and are only active when\u000atargeting Emscripten. Native builds and existing deployment scenarios\u000aremain unaffected.\u000a\u000aThis patch is intended as groundwork. Follow-up changes, proposed\u000aseparately and incrementally, may extend similar support to other\u000aOsmocom components such as libosmo-netif, libosmo-abis, osmo-bts, and\u000aosmo-trx, while keeping all such changes optional and isolated from\u000anative builds.\u000a\u000aChange-Id: Ia8d5f4bb6570b5e055826f3a051e5e5896866e31\u000a",
        "date" : "2026-01-19 17:47:04 +0400",
        "id" : "1a1bd380de6c8d6abfe9d7b996b8cf2668f9dac2",
        "msg" : "Add Emscripten build support and JS callback logging backend",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/core/libosmocore.map"
          },
          {
            "editType" : "edit",
            "file" : "src/core/tun.c"
          },
          {
            "editType" : "edit",
            "file" : "src/vty/logging_vty.c"
          },
          {
            "editType" : "edit",
            "file" : "include/osmocom/core/logging.h"
          },
          {
            "editType" : "edit",
            "file" : "src/core/netdev.c"
          },
          {
            "editType" : "edit",
            "file" : "src/core/osmo_io_internal.h"
          },
          {
            "editType" : "edit",
            "file" : "src/core/Makefile.am"
          },
          {
            "editType" : "edit",
            "file" : "src/core/socket.c"
          },
          {
            "editType" : "edit",
            "file" : "src/core/stats_tcp.c"
          },
          {
            "editType" : "add",
            "file" : "src/core/logging_emscripten.c"
          },
          {
            "editType" : "edit",
            "file" : "include/osmocom/core/netns.h"
          },
          {
            "editType" : "edit",
            "file" : "configure.ac"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/dtv.comp",
      "fullName" : "dtv.comp"
    }
  ],
  "runs" : [
    {
      "number" : 2187,
      "url" : "https://jenkins.osmocom.org/jenkins/job/gerrit-libosmocore-build/a2=default,a3=default,a4=default,arch=amd64,label=io_uring/2187/"
    },
    {
      "number" : 2187,
      "url" : "https://jenkins.osmocom.org/jenkins/job/gerrit-libosmocore-build/a2=default,a3=default,a4=default,arch=arm-none-eabi,label=io_uring/2187/"
    }
  ]
}