Menu

Tree [a476d7] default tip /
 History

Read Only access


File Date Author Commit
 .github 2025-12-29 Brad Lanam Brad Lanam [74a12e] test fixes; windows fixes
 examples 2026-01-22 Brad Lanam Brad Lanam [dd3d87] split libdi/di linkage (mkconfig); fix other li...
 man 2025-11-10 Brad Lanam Brad Lanam [c4e958] fix di_args processing; fix mkc link
 mkc_config 2026-01-23 Brad Lanam Brad Lanam [07111b] final cleanup; remove intl.h from dioptions.c
 mkconfig 2026-01-23 Brad Lanam Brad Lanam [07111b] final cleanup; remove intl.h from dioptions.c
 po 2025-01-26 Brad Lanam Brad Lanam [602ace] wip: localization
 tests 2026-01-23 Brad Lanam Brad Lanam [07111b] final cleanup; remove intl.h from dioptions.c
 utils 6 days ago Brad Lanam Brad Lanam [f947fc] fix installation of .po files when staging; Fix...
 web 2026-01-23 Brad Lanam Brad Lanam [41f557] upd web page
 wiki 6 days ago Brad Lanam Brad Lanam [dd254b] remove bad line in cmakelists.txt
 .hgignore 6 days ago Brad Lanam Brad Lanam [f947fc] fix installation of .po files when staging; Fix...
 .hgtags 6 days ago Brad Lanam Brad Lanam [a476d7] Added tag 6.2.2.2 for changeset dd254bbea5b0
 CMakeLists.txt 6 days ago Brad Lanam Brad Lanam [dd254b] remove bad line in cmakelists.txt
 LICENSE.txt 2025-01-08 Brad Lanam Brad Lanam [8b830a] wip: re-work: cleanup
 Makefile 6 days ago Brad Lanam Brad Lanam [f947fc] fix installation of .po files when staging; Fix...
 README.md 2026-01-23 Brad Lanam Brad Lanam [7255d0] 6.2.2.1
 VERSION.txt 6 days ago Brad Lanam Brad Lanam [f947fc] fix installation of .po files when staging; Fix...
 config.h.in 2026-01-23 Brad Lanam Brad Lanam [07111b] final cleanup; remove intl.h from dioptions.c
 di.c 2026-01-22 Brad Lanam Brad Lanam [dd3d87] split libdi/di linkage (mkconfig); fix other li...
 di.h 2026-01-03 Brad Lanam Brad Lanam [05d9b6] pedantic cleanup; update copyrights; prep for l...
 di.pc.in 2026-01-23 Brad Lanam Brad Lanam [07111b] final cleanup; remove intl.h from dioptions.c
 diconfig.h.in 2026-01-22 Brad Lanam Brad Lanam [dd3d87] split libdi/di linkage (mkconfig); fix other li...
 didiskutil.c 2026-01-03 Brad Lanam Brad Lanam [05d9b6] pedantic cleanup; update copyrights; prep for l...
 digetentries.c 2026-01-22 Brad Lanam Brad Lanam [dd3d87] split libdi/di linkage (mkconfig); fix other li...
 digetinfo.c 2026-01-03 Brad Lanam Brad Lanam [05d9b6] pedantic cleanup; update copyrights; prep for l...
 diinternal.h 2026-01-22 Brad Lanam Brad Lanam [dd3d87] split libdi/di linkage (mkconfig); fix other li...
 dilib.c 2026-01-03 Brad Lanam Brad Lanam [05d9b6] pedantic cleanup; update copyrights; prep for l...
 dimath.c 2026-01-03 Brad Lanam Brad Lanam [05d9b6] pedantic cleanup; update copyrights; prep for l...
 dimath.h 2026-01-03 Brad Lanam Brad Lanam [05d9b6] pedantic cleanup; update copyrights; prep for l...
 dimath_gmp.h 2026-01-03 Brad Lanam Brad Lanam [05d9b6] pedantic cleanup; update copyrights; prep for l...
 dimath_internal.h 2026-01-03 Brad Lanam Brad Lanam [05d9b6] pedantic cleanup; update copyrights; prep for l...
 dimath_mp.h 2026-01-03 Brad Lanam Brad Lanam [05d9b6] pedantic cleanup; update copyrights; prep for l...
 dimath_mpdec.h 2026-01-03 Brad Lanam Brad Lanam [05d9b6] pedantic cleanup; update copyrights; prep for l...
 dimath_tommath.h 2026-01-03 Brad Lanam Brad Lanam [05d9b6] pedantic cleanup; update copyrights; prep for l...
 dimathtest.c 2026-01-03 Brad Lanam Brad Lanam [05d9b6] pedantic cleanup; update copyrights; prep for l...
 dimntopt.h 2026-01-03 Brad Lanam Brad Lanam [05d9b6] pedantic cleanup; update copyrights; prep for l...
 dioptions.c 2026-01-23 Brad Lanam Brad Lanam [07111b] final cleanup; remove intl.h from dioptions.c
 dioptions.h 2026-01-22 Brad Lanam Brad Lanam [dd3d87] split libdi/di linkage (mkconfig); fix other li...
 diquota.c 2026-01-03 Brad Lanam Brad Lanam [05d9b6] pedantic cleanup; update copyrights; prep for l...
 diquota.h 2026-01-03 Brad Lanam Brad Lanam [05d9b6] pedantic cleanup; update copyrights; prep for l...
 distrutils.c 2026-01-03 Brad Lanam Brad Lanam [05d9b6] pedantic cleanup; update copyrights; prep for l...
 distrutils.h 2026-01-03 Brad Lanam Brad Lanam [05d9b6] pedantic cleanup; update copyrights; prep for l...
 disystem.h 2026-01-22 Brad Lanam Brad Lanam [dd3d87] split libdi/di linkage (mkconfig); fix other li...
 dizone.c 2026-01-22 Brad Lanam Brad Lanam [dd3d87] split libdi/di linkage (mkconfig); fix other li...
 dizone.h 2026-01-22 Brad Lanam Brad Lanam [dd3d87] split libdi/di linkage (mkconfig); fix other li...
 getoptn.c 2026-01-22 Brad Lanam Brad Lanam [dd3d87] split libdi/di linkage (mkconfig); fix other li...
 getoptn.h 2026-01-03 Brad Lanam Brad Lanam [774eb0] cleanup, fix func ptrs

Read Me

di - disk information utility

SourceForge Project Page


Website


Change Log

CONTENTS

  • Release Notes
  • Description
  • Documentation
  • Installation
  • Requirements
  • Porting Help
  • Acknowledgements
  • Copyright

RELEASE NOTES

VERSION 5/6 (2025-3-10)

Version 5's code base has changed. The build process has changed and
optionally uses cmake (3.18+). The display processing is entirely new code.
Version 6 had an ABI change to fix a crash.

Version 5/6 installs a shared library that can be used to get the disk
space or percentages.

DESCRIPTION

'di' is a disk information utility, displaying everything
(and more) that your 'df' command does. It features the
ability to display your disk usage in whatever format you
prefer. It is designed to be highly portable. Great for
heterogenous networks.

DOCUMENTATION

wiki


Change Log


Test Results

INSTALLATION

To build:

make -e PREFIX=$HOME/local
make -e PREFIX=$HOME/local test
make -e PREFIX=$HOME/local install

The build will use cmake if it is available and recent enough (3.18+),
otherwise the mkconfig configuration tool will be used.

To use cmake in a stand-alone fashion (as of version 5.0.4):

cmake -DCMAKE_INSTALL_PREFIX=$HOME/local -S . -B build
cmake --build build
cmake --build build --target ditest
cmake --install build

To select one of the multi-precision libraries when using cmake:

DI_USE_MATH=DI_MPDECIMAL \
    cmake -DCMAKE_INSTALL_PREFIX=$HOME/local -S . -B build

Where DI_USE_MATH can be set to one of DI_GMP, DI_MPDECIMAL,
DI_TOMMATH or DI_INTERNAL.

MacOS Apple Silicon does not support long doubles, so the use of
DI_MPDECIMAL is recommended.

If no multi-precision library is specified and the GMP, mpdecimal
(preferred) or libtommath library is found, it will be used, otherwise
the numerics will be handled using standard C data types (long double,
double, etc.).

To turn off the use of the multi-precision libraries;

make -e PREFIX=$HOME/local DI_USE_MATH=DI_INTERNAL

Long doubles are quite capable, there's nothing wrong with
building it this way (as of 2025).

Windows: GMP does not appear to work when building with Msys2.

To force GMP:

make -e PREFIX=$HOME/local DI_USE_MATH=DI_GMP

To force MPDecimal:

make -e PREFIX=$HOME/local DI_USE_MATH=DI_MPDECIMAL

To force libtommath:

make -e PREFIX=$HOME/local DI_USE_MATH=DI_TOMMATH

To force the use of mkconfig:

make -e PREFIX=$HOME/local mkc-all
make -e PREFIX=$HOME/local mkc-install

REQUIREMENTS

  • cmake build
    • make
    • cmake (3.18+)
    • pkg-config
    • msgfmt
    • C compiler
    • sed grep tr test /bin/sh
    • awk (gawk/nawk/awk)
  • mkconfig build

    • make
    • pkg-config
    • msgfmt
    • C compiler
    • bourne/ksh/bash shell
    • awk (gawk/nawk/awk)
    • cat chmod ln mkdir mv rm sed test expr grep sort
  • Required Libraries:

    • Linux: tirpc (nfs quotas)
    • MP Math (optional): gmp or libmpdec or libtommath

BUG REPORTS

I need to know what operating system and what version of
operating system you are on. Also which compiler, and the version
of the compiler.

For build issues, capture the output from make, and the files
listed below.

For runtime issues, I want to see the output from 'di -A -a -X 5'
and the output from your standard df command (as verbose as possible),

Files to include in your report:

  • cmake:
    • build/config.h
    • build/diconfig.h
    • build/CMakeOutput.log
    • build/CMakeError.log
    • build/CMakeFiles/CMakeConfigureLog.yaml
  • mkconfig:
    • config.h
    • idconfig.h
    • di.env
    • libdi.env
    • di.reqlibs
    • libdi.reqlibs
    • mkc_files/mkconfig.log
    • mkc_files/mkconfig_env.log
    • mkc_files/mkc_compile.log

Open a ticket at SourceForge
Or e-mail : brad.lanam.di / gmail.com

PORTING HELP

I use my own set of virtual machines, the gcc compile farm, and
polarhome (which is now limited, and will probably die at some
point).

If you have a computer on the internet with a less common or older
operating system, I could use access for portability testing.

I need access to HP-UX.

ACKNOWLEDGEMENTS

And for their comments/source/manual pages and/or bug fixes, thanks!

J.J.Bailey
Karl Vogel [pyramid]
Bryan Costales
Mark Neale
Pat Myrto [sunOS filesystem type stuff]
Henri Karrenbeld [sgi]
Peter Bray
George M. Sipe [manual page]
Jeffrey Mogul [ultrix, osf/1, manual page, new format options]
Th. Bullinger [help usage]
Seth Theriault [next, tru64]
Stephen J. Walick [SCO]
Gerald Rinske [sgi]
Mike Grupenhoff [linux]
R.K.Lloyd [hpux]
William Gibbs [xenix]
Randy Thompson [sequent]
Erik O'Shaughnessy [aix]
Bill Davidsen [linux, SCO, etc., new format options]
Fred Smith [coherent 4.2.05]
Andrey Blochintsev [bsdi]
Brian Ginsbach [netbsd, irix, unicos]

et. al.

Copyright 1994-2025 Brad Lanam, Pleasant Hill, CA, USA
brad.lanam.di / gmail.com