[Michael Stone] > Other platforms have deprecated gethostid, that's the best way forward for > linux, IMO.
Which platforms is this? I find FreeBSD recommend to use sysctl and KERN_HOSTID to get the hostid integer directly from the kernel instead of using gethostid(), which isn't really depricating the feature, only the way to get access to it. A quick search did not show any other platforms depricating the function and feature, so I am curious to learn what those are. > This proposal doesn't fix the problem generally and actually changes > the semantics of the call. (It was originally expected that the value > would remain constant independent of a particular OS installation, > which is not a property of a value stored on disk.) My proposal is to use the DMI info which should stay the same independent of OS installation. > The main users of hostid (that I'm aware of) tended to be commercial > software vendors locking licenses to systems--and they typically > didn't use gethostid on linux because it was useless for the > purpose. So I'm not aware of a userbase for this call on linux, and > nobody should be using it for new development. The users I am aware of is zfs-linux and the tools we wrote at work to detect when a Linux machine was reinstalled or had its hardware changed. The use case of zfs-linux require the ID to be unique among the machines sharing a storage solution, and not globally unique. A search in the source of all Debian packages[1] show this list of 148 packages mentioning the string 'gethostid': actiona alpine amanda apcupsd aplus-fsf arpwatch ats-lang-anairiats audit bacula bareos bluefish bsdgames burp busybox casacore cde cdrdao cdrkit chromium-browser cl-irc clisp cmucl condor coreutils ctwm cython dc3dd dcmtk deheader deja-dup dicom3tools dietlibc dist dmtcp dx e17 eclipse-titan edk2 emscripten erlang facter fpc frama-c freebsd-utils freetds fs-uae ga gcc-h8300-hms gdb ghc glibc gnucash gnulib gnustep-netclasses golang golang-1.6 golang-1.7 golang-golang-x-sys hercules highlight hugs98 hurd iputils isdnutils ivtools kfreebsd-10 krb5 ksh latrace ldc libcanberra libconvert-binary-c-perl libdata-uuid-perl libexplain libpam-tacplus libpcap libposix-2008-perl linux linux-grsec ltrace lua-posix manpages manpages-de manpages-es manpages-fr manpages-ja manpages-pl metview minc-tools mingw-w64 mono mono-reference-assemblies musl nam ncbi-tools6 netatalk newlib nim nmap nordugrid-arc ns2 ntirpc nwchem open-iscsi open-vm-tools openafs openmpi otp pidgin pidgin-nateon pimd polygraph praat prayer pulseaudio python-ptrace qemu radare2 rat roaraudio samhain sbcl silo-llnl sipxtapi slirp smlnj sniffit spl-linux splint strace talksoup.app tau tcpdump tcpslice tkrat topal trinity tripwire uclibc uclmmbase uhd uw-imap vde2 xfsdump yap zephyr zfs-fuse zfsutils. I do not know what they use gethostid() for. :) [1] curl -s https://codesearch.debian.net/results/2308ff3051ed55cc/packages.json | jq -r '.Packages[]' -- Happy hacking Petter Reinholdtsen