{
  "_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-pysim\" build number 2,986",
          "upstreamBuild" : 2986,
          "upstreamProject" : "gerrit-pysim",
          "upstreamUrl" : "job/gerrit-pysim/"
        }
      ]
    },
    {
      
    },
    {
      "_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" : "42441"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "GERRIT_HOST",
          "value" : "gerrit.osmocom.org"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "GERRIT_PATCHSET_NUMBER",
          "value" : "1"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "GERRIT_PATCHSET_REVISION",
          "value" : "35384b1c963b84b752a1bdd48edd2314a8e33e42"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "GERRIT_PATCHSET_UPLOADER_NAME",
          "value" : "dexter"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "GERRIT_PORT",
          "value" : "29418"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "GERRIT_PROJECT",
          "value" : "pysim"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "GERRIT_REFSPEC",
          "value" : "refs/changes/41/42441/1"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "GERRIT_REPO_URL",
          "value" : "ssh://jenkins@gerrit.osmocom.org:29418/pysim"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "PIPELINE_BUILD_URL",
          "value" : "https://jenkins.osmocom.org/jenkins/job/gerrit-pysim/2986/"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "PROJECT_NAME",
          "value" : "pysim"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "BRANCH_CI",
          "value" : "master"
        }
      ]
    },
    {
      "_class" : "jenkins.metrics.impl.TimeInQueueAction",
      "blockedDurationMillis" : 0,
      "blockedTimeMillis" : 0,
      "buildableDurationMillis" : 0,
      "buildableTimeMillis" : 0,
      "buildingDurationMillis" : 1045988,
      "executingTimeMillis" : 1045988,
      "executorUtilization" : 1.0,
      "subTaskCount" : 0,
      "waitingDurationMillis" : 5448,
      "waitingTimeMillis" : 5448
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "**" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 2772,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "167d6aca365b64c84b2485a70cb43bbf3a4e4f2d",
            "branch" : [
              {
                "SHA1" : "167d6aca365b64c84b2485a70cb43bbf3a4e4f2d",
                "name" : "**"
              }
            ]
          },
          "revision" : {
            "SHA1" : "167d6aca365b64c84b2485a70cb43bbf3a4e4f2d",
            "branch" : [
              {
                "SHA1" : "167d6aca365b64c84b2485a70cb43bbf3a4e4f2d",
                "name" : "**"
              }
            ]
          }
        },
        "master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 2979,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "35384b1c963b84b752a1bdd48edd2314a8e33e42",
            "branch" : [
              {
                "SHA1" : "35384b1c963b84b752a1bdd48edd2314a8e33e42",
                "name" : "master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "35384b1c963b84b752a1bdd48edd2314a8e33e42",
            "branch" : [
              {
                "SHA1" : "35384b1c963b84b752a1bdd48edd2314a8e33e42",
                "name" : "master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "35384b1c963b84b752a1bdd48edd2314a8e33e42",
        "branch" : [
          {
            "SHA1" : "35384b1c963b84b752a1bdd48edd2314a8e33e42",
            "name" : "master"
          }
        ]
      },
      "remoteUrls" : [
        "ssh://jenkins@gerrit.osmocom.org:29418/pysim"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#2979",
  "duration" : 1045988,
  "estimatedDuration" : 1048588,
  "executor" : None,
  "fullDisplayName" : "gerrit-pysim-build #2979",
  "id" : "2979",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 2979,
  "queueId" : 65081,
  "result" : "SUCCESS",
  "timestamp" : 1773922253217,
  "url" : "https://jenkins.osmocom.org/jenkins/job/gerrit-pysim-build/2979/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "pySim/transport/__init__.py",
          "pySim/commands.py",
          "pySim-shell.py"
        ],
        "commitId" : "35384b1c963b84b752a1bdd48edd2314a8e33e42",
        "timestamp" : 1773922216000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pmaier",
          "fullName" : "pmaier@sysmocom.de"
        },
        "authorEmail" : "pmaier@sysmocom.de",
        "comment" : "transport: change APDU format paradigm\u000a\u000aUnfortunately we have mixed up the concept of TPDUs and APDUs in\u000aearlier versions of pySim-shell. This lead to problems with\u000adetecteding the APDU case properly (see also ISO/IEC 7816-3) and\u000aalso prevented us from adding support for T=1.\u000a\u000aThis problem has been fixed long time ago and all APDUs sent from\u000athe pySim-shell code should be well formed and valid according to\u000aISO/IEC 7816-3.\u000a\u000aTo ensure that we continue to format APDUs correctly as APDUs (and\u000anot TPDUs) we have added a mechanism to the LinkBase class that\u000awould either raise an exception or print a warning if someone\u000amistakenly tries to send an APDU that is really a TPDU. Whether a\u000awarning is printed or an exception is raised is controlled via the\u000aapdu_strict member in the LinkBase class, which is false (print\u000awarning only) by default.\u000a\u000aThe reason why we have implemneted the mechanism this way was\u000abecause we wanted to ensure that existing APDU scripts (pySim-shell\u000aapdu command) keep working, even though when those scripts uses\u000aAPDUs which are formally invalid.\u000a\u000aSending a TPDU instead of an APDU via a T=0 link will still work\u000ain almost all cases. This is also the reason why this problem\u000aslipped through unnoticed for long time. However, there may still\u000abe subtile problems araising from this practice. The root of the\u000aproblem is that it is impossible to distinguish between APDU case\u000a3 and 4 when a TPDU instead of an APDU is sent. However in order\u000ato handle a case 4 APDU correctly we must be able to distinguish\u000athe APDU case correctly to handle the case correctly.\u000aETSI TS 102 221, section 7.3.1.1.4, clause 4 is very clear about\u000athe fact that not (only) the status word (e.g. 61xx) but the\u000aAPDU case is what matters.\u000a\u000aTo complete the logic in LinkBaseTpdu and to maintain compatibility\u000a(older APDU scripts), we must still be able to switch between the\u000a'apdu_strict' mode and the non-strict mode. However, it makes sense\u000ato do this on a per-api-call basis instead globally via a class\u000aproperty.\u000a\u000aAt the same time we will limit the effect of pySim-shell's\u000aapdu_strict setable to the apdu command only. By doing so, the\u000abahviour of the apdu command is not altered. Users will still\u000ahave to enable the 'strict' mode explicitly. At the same time\u000aall the internal functionality of pySim-shell will always use\u000athe 'strict' mode.\u000a\u000aRelated: OS#6970\u000aChange-Id: I9a531a825def318b28bf58291d811cf119003fab\u000a",
        "date" : "2026-03-19 13:10:16 +0100",
        "id" : "35384b1c963b84b752a1bdd48edd2314a8e33e42",
        "msg" : "transport: change APDU format paradigm",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "pySim/transport/__init__.py"
          },
          {
            "editType" : "edit",
            "file" : "pySim/commands.py"
          },
          {
            "editType" : "edit",
            "file" : "pySim-shell.py"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pmaier",
      "fullName" : "pmaier@sysmocom.de"
    }
  ],
  "runs" : [
    {
      "number" : 2979,
      "url" : "https://jenkins.osmocom.org/jenkins/job/gerrit-pysim-build/JOB_TYPE=distcheck,a1=default,a3=default,a4=default,label=osmocom-gerrit/2979/"
    },
    {
      "number" : 2979,
      "url" : "https://jenkins.osmocom.org/jenkins/job/gerrit-pysim-build/JOB_TYPE=docs,a1=default,a3=default,a4=default,label=osmocom-gerrit/2979/"
    },
    {
      "number" : 2979,
      "url" : "https://jenkins.osmocom.org/jenkins/job/gerrit-pysim-build/JOB_TYPE=pylint,a1=default,a3=default,a4=default,label=osmocom-gerrit/2979/"
    },
    {
      "number" : 2979,
      "url" : "https://jenkins.osmocom.org/jenkins/job/gerrit-pysim-build/JOB_TYPE=test,a1=default,a3=default,a4=default,label=simtester/2979/"
    }
  ]
}