Merge pull request #117 from bauen1/glibc-bundles

Split glibc_full in multiple bundles
This commit is contained in:
Ivan Davidov 2017-11-28 22:19:48 +02:00 committed by GitHub
commit 787cae0ac9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 513 additions and 56 deletions

View File

@ -20,11 +20,4 @@ install -d -m755 "$DESTDIR/etc/autorun"
install -m755 "$SRC_DIR/01_network.sh" "$DESTDIR/etc/autorun/01_network.sh"
install -m755 "$SRC_DIR/05_rc.dhcp" "$DESTDIR/etc/05_rc.dhcp"
# These libraries are necessary for the DNS resolving.
install -d -m755 "$DESTDIR/lib"
install -m755 "$SYSROOT/lib/libresolv.so.2" "$DESTDIR/lib/libresolv.so.2"
install -m755 "$SYSROOT/lib/libnss_dns.so.2" "$DESTDIR/lib/libnss_dns.so.2"
install -m755 "$SYSROOT/lib/libnss_files.so.2" "$DESTDIR/lib/libnss_files.so.2"
strip -g "$DESTDIR/lib/*" 2>/dev/null
echo "dhcp scripts and libraries have been installed"

View File

@ -0,0 +1,3 @@
glibc_libresolv
glibc_libnss_dns
glibc_libnss_files

View File

@ -28,14 +28,6 @@ make -j $NUM_JOBS
echo "Installing Dropbear..."
make -j $NUM_JOBS install DESTDIR="$DESTDIR"
mkdir -p $DESTDIR/lib
# Copy all dependent GLIBC libraries.
cp $SYSROOT/lib/libnsl.so.1 $DESTDIR/lib
cp $SYSROOT/lib/libnss_compat.so.2 $DESTDIR/lib
cp $SYSROOT/lib/libutil.so.1 $DESTDIR/lib
cp $SYSROOT/lib/libcrypt.so.1 $DESTDIR/lib
mkdir -p $DESTDIR/etc/dropbear
# Create Dropbear SSH configuration BEGIN

View File

@ -1 +1,4 @@
glibc_full
glibc_libnsl
glibc_libnss_compat
glibc_libutil
glibc_libcrypt

View File

@ -1,42 +1,2 @@
#!/bin/sh
SRC_DIR=$(pwd)
. ../../common.sh
if [ ! -d $SYSROOT ] ; then
echo "Cannot continue - GLIBC is missing. Please buld GLIBC first."
exit 1
fi
echo "Preparing the overlay glibc folder. This may take a while..."
rm -rf $WORK_DIR/overlay/$BUNDLE_NAME
mkdir -p $WORK_DIR/overlay/$BUNDLE_NAME/lib
cd $SYSROOT
find . -type l -exec cp {} $WORK_DIR/overlay/$BUNDLE_NAME/lib \;
echo "All libraries have been copied."
cd $WORK_DIR/overlay/$BUNDLE_NAME/lib
for FILE_DEL in `ls *.so`
do
FILE_KEEP=`ls $FILE_DEL.*`
if [ ! "$FILE_KEEP" = "" ] ; then
# We remove the shorter file and replace it with symbolic link.
rm $FILE_DEL
ln -s $FILE_KEEP $FILE_DEL
fi
done
echo "Duplicate libraries have been replaced with soft links."
strip -g *
echo "All libraries have been optimized for size."
cp -r $WORK_DIR/overlay/$BUNDLE_NAME/lib $WORK_DIR/src/minimal_overlay/rootfs
echo "All GNU C libraries have been installed."
cd $SRC_DIR

View File

@ -0,0 +1,18 @@
glibc_ld-linux
glibc_libBrokenLocale
glibc_libanl
glibc_libc
glibc_libcidn
glibc_libcrypt
glibc_libdl
glibc_libm
glibc_libnsl
glibc_libnss_db
glibc_libnss_dns
glibc_libnss_files
glibc_libnss_hesiod
glibc_libpthread
glibc_libresolv
glibc_librt
glibc_libthread_db
glibc_libutil

View File

@ -0,0 +1,3 @@
#!/bin/sh
echo "$BUNDLE_NAME is provided by the initramfs"

View File

@ -0,0 +1,32 @@
#!/bin/sh
SRC_DIR=$(pwd)
. ../../common.sh
if [ ! -d $SYSROOT ] ; then
echo "Cannot continue - GLIBC is missing. Please buld GLIBC first."
exit 1
fi
mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME"
cd $WORK_DIR/overlay/$BUNDLE_NAME
DESTDIR="$PWD/${BUNDLE_NAME}_installed"
rm -rf $DESTDIR
mkdir -p $DESTDIR/lib
cp $SYSROOT/lib/libBrokenLocale.so.1 $DESTDIR/lib/
ln -s libBrokenLocale.so.1 $DESTDIR/lib/libBrokenLocale.so
echo "Reducing $BUNDLE_NAME size"
strip -g $DESTDIR/lib/*
ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs"
cp -r $DESTDIR/* $ROOTFS
echo "$BUNDLE_NAME has been installed."
cd $SRC_DIR

View File

@ -0,0 +1,32 @@
#!/bin/sh
SRC_DIR=$(pwd)
. ../../common.sh
if [ ! -d $SYSROOT ] ; then
echo "Cannot continue - GLIBC is missing. Please buld GLIBC first."
exit 1
fi
mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME"
cd $WORK_DIR/overlay/$BUNDLE_NAME
DESTDIR="$PWD/${BUNDLE_NAME}_installed"
rm -rf $DESTDIR
mkdir -p $DESTDIR/lib
cp $SYSROOT/lib/libanl.so.1 $DESTDIR/lib/
ln -s libanl.so.1 $DESTDIR/lib/libanl.so
echo "Reducing $BUNDLE_NAME size"
strip -g $DESTDIR/lib/*
ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs"
cp -r $DESTDIR/* $ROOTFS
echo "$BUNDLE_NAME has been installed."
cd $SRC_DIR

View File

@ -0,0 +1,3 @@
#!/bin/sh
echo "$BUNDLE_NAME is provided by the initramfs"

View File

@ -0,0 +1,32 @@
#!/bin/sh
SRC_DIR=$(pwd)
. ../../common.sh
if [ ! -d $SYSROOT ] ; then
echo "Cannot continue - GLIBC is missing. Please buld GLIBC first."
exit 1
fi
mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME"
cd $WORK_DIR/overlay/$BUNDLE_NAME
DESTDIR="$PWD/${BUNDLE_NAME}_installed"
rm -rf $DESTDIR
mkdir -p $DESTDIR/lib
cp $SYSROOT/lib/libcidn.so.1 $DESTDIR/lib/
ln -s libcidn.so.1 $DESTDIR/lib/libcidn.so
echo "Reducing $BUNDLE_NAME size"
strip -g $DESTDIR/lib/*
ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs"
cp -r $DESTDIR/* $ROOTFS
echo "$BUNDLE_NAME has been installed."
cd $SRC_DIR

View File

@ -0,0 +1,32 @@
#!/bin/sh
SRC_DIR=$(pwd)
. ../../common.sh
if [ ! -d $SYSROOT ] ; then
echo "Cannot continue - GLIBC is missing. Please buld GLIBC first."
exit 1
fi
mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME"
cd $WORK_DIR/overlay/$BUNDLE_NAME
DESTDIR="$PWD/${BUNDLE_NAME}_installed"
rm -rf $DESTDIR
mkdir -p $DESTDIR/lib
cp $SYSROOT/lib/libcrypt.so.1 $DESTDIR/lib/
ln -s libcrypt.so.1 $DESTDIR/lib/libcrypt.so
echo "Reducing $BUNDLE_NAME size"
strip -g $DESTDIR/lib/*
ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs"
cp -r $DESTDIR/* $ROOTFS
echo "$BUNDLE_NAME has been installed."
cd $SRC_DIR

View File

@ -0,0 +1,32 @@
#!/bin/sh
SRC_DIR=$(pwd)
. ../../common.sh
if [ ! -d $SYSROOT ] ; then
echo "Cannot continue - GLIBC is missing. Please buld GLIBC first."
exit 1
fi
mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME"
cd $WORK_DIR/overlay/$BUNDLE_NAME
DESTDIR="$PWD/${BUNDLE_NAME}_installed"
rm -rf $DESTDIR
mkdir -p $DESTDIR/lib
cp $SYSROOT/lib/libdl.so.2 $DESTDIR/lib/
ln -s libdl.so.2 $DESTDIR/lib/libdl.so
echo "Reducing $BUNDLE_NAME size"
strip -g $DESTDIR/lib/*
ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs"
cp -r $DESTDIR/* $ROOTFS
echo "$BUNDLE_NAME has been installed."
cd $SRC_DIR

View File

@ -0,0 +1,3 @@
#!/bin/sh
echo "$BUNDLE_NAME is provided by the initramfs"

View File

@ -0,0 +1,32 @@
#!/bin/sh
SRC_DIR=$(pwd)
. ../../common.sh
if [ ! -d $SYSROOT ] ; then
echo "Cannot continue - GLIBC is missing. Please buld GLIBC first."
exit 1
fi
mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME"
cd $WORK_DIR/overlay/$BUNDLE_NAME
DESTDIR="$PWD/${BUNDLE_NAME}_installed"
rm -rf $DESTDIR
mkdir -p $DESTDIR/lib
cp $SYSROOT/lib/libnsl.so.1 $DESTDIR/lib/
ln -s libnsl.so.1 $DESTDIR/lib/libnsl.so
echo "Reducing $BUNDLE_NAME size"
strip -g $DESTDIR/lib/*
ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs"
cp -r $DESTDIR/* $ROOTFS
echo "$BUNDLE_NAME has been installed."
cd $SRC_DIR

View File

@ -0,0 +1,32 @@
#!/bin/sh
SRC_DIR=$(pwd)
. ../../common.sh
if [ ! -d $SYSROOT ] ; then
echo "Cannot continue - GLIBC is missing. Please buld GLIBC first."
exit 1
fi
mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME"
cd $WORK_DIR/overlay/$BUNDLE_NAME
DESTDIR="$PWD/${BUNDLE_NAME}_installed"
rm -rf $DESTDIR
mkdir -p $DESTDIR/lib
cp $SYSROOT/lib/libnss_db.so.2 $DESTDIR/lib/
ln -s libnss_db.so.2 $DESTDIR/lib/libnss_db.so
echo "Reducing $BUNDLE_NAME size"
strip -g $DESTDIR/lib/*
ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs"
cp -r $DESTDIR/* $ROOTFS
echo "$BUNDLE_NAME has been installed."
cd $SRC_DIR

View File

@ -0,0 +1,32 @@
#!/bin/sh
SRC_DIR=$(pwd)
. ../../common.sh
if [ ! -d $SYSROOT ] ; then
echo "Cannot continue - GLIBC is missing. Please buld GLIBC first."
exit 1
fi
mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME"
cd $WORK_DIR/overlay/$BUNDLE_NAME
DESTDIR="$PWD/${BUNDLE_NAME}_installed"
rm -rf $DESTDIR
mkdir -p $DESTDIR/lib
cp $SYSROOT/lib/libnss_dns.so.2 $DESTDIR/lib/
ln -s libnss_dns.so.2 $DESTDIR/lib/libnss_dns.so
echo "Reducing $BUNDLE_NAME size"
strip -g $DESTDIR/lib/*
ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs"
cp -r $DESTDIR/* $ROOTFS
echo "$BUNDLE_NAME has been installed."
cd $SRC_DIR

View File

@ -0,0 +1,32 @@
#!/bin/sh
SRC_DIR=$(pwd)
. ../../common.sh
if [ ! -d $SYSROOT ] ; then
echo "Cannot continue - GLIBC is missing. Please buld GLIBC first."
exit 1
fi
mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME"
cd $WORK_DIR/overlay/$BUNDLE_NAME
DESTDIR="$PWD/${BUNDLE_NAME}_installed"
rm -rf $DESTDIR
mkdir -p $DESTDIR/lib
cp $SYSROOT/lib/libnss_files.so.2 $DESTDIR/lib/
ln -s libnss_files.so.2 $DESTDIR/lib/libnss_files.so
echo "Reducing $BUNDLE_NAME size"
strip -g $DESTDIR/lib/*
ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs"
cp -r $DESTDIR/* $ROOTFS
echo "$BUNDLE_NAME has been installed."
cd $SRC_DIR

View File

@ -0,0 +1,32 @@
#!/bin/sh
SRC_DIR=$(pwd)
. ../../common.sh
if [ ! -d $SYSROOT ] ; then
echo "Cannot continue - GLIBC is missing. Please buld GLIBC first."
exit 1
fi
mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME"
cd $WORK_DIR/overlay/$BUNDLE_NAME
DESTDIR="$PWD/${BUNDLE_NAME}_installed"
rm -rf $DESTDIR
mkdir -p $DESTDIR/lib
cp $SYSROOT/lib/libnss_hesiod.so.2 $DESTDIR/lib/
ln -s libnss_hesiod.so.2 $DESTDIR/lib/libnss_hesiod.so
echo "Reducing $BUNDLE_NAME size"
strip -g $DESTDIR/lib/*
ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs"
cp -r $DESTDIR/* $ROOTFS
echo "$BUNDLE_NAME has been installed."
cd $SRC_DIR

View File

@ -0,0 +1,31 @@
#!/bin/sh
SRC_DIR=$(pwd)
. ../../common.sh
if [ ! -d $SYSROOT ] ; then
echo "Cannot continue - GLIBC is missing. Please buld GLIBC first."
exit 1
fi
mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME"
cd $WORK_DIR/overlay/$BUNDLE_NAME
DESTDIR="$PWD/${BUNDLE_NAME}_installed"
rm -rf $DESTDIR
mkdir -p $DESTDIR/lib
cp $SYSROOT/lib/libpthread.so.0 $DESTDIR/lib/
echo "Reducing $BUNDLE_NAME size"
strip -g $DESTDIR/lib/*
ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs"
cp -r $DESTDIR/* $ROOTFS
echo "$BUNDLE_NAME has been installed."
cd $SRC_DIR

View File

@ -0,0 +1,32 @@
#!/bin/sh
SRC_DIR=$(pwd)
. ../../common.sh
if [ ! -d $SYSROOT ] ; then
echo "Cannot continue - GLIBC is missing. Please buld GLIBC first."
exit 1
fi
mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME"
cd $WORK_DIR/overlay/$BUNDLE_NAME
DESTDIR="$PWD/${BUNDLE_NAME}_installed"
rm -rf $DESTDIR
mkdir -p $DESTDIR/lib
cp $SYSROOT/lib/libresolv.so.2 $DESTDIR/lib/
ln -s libresolv.so.2 $DESTDIR/lib/libresolv.so
echo "Reducing $BUNDLE_NAME size"
strip -g $DESTDIR/lib/*
ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs"
cp -r $DESTDIR/* $ROOTFS
echo "$BUNDLE_NAME has been installed."
cd $SRC_DIR

View File

@ -0,0 +1,32 @@
#!/bin/sh
SRC_DIR=$(pwd)
. ../../common.sh
if [ ! -d $SYSROOT ] ; then
echo "Cannot continue - GLIBC is missing. Please buld GLIBC first."
exit 1
fi
mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME"
cd $WORK_DIR/overlay/$BUNDLE_NAME
DESTDIR="$PWD/${BUNDLE_NAME}_installed"
rm -rf $DESTDIR
mkdir -p $DESTDIR/lib
cp $SYSROOT/lib/librt.so.1 $DESTDIR/lib/
ln -s librt.so.1 $DESTDIR/lib/librt.so
echo "Reducing $BUNDLE_NAME size"
strip -g $DESTDIR/lib/*
ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs"
cp -r $DESTDIR/* $ROOTFS
echo "$BUNDLE_NAME has been installed."
cd $SRC_DIR

View File

@ -0,0 +1,32 @@
#!/bin/sh
SRC_DIR=$(pwd)
. ../../common.sh
if [ ! -d $SYSROOT ] ; then
echo "Cannot continue - GLIBC is missing. Please buld GLIBC first."
exit 1
fi
mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME"
cd $WORK_DIR/overlay/$BUNDLE_NAME
DESTDIR="$PWD/${BUNDLE_NAME}_installed"
rm -rf $DESTDIR
mkdir -p $DESTDIR/lib
cp $SYSROOT/lib/libthread_db.so.1 $DESTDIR/lib/
ln -s libthread_db.so.1 $DESTDIR/lib/libthread_db.so
echo "Reducing $BUNDLE_NAME size"
strip -g $DESTDIR/lib/*
ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs"
cp -r $DESTDIR/* $ROOTFS
echo "$BUNDLE_NAME has been installed."
cd $SRC_DIR

View File

@ -0,0 +1,32 @@
#!/bin/sh
SRC_DIR=$(pwd)
. ../../common.sh
if [ ! -d $SYSROOT ] ; then
echo "Cannot continue - GLIBC is missing. Please buld GLIBC first."
exit 1
fi
mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME"
cd $WORK_DIR/overlay/$BUNDLE_NAME
DESTDIR="$PWD/${BUNDLE_NAME}_installed"
rm -rf $DESTDIR
mkdir -p $DESTDIR/lib
cp $SYSROOT/lib/libutil.so.1 $DESTDIR/lib/
ln -s libutil.so.1 $DESTDIR/lib/libutil.so
echo "Reducing $BUNDLE_NAME size"
strip -g $DESTDIR/lib/*
ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs"
cp -r $DESTDIR/* $ROOTFS
echo "$BUNDLE_NAME has been installed."
cd $SRC_DIR