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
def expand_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
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
check_deps = @pkg.dependencies.select {|k, v| !v.include?(:build)}.map {|k, v| k}
else
......@@ -860,7 +870,6 @@ def install
meta = download
target_dir = unpack meta
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
# CREW_DEST_DIR contains usr/local/... hierarchy
......
......@@ -17,10 +17,12 @@ CREW_PACKAGES_PATH="${CREW_LIB_PATH}/packages"
CURL="${CURL:-curl}"
# 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 \
libmetalink libnghttp2 libpsl libssh2 libtirpc libunistring lz4 openldap \
rtmpdump zstd ncurses ca_certificates ruby libffi openssl nettle krb5 \
p11kit libtasn1 gnutls curl git icu4c libedit"
EARLY_PACKAGES="gcc10 brotli c_ares libcyrussasl libidn2 libmetalink libnghttp2 libpsl \
libtirpc libunistring openldap rtmpdump zstd ncurses ca_certificates ruby libffi openssl \
nettle krb5 p11kit libtasn1 gnutls curl git icu4c"
LATE_PACKAGES="less most manpages filecmd mawk readline perl pcre pcre2 python27 python3 \
sed bz2 lz4 lzip unzip xzutils zip"
ARCH="$(uname -m)"
......@@ -45,6 +47,9 @@ case "${ARCH}" in
exit 1;;
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
crew_folders="bin cache doc docbook etc include lib lib$LIB_SUFFIX libexec man sbin share tmp var"
for folder in $crew_folders
......@@ -198,8 +203,9 @@ git fetch origin "${BRANCH}"
git reset --hard origin/"${BRANCH}"
crew update
# install a base set of essential packages
yes | crew install buildessential less most
yes | crew install $LATE_PACKAGES
[[ "$devtools" == "y" || "$devtools" == "Y" ]] && yes | crew install buildessential
echo
if [[ "${CREW_PREFIX}" != "/usr/local" ]]; then
......
# Defines common constants used in different parts of crew
CREW_VERSION = '1.7.24'
CREW_VERSION = '1.7.25'
ARCH_ACTUAL = `uname -m`.strip
# This helps with virtualized builds on aarch64 machines
......
......@@ -3,7 +3,7 @@ require 'package'
class Buildessential < Package
description 'A collection of tools essential to compile and build software.'
homepage ''
version '1.11'
version '1.12'
license 'GPL-3+'
compatibility 'all'
......@@ -20,24 +20,6 @@ class Buildessential < Package
depends_on 'make'
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"
depends_on 'automake'
depends_on 'libtool'
......@@ -48,28 +30,80 @@ class Buildessential < Package
depends_on 'flex'
depends_on 'util_macros'
depends_on 'gettext'
# depends_on 'wget' # use 'curl -#LO' instead
depends_on 'mawk'
# compression utilities
depends_on 'lzip'
depends_on 'unzip'
depends_on 'zip'
# build documentation
depends_on 'compressdoc'
depends_on 'doxygen'
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'
# xorg protocols headers
#depends_on 'xorg_proto'
# COBOL
#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
depends_on 'python27'
depends_on 'python3'
# maybe meson build system ?
depends_on 'meson'
# Qt
#depends_on 'qtcreator'
#depends_on 'qttools'
# Rust
#depends_on 'rust'
# perl module build ?
# depends_on 'perl_module_build'
# Samurai
#depends_on 'samurai'
# xorg protocol headers
#depends_on 'xorg_proto'
end
acl
attr
autoconf
automake
binutils
bison
brotli
bz2
c_ares
ca_certificates
cmake
compressdoc
crew_profile_base
curl
diffutils
doxygen
expat
filecmd
flex
gcc10
gcc_tools
gdbm
gettext
git
glibc
gmp
gnutls
groff
icu4c
intltool
isl
krb5
less
libcyrussasl
libdb
libedit
libffi
libiconv
libidn2
libmetalink
libnghttp2
libpipeline
libpsl
libseccomp
libsigsegv
libssh2
libtasn1
libtirpc
libtool
libunbound
libunistring
libxdmcp
libxml2
linuxheaders
llvm
lz4
lzip
m4
make
mandb
manpages
mawk
meson
most
mpc
mpfr
ncurses
nettle
ninja
openldap
openssl
p11kit
patch
pcre
pcre2
perl
perl_xml_parser
pkgconfig
python27
python3
readline
......@@ -83,11 +52,8 @@ ruby
sed
slang
sqlite
trousers
uchardet
unzip
util_macros
xorg_proto
xzutils
zip
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