First, congrats on getting GnuCash 3.8 installed! If you regularly do package installs in linux from the command line, you’ll find that nearly all of them require other packages to run. (with some exceptions for very small and simple apps.) These are referred to as ‘dependencies’ and the developer includes a file specifying a list of them, and which versions are required.
Developers test their apps using certain versions of these dependencies. Most developers either target the oldest version of the dependency they can, or otherwise target the version most likely to be default in most distros. Sometimes however, requiring a newer version cannot be avoided. Perhaps the newer version has bug fixes or features that are needed in order for the main app to work as intended. Sometimes, what appear to be bugs in the main app, are really bugs in the dependencies. Requiring a version which fixes those dependency bugs, thus also resolves a bug in the main app. In a case like GnuCash where the version of the main app is newer than the default repo, there is a good chance it relies on a dependency that is also newer than the default version. Sometimes, this fact alone is why the main app remained in the testing branch. (In this case it was a time-frame issue, GnuCash 3.8 didn’t exist at the time the Buster repo was re-designated from Testing to Stable) Note too, this can cascade. Dependencies can have dependencies, ad infinitum. If you look at the dependency section of the wiki for building GnuCash on linux, you’ll see what is required and at what versions. Anything not specifically listed there that was installed in this apt run, is a dependency of a dependency. If you see a package on your system and want to investigate why it is there, look into `apt-cache rdepends` or `apt rdepends` which will show you what is relying on that package. Check the rdepends man page sections for both `apt-cache` and `apt` as they have extra options like `--installed` which limits the command results to what is actually installed, not just what is in the repo, and `--recurse` which walks all the way back to the highest level app up the dependency chain. (so you don’t have to manually climb out of the rabbit hole one dependency level at a time) There are other options flags available to tailor the output even further. However, I don’t think these commands discern between the package being required and a specific version of it being required. (`apt` is newer than `apt-cache` and may not have as much, or might have more/different, functionality) That is, more than one app relies on `cryptsetup-initramfs:amd64` but now that version 2:2.2.2-3 is installed, those commands will still list all apps requiring it, including GnuCash, even though they might function fine with version 2:2.1.0-5+deb10u2 that was there before. The only way I know to determine that for sure is to find the dependencies of those other suspect apps and compare versions. (can also be done from the command line) As for the detailed and exact ‘why’ are those versions required of each package, you’d have to follow the development of each one, check release notes, bug reports, etc. Unless you have a serious, major breakage problem (like a video driver causing a blank display) that level of investigation is overkill but for the curious. As for potential problems with these newer versions of packages, `apt` is pretty well behaved. It will warn you if installing a newer version of something is going to break something else. It even tries to figure that out in advance and resolve the situation on its own. But when it can’t it will alert you and ask you what to do. (install the new version anyway, abort the installation, try something else) That more often happens when it can’t find the version it needs in the repo, and direct conflicts are pretty rare. Most apps don’t require a *specific* version, but rather a *minimum* version. (but the reverse does happen in rare cases) If you are ever unsure about installing something and what might get dragged in with it, use the `-s` (simulate) flag with `apt`. It will walk through the installation but not actually make any changes to your system. An important note here, is yes, this all sounds very complicated and hazardous. It really isn’t in my experience, but certainly, it doesn’t hurt to learn how to manage your system and it is good to be concerned about breaking it. As debian probably told you the first time you ran `sudo`, “With great power comes great responsibility." Regards, Adrien > On Mar 12, 2020 w11d72, at 9:48 AM, km22 <k...@gmx.com> wrote: > > As a follow up, what I did is the following to update to 3.8 on my > Debian 10 system: > > 1) Created a file /etc/apt/apt.conf with the line: APT::Default-Release > "buster"; > > 2) Ran sudo apt update. Then ran apt -t testing install gnucash > > From the /var/log/apt/history.log file these were the packages that > were installed/updated: > > Start-Date: 2020-03-10 00:14:47 > Commandline: apt -t testing install gnucash > Requested-By: ken (1000) > Install: libgwenhywfar79:amd64 (5.1.3-1, automatic), gcc-10-base:amd64 > (10-20200222-1, automatic), libhogweed5:amd64 (3.5.1+really3.5.1-2, > automatic), libgcc-s1:amd64 (10-20200222-1, automatic), libnettle7:amd64 > (3.5.1+really3.5.1-2, automatic), libffi7:amd64 (3.3-3, automatic), > libaqbanking44:amd64 (6.0.1-2, automatic), libgwengui-gtk3-0:amd64 > (5.1.3-1, automatic) > Upgrade: cryptsetup-initramfs:amd64 (2:2.1.0-5+deb10u2, 2:2.2.2-3), > libgwenhywfar-data:amd64 (4.20.0-9, 5.1.3-1), cryptsetup-run:amd64 > (2:2.1.0-5+deb10u2, 2:2.2.2-3), p11-kit-modules:amd64 (0.23.15-2, > 0.23.20-1), gnucash:amd64 (1:3.4-1+b10, 1:3.8b-1+b1), > libboost-regex1.67.0:amd64 (1.67.0-13+deb10u1, 1.67.0-17), > libaqbanking-data:amd64 (5.7.8-3, 6.0.1-2), libgnutls30:amd64 > (3.6.7-4+deb10u2, 3.6.12-2), libp11-kit0:amd64 (0.23.15-2, 0.23.20-1), > gnucash-common:amd64 (1:3.4-1, 1:3.8b-1), libtasn1-6:amd64 (4.13-3, > 4.16.0-2), libstdc++6:amd64 (8.3.0-6, 10-20200222-1), cryptsetup:amd64 > (2:2.1.0-5+deb10u2, 2:2.2.2-3), libxmlsec1:amd64 (1.2.27-2, 1.2.28-2) > End-Date: 2020-03-10 00:15:13 > > Question I have is why was it necessary for gnucash to install packages > from the testing repo for packages such as cryptsetup (various) or > gcc-10-base? Are these really necessary for gnucash? I want to > maintain a system as close to the base Debian 10 as possible so curious > to understand why these other packages were required? > > Thanks, > > Ken _______________________________________________ gnucash-user mailing list gnucash-user@gnucash.org To update your subscription preferences or to unsubscribe: https://lists.gnucash.org/mailman/listinfo/gnucash-user If you are using Nabble or Gmane, please see https://wiki.gnucash.org/wiki/Mailing_Lists for more information. ----- Please remember to CC this list on all your replies. You can do this by using Reply-To-List or Reply-All.