Odd discrepancy in virtualmin-base available versions

Hello!

Playing around with "apt-show-versions" I found an odd discrepancy. Some of my Virtualmin servers show, after doing "apt-get clean" and "apt-get update" :

root@deimos:~# apt-show-versions | grep virtualmin-base
virtualmin-base/virtualmin-precise uptodate 1.0-32ubuntu

and some show

root@taurus:~# apt-show-versions | grep virtualmin-base
virtualmin-base/virtualmin-precise *manually* upgradeable from 1.0-32ubuntu to 1.0-33vm

Aptitude and Webmin itself though does not show any available updates for Virtualmin.

What's up with that? ;) I'm wondering, is there an update, or isn't there, and why do only some systems show the update?

Status: 
Active

Comments

Howdy -- which Virtualmin version are those servers running, is it Pro or GPL?

Also, if you run "uname -a", do they each show the same kernel architecture? Or is one 64 bit and the other 32 bit?

I was wondering too if it's a Pro vs. GPL thing. But it doesn't seem to be.

One Pro installation is showing the "upgradeable to 1.0-33vm" line, while another Pro shows "uptodate 1.0-32ubuntu".

Conversely, one GPL shows "uptodate", while another GPL shows "upgradeable".

All of the installations are 64 bit, and show the exact same architecture:

Linux *** 3.2.0-64-generic #97-Ubuntu SMP Wed Jun 4 22:04:21 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

I'm stumped... Why would the alleged update be called "vm" and the other "ubuntu"? Maybe some misdetection of the OS?

Well, one thing of note is that virtualmin-base version 1.0-33 should actually only be available on Ubuntu 14.04.

I just verified that for Ubuntu 12.04 64 bit, only version 1.0-32 appears in that repository.

Is it possible version 1.0-33 was manually downloaded and installed onto your one server there?

Note that there's nothing necessary within virtualmin-base -- that's just a tool used to assist during the installation process. So you aren't actually missing out on anything.

The only difference between 1.0-32 and 1.0-33 are some changes added to support Ubuntu 14.04.

More info. I played a bit more with apt-show-versions. Here's an output from an installation which says "uptodate":

root@australis:~# apt-show-versions -p virtualmin-base -a
virtualmin-base 1.0-32ubuntu install ok installed
virtualmin-base 1.0-29       virtualmin-universal software.virtualmin.com
virtualmin-base 1.0-32ubuntu virtualmin-precise   software.virtualmin.com
virtualmin-base/virtualmin-precise uptodate 1.0-32ubuntu

Here's one from an "upgradeable" installation:

root@lyra:~# apt-show-versions -p virtualmin-base -a
virtualmin-base 1.0-32ubuntu install ok installed
virtualmin-base 1.0-29   virtualmin-universal software.virtualmin.com
virtualmin-base 1.0-33vm virtualmin-precise   software.virtualmin.com
virtualmin-base/virtualmin-precise *manually* upgradeable from 1.0-32ubuntu to 1.0-33vm

I found the 1.0-33vm version in the file /var/lib/apt/lists/software.virtualmin.com_ubuntu_dists_virtualmin-precise_main_binary-i386_Packages.

So it would seem that on that installation, apt-show-versions thinks that it's a 32-bit system and lists the packages from the wrong architecture file? Hmm, why would it do that...

Ah, actually, it's 1.0.35 that contains the changes for Ubuntu 14.04.

I'm not sure what's changed within 1.0.33, though I do see that it's in the 32 bit repository.

It might mean that you're using a 32 bit distro, with a 64 bit kernel.

What output does this show:

file /bin/ls

I suspect that'll say "ELF 32-bit" on your system containing virtualmin-base 1.0.33.

It's no problem to run a 64 bit kernel on a 32 bit system though.

I'm 100% positive that I'm only using 64-bit systems. As in, full systems, not just kernel. :) This is on an Ubuntu that I installed a few days ago:

root@lyra:~# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0x37cdd635587f519989044055623abff939002027, stripped
root@lyra:~# apt-show-versions -p virtualmin-base -a -v
virtualmin-base 1.0-32ubuntu install ok installed
virtualmin-base 1.0-29   virtualmin-universal software.virtualmin.com
virtualmin-base 1.0-33vm virtualmin-precise   software.virtualmin.com
virtualmin-base/virtualmin-precise *manually* upgradeable from 1.0-32ubuntu to 1.0-33vm

Could this be a bug in apt-show-versions? Because neither apt-get nor aptitude or Webmin show the 1.0-33 version.

I just upgraded apt-show-versions to the latest available package. Even there the odd behaviour still occurs.

But I noticed something:

Is it correct that in Virtualmin's package files under /var/lib/apt/lists, the "Architecture:" lines for all the "virtualmin-base" packages in BOTH the i386 and amd64 files are given as "All"?

Example:

Package: virtualmin-base
Priority: optional
Section: misc
Installed-Size: 76
Maintainer: Joe Cooper <joe@virtualmin.com>
Architecture: all
Version: 1.0-33vm
...

Shouldn't that be "Architecture: i386" if that file is NOT supposed to be for amd64? I compared this against the regular Ubuntu package files, and they have "Architecture: i386" or "Architecture: amd64" in the respective files, when the files indeed are individual.

For a test, I changed the mentioned line in Virtualmin's i386 package to "Architecture: i386", and lo and behold, apt-show-versions behaves correctly.

See, I changed the entry like so:

Package: virtualmin-base
Priority: optional
Section: misc
Installed-Size: 76
Maintainer: Joe Cooper <joe@virtualmin.com>
Architecture: i386
Version: 1.0-33vm
...

and then apt-show-versions does this, on a system which had the issue before:

root@lyra:~# apt-show-versions -p virtualmin-base -a
virtualmin-base:all 1.0-32ubuntu install ok installed
virtualmin-base:all 1.0-29       virtualmin-universal software.virtualmin.com
virtualmin-base:all 1.0-32ubuntu virtualmin-precise   software.virtualmin.com
virtualmin-base:all/virtualmin-precise 1.0-32ubuntu uptodate

Heya! Any news about this? Could Joe maybe take a look at his package files, if my theory with the "Architecture: All" is correct?

Joe's picture
Submitted by Joe on Thu, 07/24/2014 - 13:12 Pro Licensee

I actually don't understand dpkg/apt well enought to know!

I believe this package should be Architecture: All, as it has no compiled code and I don't think any reliance on specific architecture features. It runs a postinstall script to configure a bunch of stuff, and that's pretty much all it does...so, I doubt it needs to be architecture specific.

So, the question remains why it's behaving oddly with the Architecture: All setting.

Also, it's rare that an update the virtualmin-base will do anything on an already installed system. We occasionally (like every two or three years) use it to make a change after install, but most of the time, the stuff that happens in virtualmin-base is only safe to do at fresh install time, so we don't run the postinstall script again on upgrades. So, it almost certainly doesn't matter whether you have the latest version...though it does matter if the latest version gets installed during a fresh OS install.

But, I would like to get the package right; whatever that means. I'll do some more readin on what Architecture: All does and what it's for. I assumed it was similar to noarch packages on RHEL/Fedora.