Commit 9f8f58aa authored by Ed Reel's avatar Ed Reel Committed by GitHub

Remove core packages that are build dependencies (#5525)

* Remove core packages that are build dependencies

Combine echo and read into one command prompt

* Move compiler checks to right before source download

* Remove prompts to install buildessential

* Bump crew version

* Make sure all buildessential packages are installed

* Remove stray text file
Co-authored-by: default avatarsatmandu <satadru@umich.edu>
parent 87c73577
...@@ -777,9 +777,19 @@ end ...@@ -777,9 +777,19 @@ end
def expand_dependencies def expand_dependencies
@dependencies = [] @dependencies = []
if @pkg.build_from_source
# make sure all buildessential packages are installed
pkgname = @pkg.name
search 'buildessential', true
check_deps = @pkg.dependencies.map {|k, v| k}
check_deps.each do |dep|
@dependencies << dep unless @device[:installed_packages].include?(dep)
end
search pkgname, true
end
def push_dependencies def push_dependencies
if @pkg.is_binary?(@device[:architecture]) || if @pkg.is_binary?(@device[:architecture]) ||
(!@pkg.in_upgrade && !@pkg.build_from_source && @device[:installed_packages].any? { |pkg| pkg[:name] == @pkg.name }) (!@pkg.in_upgrade && !@pkg.build_from_source && @device[:installed_packages].any? { |pkg| pkg[:name] == @pkg.name })
# retrieve name of dependencies that doesn't contain :build tag # retrieve name of dependencies that doesn't contain :build tag
check_deps = @pkg.dependencies.select {|k, v| !v.include?(:build)}.map {|k, v| k} check_deps = @pkg.dependencies.select {|k, v| !v.include?(:build)}.map {|k, v| k}
else else
...@@ -860,7 +870,6 @@ def install ...@@ -860,7 +870,6 @@ def install
meta = download meta = download
target_dir = unpack meta target_dir = unpack meta
if meta[:source] == true if meta[:source] == true
abort "You don't have a working C compiler. Run `crew install buildessential` to get one and try again.".lightred unless system('gcc --version')
# build from source and place binaries at CREW_DEST_DIR # build from source and place binaries at CREW_DEST_DIR
# CREW_DEST_DIR contains usr/local/... hierarchy # CREW_DEST_DIR contains usr/local/... hierarchy
......
...@@ -17,10 +17,12 @@ CREW_PACKAGES_PATH="${CREW_LIB_PATH}/packages" ...@@ -17,10 +17,12 @@ CREW_PACKAGES_PATH="${CREW_LIB_PATH}/packages"
CURL="${CURL:-curl}" CURL="${CURL:-curl}"
# EARLY_PACKAGES cannot depend on crew_profile_base for their core operations (completion scripts are fine) # EARLY_PACKAGES cannot depend on crew_profile_base for their core operations (completion scripts are fine)
EARLY_PACKAGES="gcc10 llvm brotli c_ares libcyrussasl libiconv libidn2 \ EARLY_PACKAGES="gcc10 brotli c_ares libcyrussasl libidn2 libmetalink libnghttp2 libpsl \
libmetalink libnghttp2 libpsl libssh2 libtirpc libunistring lz4 openldap \ libtirpc libunistring openldap rtmpdump zstd ncurses ca_certificates ruby libffi openssl \
rtmpdump zstd ncurses ca_certificates ruby libffi openssl nettle krb5 \ nettle krb5 p11kit libtasn1 gnutls curl git icu4c"
p11kit libtasn1 gnutls curl git icu4c libedit"
LATE_PACKAGES="less most manpages filecmd mawk readline perl pcre pcre2 python27 python3 \
sed bz2 lz4 lzip unzip xzutils zip"
ARCH="$(uname -m)" ARCH="$(uname -m)"
...@@ -45,6 +47,9 @@ case "${ARCH}" in ...@@ -45,6 +47,9 @@ case "${ARCH}" in
exit 1;; exit 1;;
esac esac
# install a base set of development packages for compiling and building software
echo -e -n "${BLUE}Install development tools? (not needed for most users) [y/N]: ${RESET}"; read -n1 devtools
# This will allow things to work without sudo # This will allow things to work without sudo
crew_folders="bin cache doc docbook etc include lib lib$LIB_SUFFIX libexec man sbin share tmp var" crew_folders="bin cache doc docbook etc include lib lib$LIB_SUFFIX libexec man sbin share tmp var"
for folder in $crew_folders for folder in $crew_folders
...@@ -198,8 +203,9 @@ git fetch origin "${BRANCH}" ...@@ -198,8 +203,9 @@ git fetch origin "${BRANCH}"
git reset --hard origin/"${BRANCH}" git reset --hard origin/"${BRANCH}"
crew update crew update
# install a base set of essential packages yes | crew install $LATE_PACKAGES
yes | crew install buildessential less most
[[ "$devtools" == "y" || "$devtools" == "Y" ]] && yes | crew install buildessential
echo echo
if [[ "${CREW_PREFIX}" != "/usr/local" ]]; then if [[ "${CREW_PREFIX}" != "/usr/local" ]]; then
......
# Defines common constants used in different parts of crew # Defines common constants used in different parts of crew
CREW_VERSION = '1.7.24' CREW_VERSION = '1.7.25'
ARCH_ACTUAL = `uname -m`.strip ARCH_ACTUAL = `uname -m`.strip
# This helps with virtualized builds on aarch64 machines # This helps with virtualized builds on aarch64 machines
......
...@@ -3,7 +3,7 @@ require 'package' ...@@ -3,7 +3,7 @@ require 'package'
class Buildessential < Package class Buildessential < Package
description 'A collection of tools essential to compile and build software.' description 'A collection of tools essential to compile and build software.'
homepage '' homepage ''
version '1.11' version '1.12'
license 'GPL-3+' license 'GPL-3+'
compatibility 'all' compatibility 'all'
...@@ -20,24 +20,6 @@ class Buildessential < Package ...@@ -20,24 +20,6 @@ class Buildessential < Package
depends_on 'make' depends_on 'make'
depends_on 'pkgconfig' depends_on 'pkgconfig'
# install man pages
depends_on 'manpages'
# compress man pages
depends_on 'compressdoc'
# build documentation
depends_on 'doxygen'
# configure scripts reference the file command
depends_on 'filecmd'
# essential dependency for many packages
depends_on 'readline'
# override the system version with sandbox mode enabled
depends_on 'sed'
# typically required libraries to compile source code using "./autogen.sh" # typically required libraries to compile source code using "./autogen.sh"
depends_on 'automake' depends_on 'automake'
depends_on 'libtool' depends_on 'libtool'
...@@ -48,28 +30,80 @@ class Buildessential < Package ...@@ -48,28 +30,80 @@ class Buildessential < Package
depends_on 'flex' depends_on 'flex'
depends_on 'util_macros' depends_on 'util_macros'
depends_on 'gettext' depends_on 'gettext'
# depends_on 'wget' # use 'curl -#LO' instead
depends_on 'mawk'
# compression utilities # build documentation
depends_on 'lzip' depends_on 'compressdoc'
depends_on 'unzip' depends_on 'doxygen'
depends_on 'zip' depends_on 'help2man'
depends_on 'gtk_doc'
# cmake # Assembler
#depends_on 'nasm'
#depends_on 'yasm'
# BASIC
#depends_on 'freebasic'
#depends_on 'qb64'
# CMake
depends_on 'cmake' depends_on 'cmake'
# xorg protocols headers # COBOL
#depends_on 'xorg_proto' #depends_on 'gnucobol'
# Google
#depends_on 'dart'
#depends_on 'flutter'
#depends_on 'go'
#depends_on 'gox'
#depends_on 'gyp'
# Haskell
#depends_on 'ghc'
# Java
#depends_on 'jdk'
# LLVM
depends_on 'llvm'
# Meson build system
depends_on 'meson'
# Node.js
#depends_on 'nodebrew'
#depends_on 'nvm'
#depends_on 'yarn'
# Pascal
#depends_on 'fpc'
# Perl
depends_on 'perl'
depends_on 'pcre'
depends_on 'pcre2'
# Perl module build?
#depends_on 'perl_module_build'
# PHP
#depends_on 'php'
#depends_on 'composer'
# Python # Python
depends_on 'python27' depends_on 'python27'
depends_on 'python3' depends_on 'python3'
# maybe meson build system ? # Qt
depends_on 'meson' #depends_on 'qtcreator'
#depends_on 'qttools'
# Rust
#depends_on 'rust'
# perl module build ? # Samurai
# depends_on 'perl_module_build' #depends_on 'samurai'
# xorg protocol headers
#depends_on 'xorg_proto'
end end
acl acl
attr attr
autoconf
automake
binutils
bison
brotli brotli
bz2 bz2
c_ares c_ares
ca_certificates ca_certificates
cmake
compressdoc
crew_profile_base crew_profile_base
curl curl
diffutils
doxygen
expat
filecmd filecmd
flex
gcc10 gcc10
gcc_tools
gdbm gdbm
gettext gettext
git git
glibc
gmp
gnutls gnutls
groff groff
icu4c icu4c
intltool
isl
krb5 krb5
less less
libcyrussasl libcyrussasl
libdb libdb
libedit libedit
libffi libffi
libiconv
libidn2 libidn2
libmetalink libmetalink
libnghttp2 libnghttp2
libpipeline libpipeline
libpsl libpsl
libseccomp libseccomp
libsigsegv
libssh2
libtasn1 libtasn1
libtirpc libtirpc
libtool
libunbound
libunistring libunistring
libxdmcp
libxml2 libxml2
linuxheaders
llvm
lz4 lz4
lzip lzip
m4
make
mandb mandb
manpages manpages
mawk mawk
meson
most most
mpc
mpfr
ncurses ncurses
nettle nettle
ninja
openldap openldap
openssl openssl
p11kit p11kit
patch pcre
pcre2 pcre2
perl perl
perl_xml_parser
pkgconfig
python27 python27
python3 python3
readline readline
...@@ -83,11 +52,8 @@ ruby ...@@ -83,11 +52,8 @@ ruby
sed sed
slang slang
sqlite sqlite
trousers
uchardet uchardet
unzip unzip
util_macros
xorg_proto
xzutils xzutils
zip zip
zlibpkg zlibpkg
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment