s243a icon

mv_extracted_stuff.sh (Draft #2)

s243a | PRO | 01/31/21 05:11:47 AM UTC (Edited) | 0 ⭐ | 1779 👁️ | Never ⏰ | []
Bash |

24.5 KB

|

None

|

0 👍

/

0 👎

#!/bin/bash
CWD="$PWD"
clean=true
HARDLINKED_SFS_unextracted=puli7.3_x86_64-ungoogled-hardlinked.sfs
EXTRACTED_SFS=puli7.3_x86_64-ungoogled-hardlinked.sfs.extracted
NEW_SFS=puli7.3_x86_64-ungoogled-hardlinked-new.sfs
 
FR_SOURCE_ARCHIVE=/mnt/+mnt+sda5+test_save+ext2/firstRIB_lgo/00fwmods_focalpup64.sfs
FR_SOURCE_ORIG=/mnt/+mnt+sda5+test_save+ext2/firstRIB_lgo/01firstrib_rootfs.sfs.extracted
[ "$clean" = true ] && rm -rf "$EXTRACTED_SFS"
 
FR_SOURCE="$CWD"/"$EXTRACTED_SFS"/cont/01firstrib_lgo_rootfs
 
if [ ! -d $EXTRACTED_SFS ] ||  [ ! "$(ls -A $EXTRACTED_SFS)" ] ; then
  #mkdir -p "$EXTRACTED_SFS"
  uextract $HARDLINKED_SFS_unextracted || { echo "failed to extract $HARDLINKED_SFS_unextracted" && exit; }
  if [[ "${HARDLINKED_SFS_unextracted}.extracted" != "$EXTRACTED_SFS" ]]; then
    mv ${$HARDLINKED_SFS_unextracted}.extracted $EXTRACTED_SFS
  fi
fi
EXTRACTED_SFS="$(realpath "$EXTRACTED_SFS")" || { echo "failed realpath \"$HARDLINKED_SFS\"" && exit; }
 
TARGET="$EXTRACTED_SFS"/cont; mkdir -p "$TARGET"
MV_LOC="$TARGET/xenial-moved"; mkdir -p $MV_LOC
 
#See: https://forum.puppylinux.com/viewtopic.php?f=53&t=1397&p=15016&hilit=hardlinked#p15016
HL_LOC="$EXTRACTED_SFS"; mkdir -p "$HL_LOC" 
USE_MULTI_ARCH_DIRS=yes
 
WARN_MV_ARCH=true
 
 
 
if [ ! -d "$TARGET" ]; then
  mkdir -p "$TARGET"
  rsync -rltDv --link-dest="${HL_LOC}/" "${HL_LOC}/" "${TARGET}/"
fi
if [ ! -d "$FR_SOURCE_ORIG" ]; then
  uextract -o "$FR_SOURCE_ORIG" "$FR_SOURCE_ARCHIVE" || { echo "failed to extract $HARDLINKED_SFS_unextracted" && exit; }
fi
if [ ! -d "$FR_SOURCE_ORIG" ]; then
  cp -Ra "$FR_SOURCE_ORIG" "$FR_SOURCE"
fi
if [ ! -d "$FR_SOURCE" ]; then
  cp -Ra "$FR_SOURCE_ORIG" "$FR_SOURCE"
fi
#FR_SOURCE=/mnt/+mnt+sda5+test_save+ext2/firstRIB_lego/01firstrib_rootfs.sfs.extracted
#Move no longer needed core libs
 
if [ "$USE_MULTI_ARCH_DIRS" = yes ]; then
  while read arch_dir_rel; do 
     target_arch_dir="$TARGET/$arch_dir_rel"
     arch_dir="$(basename "$arch_dir_rel")"
     parent_dir_rel="$(dirname "${arch_dir_rel}")"
     target_arch_parent="$TARGET/$parent_dir_rel"
     parent_of_arch_dir="$TARGET/$parent_dir_rel"
     fp_arch_dir="$parrent_dir/arch_dir"
     #if [ ! -d "$target_arch_dir" ]; then
      #source_dir="$FR_SOURCE/$a_dir"
      source_arch_dir="$FR_SOURCE/$arch_dir_rel"
      if [ ! -d "$source_arch_dir" ]; then
        [ -e "$target_arch_dir" ] && rm "$target_arch_dir" ;
        mkdir -p "$target_arch_dir" 
      else
 
#the read in this warn section causes the outer loop to be skipped so comment out until fixed.       
        #if [ "$WARN_MV_ARCH" = true ]; then #Debugging code      
          #set +x
          #echo "about to:"
          #echo "
          #cd \"$FR_SOURCE\" 
            #echo ./\"${arch_dir_rel}\" | \
              #cpio -pdu \"$TARGET\" )"
          #read -p "Press enter to continue"
          #set -x 
         #fi
           
        ( cd "$FR_SOURCE"
          echo "./${arch_dir_rel}" | \
            cpio -pdu "$TARGET" )    
       fi 
     #fi
 
     while read b_name; do
 
#the read in this warn section causes the outer loop to be skipped so comment out until fixed. 
      #if [ "$WARN_MV_ARCH" = true ]; then #Debugging code
        #set +x        
        #echo "about to:"
        #echo "
         #mv \"$target_arch_parent/$b_name\" \"$target_arch_dir/$b_name\"
       #( cd \"$target_arch_parent\"; ln -s \"$b_name\" \"$arch_dir/$b_name\" ) "
         #read -p "Press enter to continue"      
        #set -x 
       #fi
       rel_path="$(dirname "$arch_dir_rel")/$b_name"
       case "$rel_path" in
       lib/lsb|lib/systemd|lib/terminfo) continue; ;;
       usr/lib/apt|usr/lib/debootstrap|usr/lib/dpkg) continue; ;;    
       usr/lib/locale|usr/lib/mime|usr/lib/NetworkManager) continue; ;;
       usr/lib/pm-utils|usr/lib/ssl|usr/lib/tmpfiles.d) continue; ;;
       esac
       [[ "$target_arch_parent/$b_name" = "$target_arch_dir" ]] && continue
       mv "$target_arch_parent/$b_name" "$target_arch_dir/$b_name"
       ( cd "$target_arch_parent"; ln -s "$arch_dir/$b_name" "$b_name" )
     done < <(find $target_arch_parent -mindepth 1 -maxdepth 1 -type d | xargs -n 1 basename)
  done <<EOF
usr/local/lib/x86_64-linux-gnu
lib/x86_64-linux-gnu
usr/lib/x86_64-linux-gnu  
EOF
 
fi
 
if [ "$WARN_MV_ARCH" = true ]; then #Debugging code
  set +x
  echo "finished moving files to multi-arch dirs"
  read -p "Press enter to continue"
  set -x
fi
 
 
mkdir -p "$TARGET"/lib/glib23
while read line; do
  mv "$TARGET"/lib/$line "$TARGET"/lib/glib23/$line
done <<EOF
ld-2.23.so
ld-linux-x86-64.so.2
libanl-2.23.so
libanl.so.1
libaudit.so.1
libaudit.so.1.0.0
libBrokenLocale-2.23.so
libBrokenLocale.so.1
libbz2.so.1
libbz2.so.1.0
libbz2.so.1.0.4
libc-2.23.so
libcrypt-2.23.so
libcrypt.so.1
libc.so.6
libdbus-1.so.3
libdbus-1.so.3.14.6
libdl-2.23.so
libdl.so.2
libgpg-error.so.0
libgpg-error.so.0.17.0
libhistory.so.5
libhistory.so.6
libhistory.so.6.3
liblzma.so.0
liblzma.so.5
liblzma.so.5.0.0
libm-2.23.so
libmemusage.so
libm.so.6
libmvec-2.23.so
libmvec.so.1
libnl-3.so
libnl-3.so.200
libnl-3.so.200.22.0
libnl-genl-3.so
libnl-genl-3.so.200
libnl-genl-3.so.200.22.0
libnsl-2.23.so
libnsl.so.1
libnss_compat-2.23.so
libnss_compat.so.2
libnss_dns-2.23.so
libnss_dns.so.2
libnss_files-2.23.so
libnss_files.so.2
libnss_hesiod-2.23.so
libnss_hesiod.so.2
libnss_nis-2.23.so
libnss_nisplus-2.23.so
libnss_nisplus.so.2
libnss_nis.so.2
libpamc.so.0
libpamc.so.0.82.1
libpam_misc.so.0
libpam_misc.so.0.82.0
libpam.so.0
libpam.so.0.83.1
libpcprofile.so
libpthread-2.23.so
libpthread.so.0
libreadline.so.5
libreadline.so.6
libreadline.so.6.3
libresolv-2.23.so
libresolv.so.2
librt-2.23.so
librt.so.1
libSegFault.so
libselinux.so.1
libsepol.so.1
libsystemd.so.0
libsystemd.so.0.14.0
libthread_db-1.0.so
libthread_db.so.1
libudev.so.0
libudev.so.1
libudev.so.1.6.3
libutil-2.23.so
libutil.so.1
libz.so.1
libz.so.1.2.8
EOF
 
cd "$TARGET"/lib
rm ld-linux.so.2
ln -s ../lib32/ld-linux.so.2 ld-linux.so.2
 
#CWD="$PWD"
#HARDLINKED_SFS=puli7.3_x86_64-ungoogled-hardlinked.sfs.extracted
#FR_SOURCE=/mnt/+mnt+sda5+test_save+ext2/firstRIB_lego/01firstrib_rootfs.sfs.extracted
#TARGET="$CWD"/"$HARDLINKED_SFS"/cont
 
#for folder in bin sbin usr/bin usr/sbin usr/local/bin usr/local/sbin
  #for a_file in $(ls -1 $FR_SOURCE/"$folder");  do
    #mkdir -p $TARGET/${folder}2
    #if [[ "$(readlink "$TARGET/$folder/$a_file")" = */busybox  ]]; then
      #if [ ! -h "$FR_SOURCE/$folder/$a_file" ]; then
        #mv "$TARGET/$folder/$a_file" "$TARGET/${folder}2/$a_file"
      #fi
    #done
  #done
#done
 
 
while read a_folder; do
    mkdir -p "$MV_LOC/${a_folder}"
  for a_file in $(ls -1A $FR_SOURCE/"$a_folder");  do
 
    #if [[ "$(readlink "$TARGET/$folder/$a_file")" = */busybox  ]]; then
    #  if [ ! -h "$FR_SOURCE/$folder/$a_file" ]; then
    source_file="$FR_SOURCE/$a_folder/$a_file"
    target_file="$TARGET/$a_folder/$a_file"
    if [ -d "$source_file" ] && [ ! -d "$target_file" ]; then 
      ( cd "$(dirname "$source_file")"; 
        echo "$(basename "$source_file")" | \
          cpio -pdu "$(dirname "$target_file")" )
    else
      if [ ! -e "$target_file" ] || [ $(stat -c %s "$source_file") -gt  $(stat -c %s "$target_file") ] || ! cmp --silent "$source_file" "$target_file"; then
        if [ -e "$target_file" ]; then
          if [ ! -d "$target_file" ]; then
            if [ ! -d "$MV_LOC/${a_folder}" ]; then
               ( cd "$TARGET"; 
                 echo "./${a_folder}" | \
                 cpio -pdu "$MV_LOC" )
            fi
            mv "$target_file" "$MV_LOC/${a_folder}/$a_file"
          fi
        fi
        [ ! -d "$source_file" ] && ln "$source_file" "$target_file"
      fi
      #  fi
      #done
    fi
  done
  
done <<EOF
lib64
var
var/log
var/log/apt
var/cache
var/cache/ldconfig
var/cache/apt
var/cache/apt/archives
var/cache/apt/archives/partial
var/cache/debconf
var/lib
var/lib/dpkg
var/lib/dpkg/info
var/lib/dpkg/updates
var/lib/dpkg/parts
var/lib/dpkg/alternatives
var/lib/dpkg/triggers
var/lib/apt
var/lib/apt/lists
var/lib/apt/lists/partial
var/lib/apt/periodic
var/lib/apt/mirrors
var/lib/apt/mirrors/partial
var/lib/pam
usr
usr/libexec
usr/src
usr/lib32
usr/local
usr/local/sbin
usr/local/lib
usr/local/include
usr/local/share
usr/local/share/ca-certificates
usr/local/firstrib
usr/local/firstrib/bin
usr/local/bin
usr/sbin
usr/lib
usr/lib/dpkg
usr/lib/dpkg/methods
usr/lib/dpkg/methods/apt
usr/lib/ssl
usr/lib/ssl/misc
usr/lib/mime
usr/lib/mime/packages
usr/lib/apt
usr/lib/apt/planners
usr/lib/apt/methods
usr/lib/apt/solvers
usr/lib/NetworkManager
usr/lib/NetworkManager/conf.d
usr/lib/tmpfiles.d
usr/lib/x86_64-linux-gnu
usr/lib/x86_64-linux-gnu/coreutils
usr/lib/x86_64-linux-gnu/perl-base
usr/lib/x86_64-linux-gnu/perl-base/Text
usr/lib/x86_64-linux-gnu/perl-base/Tie
usr/lib/x86_64-linux-gnu/perl-base/Scalar
usr/lib/x86_64-linux-gnu/perl-base/Getopt
usr/lib/x86_64-linux-gnu/perl-base/unicore
usr/lib/x86_64-linux-gnu/perl-base/unicore/To
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Dep
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Hyphen
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/STerm
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/NFKDQC
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Sc
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/InPC
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/IDS
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/CI
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/IDC
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/PCM
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/In
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Ea
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/QMark
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Blk
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/PatSyn
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Vo
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Math
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Dash
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/GCB
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/XIDS
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/GrExt
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Alpha
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/CE
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Jt
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/NFKCQC
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Term
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/NFDQC
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Nt
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Ideo
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Perl
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/WB
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/XIDC
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/GrBase
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/CWKCF
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/InSC
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/CWU
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Hex
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/BidiC
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/DI
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Lb
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Cased
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/CWT
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/CompEx
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Age
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/SD
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Dia
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Bc
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Lower
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Upper
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Dt
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Scx
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/CWCM
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/SB
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Gc
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Nv
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Ccc
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/BidiM
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/CWL
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Ext
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Bpt
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Hst
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/Jg
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/CWCF
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/UIdeo
usr/lib/x86_64-linux-gnu/perl-base/unicore/lib/NFCQC
usr/lib/x86_64-linux-gnu/perl-base/warnings
usr/lib/x86_64-linux-gnu/perl-base/Hash
usr/lib/x86_64-linux-gnu/perl-base/IO
usr/lib/x86_64-linux-gnu/perl-base/IO/Socket
usr/lib/x86_64-linux-gnu/perl-base/auto
usr/lib/x86_64-linux-gnu/perl-base/auto/re
usr/lib/x86_64-linux-gnu/perl-base/auto/Hash
usr/lib/x86_64-linux-gnu/perl-base/auto/Hash/Util
usr/lib/x86_64-linux-gnu/perl-base/auto/IO
usr/lib/x86_64-linux-gnu/perl-base/auto/Socket
usr/lib/x86_64-linux-gnu/perl-base/auto/attributes
usr/lib/x86_64-linux-gnu/perl-base/auto/File
usr/lib/x86_64-linux-gnu/perl-base/auto/File/Glob
usr/lib/x86_64-linux-gnu/perl-base/auto/Cwd
usr/lib/x86_64-linux-gnu/perl-base/auto/List
usr/lib/x86_64-linux-gnu/perl-base/auto/List/Util
usr/lib/x86_64-linux-gnu/perl-base/auto/Fcntl
usr/lib/x86_64-linux-gnu/perl-base/auto/POSIX
usr/lib/x86_64-linux-gnu/perl-base/Carp
usr/lib/x86_64-linux-gnu/perl-base/IPC
usr/lib/x86_64-linux-gnu/perl-base/File
usr/lib/x86_64-linux-gnu/perl-base/File/Spec
usr/lib/x86_64-linux-gnu/perl-base/Exporter
usr/lib/x86_64-linux-gnu/perl-base/List
usr/lib/x86_64-linux-gnu/gconv
usr/lib/x86_64-linux-gnu/engines-1.1
usr/lib/x86_64-linux-gnu/audit
usr/lib/locale
usr/lib/locale/C.UTF-8
usr/lib/locale/C.UTF-8/LC_MESSAGES
usr/lib/debootstrap
usr/lib/pm-utils
usr/lib/pm-utils/sleep.d
usr/include
usr/share
usr/share/pixmaps
usr/share/terminfo
usr/share/debianutils
usr/share/doc
usr/share/doc/libpam0g
usr/share/doc/libsepol1
usr/share/doc/lsb-base
usr/share/doc/coreutils
usr/share/doc/libzstd1
usr/share/doc/libnl-genl-3-200
usr/share/doc/debianutils
usr/share/doc/libnl-3-200
usr/share/doc/dpkg
usr/share/doc/perl
usr/share/doc/libacl1
usr/share/doc/libpcre2-8-0
usr/share/doc/libunistring2
usr/share/doc/libpcsclite1
usr/share/doc/libattr1
usr/share/doc/libgnutls30
usr/share/doc/libtasn1-6
usr/share/doc/libdb5.3
usr/share/doc/libnettle7
usr/share/doc/libaudit1
usr/share/doc/libsystemd0
usr/share/doc/libgcrypt20
usr/share/doc/libffi7
usr/share/doc/gcc-10-base
usr/share/doc/libtinfo6
usr/share/doc/perl-base
usr/share/doc/zlib1g
usr/share/doc/libapt-pkg6.0
usr/share/doc/libreadline8
usr/share/doc/libreadline8/examples
usr/share/doc/libselinux1
usr/share/doc/libpam-modules
usr/share/doc/libpam-modules/examples
usr/share/doc/libsemanage-common
usr/share/doc/apt
usr/share/doc/apt/examples
usr/share/doc/readline-common
usr/share/doc/liblz4-1
usr/share/doc/base-passwd
usr/share/doc/libnl-route-3-200
usr/share/doc/liblzma5
usr/share/doc/libaudit-common
usr/share/doc/libudev1
usr/share/doc/less
usr/share/doc/libdebconfclient0
usr/share/doc/libsemanage1
usr/share/doc/libc6
usr/share/doc/libpam-modules-bin
usr/share/doc/adduser
usr/share/doc/adduser/examples
usr/share/doc/adduser/examples/adduser.local.conf.examples
usr/share/doc/adduser/examples/adduser.local.conf.examples/skel.other
usr/share/doc/adduser/examples/adduser.local.conf.examples/skel
usr/share/doc/libcap-ng0
usr/share/doc/libgmp10
usr/share/doc/ncurses-base
usr/share/doc/libpam-runtime
usr/share/doc/libseccomp2
usr/share/doc/libcrypt1
usr/share/doc/tar
usr/share/doc/diffutils
usr/share/doc/libssl1.1
usr/share/doc/libc-bin
usr/share/doc/passwd
usr/share/doc/passwd/examples
usr/share/doc/ca-certificates
usr/share/doc/ca-certificates/examples
usr/share/doc/ca-certificates/examples/ca-certificates-local
usr/share/doc/ca-certificates/examples/ca-certificates-local/local
usr/share/doc/ca-certificates/examples/ca-certificates-local/debian
usr/share/doc/ca-certificates/examples/ca-certificates-local/debian/source
usr/share/doc/libbz2-1.0
usr/share/doc/openssl
usr/share/doc/openssl/HOWTO
usr/share/doc/wpasupplicant
usr/share/doc/wpasupplicant/examples
usr/share/doc/gpgv
usr/share/doc/libgpg-error0
usr/share/doc/debconf
usr/share/doc/libdbus-1-3
usr/share/doc/ubuntu-keyring
usr/share/doc/libp11-kit0
usr/share/doc/libp11-kit0/examples
usr/share/doc/libidn2-0
usr/share/dpkg
usr/share/gdb
usr/share/gdb/auto-load
usr/share/gdb/auto-load/usr
usr/share/gdb/auto-load/usr/lib
usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu
usr/share/udhcpc
usr/share/man
usr/share/man/man3
usr/share/man/pl
usr/share/man/pl/man8
usr/share/man/pl/man1
usr/share/man/pl/man5
usr/share/man/fr
usr/share/man/fr/man8
usr/share/man/fr/man1
usr/share/man/fr/man5
usr/share/man/nl
usr/share/man/nl/man8
usr/share/man/nl/man1
usr/share/man/nl/man5
usr/share/man/tr
usr/share/man/tr/man8
usr/share/man/tr/man1
usr/share/man/tr/man5
usr/share/man/man8
usr/share/man/man1
usr/share/man/man7
usr/share/man/it
usr/share/man/it/man8
usr/share/man/it/man1
usr/share/man/it/man5
usr/share/man/man5
usr/share/man/pt
usr/share/man/pt/man8
usr/share/man/pt/man1
usr/share/man/pt/man5
usr/share/man/de
usr/share/man/de/man8
usr/share/man/de/man1
usr/share/man/de/man5
usr/share/man/ja
usr/share/man/ja/man8
usr/share/man/ja/man1
usr/share/man/ja/man5
usr/share/man/zh_TW
usr/share/man/zh_TW/man8
usr/share/man/zh_TW/man1
usr/share/man/zh_TW/man5
usr/share/man/es
usr/share/man/es/man8
usr/share/man/es/man1
usr/share/man/es/man5
usr/share/man/pt_BR
usr/share/man/pt_BR/man8
usr/share/man/pt_BR/man1
usr/share/man/pt_BR/man5
usr/share/man/ru
usr/share/man/ru/man8
usr/share/man/ru/man1
usr/share/man/ru/man5
usr/share/man/sv
usr/share/man/sv/man8
usr/share/man/sv/man1
usr/share/man/sv/man5
usr/share/man/zh_CN
usr/share/man/zh_CN/man8
usr/share/man/zh_CN/man1
usr/share/man/zh_CN/man5
usr/share/man/hu
usr/share/man/hu/man1
usr/share/man/hu/man5
usr/share/man/da
usr/share/man/da/man8
usr/share/man/da/man1
usr/share/man/da/man5
usr/share/man/id
usr/share/man/id/man8
usr/share/man/id/man1
usr/share/man/sl
usr/share/man/sl/man8
usr/share/man/sl/man1
usr/share/man/cs
usr/share/man/cs/man8
usr/share/man/cs/man1
usr/share/man/cs/man5
usr/share/man/ko
usr/share/man/ko/man8
usr/share/man/ko/man1
usr/share/man/ko/man5
usr/share/man/fi
usr/share/man/fi/man1
usr/share/pam-configs
usr/share/bug
usr/share/bug/apt
usr/share/info
usr/share/gcc-10
usr/share/gcc-10/python
usr/share/gcc-10/python/libstdcxx
usr/share/gcc-10/python/libstdcxx/v6
usr/share/pam
usr/share/polkit-1
usr/share/polkit-1/actions
usr/share/tabset
usr/share/readline
usr/share/base-passwd
usr/share/keyrings
usr/share/perl5
usr/share/perl5/Debconf
usr/share/perl5/Debconf/Template
usr/share/perl5/Debconf/Client
usr/share/perl5/Debconf/FrontEnd
usr/share/perl5/Debconf/Element
usr/share/perl5/Debconf/Element/Gnome
usr/share/perl5/Debconf/Element/Dialog
usr/share/perl5/Debconf/Element/Editor
usr/share/perl5/Debconf/Element/Teletype
usr/share/perl5/Debconf/Element/Noninteractive
usr/share/perl5/Debconf/Element/Web
usr/share/perl5/Debconf/DbDriver
usr/share/perl5/Debconf/Format
usr/share/perl5/Debian
usr/share/perl5/Debian/DebConf
usr/share/perl5/Debian/DebConf/Client
usr/share/doc-base
usr/share/dbus-1
usr/share/dbus-1/system-services
usr/share/adduser
usr/share/bash-completion
usr/share/bash-completion/completions
usr/share/libc-bin
usr/share/ca-certificates
usr/share/ca-certificates/mozilla
usr/share/locale
usr/share/locale/pl
usr/share/locale/pl/LC_MESSAGES
usr/share/locale/ca
usr/share/locale/ca/LC_MESSAGES
usr/share/locale/fr
usr/share/locale/fr/LC_MESSAGES
usr/share/locale/nl
usr/share/locale/nl/LC_MESSAGES
usr/share/locale/nb
usr/share/locale/nb/LC_MESSAGES
usr/share/locale/tr
usr/share/locale/tr/LC_MESSAGES
usr/share/locale/ku
usr/share/locale/ku/LC_MESSAGES
usr/share/locale/km
usr/share/locale/km/LC_MESSAGES
usr/share/locale/vi
usr/share/locale/vi/LC_MESSAGES
usr/share/locale/it
usr/share/locale/it/LC_MESSAGES
usr/share/locale/pt
usr/share/locale/pt/LC_MESSAGES
usr/share/locale/de
usr/share/locale/de/LC_MESSAGES
usr/share/locale/sk
usr/share/locale/sk/LC_MESSAGES
usr/share/locale/mr
usr/share/locale/mr/LC_MESSAGES
usr/share/locale/et
usr/share/locale/et/LC_MESSAGES
usr/share/locale/eo
usr/share/locale/eo/LC_MESSAGES
usr/share/locale/ja
usr/share/locale/ja/LC_MESSAGES
usr/share/locale/pa
usr/share/locale/pa/LC_MESSAGES
usr/share/locale/gl
usr/share/locale/gl/LC_MESSAGES
usr/share/locale/zh_TW
usr/share/locale/zh_TW/LC_MESSAGES
usr/share/locale/es
usr/share/locale/es/LC_MESSAGES
usr/share/locale/pt_BR
usr/share/locale/pt_BR/LC_MESSAGES
usr/share/locale/ru
usr/share/locale/ru/LC_MESSAGES
usr/share/locale/sv
usr/share/locale/sv/LC_MESSAGES
usr/share/locale/nn
usr/share/locale/nn/LC_MESSAGES
usr/share/locale/bg
usr/share/locale/bg/LC_MESSAGES
usr/share/locale/ro
usr/share/locale/ro/LC_MESSAGES
usr/share/locale/cy
usr/share/locale/cy/LC_MESSAGES
usr/share/locale/eu
usr/share/locale/eu/LC_MESSAGES
usr/share/locale/zh_CN
usr/share/locale/zh_CN/LC_MESSAGES
usr/share/locale/hu
usr/share/locale/hu/LC_MESSAGES
usr/share/locale/da
usr/share/locale/da/LC_MESSAGES
usr/share/locale/bs
usr/share/locale/bs/LC_MESSAGES
usr/share/locale/id
usr/share/locale/id/LC_MESSAGES
usr/share/locale/ar
usr/share/locale/ar/LC_MESSAGES
usr/share/locale/ne
usr/share/locale/ne/LC_MESSAGES
usr/share/locale/dz
usr/share/locale/dz/LC_MESSAGES
usr/share/locale/sl
usr/share/locale/sl/LC_MESSAGES
usr/share/locale/th
usr/share/locale/th/LC_MESSAGES
usr/share/locale/cs
usr/share/locale/cs/LC_MESSAGES
usr/share/locale/ast
usr/share/locale/ast/LC_MESSAGES
usr/share/locale/ko
usr/share/locale/ko/LC_MESSAGES
usr/share/locale/lt
usr/share/locale/lt/LC_MESSAGES
usr/share/locale/el
usr/share/locale/el/LC_MESSAGES
usr/share/locale/tl
usr/share/locale/tl/LC_MESSAGES
usr/share/locale/fi
usr/share/locale/fi/LC_MESSAGES
usr/share/locale/uk
usr/share/locale/uk/LC_MESSAGES
usr/share/lintian
usr/share/lintian/profiles
usr/share/lintian/profiles/dpkg
usr/share/lintian/overrides
usr/share/debconf
usr/bin
home
home/debian
tmp
opt
sbin
lib
lib/systemd
lib/systemd/system
lib/terminfo
lib/terminfo/v
lib/terminfo/h
lib/terminfo/s
lib/terminfo/a
lib/terminfo/m
lib/terminfo/r
lib/terminfo/l
lib/terminfo/x
lib/terminfo/w
lib/terminfo/d
lib/terminfo/c
lib/terminfo/t
lib/terminfo/E
lib/terminfo/p
lib/lsb
lib/lsb/init-functions.d
lib/x86_64-linux-gnu
lib/x86_64-linux-gnu/security
bin
etc/libnl-3
etc/terminfo
etc/selinux
etc/network
etc/network/if-pre-up.d
etc/network/if-down.d
etc/network/if-up.d
etc/network/if-post-down.d
etc/dpkg
etc/dpkg/dpkg.cfg.d
etc/ssl
etc/ssl/private
etc/ssl/certs
etc/udhcpc
etc/logrotate.d
etc/wpa_supplicant
etc/rc.d
etc/pam.d
etc/apt
etc/apt/auth.conf.d
etc/apt/preferences.d
etc/apt/apt.conf.d
etc/apt/sources.list.d
etc/apt/trusted.gpg.d
etc/security
etc/security/namespace.d
etc/security/limits.d
etc/default
etc/ifplugd
etc/ifplugd/action.d
etc/kernel
etc/kernel/postinst.d
etc/dbus-1
etc/dbus-1/system.d
etc/cron.daily
etc/skel
etc/ld.so.conf.d
etc/ca-certificates
etc/ca-certificates/update.d
etc/alternatives
EOF
 
#We don't need to copy these directories from firstribrootfs
#dev
#dev/pts
#boot
#root
#sys
#proc
#mnt
#media
#run
#etc
 
echo "include /etc/ld.so.conf.d/*.conf" >> "$TARGET/etc/ld.so.conf" 
export $PATH="$PATH":/usr/local/firstrib/bin >> /etc/profile #maybe do this in /root/.profile
 
while read a_file; do
 cp -af "$FR_SOURCE/etc/$a_file" "$TARGET/etc/$a_file"
done <<EOF
xattr.conf
environment
deluser.conf
ca-certificates.conf
pam.conf
adduser.conf
debconf.conf
gai.conf
bindresvport.blacklist
EOF
#Don't need from /etc:
#.pwd.lock
#group-
#Duplicate in /etc
#gshadow
#inittab
#passwd
#passwd-
#gshadow-
#inputrc
#ld.so.cache
#libaudit.conf
#nsswitch.conf
#resolv.conf
#shells
#shadow
 
while read a_file_rel_path; do
  if [[ $(file "$TARGET/${a_file_rel_path}") != *ASCII* ]]; then
    mv "$TARGET/${a_file_rel_path}-FULL" "$MV_LOC/${a_file_rel_path}-FULL"
    mv "$TARGET/${a_file_rel_path}" "$TARGET/${a_file_rel_path}-FULL"
    mv "$MV_LOC/${a_file_rel_path}" "$TARGET/${a_file_rel_path}" 
  fi
done <<EOF
sbin/losetup
bin/df
bin/umount
bin/mount
bin/ps
EOF
 
cd "$TARGET"/lib
rm ld-linux-x86-64.so.2
ln -s ./x86_64-linux-gnu/ld-linux-x86-64.so.2 ld-linux-x86-64.so.2
ln -s ./x86_64-linux-gnu/ld-linux-x86-64.so.2 ld-linux-x86-64.so.1
 
mksquashfs "$EXTRACTED_SFS" "$NEW_SFS"
 

Comments