[RFC] Operating system name/version detection

Lubomir I. Ivanov neolit123 at gmail.com
Thu Apr 10 12:31:34 PDT 2014


On 10 April 2014 20:57, Lubomir I. Ivanov <neolit123 at gmail.com> wrote:
> i've tried building on linux but i get some linker errors with:
>  libgit2-0                              0.18.0
> will have to find why is that.
>

ok, managed to compile after defeating libgit2's not-so-obvious lack
of of proper -rpath and -soname in terms of 'make install'.

joshua,

the class is working fine, but on Ubuntu 12.04 it just says "Linux",
which i'm not sure is sufficient for the updater (i don't know the
original idea here).

for debian based this should be done:
int fd = QT_OPEN("/etc/lsb-release", O_RDONLY);

for fedora "/etc/os-release" seems fine.

in general a file /etc/*-release should contain this extra bit of information.
but note there is different formatting in these files (ughh...), e.g :
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04.1 LTS"

and these search strings will not work:
static const char idString[] = "NAME=";
static const char prettyNameString[] = "PRETTY_NAME=";
static const char versionIdString[] = "VERSION=";

^ BTW, there is no need to include "String" in the variable name since
char[] makes that obvious.

lubomir
--


More information about the subsurface mailing list