Cpio

From CBLFS
Revision as of 07:49, 17 December 2006 by Kalessin (talk | contribs) (I reformatted the "Contents" section to to use tables.)
Jump to navigationJump to search
Download Source: ftp://ftp.gnu.org/pub/gnu/cpio/cpio-2.6.tar.bz2
Download Patch: http://www.linuxfromscratch.org/patches/blfs/svn/cpio-2.6-security_fixes-1.patch

Introduction to Cpio

The cpio package contains tools for archiving.

Dependencies

Non-Multilib

Compile the package:

sed -i "s/invalid_arg/argmatch_invalid/" src/mt.c &&
patch -Np1 -i ../cpio-2.6-security_fixes-1.patch &&
./configure CPIO_MT_PROG=mt --prefix=/usr \
    --bindir=/bin --libexecdir=/tmp \
    --with-rmt=/usr/sbin/rmt &&
echo "#define HAVE_SETLOCALE 1" >> config.h &&
echo "#define HAVE_LSTAT 1" >> config.h &&
make

Install the package

make install

Command Explanations

sed -i "s/invalid_arg/argmatch_invalid/" src/mt.c: This fixes a problem with the build of mt.

CPIO_MT_PROG=mt: This causes mt to be included in the build.

--bindir=/bin: This makes it so that cpio is put in /bin instead of /usr/bin. This is done to match the FHS.

--libexecdir=/tmp: This prevents the creation of /usr/libexec.

--with-rmt=/usr/sbin/rmt: This parameter prevents rmt from being built. It was already installed with the Tar package.

echo "#define HAVE_SETLOCALE 1" >> config.h: This command specifies that the system Libc implements the setlocale function because it is not detected by configure.

echo "#define HAVE_LSTAT 1" >> config.h: This fixes a bug that causes cpio to convert symlinks into regular files during archive creation.

Multilib

This package does not provide any libraries so only one installation is needed.

32Bit

sed -i "s/invalid_arg/argmatch_invalid/" src/mt.c &&
patch -Np1 -i ../cpio-2.6-security_fixes-1.patch &&
CC="gcc ${BUILD32}" ./configure CPIO_MT_PROG=mt --prefix=/usr \
    --bindir=/bin --libexecdir=/tmp \
    --with-rmt=/usr/sbin/rmt &&
echo "#define HAVE_SETLOCALE 1" >> config.h &&
echo "#define HAVE_LSTAT 1" >> config.h &&
make

Install the package:

make install

N32

sed -i "s/invalid_arg/argmatch_invalid/" src/mt.c &&
patch -Np1 -i ../cpio-2.6-security_fixes-1.patch &&
CC="gcc ${BUILDN32}" ./configure CPIO_MT_PROG=mt --prefix=/usr --libdir=/usr/lib32 \
    --bindir=/bin --libexecdir=/tmp \
    --with-rmt=/usr/sbin/rmt &&
echo "#define HAVE_SETLOCALE 1" >> config.h &&
echo "#define HAVE_LSTAT 1" >> config.h &&
make

Install the package:

make install

64Bit

Compile the package:

sed -i "s/invalid_arg/argmatch_invalid/" src/mt.c &&
patch -Np1 -i ../cpio-2.6-security_fixes-1.patch &&
CC="gcc ${BUILD64}" ./configure CPIO_MT_PROG=mt --prefix=/usr --libdir=/usr/lib64 \
    --bindir=/bin --libexecdir=/tmp \
    --with-rmt=/usr/sbin/rmt &&
echo "#define HAVE_SETLOCALE 1" >> config.h &&
echo "#define HAVE_LSTAT 1" >> config.h &&
make

Install the package:

make install

Contents

Installed Programs: cpio and mt
Installed Libraries: None
Installed Directories: None

Short Descriptions

cpio copies files to and from archives.
mt controls magnetic tape drive operations.