Util-linux 2.35 Is Released With hwclock Re-Licensed To GNU GPL v3
The Linux utility package util-linux provides a number of core programs that are essential to any GNU/Linux distribution. It provides tools like
su and a lot of other basic tools. The list of changes since 2.34 was released is quite long. One of those changes is barely mentioned: hwclock has been re-licensed to GNU GPL v3.
written by Öyvind Sæther. published 2020-01-25 - last edited 2020-01-25
The release notes for util-linux 2.35 causally mention that the documentation is changed to "add GPLv3 text". The full text of the The GNU General Public License Version 3 is indeed added as a file called
That change does not magically re-license the entire existing util-linux codebase to the GNU GPL v3 license.
All the files in util-linux have a SPDX-License-Identifier statement clarifying the license of the particular file in the header. A close-up inspection of the entire util-linux 2.35 codebase reveals that there are only two files licensed under the GNU GPL v3 in the entire package:
sys-utils/hwclock-parse-date.c (auto-generated) and
sys-utils/hwclock-parse-date.y is a modified version of
parse-datetime.y from GNU gnulib.
parse-datetime.y is only available under the GNU GPL v3 license which makes modified versions subject to the GNU GPL v3 as well. The inclusion a GNU GPL v3 licensed file in
hwclock a GPL v3 licensed utility as of this release.
The Linux kernel "has _always_ been under the GPL v2" and util-linux has, so far, also been available under the GNU GPL v2. This is no longer true as far as
hwclock is concerned.
"That's a problem. It makes hwclock hard to include in embedded systems due to the GPLv3 restrictions."
Most of the changes between the GPLv2 and the GPLv3 licenses were made to stop hardware manufacturers from including free software in devices which prevent users from changing the software running on them.
"Our goal is to make clear that GPL'd software may not to be used to create forms in which tinkered versions will not run or will not run for the same purposes and on the same data. It is fine, as Richard says, with us for people to use our software for purposes that do not attempt to turn the mechanisms of freedom against itself, but when the mechanisms of freedom are used to create unfreedom it goes further than the GPL can possibly be expected to follow and we will not go there."
Corporations who want to use free software and restrict their users will have to use an older version of
hwclock or use something else to sync the system clock with the hardware clock.
The rest of the changes in util-linux 2.35 are small and trivial.
dmesg supports a new
--noescape option which disables its default filtering of unprintable and potentially unsafe characters.
kill has a new
--timeout option which uses the kernels
script has many new logging features for logging signals, stdin and other session information. That information can be extracted using
scriptreplay. There is also a new
scriptlive command for re-running session typescripts,
mount (and libmount) have gained built-in
dm-verify support. This is optional for now, util-linux needs to be configured with
--with-cryptsetup to enable that feature.
mount ahs also a new
--target-prefix option for mounting files listed in
fstab to alternative locations. This can be handy for those working with containers or chroots.
mount can also combine
--all as of this release.
lsblk has two new columns: File system version (FSVER) and partition type (PARTTYPENAME).
sfdisk, a utility for manipulating disk partition tables, is no longer using fsync during data moves as of this release. That potentially unsafe new default can be disabled with a new
-move-use-fsync option. There is also a new progress bar for its typically time-consuming
The source for util-linux 2.35 is available at kernel.org/pub/linux/utils/util-linux/v2.35/.