{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "org.jenkinsci.plugins.parameterizedscheduler.ParameterizedTimerTriggerCause",
          "shortDescription" : "Started by timer with parameters: {BUILD_CFG_TARGET_DEV=WR8750N/WR9500N/WG600HP (AR9344)}"
        }
      ]
    },
    {
      "_class" : "hudson.model.ParametersAction",
      "parameters" : [
        {
          "_class" : "hudson.model.BooleanParameterValue",
          "name" : "BUILD_CFG_DISTCLEAN",
          "value" : True
        },
        {
          "_class" : "hudson.model.BooleanParameterValue",
          "name" : "BUILD_CFG_DIFFCONFIG",
          "value" : True
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "BUILD_CFG_TARGET_DEV",
          "value" : "WR8750N/WR9500N/WG600HP (AR9344)"
        }
      ]
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/main" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 352,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "e1c125c167e5c4fef16fd5e2bf670f290808b2d1",
            "branch" : [
              {
                "SHA1" : "e1c125c167e5c4fef16fd5e2bf670f290808b2d1",
                "name" : "refs/remotes/origin/main"
              }
            ]
          },
          "revision" : {
            "SHA1" : "e1c125c167e5c4fef16fd5e2bf670f290808b2d1",
            "branch" : [
              {
                "SHA1" : "e1c125c167e5c4fef16fd5e2bf670f290808b2d1",
                "name" : "refs/remotes/origin/main"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "e1c125c167e5c4fef16fd5e2bf670f290808b2d1",
        "branch" : [
          {
            "SHA1" : "e1c125c167e5c4fef16fd5e2bf670f290808b2d1",
            "name" : "refs/remotes/origin/main"
          }
        ]
      },
      "remoteUrls" : [
        "https://github.com/openwrt/openwrt"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    {
      "displayPath" : "config.buildinfo",
      "fileName" : "config.buildinfo",
      "relativePath" : "bin/targets/ath79/tiny/config.buildinfo"
    },
    {
      "displayPath" : "feeds.buildinfo",
      "fileName" : "feeds.buildinfo",
      "relativePath" : "bin/targets/ath79/tiny/feeds.buildinfo"
    },
    {
      "displayPath" : "openwrt-ath79-tiny-nec_wg600hp-initramfs-factory.bin",
      "fileName" : "openwrt-ath79-tiny-nec_wg600hp-initramfs-factory.bin",
      "relativePath" : "bin/targets/ath79/tiny/openwrt-ath79-tiny-nec_wg600hp-initramfs-factory.bin"
    },
    {
      "displayPath" : "openwrt-ath79-tiny-nec_wg600hp-initramfs-kernel.bin",
      "fileName" : "openwrt-ath79-tiny-nec_wg600hp-initramfs-kernel.bin",
      "relativePath" : "bin/targets/ath79/tiny/openwrt-ath79-tiny-nec_wg600hp-initramfs-kernel.bin"
    },
    {
      "displayPath" : "openwrt-ath79-tiny-nec_wg600hp-squashfs-sysupgrade.bin",
      "fileName" : "openwrt-ath79-tiny-nec_wg600hp-squashfs-sysupgrade.bin",
      "relativePath" : "bin/targets/ath79/tiny/openwrt-ath79-tiny-nec_wg600hp-squashfs-sysupgrade.bin"
    },
    {
      "displayPath" : "openwrt-ath79-tiny-nec_wg600hp-uboot.bin",
      "fileName" : "openwrt-ath79-tiny-nec_wg600hp-uboot.bin",
      "relativePath" : "bin/targets/ath79/tiny/openwrt-ath79-tiny-nec_wg600hp-uboot.bin"
    },
    {
      "displayPath" : "openwrt-ath79-tiny-nec_wr8750n-initramfs-factory.bin",
      "fileName" : "openwrt-ath79-tiny-nec_wr8750n-initramfs-factory.bin",
      "relativePath" : "bin/targets/ath79/tiny/openwrt-ath79-tiny-nec_wr8750n-initramfs-factory.bin"
    },
    {
      "displayPath" : "openwrt-ath79-tiny-nec_wr8750n-initramfs-kernel.bin",
      "fileName" : "openwrt-ath79-tiny-nec_wr8750n-initramfs-kernel.bin",
      "relativePath" : "bin/targets/ath79/tiny/openwrt-ath79-tiny-nec_wr8750n-initramfs-kernel.bin"
    },
    {
      "displayPath" : "openwrt-ath79-tiny-nec_wr8750n-squashfs-sysupgrade.bin",
      "fileName" : "openwrt-ath79-tiny-nec_wr8750n-squashfs-sysupgrade.bin",
      "relativePath" : "bin/targets/ath79/tiny/openwrt-ath79-tiny-nec_wr8750n-squashfs-sysupgrade.bin"
    },
    {
      "displayPath" : "openwrt-ath79-tiny-nec_wr8750n-uboot.bin",
      "fileName" : "openwrt-ath79-tiny-nec_wr8750n-uboot.bin",
      "relativePath" : "bin/targets/ath79/tiny/openwrt-ath79-tiny-nec_wr8750n-uboot.bin"
    },
    {
      "displayPath" : "openwrt-ath79-tiny-nec_wr9500n-initramfs-factory.bin",
      "fileName" : "openwrt-ath79-tiny-nec_wr9500n-initramfs-factory.bin",
      "relativePath" : "bin/targets/ath79/tiny/openwrt-ath79-tiny-nec_wr9500n-initramfs-factory.bin"
    },
    {
      "displayPath" : "openwrt-ath79-tiny-nec_wr9500n-initramfs-kernel.bin",
      "fileName" : "openwrt-ath79-tiny-nec_wr9500n-initramfs-kernel.bin",
      "relativePath" : "bin/targets/ath79/tiny/openwrt-ath79-tiny-nec_wr9500n-initramfs-kernel.bin"
    },
    {
      "displayPath" : "openwrt-ath79-tiny-nec_wr9500n-squashfs-sysupgrade.bin",
      "fileName" : "openwrt-ath79-tiny-nec_wr9500n-squashfs-sysupgrade.bin",
      "relativePath" : "bin/targets/ath79/tiny/openwrt-ath79-tiny-nec_wr9500n-squashfs-sysupgrade.bin"
    },
    {
      "displayPath" : "openwrt-ath79-tiny-nec_wr9500n-uboot.bin",
      "fileName" : "openwrt-ath79-tiny-nec_wr9500n-uboot.bin",
      "relativePath" : "bin/targets/ath79/tiny/openwrt-ath79-tiny-nec_wr9500n-uboot.bin"
    },
    {
      "displayPath" : "openwrt-ath79-tiny.manifest",
      "fileName" : "openwrt-ath79-tiny.manifest",
      "relativePath" : "bin/targets/ath79/tiny/openwrt-ath79-tiny.manifest"
    },
    {
      "displayPath" : "profiles.json",
      "fileName" : "profiles.json",
      "relativePath" : "bin/targets/ath79/tiny/profiles.json"
    },
    {
      "displayPath" : "sha256sums",
      "fileName" : "sha256sums",
      "relativePath" : "bin/targets/ath79/tiny/sha256sums"
    },
    {
      "displayPath" : "version.buildinfo",
      "fileName" : "version.buildinfo",
      "relativePath" : "bin/targets/ath79/tiny/version.buildinfo"
    }
  ],
  "building" : False,
  "description" : "diffconfig: true, device: WR8750N/WR9500N/WG600HP (AR9344)",
  "displayName" : "#352",
  "duration" : 2059096,
  "estimatedDuration" : 2078327,
  "executor" : None,
  "fullDisplayName" : "OpenWrt (master) for NEC Aterm (NetBSD based) #352",
  "id" : "352",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 352,
  "queueId" : 345,
  "result" : "SUCCESS",
  "timestamp" : 1768434000183,
  "url" : "https://taiha.net/jenkins/view/all/job/OpenWrt-master-NEC-BSD-Aterm/352/",
  "builtOn" : "home-slave02_taihasv",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "target/linux/realtek/files-6.12/drivers/net/phy/rtl83xx-phy.c"
        ],
        "commitId" : "b209174c43bc0b6a4cb6f4af44a1b25d85d543c6",
        "timestamp" : 1768185888000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/stijn",
          "fullName" : "stijn"
        },
        "authorEmail" : "stijn@linux-ipv6.be",
        "comment" : "realtek: phy: use lock helpers\u000a\u000aNo need to open code bus locking.\u000a\u000aSigned-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>\u000aLink: https://github.com/openwrt/openwrt/pull/21435\u000aSigned-off-by: Stijn Tintel <stijn@linux-ipv6.be>\u000a",
        "date" : "2026-01-12 04:44:48 +0200",
        "id" : "b209174c43bc0b6a4cb6f4af44a1b25d85d543c6",
        "msg" : "realtek: phy: use lock helpers",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "target/linux/realtek/files-6.12/drivers/net/phy/rtl83xx-phy.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "target/linux/realtek/files-6.12/drivers/net/phy/rtl83xx-phy.c"
        ],
        "commitId" : "4fa90d879b3cb45aadd65c75b741f83f1b9fe811",
        "timestamp" : 1768185888000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/stijn",
          "fullName" : "stijn"
        },
        "authorEmail" : "stijn@linux-ipv6.be",
        "comment" : "realtek: phy: enhance RTL8218B initialization\u000a\u000aThe RTL8214FC and the RTL8218B share the same register set and\u000aneed to be initialized quite similar. In the future the RTl8214FC\u000awill get its own setup sequence. To keep the codebase small the\u000acommon parts (serdes & copper) will be covered by the existing\u000aRTL8218B configuration.\u000a\u000aEnhance the RTL8218B setup with this separate commit to ensure\u000athat nothing breaks.\u000a\u000aSigned-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>\u000aLink: https://github.com/openwrt/openwrt/pull/21435\u000aSigned-off-by: Stijn Tintel <stijn@linux-ipv6.be>\u000a",
        "date" : "2026-01-12 04:44:48 +0200",
        "id" : "4fa90d879b3cb45aadd65c75b741f83f1b9fe811",
        "msg" : "realtek: phy: enhance RTL8218B initialization",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "target/linux/realtek/files-6.12/drivers/net/phy/rtl83xx-phy.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "target/linux/realtek/files-6.12/drivers/net/phy/rtl83xx-phy.c"
        ],
        "commitId" : "0bab65dfa7c8ab27d0b2c76126e4d1114a92aa10",
        "timestamp" : 1768185888000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/stijn",
          "fullName" : "stijn"
        },
        "authorEmail" : "stijn@linux-ipv6.be",
        "comment" : "realtek: phy: add RTL8214FC initialization for RTL839x\u000a\u000aUntil now the RTL8214FC is initialized either by U-Boot (all\u000adevices) or by some magic firmware file (RTL838x). On RTL839x\u000adevices without U-Boot (e.g. ZyXEL GS1920) this PHY cannot\u000abe used.\u000a\u000aProvide the most basic setup sequence for RTL839x so that\u000acopper/fiber work. Later it can be taken over for all devices\u000aand the firmware helpers can be dropped.\u000a\u000aRemark! This should not (but might) break RTL839x devices with\u000aRTL8214FC U-Boot setup.\u000a\u000aSigned-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>\u000aLink: https://github.com/openwrt/openwrt/pull/21435\u000aSigned-off-by: Stijn Tintel <stijn@linux-ipv6.be>\u000a",
        "date" : "2026-01-12 04:44:48 +0200",
        "id" : "0bab65dfa7c8ab27d0b2c76126e4d1114a92aa10",
        "msg" : "realtek: phy: add RTL8214FC initialization for RTL839x",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "target/linux/realtek/files-6.12/drivers/net/phy/rtl83xx-phy.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "target/linux/generic/backport-6.12/730-11-v7.0-net-phy-mxl-gpy-implement-SGMII-in-band-configuratio.patch",
          "target/linux/generic/backport-6.12/735-v6.13-net-phy-avoid-undefined-behavior-in-_led_polarity_se.patch",
          "target/linux/generic/pending-6.12/721-net-phy-mxl-gpy-implement-SGMII-in-band-configuratio.patch"
        ],
        "commitId" : "6ac605e4c61746c2c4fbf24a705508de7fc67d7f",
        "timestamp" : 1768188445000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/daniel",
          "fullName" : "daniel"
        },
        "authorEmail" : "daniel@makrotopia.org",
        "comment" : "kernel: net: phy: mxl-gpy: replace patch with upstream commit\u000a\u000aReplace accepted patch with backported upstream commit and refresh\u000apatches.\u000a\u000aSigned-off-by: Daniel Golle <daniel@makrotopia.org>\u000a",
        "date" : "2026-01-12 03:27:25 +0000",
        "id" : "6ac605e4c61746c2c4fbf24a705508de7fc67d7f",
        "msg" : "kernel: net: phy: mxl-gpy: replace patch with upstream commit",
        "paths" : [
          {
            "editType" : "add",
            "file" : "target/linux/generic/backport-6.12/730-11-v7.0-net-phy-mxl-gpy-implement-SGMII-in-band-configuratio.patch"
          },
          {
            "editType" : "edit",
            "file" : "target/linux/generic/backport-6.12/735-v6.13-net-phy-avoid-undefined-behavior-in-_led_polarity_se.patch"
          },
          {
            "editType" : "delete",
            "file" : "target/linux/generic/pending-6.12/721-net-phy-mxl-gpy-implement-SGMII-in-band-configuratio.patch"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "target/linux/realtek/files-6.12/drivers/net/ethernet/rtl838x_eth.c",
          "target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/common.c"
        ],
        "commitId" : "a91c3abe83c3f9513518c86b5d0a42b5a9afaad3",
        "timestamp" : 1768222059000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/stijn",
          "fullName" : "stijn"
        },
        "authorEmail" : "stijn@linux-ipv6.be",
        "comment" : "realtek: dsa: avoid use-after-free\u000a\u000aThe realtek target uses some functions marked __init for initialization.\u000aHowever, that means they can only be called once when compiled in and\u000aafterwards the memory occupied by them is freed and potentially reused.\u000aSome \"impossible\" (code at a given location can't crash in the way it\u000adoes) crashes can be caused by this because upon re-execution of those\u000afunctions, garbage gets executed. Such re-execution can happen for\u000adeferred probes or repeated probes.\u000a\u000aSigned-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>\u000aLink: https://github.com/openwrt/openwrt/pull/21504\u000aSigned-off-by: Stijn Tintel <stijn@linux-ipv6.be>\u000a",
        "date" : "2026-01-12 14:47:39 +0200",
        "id" : "a91c3abe83c3f9513518c86b5d0a42b5a9afaad3",
        "msg" : "realtek: dsa: avoid use-after-free",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "target/linux/realtek/files-6.12/drivers/net/ethernet/rtl838x_eth.c"
          },
          {
            "editType" : "edit",
            "file" : "target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/common.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "target/linux/realtek/files-6.12/drivers/net/ethernet/rtl838x_eth.c"
        ],
        "commitId" : "19b8d391a95d5a2fa038551a9498a9fd426dfc0e",
        "timestamp" : 1768222059000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/stijn",
          "fullName" : "stijn"
        },
        "authorEmail" : "stijn@linux-ipv6.be",
        "comment" : "realtek: ethernet: avoid using unitialized memory\u000a\u000aThe mac_addr variable was not zero-initialized, causing weird side effects\u000awhen the memory contents were a valid MAC address.\u000a\u000aSigned-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>\u000aLink: https://github.com/openwrt/openwrt/pull/21504\u000aSigned-off-by: Stijn Tintel <stijn@linux-ipv6.be>\u000a",
        "date" : "2026-01-12 14:47:39 +0200",
        "id" : "19b8d391a95d5a2fa038551a9498a9fd426dfc0e",
        "msg" : "realtek: ethernet: avoid using unitialized memory",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "target/linux/realtek/files-6.12/drivers/net/ethernet/rtl838x_eth.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "target/linux/qoriq/image/generic.mk",
          "package/boot/uboot-qoriq/Makefile"
        ],
        "commitId" : "20727f89d524ffc2970165a5f91558b3785ea249",
        "timestamp" : 1768222770000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/robimarko",
          "fullName" : "robimarko"
        },
        "authorEmail" : "robimarko@gmail.com",
        "comment" : "package: uboot-qoriq: fix T4240RDB u-boot selection\u000a\u000aMark T4240RDB u-boot variants as device-built and avoid installing them into rootfs.\u000a\u000aWithout this buildbot crashes during package install with:\u000a\u000aERROR: unable to select packages:\u000a\u000a  u-boot-fsl_T4240RDB-nor (no such package):\u000a\u000a    required by: world[u-boot-fsl_T4240RDB-nor]\u000a\u000a  u-boot-fsl_T4240RDB-sdboot (no such package):\u000a\u000a    required by: world[u-boot-fsl_T4240RDB-sdboot]\u000a\u000aFixes: c5d3d5fe28f7 (\"package: u-boot: initial support for qoriq arch\")\u000aSigned-off-by: Pawel Dembicki <paweldembicki@gmail.com>\u000aLink: https://github.com/openwrt/openwrt/pull/21514\u000aSigned-off-by: Robert Marko <robimarko@gmail.com>\u000a",
        "date" : "2026-01-12 13:59:30 +0100",
        "id" : "20727f89d524ffc2970165a5f91558b3785ea249",
        "msg" : "package: uboot-qoriq: fix T4240RDB u-boot selection",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "package/boot/uboot-qoriq/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "target/linux/qoriq/image/generic.mk"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "target/linux/realtek/files-6.12/drivers/net/ethernet/rtl838x_eth.h"
        ],
        "commitId" : "80dbf932a39eb81eec8096e4ab8513ddb5d69e26",
        "timestamp" : 1768223612000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/stijn",
          "fullName" : "stijn"
        },
        "authorEmail" : "stijn@linux-ipv6.be",
        "comment" : "realtek: eth: remove mdio leftovers\u000a\u000aThe mdio driver was carved out from the ethernet driver long\u000aago. Remove some leftover defines.\u000a\u000aSigned-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>\u000aLink: https://github.com/openwrt/openwrt/pull/21502\u000aSigned-off-by: Stijn Tintel <stijn@linux-ipv6.be>\u000a",
        "date" : "2026-01-12 15:13:32 +0200",
        "id" : "80dbf932a39eb81eec8096e4ab8513ddb5d69e26",
        "msg" : "realtek: eth: remove mdio leftovers",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "target/linux/realtek/files-6.12/drivers/net/ethernet/rtl838x_eth.h"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "include/package-pack.mk"
        ],
        "commitId" : "49fc31903306c346fcda862800f40d5e94cff5b0",
        "timestamp" : 1768224532000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/robimarko",
          "fullName" : "robimarko"
        },
        "authorEmail" : "robimarko@gmail.com",
        "comment" : "build: remove default provider priority\u000a\u000aRemove default provider priority since packages are expected to\u000aexplicitly declare virtual provides and set default variants. With\u000adefault priority some package variants without PROVIDES and not marked\u000aas default end up with priority 0 and are not picked for installation.\u000a\u000aBefore the change dnsmasq-dhcpv6 is selected for dnsmasq, because the\u000aformer has higher priority:\u000a\u000aname <dnsmasq> selected from selectable list\u000aselect_package: dnsmasq (requirers=1, autosel=1, iif=0, order_id=0x4000005f)\u000a  consider dnsmasq-2.91-r2 iif_triggered=0, tag_ok=1, selectable=1, available=1, flags=0x0, provider_priority=0, installed=0\u000a   prefer existing package\u000a    choose as new provider\u000a  consider dnsmasq-dhcpv6-2.91-r2 iif_triggered=0, tag_ok=1, selectable=1, available=1, flags=0x0, provider_priority=1, installed=0\u000a    prefer highest declared provider priority\u000a    choose as new provider\u000a  consider dnsmasq-full-2.91-r2 iif_triggered=0, tag_ok=1, selectable=1, available=1, flags=0x0, provider_priority=1, installed=0\u000a    prefer lowest available repository\u000aselecting: dnsmasq-dhcpv6-2.91-r2, available: 1\u000aassign dnsmasq-dhcpv6 to dnsmasq-dhcpv6-2.91-r2\u000aassign dnsmasq to dnsmasq-dhcpv6-2.91-r2\u000adisqualify_package: dnsmasq-2.91-r2 (conflicting provides)\u000adisqualify_package: dnsmasq-full-2.91-r2 (conflicting provides)\u000a    apply_constraint: libc\u000a    apply_constraint: provider: libc-1.2.5-r5: 1\u000a\u000aAfter the change dnsmasq is selected for dnsmasq based on\u000alexicographical order:\u000a\u000aname <dnsmasq> selected from selectable list\u000aselect_package: dnsmasq (requirers=1, autosel=1, iif=0, order_id=0x4000005f)\u000a  consider dnsmasq-2.91-r2 iif_triggered=0, tag_ok=1, selectable=1, available=1, flags=0x0, provider_priority=0, installed=0\u000a   prefer existing package\u000a    choose as new provider\u000a  consider dnsmasq-dhcpv6-2.91-r2 iif_triggered=0, tag_ok=1, selectable=1, available=1, flags=0x0, provider_priority=0, installed=0\u000a    prefer lowest available repository\u000a  consider dnsmasq-full-2.91-r2 iif_triggered=0, tag_ok=1, selectable=1, available=1, flags=0x0, provider_priority=0, installed=0\u000a    prefer lowest available repository\u000aselecting: dnsmasq-2.91-r2, available: 1\u000aassign dnsmasq to dnsmasq-2.91-r2\u000adisqualify_package: dnsmasq-dhcpv6-2.91-r2 (conflicting provides)\u000adisqualify_package: dnsmasq-full-2.91-r2 (conflicting provides)\u000a    apply_constraint: libc\u000a    apply_constraint: provider: libc-1.2.5-r5: 1\u000a\u000aFixes: dea8397 (\"include/package-pack: add default 'provider_priority' for APK packages\")\u000aSigned-off-by: George Sapkin <george@sapk.in>\u000aLink: https://github.com/openwrt/openwrt/pull/21369\u000aSigned-off-by: Robert Marko <robimarko@gmail.com>\u000a",
        "date" : "2026-01-12 14:28:52 +0100",
        "id" : "49fc31903306c346fcda862800f40d5e94cff5b0",
        "msg" : "build: remove default provider priority",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "include/package-pack.mk"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "include/package-pack.mk"
        ],
        "commitId" : "2a1977a4b83c8b5c61a2e74deeac00e2b58e026f",
        "timestamp" : 1768224532000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/robimarko",
          "fullName" : "robimarko"
        },
        "authorEmail" : "robimarko@gmail.com",
        "comment" : "build: don't auto mark all provides as virtual\u000a\u000aDon't mark all provides as virtual when ALTERNATIVES is set.\u000aAutomatically marking all provides as virtual prevents variants from\u000aconflicting between each other. Alternatives have nothing to do with\u000apackaging and packages are expected to manage their own provides.\u000a\u000aUpdated internal provides explanation.\u000a\u000aRemove unnecessary back slashes from FormatProvides.\u000a\u000aFixes: 18029977 (\"build: fix apk packaging and ABI-versioning\")\u000aSigned-off-by: George Sapkin <george@sapk.in>\u000aLink: https://github.com/openwrt/openwrt/pull/21369\u000aSigned-off-by: Robert Marko <robimarko@gmail.com>\u000a",
        "date" : "2026-01-12 14:28:52 +0100",
        "id" : "2a1977a4b83c8b5c61a2e74deeac00e2b58e026f",
        "msg" : "build: don't auto mark all provides as virtual",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "include/package-pack.mk"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "include/package-pack.mk"
        ],
        "commitId" : "779fa7ff6caa509d5df3827342162fdb07093cee",
        "timestamp" : 1768224532000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/robimarko",
          "fullName" : "robimarko"
        },
        "authorEmail" : "robimarko@gmail.com",
        "comment" : "build: refactor dependency formatting\u000a\u000aRefactor dependencies and extra dependencies logic into a helper define\u000aand document it.\u000a\u000aSigned-off-by: George Sapkin <george@sapk.in>\u000aLink: https://github.com/openwrt/openwrt/pull/21369\u000aSigned-off-by: Robert Marko <robimarko@gmail.com>\u000a",
        "date" : "2026-01-12 14:28:52 +0100",
        "id" : "779fa7ff6caa509d5df3827342162fdb07093cee",
        "msg" : "build: refactor dependency formatting",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "include/package-pack.mk"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "include/package-pack.mk"
        ],
        "commitId" : "952c918028b4811e5cf0f3fa8607ce50630a5060",
        "timestamp" : 1768224532000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/robimarko",
          "fullName" : "robimarko"
        },
        "authorEmail" : "robimarko@gmail.com",
        "comment" : "build: fix provides logic when ABI version is set\u000a\u000aSame as for the base package name, when a package has an ABI version,\u000aprovide both unversioned provider in addition to one with ABI version\u000aand version.\u000a\u000aSo for each provide instead of providing only:\u000a\u000a$provide$ABI_version=$package_version\u000a\u000anow provide:\u000a\u000a$provide $provide$ABI_version=$package_version\u000a\u000aWhen a provide ends in a number, the ABI version will be prefixed with\u000aa - sign, e.g.: provide1-0\u000a\u000aFixes: 18029977 (\"build: fix apk packaging and ABI-versioning\")\u000aSigned-off-by: George Sapkin <george@sapk.in>\u000aLink: https://github.com/openwrt/openwrt/pull/21369\u000aSigned-off-by: Robert Marko <robimarko@gmail.com>\u000a",
        "date" : "2026-01-12 14:28:52 +0100",
        "id" : "952c918028b4811e5cf0f3fa8607ce50630a5060",
        "msg" : "build: fix provides logic when ABI version is set",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "include/package-pack.mk"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "package/system/apk/Makefile",
          "package/libs/uclient/Makefile"
        ],
        "commitId" : "af1fa176c31368e5e56c5a1f31d8a12273536378",
        "timestamp" : 1768224532000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/robimarko",
          "fullName" : "robimarko"
        },
        "authorEmail" : "robimarko@gmail.com",
        "comment" : "uclient: provide virtual wget-any\u000a\u000aPackages shouldn't provide a package that another package, in this case\u000awget from packages provides. Explicitly provide a virtual @wget-any\u000ainstead to match the implicit wget provide and switch the only consumer\u000ato use the new provider.\u000a\u000aSet uclient-fetch as the default variant for wget-any.\u000a\u000aSigned-off-by: George Sapkin <george@sapk.in>\u000aLink: https://github.com/openwrt/openwrt/pull/21369\u000aSigned-off-by: Robert Marko <robimarko@gmail.com>\u000a",
        "date" : "2026-01-12 14:28:52 +0100",
        "id" : "af1fa176c31368e5e56c5a1f31d8a12273536378",
        "msg" : "uclient: provide virtual wget-any",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "package/system/apk/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "package/libs/uclient/Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "package/libs/elfutils/Makefile"
        ],
        "commitId" : "8cc2743c4865607b67f9b4b2ecacb62e242abb20",
        "timestamp" : 1768224532000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/robimarko",
          "fullName" : "robimarko"
        },
        "authorEmail" : "robimarko@gmail.com",
        "comment" : "elfutils: drop libelf1 provide\u000a\u000aABI version is added to a package name during packaging, so there's no\u000aneed to specify it manually. And nothing explicitly depends on libelf1.\u000a\u000aFixes: d7bf089 (\"elfutils: rename libelf1 to libelf\")\u000aSigned-off-by: George Sapkin <george@sapk.in>\u000aLink: https://github.com/openwrt/openwrt/pull/21369\u000aSigned-off-by: Robert Marko <robimarko@gmail.com>\u000a",
        "date" : "2026-01-12 14:28:52 +0100",
        "id" : "8cc2743c4865607b67f9b4b2ecacb62e242abb20",
        "msg" : "elfutils: drop libelf1 provide",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "package/libs/elfutils/Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "include/package-pack.mk",
          "include/package.mk",
          "include/kernel.mk"
        ],
        "commitId" : "2d844a077089575ab67fcbd15e021a981387e668",
        "timestamp" : 1768224532000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/robimarko",
          "fullName" : "robimarko"
        },
        "authorEmail" : "robimarko@gmail.com",
        "comment" : "build: fix implicit self-provides\u000a\u000aFix setting implicit self-provides for packages when they don't have any\u000aPROVIDES specified.\u000a\u000aRemove redundant self-provide for kmods, since kmods are packages and\u000awill have a self-provide added already.\u000a\u000aFixes: 5ed650a (\"build: add support for virtual provides\")\u000aFixes: 9b37b71 (\"build: provide virtual self in kmods\")\u000aSigned-off-by: George Sapkin <george@sapk.in>\u000aLink: https://github.com/openwrt/openwrt/pull/21369\u000aSigned-off-by: Robert Marko <robimarko@gmail.com>\u000a",
        "date" : "2026-01-12 14:28:52 +0100",
        "id" : "2d844a077089575ab67fcbd15e021a981387e668",
        "msg" : "build: fix implicit self-provides",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "include/package-pack.mk"
          },
          {
            "editType" : "edit",
            "file" : "include/package.mk"
          },
          {
            "editType" : "edit",
            "file" : "include/kernel.mk"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "include/package-pack.mk"
        ],
        "commitId" : "1dec4683f6a91cb0734e97186738b0ea413bb356",
        "timestamp" : 1768224532000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/robimarko",
          "fullName" : "robimarko"
        },
        "authorEmail" : "robimarko@gmail.com",
        "comment" : "build: remove redundant shebang from apk lifecycle scripts\u000a\u000aDue to the way apk lifecycle scripts are defined, they might end up with\u000amultiple shebangs. Remove them.\u000a\u000aBefore:\u000a\u000a  post-upgrade: |\u000a    #!/bin/sh\u000a    export PKG_UPGRADE=1\u000a    #!/bin/sh\u000a    [ \"${IPKG_NO_SCRIPT}\" = \"1\" ] && exit 0\u000a    [ -s ${IPKG_INSTROOT}/lib/functions.sh ] || exit 0\u000a    . ${IPKG_INSTROOT}/lib/functions.sh\u000a    export root=\"${IPKG_INSTROOT}\"\u000a    export pkgname=\"adblock-fast\"\u000a    add_group_and_user\u000a    default_postinst\u000a    #!/bin/sh\u000a    # check if we are on real system\u000a    if [ -z \"${IPKG_INSTROOT}\" ]; then\u000a    \u0009/etc/init.d/adblock-fast enable\u000a    fi\u000a    exit 0\u000a\u000aAfter:\u000a\u000a  post-upgrade: |\u000a    #!/bin/sh\u000a    export PKG_UPGRADE=1\u000a    [ \"${IPKG_NO_SCRIPT}\" = \"1\" ] && exit 0\u000a    [ -s ${IPKG_INSTROOT}/lib/functions.sh ] || exit 0\u000a    . ${IPKG_INSTROOT}/lib/functions.sh\u000a    export root=\"${IPKG_INSTROOT}\"\u000a    export pkgname=\"adblock-fast\"\u000a    add_group_and_user\u000a    default_postinst\u000a    # check if we are on real system\u000a    if [ -z \"${IPKG_INSTROOT}\" ]; then\u000a    \u0009/etc/init.d/adblock-fast enable\u000a    fi\u000a    exit 0\u000a\u000aFixes: b52e897 (\"include/package-pack: remove leading whitespace from install scripts\")\u000aFixes: 03880e2 (\"include/package-pack: add missing apk package lifecycle events\")\u000aSigned-off-by: George Sapkin <george@sapk.in>\u000aLink: https://github.com/openwrt/openwrt/pull/21369\u000aSigned-off-by: Robert Marko <robimarko@gmail.com>\u000a",
        "date" : "2026-01-12 14:28:52 +0100",
        "id" : "1dec4683f6a91cb0734e97186738b0ea413bb356",
        "msg" : "build: remove redundant shebang from apk lifecycle scripts",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "include/package-pack.mk"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "include/package-pack.mk"
        ],
        "commitId" : "470e030a5eae77e94192e0dd933d7b1b657f7b2c",
        "timestamp" : 1768224532000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/robimarko",
          "fullName" : "robimarko"
        },
        "authorEmail" : "robimarko@gmail.com",
        "comment" : "build: add default priority to ABI-versioned packages\u000a\u000aIf a package has an ABI version defined, set priority to 10. The enables\u000apackages with an ABI version to be installed by their base name instead\u000aof a name and an ABI version, e.g.:\u000a\u000alibfoo3, where 3 is the ABI version can be installed by just libfoo.\u000a\u000aThis affects manual installation only, as the dependency resolution\u000atakes care of ABI versions.\u000a\u000aRefactor apk priority logic into a helper define.\u000a\u000aSigned-off-by: George Sapkin <george@sapk.in>\u000aLink: https://github.com/openwrt/openwrt/pull/21369\u000aSigned-off-by: Robert Marko <robimarko@gmail.com>\u000a",
        "date" : "2026-01-12 14:28:52 +0100",
        "id" : "470e030a5eae77e94192e0dd933d7b1b657f7b2c",
        "msg" : "build: add default priority to ABI-versioned packages",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "include/package-pack.mk"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c"
        ],
        "commitId" : "4acbbf6f058ddf1704960f1c75cd0bea984ecd7e",
        "timestamp" : 1768225383000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/stijn",
          "fullName" : "stijn"
        },
        "authorEmail" : "stijn@linux-ipv6.be",
        "comment" : "realtek: mdio: improve iterator readability\u000a\u000aCurrently there are several places where the driver uses the\u000aclassic \"i\" as iterator. In these cases where it iterates\u000aphy ports use \"addr\" instead to make it easier to read. Do\u000athe same for the smi bus. Additionally forthcomming commits\u000awill show nicer diffs.\u000a\u000aWhile we are here fix the initialization sequence of the private\u000astructure. There is no need to set data to zero that has already\u000abeen zero-allocated before. Instead initialize smi_bus[] with\u000aa value of \"-1\" to denote that a phy is not in scope. This is\u000aessential as some functions already have a matching check in\u000aplace.\u000a\u000aSigned-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>\u000aLink: https://github.com/openwrt/openwrt/pull/21469\u000aSigned-off-by: Stijn Tintel <stijn@linux-ipv6.be>\u000a",
        "date" : "2026-01-12 15:43:03 +0200",
        "id" : "4acbbf6f058ddf1704960f1c75cd0bea984ecd7e",
        "msg" : "realtek: mdio: improve iterator readability",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c"
        ],
        "commitId" : "93711307e0c116591d7a4c452dbbfe76273b33ef",
        "timestamp" : 1768225383000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/stijn",
          "fullName" : "stijn"
        },
        "authorEmail" : "stijn@linux-ipv6.be",
        "comment" : "realtek: mdio: provide phy info helper\u000a\u000aThe mdio driver currently initializes the phy polling registers\u000awith some nasty magic. It identifies the interface mode from the\u000adts and draws some strange conclusions.\u000a\u000aLooking at the SDK one can see that this is basically dependent\u000aof the attached phy type. So the code location is quite right\u000ainside the mdio driver.\u000a\u000aProvide a new get_phy_info() function that determines the phy\u000acharacteristics that are important for the polling unit . It will\u000abe later needed by the RTL93xx setup code.\u000a\u000aSome explanation about the fields of the structure:\u000a\u000a- has_res_reg: phy has a special Realtek resolution polling\u000a  register. It is unclear if this gives more details or if it\u000a  simply allows faster polling.\u000a\u000a- has_giga_lite: This is a phy that allows for Realtek proprietary\u000a  1G/2.5G lite connectivity. In this case data is only transmitted\u000a  over two wire pairs.\u000a\u000aSigned-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>\u000aLink: https://github.com/openwrt/openwrt/pull/21469\u000aSigned-off-by: Stijn Tintel <stijn@linux-ipv6.be>\u000a",
        "date" : "2026-01-12 15:43:03 +0200",
        "id" : "93711307e0c116591d7a4c452dbbfe76273b33ef",
        "msg" : "realtek: mdio: provide phy info helper",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c"
        ],
        "commitId" : "b2717357a78ab03dc69cb72114cd83f7e01b4782",
        "timestamp" : 1768225383000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/stijn",
          "fullName" : "stijn"
        },
        "authorEmail" : "stijn@linux-ipv6.be",
        "comment" : "realtek: mdio: Simplify RTL930x phy polling setup\u000a\u000aCleanup the RTL930x polling setup. Make use of the\u000anew phy fixup helper to initialize the polling registers.\u000a\u000aAs an integral update to the logic before only write\u000aregister bits that are really in scope. This might save\u000asome bits set by U-Boot.\u000a\u000aSigned-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>\u000aLink: https://github.com/openwrt/openwrt/pull/21469\u000aSigned-off-by: Stijn Tintel <stijn@linux-ipv6.be>\u000a",
        "date" : "2026-01-12 15:43:03 +0200",
        "id" : "b2717357a78ab03dc69cb72114cd83f7e01b4782",
        "msg" : "realtek: mdio: Simplify RTL930x phy polling setup",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c"
        ],
        "commitId" : "5c5823afdcce797c313d5d105801490289c0b340",
        "timestamp" : 1768225415000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/stijn",
          "fullName" : "stijn"
        },
        "authorEmail" : "stijn@linux-ipv6.be",
        "comment" : "realtek: mdio: drop interfaces attribute\u000a\u000aThe interfaces attribute of the mdio bus held the information\u000aabout the connection mode (qsgmii, sgmii, ...). This was only\u000aused during the old RTL930x setup. Drop it because it is not\u000aneeded any longer.\u000a\u000aSigned-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>\u000aLink: https://github.com/openwrt/openwrt/pull/21469\u000aSigned-off-by: Stijn Tintel <stijn@linux-ipv6.be>\u000a",
        "date" : "2026-01-12 15:43:35 +0200",
        "id" : "5c5823afdcce797c313d5d105801490289c0b340",
        "msg" : "realtek: mdio: drop interfaces attribute",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "package/boot/arm-trusted-firmware-microchipsw/patches/0003-cert_create-pass-pthread-in-LDFLAGS.patch",
          "package/boot/arm-trusted-firmware-microchipsw/Makefile",
          "package/boot/arm-trusted-firmware-microchipsw/patches/0002-cert_create-add-LibreSSL-3.9-compatibility.patch"
        ],
        "commitId" : "410277ca12d811daa8040edf75dfd87a2d9dd5f8",
        "timestamp" : 1768237271000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/robimarko",
          "fullName" : "robimarko"
        },
        "authorEmail" : "robimarko@gmail.com",
        "comment" : "boot: arm-trusted-firmware-microchipsw: fix compilation against LibreSSL\u000a\u000aLibreSSL 3.9+ has dropped support for X509V3 extension API so cert_create\u000atool does not compile against it at all.\u000a\u000aThis was hidden by the fact that it was compiling against OpenSSL on my\u000ahost which still has that API, however we do not ship libssl-dev in the\u000aBuildbot containers so compiling against distro OpenSSL is not possible.\u000a\u000aSo, after a long time trying to find any docs on that API I resorted to\u000aLLM(Gemini 3 Pro) to get it to compile.\u000a\u000aOur libcrypto is linked against pthread so we must pass -lpthread as well\u000afor cert_tool.\u000a\u000aFixes: 5205c0c42607 (\"microchipsw: lan969x: add Microchip EV23X71A\")\u000aSigned-off-by: Robert Marko <robert.marko@sartura.hr>\u000a",
        "date" : "2026-01-12 18:01:11 +0100",
        "id" : "410277ca12d811daa8040edf75dfd87a2d9dd5f8",
        "msg" : "boot: arm-trusted-firmware-microchipsw: fix compilation against LibreSSL",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "package/boot/arm-trusted-firmware-microchipsw/Makefile"
          },
          {
            "editType" : "add",
            "file" : "package/boot/arm-trusted-firmware-microchipsw/patches/0003-cert_create-pass-pthread-in-LDFLAGS.patch"
          },
          {
            "editType" : "add",
            "file" : "package/boot/arm-trusted-firmware-microchipsw/patches/0002-cert_create-add-LibreSSL-3.9-compatibility.patch"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "package/boot/arm-trusted-firmware-microchipsw/patches/0004-microchip-lan969x-do-not-rely-on-Ruby-shebang.patch",
          "package/boot/arm-trusted-firmware-microchipsw/Makefile"
        ],
        "commitId" : "082fe669f7b6839144484589ebb72c87bb9d6314",
        "timestamp" : 1768237277000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/robimarko",
          "fullName" : "robimarko"
        },
        "authorEmail" : "robimarko@gmail.com",
        "comment" : "boot: arm-trusted-firmware-microchipsw: depend on host Ruby\u000a\u000aMicrochip ATF depends on Ruby scripts to generate the FWU monitor HTML\u000aand more, so make sure that host Ruby is available.\u000a\u000aWe also need to call the scripts directly via Ruby executable as shebang\u000awont work due to lack of Ruby in the Buildbot container.\u000a\u000aFixes: 5205c0c42607 (\"microchipsw: lan969x: add Microchip EV23X71A\")\u000aSigned-off-by: Robert Marko <robert.marko@sartura.hr>\u000a",
        "date" : "2026-01-12 18:01:17 +0100",
        "id" : "082fe669f7b6839144484589ebb72c87bb9d6314",
        "msg" : "boot: arm-trusted-firmware-microchipsw: depend on host Ruby",
        "paths" : [
          {
            "editType" : "add",
            "file" : "package/boot/arm-trusted-firmware-microchipsw/patches/0004-microchip-lan969x-do-not-rely-on-Ruby-shebang.patch"
          },
          {
            "editType" : "edit",
            "file" : "package/boot/arm-trusted-firmware-microchipsw/Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "package/kernel/linux/modules/netdevices.mk"
        ],
        "commitId" : "96a133737433eca069e26b1730ea5a895b8f2fd8",
        "timestamp" : 1768259884000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/hauke",
          "fullName" : "hauke"
        },
        "authorEmail" : "hauke@hauke-m.de",
        "comment" : "kernel: add kmod-phy-motorcomm\u000a\u000aThe Motorcomm YT8821 2.5G PHY is being used in some devices as an\u000aalternative to devices like the RTL8221B.  Package it as a kmod\u000aso it can be used as a device package rather than requiring changes\u000ato the target kernel config.\u000a\u000aSigned-off-by: Andrew MacIntyre <andymac@pcug.org.au>\u000aLink: https://github.com/openwrt/openwrt/pull/21399\u000aSigned-off-by: Hauke Mehrtens <hauke@hauke-m.de>\u000a",
        "date" : "2026-01-13 00:18:04 +0100",
        "id" : "96a133737433eca069e26b1730ea5a895b8f2fd8",
        "msg" : "kernel: add kmod-phy-motorcomm",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "package/kernel/linux/modules/netdevices.mk"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "target/linux/mediatek/image/filogic.mk"
        ],
        "commitId" : "dbafbab8769b92c8466ea83400280b4f549ace71",
        "timestamp" : 1768259884000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/hauke",
          "fullName" : "hauke"
        },
        "authorEmail" : "hauke@hauke-m.de",
        "comment" : "mediatek: add Motorcomm PHY driver to Cudy WR3000H\u000a\u000aRecent Cudy WR3000H v1 units have a Motorcomm YT8821 2.5G PHY for\u000athe WAN interface instead of the RTL8221B PHY used in earlier units,\u000aso add kmod-phy-motorcomm to be able to use it.\u000a\u000aSigned-off-by: Andrew MacIntyre <andymac@pcug.org.au>\u000a[linuxtardis@gmail.com: slightly reworded the commit description]\u000aSigned-off-by: Jakub Vaněk <linuxtardis@gmail.com>\u000aLink: https://github.com/openwrt/openwrt/pull/21399\u000aSigned-off-by: Hauke Mehrtens <hauke@hauke-m.de>\u000a",
        "date" : "2026-01-13 00:18:04 +0100",
        "id" : "dbafbab8769b92c8466ea83400280b4f549ace71",
        "msg" : "mediatek: add Motorcomm PHY driver to Cudy WR3000H",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "target/linux/mediatek/image/filogic.mk"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "target/linux/mediatek/dts/mt7981b-cudy-wr3000h-v1.dts"
        ],
        "commitId" : "02f0efd60b423b4ce9b996f7c986dd68965a50d4",
        "timestamp" : 1768259884000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/hauke",
          "fullName" : "hauke"
        },
        "authorEmail" : "hauke@hauke-m.de",
        "comment" : "mediatek: fix PHY autodetection on Cudy WR3000H\u000a\u000aNewer Cudy WR3000H units have a Motorcomm YT8821 PHY instead of a\u000aRealtek PHY on the WAN port. Before this commit, the Motorcomm PHY\u000acould not be autodetected by the kernel -- the PHY would show up as\u000ajust a generic clause 45 PHY and the proper driver would not be loaded.\u000a\u000aThe cause of the detection failure likely was that the YT8821 PHY was\u000aheld in reset during PHY detection. To fix this, move the reset GPIO\u000adefinition to the MDIO bus level. This reset line is deasserted before\u000athe autodetection process, see also [1]. With this change, both Realtek\u000aand Motorcomm PHYs can be supported with a single device tree.\u000a\u000a[1]: https://lore.kernel.org/all/20251119134750.394655-1-horatiu.vultur@microchip.com/\u000a\u000aSigned-off-by: Jakub Vaněk <linuxtardis@gmail.com>\u000aLink: https://github.com/openwrt/openwrt/pull/21399\u000aSigned-off-by: Hauke Mehrtens <hauke@hauke-m.de>\u000a",
        "date" : "2026-01-13 00:18:04 +0100",
        "id" : "02f0efd60b423b4ce9b996f7c986dd68965a50d4",
        "msg" : "mediatek: fix PHY autodetection on Cudy WR3000H",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "target/linux/mediatek/dts/mt7981b-cudy-wr3000h-v1.dts"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "target/imagebuilder/files/Makefile"
        ],
        "commitId" : "31cdd13d22dd374d4a8b8d86377627ad01928495",
        "timestamp" : 1768296024000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/robimarko",
          "fullName" : "robimarko"
        },
        "authorEmail" : "robimarko@gmail.com",
        "comment" : "imagebuilder: add ABI suffix to packages when using apk\u000a\u000aIf an apk package with an ABI version doesn't have priority set, it\u000acan't be selected by its base name:\u000a\u000a$ make manifest PACKAGES='libustream-openssl libsqlite3'\u000aERROR: unable to select packages:\u000a  libsqlite3 (virtual):\u000a    note: please select one of the 'provided by'\u000a          packages explicitly\u000a    provided by: libsqlite3-0\u000a    required by: world[libsqlite3]\u000a  libustream-openssl (virtual):\u000a    note: please select one of the 'provided by'\u000a          packages explicitly\u000a    provided by: libustream-openssl20201210\u000a    required by: world[libustream-openssl]\u000a\u000aLook up the ABI version in apk index and if present, add an ABI suffix\u000ato all requested packages.\u000a\u000aSigned-off-by: George Sapkin <george@sapk.in>\u000aLink: https://github.com/openwrt/openwrt/pull/21449\u000aSigned-off-by: Robert Marko <robimarko@gmail.com>\u000a",
        "date" : "2026-01-13 10:20:24 +0100",
        "id" : "31cdd13d22dd374d4a8b8d86377627ad01928495",
        "msg" : "imagebuilder: add ABI suffix to packages when using apk",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "target/imagebuilder/files/Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "target/linux/mediatek/filogic/base-files/etc/board.d/01_leds",
          "target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac",
          "target/linux/mediatek/image/filogic.mk",
          "target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh",
          "target/linux/mediatek/dts/mt7981b-airpi-ap3000m.dts",
          "target/linux/mediatek/filogic/base-files/etc/board.d/02_network"
        ],
        "commitId" : "6ff4557317139cc02003db9d058f4d9d6ba859ce",
        "timestamp" : 1768346194000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/hauke",
          "fullName" : "hauke"
        },
        "authorEmail" : "hauke@hauke-m.de",
        "comment" : "mediatek: add support for Airpi AP3000M\u000a\u000aThis adds support for the Airpi AP3000M 5G CPE based on MediaTek MT7981B.\u000a\u000aSpecifications:\u000a\u000aSoC: MediaTek MT7981B (dual-core ARM Cortex-A53)\u000aRAM: 1GB DDR4\u000aStorage: 8GB or 16GB eMMC\u000aEthernet: 1x 2.5GbE LAN, 1x 1GbE WAN\u000aWireless: 2.4GHz/5GHz 802.11ax\u000aButtons: Reset, WPS\u000aLEDs: System, 2.4GHz WiFi, 5GHz WiFi\u000aCooling: PWM-controlled fan\u000aExpansion: M.2 slot for 5G modem\u000a\u000aThe factory partition (mmcblk0p2) is empty in stock firmware.\u000aExecute via SSH before flashing OpenWrt:\u000a```\u000add if=/lib/firmware/MT7981_iPAiLNA_EEPROM.bin of=/dev/mmcblk0p2 bs=4k count=1\u000aMAC addresses\u000a```\u000aFixed MAC addresses are derived by macaddr_generate_from_mmc_cid.\u000a\u000aInstallation via U-Boot web page\u000a\u000aSet static IP 192.168.88.2/255.255.255.0 on your computer.\u000aConnect to the 1GbE port (WAN) and hold the reset button while booting the device. Wait for about 6 seconds, and release the reset button.\u000aOpen U-boot web page on your browser at http://192.168.88.1\u000aSelect the OpenWRT sysupgrade image, upload it, and start the upgrade.\u000aWait for automatic reboot.\u000aInstallation via sysupgrade\u000a\u000aFlash the sysupgrade file via LuCI upgrade page without saving the settings.\u000a\u000aSigned-off-by: Fil Dunsky <filipp.dunsky@gmail.com>\u000aLink: https://github.com/openwrt/openwrt/pull/21397\u000aSigned-off-by: Hauke Mehrtens <hauke@hauke-m.de>\u000a",
        "date" : "2026-01-14 00:16:34 +0100",
        "id" : "6ff4557317139cc02003db9d058f4d9d6ba859ce",
        "msg" : "mediatek: add support for Airpi AP3000M",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "target/linux/mediatek/filogic/base-files/etc/board.d/01_leds"
          },
          {
            "editType" : "edit",
            "file" : "target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh"
          },
          {
            "editType" : "edit",
            "file" : "target/linux/mediatek/image/filogic.mk"
          },
          {
            "editType" : "add",
            "file" : "target/linux/mediatek/dts/mt7981b-airpi-ap3000m.dts"
          },
          {
            "editType" : "edit",
            "file" : "target/linux/mediatek/filogic/base-files/etc/board.d/02_network"
          },
          {
            "editType" : "edit",
            "file" : "target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "target/linux/mpc85xx/base-files/lib/preinit/05_set_preinit_iface_mpc85xx"
        ],
        "commitId" : "a73db6d0a041e1b86bd72ee4103b23d41887a31e",
        "timestamp" : 1768346791000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/hauke",
          "fullName" : "hauke"
        },
        "authorEmail" : "hauke@hauke-m.de",
        "comment" : "mpc85xx: fix failsafe iface selection for mpc85xx boards\u000a\u000aSome mpc85xx boards still boot with failsafe configured on a non-LAN\u000ainterface. Align the preinit interface with the first DSA port or the\u000ainterface that LAN is connected to.\u000a\u000aThis makes failsafe reachable on devices where the default selection does\u000anot map to the primary LAN port.\u000a\u000aSigned-off-by: Pawel Dembicki <paweldembicki@gmail.com>\u000aLink: https://github.com/openwrt/openwrt/pull/21516\u000aSigned-off-by: Hauke Mehrtens <hauke@hauke-m.de>\u000a",
        "date" : "2026-01-14 00:26:31 +0100",
        "id" : "a73db6d0a041e1b86bd72ee4103b23d41887a31e",
        "msg" : "mpc85xx: fix failsafe iface selection for mpc85xx boards",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "target/linux/mpc85xx/base-files/lib/preinit/05_set_preinit_iface_mpc85xx"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "package/network/utils/iwinfo/Makefile"
        ],
        "commitId" : "f6429413d92890181574f0f37b57d734bb73ba96",
        "timestamp" : 1768347307000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/hauke",
          "fullName" : "hauke"
        },
        "authorEmail" : "hauke@hauke-m.de",
        "comment" : "libiwinfo: update to Git HEAD (2026-01-14)\u000a\u000af5dd57a84cc3 nl80211: fix 5Ghz frequency calculations\u000a\u000aSigned-off-by: Hauke Mehrtens <hauke@hauke-m.de>\u000a",
        "date" : "2026-01-14 00:35:07 +0100",
        "id" : "f6429413d92890181574f0f37b57d734bb73ba96",
        "msg" : "libiwinfo: update to Git HEAD (2026-01-14)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "package/network/utils/iwinfo/Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "package/kernel/linux/modules/hwmon.mk"
        ],
        "commitId" : "cb8247947589a63a9398088f245a0d2f87aaf80d",
        "timestamp" : 1768383795000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/robimarko",
          "fullName" : "robimarko"
        },
        "authorEmail" : "robimarko@gmail.com",
        "comment" : "kernel: add kmod-hwmon-adt7470\u000a\u000aThis driver supports the ADT7470 thermal monitoring chip, which is used\u000ain the ECS4100-12PH switch.\u000a\u000aFixes: fa9f92595197 (\"realtek/rtl839x: Edgecore ECS4100-12PH support\")\u000aSigned-off-by: Stijn Tintel <stijn@linux-ipv6.be>\u000aLink: https://github.com/openwrt/openwrt/pull/21505\u000aSigned-off-by: Robert Marko <robimarko@gmail.com>\u000a",
        "date" : "2026-01-14 10:43:15 +0100",
        "id" : "cb8247947589a63a9398088f245a0d2f87aaf80d",
        "msg" : "kernel: add kmod-hwmon-adt7470",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "package/kernel/linux/modules/hwmon.mk"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "target/linux/rockchip/armv8/base-files/etc/board.d/05_compat-version"
        ],
        "commitId" : "43039157babc7262180cdd56994732ca1ebbb6fd",
        "timestamp" : 1768386000000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/robimarko",
          "fullName" : "robimarko"
        },
        "authorEmail" : "robimarko@gmail.com",
        "comment" : "rockchip: add `\"compat_version\": \"1.1\"` for Radxa E52C\u000a\u000aThis is something I missed in https://github.com/openwrt/openwrt/pull/20608\u000a\u000aFixes: 1f1db75432 (\"rockchip: make NIC name predictable for Radxa E52C/ROCK 5 ITX/ROCK 5T\")\u000aSigned-off-by: FUKAUMI Naoki <naoki@radxa.com>\u000aLink: https://github.com/openwrt/openwrt/pull/21533\u000aSigned-off-by: Robert Marko <robimarko@gmail.com>\u000a",
        "date" : "2026-01-14 11:20:00 +0100",
        "id" : "43039157babc7262180cdd56994732ca1ebbb6fd",
        "msg" : "rockchip: add `\"compat_version\": \"1.1\"` for Radxa E52C",
        "paths" : [
          {
            "editType" : "add",
            "file" : "target/linux/rockchip/armv8/base-files/etc/board.d/05_compat-version"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "target/linux/airoha/patches-6.12/611-v7.0-net-airoha-implement-get_link_ksettings.patch"
        ],
        "commitId" : "4953db3aeff052223e4588fe892f94a32e917a05",
        "timestamp" : 1768410192000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/robimarko",
          "fullName" : "robimarko"
        },
        "authorEmail" : "robimarko@gmail.com",
        "comment" : "airoha: show link rate and duplex\u000a\u000aImplement the .get_link_ksettings to get the rate, duplex, and\u000aauto-negotiation status.\u000a\u000aSigned-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>\u000aLink: https://github.com/openwrt/openwrt/pull/21530\u000aSigned-off-by: Robert Marko <robimarko@gmail.com>\u000a",
        "date" : "2026-01-14 18:03:12 +0100",
        "id" : "4953db3aeff052223e4588fe892f94a32e917a05",
        "msg" : "airoha: show link rate and duplex",
        "paths" : [
          {
            "editType" : "add",
            "file" : "target/linux/airoha/patches-6.12/611-v7.0-net-airoha-implement-get_link_ksettings.patch"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "package/base-files/files/lib/functions/network.sh"
        ],
        "commitId" : "e1f2b666ff94f2b8a50ca000d69f5b5f0b89a27c",
        "timestamp" : 1768410447000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/noltari",
          "fullName" : "noltari"
        },
        "authorEmail" : "noltari@gmail.com",
        "comment" : "base-files: introduce a function to generate IAID\u000a\u000aAdd new function \"network_generate_iface_iaid()\" to generate a stable IAID\u000afrom an interface name.\u000a\u000aLink: https://github.com/openwrt/openwrt/pull/21489\u000aSigned-off-by: Álvaro Fernández Rojas <noltari@gmail.com>\u000a",
        "date" : "2026-01-14 18:07:27 +0100",
        "id" : "e1f2b666ff94f2b8a50ca000d69f5b5f0b89a27c",
        "msg" : "base-files: introduce a function to generate IAID",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "package/base-files/files/lib/functions/network.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "package/network/config/netifd/files/lib/netifd/proto/dhcp.sh",
          "package/network/config/netifd/Makefile"
        ],
        "commitId" : "e1c125c167e5c4fef16fd5e2bf670f290808b2d1",
        "timestamp" : 1768410458000,
        "author" : {
          "absoluteUrl" : "https://taiha.net/jenkins/user/noltari",
          "fullName" : "noltari"
        },
        "authorEmail" : "noltari@gmail.com",
        "comment" : "netifd: use stable IAID for DHCPv4\u000a\u000aCommit 9151c7015ed2 introduced support for the global DHCP DUID to\u000agenerate a RFC4361-style client identifier.\u000aHowever, the IAID introduced in those changes is based on ifindex, which\u000ais subject to changes and causes issues on environments requiring a stable\u000aIAID.\u000a\u000aThis commit switches the IAID to a stable one based on MD5.\u000a\u000aFixes: 9151c7015ed2 (\"netifd: use the global DHCP DUID for DHCPv4\")\u000aLink: https://github.com/openwrt/openwrt/pull/21489\u000aSigned-off-by: Álvaro Fernández Rojas <noltari@gmail.com>\u000a",
        "date" : "2026-01-14 18:07:38 +0100",
        "id" : "e1c125c167e5c4fef16fd5e2bf670f290808b2d1",
        "msg" : "netifd: use stable IAID for DHCPv4",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "package/network/config/netifd/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "package/network/config/netifd/files/lib/netifd/proto/dhcp.sh"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://taiha.net/jenkins/user/noltari",
      "fullName" : "noltari"
    },
    {
      "absoluteUrl" : "https://taiha.net/jenkins/user/stijn",
      "fullName" : "stijn"
    },
    {
      "absoluteUrl" : "https://taiha.net/jenkins/user/robimarko",
      "fullName" : "robimarko"
    },
    {
      "absoluteUrl" : "https://taiha.net/jenkins/user/hauke",
      "fullName" : "hauke"
    },
    {
      "absoluteUrl" : "https://taiha.net/jenkins/user/daniel",
      "fullName" : "daniel"
    }
  ]
}