Opened 10 years ago

Closed 8 years ago

#1038 closed task (fixed)

Util-linux 2.29.2

Reported by: chris@… Owned by: clfs-commits@…
Priority: major Milestone: CLFS Standard 3.1.0
Component: BOOK Version: CLFS Standard GIT
Keywords: Cc: berzerkula@…, jonathan@…, chris@…

Description (last modified by William Harrington)

Change History (28)

comment:1 by Martin Ward, 9 years ago

Now up to version 2.26.2

comment:2 by William Harrington, 9 years ago

Description: modified (diff)
Summary: Util-linux 2.26.1Util-linux 2.26.2

comment:3 by William Harrington, 9 years ago

tempsystem) add --without-systemdsystemunitdir ?

pass2) remove ADJTIME_PATH ?

pass2) disable chfn-chsh login nologin su setpriv (shadow better?)

pass2) make check

pass2) bash tests/run.sh --srcdir=$PWD --builddir=$PWD

Don't need note about CONFIG_SCSI_DEBUG

All 160 tests passed (though I have a lot of stuff from BLFS)

Version 0, edited 9 years ago by William Harrington (next)

comment:4 by Martin Ward, 9 years ago

From my notes i have --disable-su --disable-bash-completion (su from shadow) keep enable sulogin as it's needed by systemd

didn't use --without-systemdsystemunitdir in my case didn't need it as was building from a system without systemd

login etc doesn't get built unless it finds pam installed on the system

comment:5 by William Harrington, 9 years ago

Okay from previous discussion we have the following:

Keep current commands as is with the following configure changes:

--disable-chfn-chsh (use shadow chfn and chsh)
--disable-login (use shadow login, even when LinuxPAM is around)
--disable-nologin (use shadow nologin, change shadow install to include nologin)
--disable-su (use shadow su)
--disable-setpriv (run a program with different Linux privilege settings. LFS disables)
--disable-runuser (run a command with substitute user and group ID. LFS disables)

The following can be added but aren't necessary:

--disable-pylibmount (Requires python. Not in our base build. LFS disables it, too)
--without-python (do not build python bindings)

If Python isn't found, configure will output:

checking for a Python interpreter with version >= 2... none
configure: WARNING: python interpreter not found, do not build python bindings
configure: WARNING: libpython not found; not building pylibmount

comment:6 by William Harrington, 9 years ago

For x86_64-64 book all 160 tests passed.

comment:7 by William Harrington, 9 years ago

Util-linux 2.27 release is imminent.

comment:8 by William Harrington, 9 years ago

Milestone: CLFS Standard 3.1.0
Version: CLFS Standard GIT

Will need a patch for cross compiling util-linux in Chapter 6 as some users have stated. This is for when the target build is not the same arch as the host, or where the host arch can run the target host binaries. i.e. x86 -> x86_64 or x86_64 -> x86

comment:10 by William Harrington, 9 years ago

Description: modified (diff)
Summary: Util-linux 2.26.2Util-linux 2.27

in reply to:  8 ; comment:11 by William Harrington, 9 years ago

Replying to kb0iic:

Will need a patch for cross compiling util-linux in Chapter 6 as some users have stated. This is for when the target build is not the same arch as the host, or where the host arch can run the target host binaries. i.e. x86 -> x86_64 or x86_64 -> x86

I didn't need a patch to cross compile from i386 to x86_64. Has anyone else had issues cross-compiling version 2.27?

comment:12 by William Harrington, 9 years ago

So for the final util-linux pass2 build we have:

./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \
--enable-write \
--docdir=/usr/share/doc/util-linux-2.27 \
--disable-chfn-chsh \
--disable-login \
--disable-nologin \
--disable-su \
--disable-setpriv \
--disable-runuser

comment:13 by William Harrington, 9 years ago

All 170 tests passed.

in reply to:  11 comment:14 by Martin Ward, 9 years ago

Replying to kb0iic:

Replying to kb0iic:

Will need a patch for cross compiling util-linux in Chapter 6 as some users have stated. This is for when the target build is not the same arch as the host, or where the host arch can run the target host binaries. i.e. x86 -> x86_64 or x86_64 -> x86

I didn't need a patch to cross compile from i386 to x86_64. Has anyone else had issues cross-compiling version 2.27?

Nope neither did I, but will check asap.

comment:15 by William Harrington, 9 years ago

Didn't need a patch for multilib x86_64 from i386 debian install.

comment:16 by William Harrington, 9 years ago

Need to fix final system multilib pass1 instructions. They are inconsistent.

Also configure commands for multlilib pass1

CC="gcc ${BUILD32}" ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime --libdir=/lib --enable-write --disable-chfn-chsh --disable-login --disable-nologin --disable-su --disable-setpriv --disable-runuser --docdir=/usr/share/doc/util-linux-2.27
CC="gcc $BUILD64" ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime --libdir=/lib64 --enable-write --disable-chfn-chsh --disable-login --disable-nologin --disable-su --disable-setpriv --disable-runuser --docdir=/usr/share/doc/util-linux-2.27

comment:17 by William Harrington, 9 years ago

Okay pass1 is mulitlib of course, and I notice final util-linux isn't multilib for pass2.

For clarification, 32 bit libs are already installed from util linux pass1, thus the 64 bit binaries are of importance here, and of course, the libraries will be installed by default. We do not need a 32bit build for Util linux pass2 in multilib as far as I know.

64-bit util-linux commands for multilib:

mkdir -pv /var/lib/hwclock
CC="gcc ${BUILD64}" ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \
    --libdir=/lib64 --enable-write --disable-chfn-chsh --disable-login \
    --disable-nologin --disable-su --disable-setpriv --disable-runuser\
    --docdir=/usr/share/doc/util-linux-2.27

comment:18 by William Harrington, 9 years ago

For mulitlib build:

---------------------------------------------------------------------
  All 170 tests PASSED
---------------------------------------------------------------------

comment:19 by William Harrington, 9 years ago

Description: modified (diff)
Summary: Util-linux 2.27Util-linux 2.27.1

comment:20 by chris@…, 9 years ago

There is no need to add switches to disable chfn_chsh, login, su, or runuser - they are all disabled by default if PAM is not found. Also setpriv is not built if libcap-ng is not found.

This should be sufficient (not counting changes for multilib):

./configure ADJTIME_PATH=/var/lib/hwclock/adjtime --enable-write --disable-nologin --docdir=/usr/share/doc/util-linux-&util-linux-version;

comment:21 by William Harrington, 8 years ago

Verified if not using PAM they are disabled by default.

Version 2.28 is released, using that without issue. Next question is, if PAM is installed by users, should we have a note or have the options included by default? We won't be sure if someone would have PAM at this point.

Last edited 8 years ago by William Harrington (previous) (diff)

comment:22 by William Harrington, 8 years ago

Description: modified (diff)
Summary: Util-linux 2.27.1Util-linux 2.29.2

comment:23 by William Harrington, 8 years ago

For version 2.29.2:

Ch 6

Does it check for ncurses wide libraries? We don't install wide ncurses libraries in temp system. If so:

sed -i 's/-lncursesw/-lncurses/' Makefile
sed -i 's/#define HAVE_LIBNCURSESW 1/#define HAVE_LIBNCURSES 1/' config.h

comment:24 by William Harrington, 8 years ago

For the temp system, I added the following after configure:

sed -i 's/-lncursesw -ltinfo/-lncurses/' Makefile
sed -i 's/LIBNCURSESW/LIBNCURSES/' config.h

comment:25 by William Harrington, 8 years ago

CH 10 Multilib (32bit and pure64bit need not apply)

32 bit

CC="gcc ${BUILD32}" PKG_CONFIG_PATH=$PKG_CONFIG_PATH32 \
./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \
    --libdir=/lib \
    --enable-write \
    --disable-chfn-chsh \
    --disable-login \
    --disable-nologin \
    --disable-su \
    --disable-setpriv \
    --disable-runuser \
    --docdir=/usr/share/doc/util-linux-2.29.2

N32

CC="gcc ${BUILD32}" PKG_CONFIG_PATH=$PKG_CONFIG_PATHN32 \
./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \
    --libdir=/lib32 \
    --enable-write \
    --disable-chfn-chsh \
    --disable-login \
    --disable-nologin \
    --disable-su \
    --disable-setpriv \
    --disable-runuser \
    --docdir=/usr/share/doc/util-linux-2.29.2
Last edited 8 years ago by William Harrington (previous) (diff)

comment:26 by William Harrington, 8 years ago

Pass1 (applies to all except for 64bit needing --libdir=/lib64)

./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \
    --libdir=/lib64 \
    --enable-write \
    --disable-chfn-chsh \
    --disable-login \
    --disable-nologin \
    --disable-su \
    --disable-setpriv \
    --disable-runuser \
    --docdir=/usr/share/doc/util-linux-2.29.2

32 bit/N32 for multilib (adjust libdir as required)

CC="gcc ${BUILD32}" PKG_CONFIG_PATH=$PKG_CONFIG_PATH32 \
./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \
    --libdir=/lib \
    --enable-write \
    --disable-chfn-chsh \
    --disable-login \
    --disable-nologin \
    --disable-su \
    --disable-setpriv \
    --disable-runuser \
    --docdir=/usr/share/doc/util-linux-2.29.2

Final-system (multilib/non multilib) adjust commands as required

CC="gcc ${BUILD64}" ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \
    --libdir=/lib64 \
    --enable-libmount-force-mountinfo \
    --enable-write \
    --disable-chfn-chsh \
    --disable-login \
    --disable-nologin \
    --disable-su \
    --disable-setpriv \
    --disable-runuser \
    --docdir=/usr/share/doc/util-linux-2.29.2
Last edited 8 years ago by William Harrington (previous) (diff)

comment:27 by William Harrington, 8 years ago

comment:28 by William Harrington, 8 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.