Go to file
Patrick Steinhardt d2523d3dd2 rename: avoid undefined function prototype for `fpurge`
In case where the non-standard `fpurge` function is available, we
redefine `__fpurge` to `fpurge`. We can do so because the only
difference between both functions is that one returns an error code
while the other does not. But as we do not check the error code either
way, we do not care about which one of them we use.

The above redefinition happens unconditionally if we know that `fpurge`
exists. Most notably, we also redefine it if we already do have an
`__fpurge` function available that could be used. This causes problems
on musl-based platforms, where we detect availability of `fpurge` in
libc, but where no function declaration for it exists in "stdio_ext.h".
The compiler thus prints a warning due to an unknown function, even
though it will link just fine.

Avoid this warning by only redefining `__fpurge` to `fpurge` when
HAVE___FPURGE is not defined.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
2018-10-04 11:56:37 +02:00
Documentation docs: update v2.33-ReleaseNotes 2018-09-20 14:27:55 +02:00
bash-completion bash-completion: update column 2018-08-23 14:14:29 +02:00
config build-sys: gtkdoc-fixxref v1.27 requires module option 2018-02-01 13:23:40 +01:00
disk-utils mkfs.cramfs: properly copy disk name 2018-10-03 17:07:37 +02:00
include include/c: add str2memcpy() and mem2strcpy() 2018-10-03 17:03:11 +02:00
lib lib/strutils: return from xstrmode() 2018-09-14 16:26:38 +02:00
libblkid docs: use SPDX license names 2018-08-16 14:47:21 +02:00
libfdisk libfdisk: fix printf format modifier 2018-10-04 11:56:25 +02:00
libmount docs: fix gtkdoc warning 2018-09-24 11:21:09 +02:00
libsmartcols libsmartcols: don't mark as extreme where average is zero 2018-08-23 10:13:17 +02:00
libuuid libuuid: fix name-based UUIDs 2018-08-31 12:43:17 +02:00
login-utils su: cleanup code to copy to log strings 2018-10-03 17:10:13 +02:00
m4 misc: fix typos using codespell 2018-02-16 11:12:52 +01:00
misc-utils rename: avoid undefined function prototype for `fpurge` 2018-10-04 11:56:37 +02:00
po po: merge changes 2018-09-19 12:54:05 +02:00
schedutils man: Use the correct macro for a font change of one argument 2018-05-23 10:43:27 +02:00
sys-utils mount: add note about MS_BIND and _netdev 2018-10-02 12:50:40 +02:00
term-utils agetty: cleanup code to copy to log strings 2018-10-03 17:10:44 +02:00
tests tests: add choom to build-sys test 2018-09-24 11:37:13 +02:00
text-utils more: rename functions 2018-09-02 18:30:12 +01:00
tools tools: improve checkmans 2018-03-01 13:52:07 +01:00
.editorconfig add .editorconfig 2016-01-25 00:12:14 +01:00
.gitignore choom: new command to adjust OOM-killer score value 2018-04-16 12:53:39 +02:00
.travis-functions.sh travis: homebrew/dupes was deprecated 2018-03-09 09:57:23 +01:00
.travis.yml travis: enable osx root checks 2018-03-07 18:31:55 +01:00
AUTHORS docs: update AUTHORS file 2018-09-20 12:19:06 +02:00
COPYING docs: corrections to FSF license files, and postal address 2012-02-24 14:13:35 +01:00
ChangeLog build-sys: use AUTOMAKE_OPTIONS = gnu 2011-05-26 15:04:01 +02:00
Makefile.am build: use --runstatedir instead of --localstatedir 2017-07-31 15:24:46 +02:00
NEWS build-sys: release++ (v2.33-rc1) 2018-09-25 11:26:58 +02:00
README docs: add information about mailing list rejection 2017-06-01 19:42:21 -04:00
README.licensing docs: use SPDX license names 2018-08-16 14:47:21 +02:00
autogen.sh build-sys: improve bison version detection 2018-04-30 09:43:32 +02:00
configure.ac build-sys: release++ (v2.33-rc1) 2018-09-25 11:26:58 +02:00
util-linux.doap docs: replace FTP by HTTPS in kernel.org URLs 2016-12-19 11:22:26 +01:00

README

				  util-linux

		util-linux is a random collection of Linux utilities

     Note: for the years 2006-2010 this project was named "util-linux-ng".

MAILING LIST:

      E-MAIL: util-linux@vger.kernel.org
      URL:    http://vger.kernel.org/vger-lists.html#util-linux

      The mailing list will reject email messages that contain:
       - more than 100K characters
       - html
       - spam phrases/keywords
      See: http://vger.kernel.org/majordomo-info.html#taboo

IRC CHANNEL:

      #util-linux at freenode.net:

      irc://chat.freenode.net/util-linux

      The IRC channel and Mailing list are for developers and project
      maintainers. For end users it is recommended to utilize the
      distribution's support system.

BUG REPORTING:

      E-MAIL: util-linux@vger.kernel.org
      Web:    https://github.com/karelzak/util-linux/issues

      This project has no resources to provide support for distribution specific
      issues. For end users it is recommended to utilize the distribution's
      support system.

NLS (PO TRANSLATIONS):

      PO files are maintained by:
	  http://translationproject.org/domain/util-linux.html

VERSION SCHEMA:

      Standard releases:
	  <major>.<minor>[.<maint>]
	     major = fatal and deep changes
	     minor = typical release with new features
	     maint = maintenance releases; bug fixes only

      Development releases:
	 <major>.<minor>-rc<N>

SOURCE CODE:

 Download archive:
	  https://www.kernel.org/pub/linux/utils/util-linux/

 SCM (Source Code Management) Repository:

    Primary repository:
	  git clone git://git.kernel.org/pub/scm/utils/util-linux/util-linux.git

    Backup repository:
	  git clone git://github.com/karelzak/util-linux.git

    Web interfaces:
	  http://git.kernel.org/cgit/utils/util-linux/util-linux.git
	  https://github.com/karelzak/util-linux

      Note: the GitHub repository may contain temporary development branches too.

      The kernel.org repository contains master (current development) and stable/*
      (maintenance) branches only. All master or stable/* changes are always pushed
      to both repositories at the same time.

    Repository Branches: 'git branch -a'
	  master branch
	   - current development
	   - the source for stable releases when deemed ready.
	   - day-to-day status is: 'it works for me'. This means that its
	     normal state is useful but not well tested.
	   - long-term development or invasive changes in active development are
	     forked into separate 'topic' branches from the tip of 'master'.

	  stable/ branches
	   - public releases
	   - branch name: stable/v<major>.<minor>.
	   - created from the 'master' branch after two or more release
	     candidates and the final public release. This means that the stable
	     releases are committed, tagged, and reachable in 'master'.
	   - these branches then become forked development branches. This means
	     that any changes made to them diverge from the 'master' branch.
	   - maintenance releases are part of, and belong to, their respective
	     stable branch. As such, they are tags(<major>.<minor>.<maint>) and
	     not branches of their own. They are not part of, visible in, or
	     have anything to do with the 'master' development branch. In git
	     terminology: maintenance releases are not reachable from 'master'.
	   - when initially cloned (as with the 'git clone' command given above)
	     these branches are created as 'remote tracking branches' and are
	     only visible by using the -a or -r options to 'git branch'. To
	     create a local branch use the desired tag with this command:
	     'git checkout -b v2.29.2 v2.29.2'

    Tags: 'git tag'
	   - a new tag object is created for every release.
	   - tag name: v<version>.
	   - all tags are signed by the maintainer's PGP key.

    Known Bugs:
	- don't use tag v2.13.1 (created and published by mistake),
	  use v2.13.1-REAL instead.

WORKFLOW EXAMPLE:

 1) development (branch: <master>)

 2) master release (tags: v2.29-rc1, v2.29-rc2, v2.29, branch: <master>)

 3) development (work on v2.30, branch: <master>)

 4) fork -- create a new branch <stable/v2.29> based on tag v2.29

     4a) new patches or cherry-pick patches from <master> (branch: <stable/v2.29>)

     4b) stable release (tag: v2.29.1, branch: <stable/v2.29>)

     4c) more patches; another release (tag: v2.29.2, branch: <stable/v2.29>)

 5) master release v2.30 (branch: <master>)
    ...

where 3) and 4) happen simultaneously.