How to correlate 'apt' release with the 3.01-RCx style name?

  • How to understand what goes together in terms of DWC, RRF, DCS, etc, etc, when using 'apt' to install duetsoftwareframework? It will normally "do it all for you". However, when things go wrong, more information is needed. To find dependencies:

    Start with sudo apt list duetsoftwareframework -a This will tell you all the versions that are in your feeds, and point out the version that is installed. From those, we can pick any version, and get more detail on the dependencies. There are some commands that directly show dependencies and reverse dependencies; unfortunately, they tend to give package names (so you could apt install them) and not release numbers (because apt would figure that out for you... but we are not installing, we are just getting information).

    Next, list the package in which we are interested. I arbitrarily picked an old one. This would also work for 'current':

    sudo apt-cache show duetsoftwareframework=
    Package: duetsoftwareframework
    Architecture: armhf
    Priority: standard
    Section: electronics
    Maintainer: Duet3D Packaging Authority <>
    Depends: duetcontrolserver (=, duetsd (= 1.0.5), duettools (=, duetwebserver (=, duetwebcontrol (= 2.0.4-1), reprapfirmware (>=, reprapfirmware (<=

    The depends lines here DO show release numbers, and compatible ranges. Now we know, for example, the compatible DWC is 2.0.4. What about the firmware? Those 'apt centric' release numbers don't tell us much. How about we 'show' one of them to see if we get more info?

    sudo apt show reprapfirmware=
    Package: reprapfirmware
    Priority: standard
    Maintainer: Duet3D Packaging Authority <>
    Installed-Size: unknown
    Depends: duetcontrolserver (>=, duetsd (>= 1.0.4)

    Well, we at least got some "reverse" dependency info. But we still don't know if this is V3.xx - RCx, or whatever.

    Is there any way to find that information? From the Pi command line?

  • not without running strings on the binary or go digging with wget if its part of what builds the package afaik


    $ strings /opt/dsf/sd/sys/Duet3Firmware_MB6HC.bin | grep  version=

  • or possibly

    pi@rpix:~/test $ V= ; {
    >  apt download reprapfirmware=$V  &> /dev/null ;
    >  mkdir -p rrf$V  ;
    >  dpkg-deb -R reprapfirmware_$V*.deb  rrf$V  &> /dev/null;
    >  strings rrf$V/opt/dsf/sd/sys/Duet3Firmware_MB6HC.bin | grep -a --color=never version= ;
    >  rm -r rrf$V ;
    >  }
    pi@rpix:~/test $

    was supposed to be a single line

    V=2.1.0-1;{ apt download reprapfirmware=$V 2>&1;mkdir -p rrf$V;dpkg-deb -R rep*_$V*.deb rrf$V;strings rrf$V/opt/dsf/sd/sys/D*_MB6HC.bin | grep -a version=;rm -r rrf$V;}| tail -n1

  • Good idea. I'll look at that.


Log in to reply