Show changelog from CLI?

Hi,

when running the following command in the CLI:

/system/package/update/check-for-updates
            channel: stable                  
  installed-version: 7.17.2                  
     latest-version: 7.18                    
             status: New version is available

it returns the installed and latest available version but does not display the changelog, whereas Winbox provides this information.

Is there a way to retrieve the changelog via CLI as well (other than using fetch with some crafted URL)?

Pretty sure that it is Winbox which fires a http call to a well-known changelog URL on MT’s website from your PC, not the ROS device itself transferring changelog data to Winbox.

EDIT: Well dip me in tar and feathers, Wireshark doesn’t show any connection from Winbox, sounds like the changelog really arrives from ROS…

Anyone an idea? Otherwise I’d file a feature request at Mikrotik support.

I think even Winbox is fetching from “crafted” url:

https://download.mikrotik.com/routeros/<version>/CHANGELOG

Why not using it with fetch tool from CLI?

Simple script with global function for it can be made if you want to avoid typing it every time.

It actually is. Good find !!

https://download.mikrotik.com/routeros/7.18.1/CHANGELOG

What’s new in 7.18.1 (2025-Feb-28 13:31):

*) bridge - improved stability in case of configuration error (introduced in v7.15);
*) bridge - show warning instead of causing error when using multicast MAC as admin-mac (introduced in v7.17);
*) cloud - fixed issues when BTH is toggled fast between enable/disable;
*) cloud - improved “BTH Files” web page design;
*) console - fixed issue with files when using scripts (introduced in v7.18);
*) console - improved file add/remove process stability;
*) dhcpv6-relay - clear saved routes on DHCP release;
*) dhcpv6-relay - show client address;
*) disk - add “sector-size” property in print detail;
*) disk - improved stability when formatting crypted partitions;
*) l3hw - remove VLAN tag before VXLAN encapsulation (fixes pvid behavior for bridged VXLAN);
*) lte - fixed modem recovery after firmware upgrade for R11e-LTE modem;
*) lte - fixed Router Advertisement processing issue for AT modems when an APN with “ip-type=ipv6” was configured;
*) ovpn - disable hardware accelerator for GCM on MMIPS CPUs (introduced in v7.18);
*) poe-out - fixed health showing 0V voltage when using PoE-in for RB960;
*) poe-out - upgraded firmware for 802.3at/bt PSE controlled boards (the update will cause brief power interruption to PoE-out interfaces);
*) route - show BGP session name instead of cache-id;
*) switch - improved stability when enabling IGMP snooping with VXLAN (introduced in v7.18);
*) system - improved internal “flash/” prefix handling for different file path related settings;
*) winbox - fixed missing SMB client on non-ROSE devices;

Here is simple global function for fetching changelog:

:global changelog do={
  :local version
  :if ([:typeof $1] = "str") do={
    :set version $1
  } else={
    :onerror e {
      :set version ([/system/package/update/check-for-updates as-value]->"latest-version")
    } do={
      :error "Unable to check for latest version. $e"
    }
  }
  :onerror e {
    :local fetchUrl "https://download.mikrotik.com/routeros/$version/CHANGELOG"
    :put [:tocrlf ([/tool/fetch url=$fetchUrl output=user as-value]->"data")]
  } do={
    :error "Unable to fetch changelog for version '$version'. $e"
  }
}

Usage:
$changelog [version]
if version is not specified it uses latest-version from /system/package/update/check-for-updates
examples:

> $changelog 7.16.2
What's new in 7.16.2 (2024-Nov-26 14:09):

*) certificate - do not download CRL if there is not enough free RAM;
*) certificate - fixed handling of capsman-cap certificates (introduced in v7.16);
*) dhcpv4-server/relay - added additional error messages for DHCP servers and relays;
*) dns - fixed lookup order for static DNS entries (introduced in v7.16.1);
*) ethernet - improved linking after reboot for hAP ax lite devices ("/system routerboard upgrade" required);
*) gps - changed default GPS antenna setting for LtAP mini with internal LTE/GPS combo antenna;
*) leds - fixed bogus argument for "leds" property (introduced in v7.16);
*) leds - fixed PoE-in LEDs for CRS318-1Fi-15Fr-2S device;
*) modem - KNOT BG77 modem, improved handling of modem unexpected restarts;
*) route - fixed possible issue with inactive routes after reboot (introduced in v7.16);
*) routerboot - improved stability for IPQ8072 and IPQ6010 when flash-boot is used ("/system routerboard upgrade" required);



> $changelog
What's new in 7.18.1 (2025-Feb-28 13:31):

*) bridge - improved stability in case of configuration error (introduced in v7.15);
*) bridge - show warning instead of causing error when using multicast MAC as admin-mac (introduced in v7.17);
*) cloud - fixed issues when BTH is toggled fast between enable/disable;
*) cloud - improved "BTH Files" web page design;
*) console - fixed issue with files when using scripts (introduced in v7.18);
*) console - improved file add/remove process stability;
*) dhcpv6-relay - clear saved routes on DHCP release;
*) dhcpv6-relay - show client address;
*) disk - add "sector-size" property in print detail;
*) disk - improved stability when formatting crypted partitions;
*) l3hw - remove VLAN tag before VXLAN encapsulation (fixes pvid behavior for bridged VXLAN);
*) lte - fixed modem recovery after firmware upgrade for R11e-LTE modem;
*) lte - fixed Router Advertisement processing issue for AT modems when an APN with "ip-type=ipv6" was configured;
*) ovpn - disable hardware accelerator for GCM on MMIPS CPUs (introduced in v7.18);
*) poe-out - fixed health showing 0V voltage when using PoE-in for RB960;
*) poe-out - upgraded firmware for 802.3at/bt PSE controlled boards (the update will cause brief power interruption to PoE-out interfaces);
*) route - show BGP session name instead of cache-id;
*) switch - improved stability when enabling IGMP snooping with VXLAN (introduced in v7.18);
*) system - improved internal "flash/" prefix handling for different file path related settings;
*) winbox - fixed missing SMB client on non-ROSE devices;

Thanks for your answers! Especially the script from optio can be a future reference for everyone searching the forum.

It is fetched from ROS and transferred to WInbox. Using packet sniffer on ROS is visible…
Here is TCP stream to upgrade.mikrotik.com:80 when checking for upgrade over Winbox and CLI:

GET /routeros/NEWESTa7.stable?version=7.16.2 HTTP/1.1
Host: upgrade.mikrotik.com
User-Agent: RouterOS 7.16.2


HTTP/1.1 200 OK
accept-ranges: bytes
Content-Length: 18
Content-Type: text/plain
etag: "3006fb4d829a97707680a5c1d1757b9e"
last-modified: Mon, 03 Mar 2025 08:52:38 GMT
strict-transport-security: max-age=31536000; includeSubDomains
vary: Origin
vary: Accept-Encoding
x-content-type-options: nosniff
x-ratelimit-limit: 6020
x-ratelimit-remaining: 6015
x-xss-protection: 1; mode=block
Date: Thu, 06 Mar 2025 19:28:58 GMT

7.18.1 1740742288

GET /routeros/7.18.1/CHANGELOG HTTP/1.1
Host: upgrade.mikrotik.com
User-Agent: RouterOS 7.16.2


HTTP/1.1 200 OK
accept-ranges: bytes
Content-Length: 1589
Content-Type: text/plain
etag: "e832bd13deb956835d65ae8e20245bd1"
last-modified: Mon, 03 Mar 2025 08:52:34 GMT
strict-transport-security: max-age=31536000; includeSubDomains
vary: Origin
vary: Accept-Encoding
x-content-type-options: nosniff
x-ratelimit-limit: 6030
x-ratelimit-remaining: 6020
x-xss-protection: 1; mode=block
Date: Thu, 06 Mar 2025 19:28:58 GMT

What's new in 7.18.1 (2025-Feb-28 13:31):

*) bridge - improved stability in case of configuration error (introduced in v7.15);
*) bridge - show warning instead of causing error when using multicast MAC as admin-mac (introduced in v7.17);
*) cloud - fixed issues when BTH is toggled fast between enable/disable;
*) cloud - improved "BTH Files" web page design;
*) console - fixed issue with files when using scripts (introduced in v7.18);
*) console - improved file add/remove process stability;
*) dhcpv6-relay - clear saved routes on DHCP release;
*) dhcpv6-relay - show client address;
*) disk - add "sector-size" property in print detail;
*) disk - improved stability when formatting crypted partitions;
*) l3hw - remove VLAN tag before VXLAN encapsulation (fixes pvid behavior for bridged VXLAN);
*) lte - fixed modem recovery after firmware upgrade for R11e-LTE modem;
*) lte - fixed Router Advertisement processing issue for AT modems when an APN with "ip-type=ipv6" was configured;
*) ovpn - disable hardware accelerator for GCM on MMIPS CPUs (introduced in v7.18);
*) poe-out - fixed health showing 0V voltage when using PoE-in for RB960;
*) poe-out - upgraded firmware for 802.3at/bt PSE controlled boards (the update will cause brief power interruption to PoE-out interfaces);
*) route - show BGP session name instead of cache-id;
*) switch - improved stability when enabling IGMP snooping with VXLAN (introduced in v7.18);
*) system - improved internal "flash/" prefix handling for different file path related settings;
*) winbox - fixed missing SMB client on non-ROSE devices;

So CHANGELOG is always fetched but not possible to print over CLI, so request from @infabo seems appropriate, if is always fetched why not introduce some additional argument to check-for-updates, like show-changelog to print it.

I file a feature request - for reference: SUP-185090.

Introduced in 7.21beta2:

*) console - added changelog to /system/package/update/check-for-updates;

see V7.21beta [testing] is released!

2 Likes