Richard Yao [Fri, 11 Mar 2016 22:03:27 +0000 (17:03 -0500)]
swapon: fix discard=pages docs
The documentation for discard=pages is ambiguous in that it could be
interpreted to mean either that the pages are discarded immediately
after being freed or that the pages are discarded immediately before
being reused by a write. Both implementations would satisfy the
statement "discard freed swap pages before they are avaliable for
reuse", but the kernel does the former.
Doing a discard operation (which is non-queued on SATA drives before
SATA 3.1) before a write operation to the same sector is pointless
unless using, pre-SATA 3.1 drives, where discard is detrimental because
ATA TRIM is a non-queued command.
Anyone who wants discard operations on swap and interprets the man page
as describing the incorrect behavior would opt for discard=once over
discard, when discard provides the behavior of both discard=once and
discard=pages, which is what they likely want.
Lets make a small change to the documentation to clarify the behavior.
Ruediger Meier [Sat, 12 Mar 2016 22:45:00 +0000 (23:45 +0100)]
travis: add OSX build
Of course OSX is not an important target but since it's available on
travis we can (mis)use it to generally improve non-Linux and non-GNU
compatibility. People are using musl, busybox or whatever and
util-linux should work for them. Having OSX build running regularly
will help us to freeze the lately improved BSD compatibility and
to check code which is usually ifdef'ed.
We are using the most recent OSX 10.11.x / Xcode 7.3 though the older
travis OSX images are working too currently.
If it turns out that this OSX build is too annoying when we are about
to add support for latest Linux features then we could add:
allow_failures:
- os: osx
to let it fail silently.
Note I've tried hard to keep .travis-functions.sh readable for the
Linux case. I've removed --with-python because it's default anyway,
--enable-gtk-doc is still tested in discheck.
OSX root check would also work (almost, using another --prefix) but
would only run one more test yet (minix).
OSX distcheck would have some issues with conditionally built man
pages and does not work with default distcheck confopts. No need to
fix that because distcheck is more for maintainer machines.
BTW to increase travis build speed again we could remove some targets
from the matrix without losing tested scenarios:
- nonroot for Linux seems to be waste of time
- clang/Linux could be root check only
For now we keep it as is.
Ruediger Meier [Sat, 12 Mar 2016 22:44:50 +0000 (23:44 +0100)]
travis: switch to Ubuntu 14.04 Trusty
Now we have a reasonable recent build system with systemd, etc. We still
keep old Ubuntu 12.04 Precise to check backward compatibility but
remove the hack to install socat.
Note the new env variable PRECISE="yes" is only there to see it on travis
website.
Ruediger Meier [Sun, 13 Mar 2016 02:19:26 +0000 (03:19 +0100)]
build-sys: fix again UL_SCANF_TYPE_MODIFIER
This reverts commit c8494d88:
"build-sys: fix UL_SCANF_TYPE_MODIFIER for icc"
plus fix the check prog, because it found "%as" to be valid on
systems where "%a" is used for float conversion.
icc warns about "%ms" but it works anyways. Our AC_RUN_IFELSE prog
should do it right now regardless of compiler warnings.
Note "%ms" is POSIX.1-2008 standard but still not available on
many systems. Maybe it's time to remove "%as" fallback for old
glibc which is even less portable.
Ruediger Meier [Sat, 12 Mar 2016 11:23:32 +0000 (12:23 +0100)]
tests: improve skipping of old btrfs-tools
Older Linux distributions came with differently incomplete
btrfs-tools 0.19+git versions (2009-2013). Old mkfs.btrfs
needs minimum device size 256M.
Note the most simple way to skip btrfs-tools < 3.14 would be
btrfs property --help 2>&1 || ts_skip "btrfs too old"
but I want to include 3.12 because of Ubuntu Trusty on travis.
This patch partly reverts/rewrites the following commits: 7e604f3c - tests: don't skip case "output undefined" 076153f8 - tests: don't compare btrfs mount options 370d31f7 - tests: skip btrfs tests if version too old
Ruediger Meier [Thu, 10 Mar 2016 10:29:09 +0000 (11:29 +0100)]
tests: remove invalid argument in libmount/debug
This was usually no problem because of unsafe strtoul(3) usage in
test prog libmount/src/init.c. But musl's strtoul sets errno if
no digit was found in the argument.
Ruediger Meier [Sat, 12 Mar 2016 22:55:48 +0000 (23:55 +0100)]
misc: fix icc/clang compiler warnings
clang warning:
libmount/src/tab.c:1833:6: warning: variable 'rc' is used uninitialized whenever
'if' condition is true [-Wsometimes-uninitialized]
if (!mpc)
^~~~
icc printf warnings:
libmount/src/monitor.c(348): warning #2279: printf/scanf format not a string literal and no format arguments
DBG(MONITOR, ul_debugobj(mn, status == 1 ? " success" : " nothing"));
^
login-utils/vipw.c(348): warning #2279: printf/scanf format not a string literal and no format arguments
: _("You are using shadow passwords on this system.\n"));
^
icc enum warnings:
disk-utils/fdisk-menu.c(150): warning #188: enumerated type mixed with another type
.exclude = FDISK_DISKLABEL_GPT | FDISK_DISKLABEL_BSD,
^
libsmartcols/src/table_print.c(750): warning #188: enumerated type mixed with another type
&width, align,
^
Ruediger Meier [Wed, 9 Mar 2016 16:56:58 +0000 (17:56 +0100)]
misc: fix printf i386 compiler warnings
Still a few printf warnings found on i386 Linux:
libfdisk/src/alignment.c: In function 'fdisk_align_lba':
libfdisk/src/alignment.c:115:3: warning: format '%ju' expects argument of type 'uintmax_t', but argument 6 has type 'long unsigned int' [-Wformat]
sys-utils/lsns.c: In function ‘add_namespace’:
sys-utils/lsns.c:346:2: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘ino_t’ [-Wformat]
sys-utils/lsns.c: In function ‘add_process_to_namespace’:
sys-utils/lsns.c:362:2: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘ino_t’ [-Wformat]
sys-utils/lsns.c: In function ‘add_scols_line’:
sys-utils/lsns.c:440:4: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘ino_t’ [-Wformat]
Karel Zak [Wed, 9 Mar 2016 14:51:28 +0000 (15:51 +0100)]
look: consider blanks as directory characters
This change introduces regression, but it seems better than to be
incompatible with "sort -d" if we assume that "sort -d" is the right
way how to prepare files for look(1).
It seems (from man page) that the original goal has been compatibility
with sort -d, but this feature has never been fully implemented.
Addresses: https://github.com/karelzak/util-linux/issues/284 Signed-off-by: Karel Zak <kzak@redhat.com>
Mainly by using proper subsections (so they can be indexed),
protecting some things from hyphenation, and marking with \&
periods that don't end sentences. Tweaking some wordings too.
Signed-off-by: Benno Schulenberg <bensberg@justemail.net> Signed-off-by: Karel Zak <kzak@redhat.com>
Ruediger Meier [Tue, 8 Mar 2016 10:23:14 +0000 (11:23 +0100)]
logger: fix compiler warning, const facilitynames
This was the warning on FreeBSD:
misc-utils/logger.c:221:24: warning: passing 'const CODE [25]' to parameter of type 'CODE *' (aka 'struct _code *') discards qualifiers
[-Wincompatible-pointer-types-discards-qualifiers]
facility = decode(s, facilitynames);
^~~~~~~~~~~~~
misc-utils/logger.c:187:43: note: passing argument to parameter 'codetab' here
static int decode(const char *name, CODE *codetab)
Mike Frysinger [Mon, 7 Mar 2016 22:26:33 +0000 (17:26 -0500)]
include sysmacros.h where used
BSD/Linux systems stick major/minor/makedev in sysmacros.h. Newer Linux
libraries have been moving away from including sysmacros.h implicitly via
sys/types.h, so include it directly.
Karel Zak [Tue, 8 Mar 2016 12:38:36 +0000 (13:38 +0100)]
tests: don't compare btrfs mount options
We don't control mount options in the mountinfo file and the options
depend on kernel version. It does not make sense to hardcode the
options in the expected outputs.
Note that libmount should be portable enough to be able to work with
all kernel versions. It seems better to check libmount functionality
than kernel mount options formatting.
Ruediger Meier [Sat, 5 Mar 2016 17:51:59 +0000 (18:51 +0100)]
tests: don't skip case "output undefined"
Treat missing expected files as empty and let the test fail if
there is non-empty output.
Expected output may be missing in these cases:
1. forgot to commit the file after changing/adding a (sub)test
2. a bug in a test where we do tricks with TS_EXPECTED
3. and most notable if ts_die() is called before a subtest is
initialized, e.g. in ts_scsi_debug_init()
I always wondered why we don't treat this as FAILED. Now we do
so, ts_finalize and ts_gen_diff looks much cleaner now.
The change discovers that tests with subtest were ignoring the
"non-sub" expected files which had to be fixed. BTW we removed
any zero sized files.
Moreover now we respect diff's return value. In past all test
succeeded when diff was not able to write to diffdir, e.g. when
running tests as normal user after they run as root.
Ruediger Meier [Thu, 25 Feb 2016 17:29:48 +0000 (18:29 +0100)]
fdisk: sun, undef HAVE_QSORT_R for non-Linux
Linux/glibc's qsort_r(3) has differently ordered arguments than BSD
implementations. For now we undef that quick and dirty.
The real fix would be to make configure check for qsort_r more
carefully (AC_CHECK_FUNCS with AC_LANG_WERROR). Moreover one could
add a wrapper to swap arguments, see
https://github.com/noporpoise/sort_r/blob/master/sort_r.h
Karel Zak [Mon, 7 Mar 2016 14:50:34 +0000 (15:50 +0100)]
Merge branch 'fix-minix' of https://github.com/rudimeier/util-linux
* 'fix-minix' of https://github.com/rudimeier/util-linux:
tests: minix, add a useful non-root check
tests: fix minix tests for big endian
mkfs.minix: fix v2/v3 .badblocks inode number for big endian
fsck.minix: fix v3 version offset
tests: minix, some corrections and cleanup
tests: minix, use hexdump instead of md5sum
taskset: fix description of `-c` option in the man page
Commit 42f15e9848dc07e86a2b80c742a0179aaced6c71 introduced a certain
inaccuracy in -c option description; it is not _the option with an argument_,
but it is the flag that changes interpretation of `mask` parameter.
The difference is almost not noticeable, but there are one corner case where it is:
taskset -c 1 -p $$
fails (but it would work if 42f15e was correct). Instead,
taskset -c -p 1 $$
works (but it should not have if 42f15e was correct).
Karel Zak [Mon, 7 Mar 2016 13:37:31 +0000 (14:37 +0100)]
Merge branch 'port-osx' of https://github.com/rudimeier/util-linux
* 'port-osx' of https://github.com/rudimeier/util-linux:
lib: include strutils.h for mempcpy()
build-sys: remove duplicate cal sources
lib: provide fallback if mkostemp(3) missing
build-sys: chrt requires a sched_set* function
build-sys: add --disable-ipcrm --disable-ipcs
build-sys: disable login-utils if shadow.h or utmp.h is missing
login-utils: minor utmp cleanup
build-sys: build_init should check for flock
newgrp: rename memset_s()
misc: fix some includes
libsmartcols: fix uninitialized variable
fdisk: fix warning, incompatible pointer types passing 'uint64_t *'
logger: use SCM_CREDENTIALS on LINUX only