Browse Source

pkg: excluding more for slim package

pull/1/head
Kien Nguyen 2 years ago
parent
commit
45cdd01659
  1. 5
      .github/workflows/build.yml
  2. 42
      emacs-build.sh
  3. 5
      scripts/tools.sh

5
.github/workflows/build.yml

@ -55,14 +55,15 @@ jobs:
# run: powershell -noprofile -Command Get-PSDrive # run: powershell -noprofile -Command Get-PSDrive
- name: Build Emacs - name: Build Emacs
run: .\emacs-build.cmd --nativecomp --slim --no-compress --with-rsvg --build run: .\emacs-build.cmd --nativecomp --slim --with-rsvg --build
- name: See free space - name: See free space
run: Get-PSDrive run: Get-PSDrive
# Full emacs # Full emacs
- name: Pack full emacs - name: Pack full emacs
run: .\emacs-build.cmd --nativecomp --slim --no-compress --with-rsvg --pack-all # Require --nativecomp and --with-* flags, else the deps will not be included properly
run: .\emacs-build.cmd --nativecomp --slim --with-rsvg --pack-all
- name: See free space - name: See free space
run: Get-PSDrive run: Get-PSDrive

42
emacs-build.sh

@ -140,6 +140,8 @@ function emacs_configure_build_dir ()
options="--disable-build-details --without-dbus" options="--disable-build-details --without-dbus"
if test "$emacs_compress_files" = "no"; then if test "$emacs_compress_files" = "no"; then
options="$options --without-compress-install" options="$options --without-compress-install"
else
options="$options --with-compress-install"
fi fi
for f in $all_features; do for f in $all_features; do
if echo $features | grep $f > /dev/null; then if echo $features | grep $f > /dev/null; then
@ -205,11 +207,14 @@ function action2_install ()
echo refusing to reinstall echo refusing to reinstall
else else
rm -rf "$emacs_install_dir" rm -rf "$emacs_install_dir"
mkdir -p "$emacs_install_dir" mkdir -p "$emacs_install_dir/bin"
if test "$emacs_compress_files" = "yes"; then if test "$emacs_compress_files" = "yes"; then
# If we compress files we need to install gzip no matter what # If we compress files we need to install gzip no matter what
# (even in pack-emacs) # (even in pack-emacs)
(action3_gzip && cd "$emacs_install_dir" && unzip "$gzip_zip_file") || return -1 (ensure_packages gzip \
&& cp /usr/bin/gzip.exe $emacs_install_dir/bin/gzip.exe \
&& cp /usr/bin/msys-2.0.dll $emacs_install_dir/bin/msys-2.0.dll ) \
|| return -1
fi fi
echo Installing Emacs into directory $emacs_install_dir echo Installing Emacs into directory $emacs_install_dir
# HACK!!! Somehow libgmp is not installed as part of the # HACK!!! Somehow libgmp is not installed as part of the
@ -280,7 +285,7 @@ function action5_package_all ()
fi fi
done done
rm -rf "$emacs_full_install_dir" rm -rf "$emacs_full_install_dir"
if cp -rf "$emacs_install_dir" "$emacs_full_install_dir"; then if cp -rfp "$emacs_install_dir" "$emacs_full_install_dir"; then
rm -f "$emacs_distfile" rm -f "$emacs_distfile"
cd "$emacs_full_install_dir" cd "$emacs_full_install_dir"
for zipfile in "$emacs_depsfile" $emacs_extensions; do for zipfile in "$emacs_depsfile" $emacs_extensions; do
@ -293,9 +298,13 @@ function action5_package_all ()
fi fi
done done
emacs_build_strip_exes "$emacs_full_install_dir" emacs_build_strip_exes "$emacs_full_install_dir"
# find . -type f | sort | dependency_filter | xargs zip -9v "$emacs_distfile" if test "$emacs_compress_files" = "no"; then
# this is easier and not encounter IO problems xargs zip -9v "$emacs_distfile" ./*
zip -9vr "$emacs_distfile" ./* else
# find . -type f | sort | dependency_filter > a.txt
find . -type f | sort | dependency_filter "$packing_slim_exclusion" \
| xargs zip -9v "$emacs_distfile"
fi
fi fi
} }
@ -337,10 +346,10 @@ function add_actions () {
} }
function dependency_filter () { function dependency_filter () {
if test -z "$dependency_exclusions"; then if test -z "$1"; then
cat - cat -
else else
grep -P -v "^(`echo $slim_exclusions | sed 's,[ \n],|,g'`)" - grep -P -v "^(`echo $1 | sed 's,[ \n],|,g'`)" -
fi fi
} }
@ -371,9 +380,10 @@ emacsclient
etags etags
ld ld
objdump objdump
gzip
" "
slim_exclusions=" dependency_slim_exclusions="
$build_type $build_type
.*bin/(`echo $exe_inclusions | sed 's,\([^ \n]*\)[ \n]\?,(?!\1),g'`).*\.exe$ .*bin/(`echo $exe_inclusions | sed 's,\([^ \n]*\)[ \n]\?,(?!\1),g'`).*\.exe$
.*doc .*doc
@ -382,7 +392,7 @@ $build_type
etc etc
lib/((?!emacs)(?!gcc)(?![^/]*\.(a|o)$)) lib/((?!emacs)(?!gcc)(?![^/]*\.(a|o)$))
lib/.*\.exe lib/.*\.exe
share/((?!emacs)(?!icons)(?!info)) .*share/((?!emacs)(?!icons))
usr/lib/cmake usr/lib/cmake
usr/lib/gettext usr/lib/gettext
usr/lib/pkgconfig usr/lib/pkgconfig
@ -393,6 +403,13 @@ usr/share/man.*
usr/share/terminfo usr/share/terminfo
var var
" "
packing_slim_exclusion="
.*share/((?!emacs)(?!icons))
.*share/emacs/.*/lisp/leim
.*share/emacs/.*/lisp/play
"
dependency_exclusions="" dependency_exclusions=""
all_features=`feature_list | cut -f 1 -d ' '` all_features=`feature_list | cut -f 1 -d ' '`
features="$all_features" features="$all_features"
@ -477,14 +494,11 @@ if test "$emacs_nativecomp" = "yes"; then
add_feature native-compilation add_feature native-compilation
fi fi
if test "$emacs_slim_build" = "yes"; then if test "$emacs_slim_build" = "yes"; then
dependency_exclusions="$slim_exclusions" dependency_exclusions="$dependency_slim_exclusions"
fi fi
if test -z "$emacs_branch"; then if test -z "$emacs_branch"; then
emacs_branch="master" emacs_branch="master"
fi fi
if test "$emacs_compress_files" = yes; then
add_actions action3_gzip
fi
actions=`unique_list $actions` actions=`unique_list $actions`
if test -z "$actions"; then if test -z "$actions"; then
actions="action0_clone action1_ensure_packages action2_build action3_package_deps action5_package_all" actions="action0_clone action1_ensure_packages action2_build action3_package_deps action5_package_all"

5
scripts/tools.sh

@ -167,11 +167,12 @@ function package_dependencies ()
echo $slim_exclusions echo $slim_exclusions
echo Files to package echo Files to package
pacman -Ql $dependencies | cut -d ' ' -f 2 | sort | uniq \ pacman -Ql $dependencies | cut -d ' ' -f 2 | sort | uniq \
| grep "^$mingw_dir" | sed -e "s,^$mingw_dir,,g" | dependency_filter | grep "^$mingw_dir" | sed -e "s,^$mingw_dir,,g" | dependency_filter "$dependency_exclusions"
fi fi
echo Packing dependency files from root dir $mingw_dir echo Packing dependency files from root dir $mingw_dir
pacman -Ql $dependencies | cut -d ' ' -f 2 | sort | uniq \ pacman -Ql $dependencies | cut -d ' ' -f 2 | sort | uniq \
| grep "^$mingw_dir" | sed -e "s,^$mingw_dir,,g" | dependency_filter | xargs zip -9v $zipfile | grep "^$mingw_dir" | sed -e "s,^$mingw_dir,,g" \
| dependency_filter "$dependency_exclusions" | xargs zip -9v $zipfile
} }
function prepare_source_dir () function prepare_source_dir ()

Loading…
Cancel
Save