Commit 064c2bfa authored by Ed Reel's avatar Ed Reel Committed by GitHub

Add pre_install function to crew command (#4035)

Update python3 to use preinstall

Replace ARGV logic with preinstall

Adjust other packages that use preinstall to build or patch instead

Change hunspell to is_fake
parent 16c2a8f6
......@@ -497,7 +497,6 @@ def build_and_preconfigure (target_dir)
end
@pkg.in_build = true
@pkg.preinstall
@pkg.patch
@pkg.build
@pkg.in_build = false
......@@ -521,6 +520,13 @@ def build_and_preconfigure (target_dir)
end
end
def pre_install (dest_dir)
Dir.chdir dest_dir do
puts "Performing pre-install..."
@pkg.preinstall
end
end
def post_install (dest_dir)
Dir.chdir dest_dir do
puts "Performing post-install..."
......@@ -741,6 +747,11 @@ def install
unless @pkg.is_fake?
# install filelist, dlist and binary files
puts "Installing..."
# perform pre-install process
pre_install dest_dir
# perform install process
install_package dest_dir
# perform post-install process
......
# Defines common constants used in different parts of crew
CREW_VERSION = '1.3.5'
CREW_VERSION = '1.3.6'
ARCH = `uname -m`.strip
ARCH_LIB = if ARCH == 'x86_64' then 'lib64' else 'lib' end
......
......@@ -14,7 +14,7 @@ class Android_studio < Package
depends_on 'xdg_base'
depends_on 'sommelier'
if ARGV[0] == 'install' || ARGV[0] == 'upgrade' then
def self.preinstall
free_space = `echo $(($(stat -f --format="%a*%S" .)))`.chomp.to_i
abort 'Not enough free disk space. You need at least 6 GB to install.'.lightred if free_space < 6442450944
end
......
......@@ -7,11 +7,6 @@ class Gcc7 < Package
source_url 'https://ftpmirror.gnu.org/gcc/gcc-7.4.0/gcc-7.4.0.tar.xz'
source_sha256 'eddde28d04f334aec1604456e536416549e9b1aa137fc69204e65eb0c009fe51'
if ARGV[0] == 'install'
gccver = `gcc -v 2>&1 | tail -1 | cut -d' ' -f3`.chomp
abort "GCC version #{gccver} already installed.".lightgreen unless "#{gccver}" == "No" || "#{gccver}" == "not" || "#{gccver}" == "gcc:" || "#{gccver}" == "#{version}"
end
binary_url ({
aarch64: 'https://dl.bintray.com/chromebrew/chromebrew/gcc7-7.4.0-chromeos-armv7l.tar.xz',
armv7l: 'https://dl.bintray.com/chromebrew/chromebrew/gcc7-7.4.0-chromeos-armv7l.tar.xz',
......@@ -39,6 +34,11 @@ class Gcc7 < Package
depends_on 'isl'
depends_on 'glibc'
def self.preinstall
gccver = `gcc -v 2>&1 | tail -1 | cut -d' ' -f3`.chomp
abort "GCC version #{gccver} already installed.".lightgreen unless "#{gccver}" == "No" || "#{gccver}" == "not" || "#{gccver}" == "gcc:" || "#{gccver}" == "#{version}"
end
def self.build
# previous compile issue
# #{CREW_PREFIX}/bin/ld: cannot find crti.o: No such file or directory
......
......@@ -7,11 +7,6 @@ class Gcc8 < Package
source_url 'https://ftpmirror.gnu.org/gcc/gcc-8.3.0/gcc-8.3.0.tar.xz'
source_sha256 '64baadfe6cc0f4947a84cb12d7f0dfaf45bb58b7e92461639596c21e02d97d2c'
if ARGV[0] == 'install'
gccver = `gcc -v 2>&1 | tail -1 | cut -d' ' -f3`.chomp
abort "GCC version #{gccver} already installed.".lightgreen unless "#{gccver}" == "No" || "#{gccver}" == "not" || "#{gccver}" == "gcc:" || "#{gccver}" == "#{version}"
end
binary_url ({
aarch64: 'https://dl.bintray.com/chromebrew/chromebrew/gcc8-8.3.0-chromeos-armv7l.tar.xz',
armv7l: 'https://dl.bintray.com/chromebrew/chromebrew/gcc8-8.3.0-chromeos-armv7l.tar.xz',
......@@ -40,6 +35,11 @@ class Gcc8 < Package
depends_on 'cloog'
depends_on 'glibc'
def self.preinstall
gccver = `gcc -v 2>&1 | tail -1 | cut -d' ' -f3`.chomp
abort "GCC version #{gccver} already installed.".lightgreen unless "#{gccver}" == "No" || "#{gccver}" == "not" || "#{gccver}" == "gcc:" || "#{gccver}" == "#{version}"
end
def self.patch
# See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86724#c4.
system "sed -i '40i#include <isl/id.h>' gcc/graphite.h"
......
......@@ -24,18 +24,18 @@ class Hplip < Package
depends_on 'libjpeg_turbo'
depends_on 'sane_backends'
def self.preinstall
def self.patch
system "curl -Ls -o config.guess 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD'"
system "curl -Ls -o config.sub 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'"
end
def self.build
system "sed -i 's,/usr/bin/perl,#{CREW_PREFIX}/bin/perl,g' hpijs-drv"
system "sed -i 's,/usr/include,#{CREW_PREFIX}/include,g' Makefile.in Makefile.am config.guess installer/core_install.py installer/dcheck.py"
system 'sed -i "s,return(true);,return TRUE;,g" prnt/hpcups/genPCLm.cpp'
system 'sed -i "s,return true;,return TRUE;,g" prnt/hpcups/genPCLm.cpp'
system "sed -i 's,/usr/bin/file,#{CREW_PREFIX}/bin/file,g' configure"
system "./configure --disable-network-build --prefix=#{CREW_PREFIX} --libdir=#{CREW_LIB_PREFIX}"
end
def self.build
system "./configure #{CREW_OPTIONS} --disable-network-build"
system 'make'
end
......
......@@ -7,10 +7,7 @@ class Hunspell < Package
source_url 'https://github.com/hunspell/hunspell/archive/v1.7.0.tar.gz'
source_sha256 'bb27b86eb910a8285407cf3ca33b62643a02798cf2eef468c0a74f6c3ee6bc8a'
binary_url ({
})
binary_sha256 ({
})
is_fake
if ARGV[0] == 'install'
puts
......
......@@ -18,11 +18,6 @@ class Imagemagick6 < Package
x86_64: '16dec45ba5036a192c42ac1c46bd8744682e6a6cd1e19c576c911e9511fbc078',
})
if ARGV[0] == 'install'
imver = `stream -version 2> /dev/null | head -1 | cut -d' ' -f3`.chomp
abort "ImageMagick version #{imver} already installed.".lightgreen unless "#{imver}" == ""
end
depends_on 'flif'
depends_on 'freeimage'
depends_on 'freetype'
......@@ -43,6 +38,11 @@ class Imagemagick6 < Package
depends_on 'zstd'
depends_on 'sommelier'
def self.preinstall
imver = `stream -version 2> /dev/null | head -1 | cut -d' ' -f3`.chomp
abort "ImageMagick version #{imver} already installed.".lightgreen unless "#{imver}" == ""
end
def self.patch
system 'filefix'
end
......@@ -68,5 +68,4 @@ class Imagemagick6 < Package
FileUtils.ln_s "#{CREW_LIB_PREFIX}/libMagickWand-6.Q16HDRI.so.6", "#{CREW_DEST_LIB_PREFIX}/libMagickWand-6.Q16.so.6"
FileUtils.ln_s "#{CREW_LIB_PREFIX}/libMagickCore-6.Q16HDRI.so.6", "#{CREW_DEST_LIB_PREFIX}/libMagickCore-6.Q16.so.6"
end
end
......@@ -18,11 +18,6 @@ class Imagemagick7 < Package
x86_64: '71026f3fc591cad77b66977ff01a230b4b08e16c23e880b53b2e2dbdeb4b41ae',
})
if ARGV[0] == 'install'
imver = `stream -version 2> /dev/null | head -1 | cut -d' ' -f3`.chomp
abort "ImageMagick version #{imver} already installed.".lightgreen unless "#{imver}" == ""
end
depends_on 'flif'
depends_on 'freeimage'
depends_on 'freetype'
......@@ -43,6 +38,11 @@ class Imagemagick7 < Package
depends_on 'zstd'
depends_on 'sommelier'
def self.preinstall
imver = `stream -version 2> /dev/null | head -1 | cut -d' ' -f3`.chomp
abort "ImageMagick version #{imver} already installed.".lightgreen unless "#{imver}" == ""
end
def self.patch
system 'filefix'
end
......@@ -68,5 +68,4 @@ class Imagemagick7 < Package
FileUtils.ln_s "#{CREW_LIB_PREFIX}/libMagickWand-7.Q16HDRI.so.6", "#{CREW_DEST_LIB_PREFIX}/libMagickWand-7.Q16.so.6"
FileUtils.ln_s "#{CREW_LIB_PREFIX}/libMagickCore-7.Q16HDRI.so.6", "#{CREW_DEST_LIB_PREFIX}/libMagickCore-7.Q16.so.6"
end
end
......@@ -29,8 +29,7 @@ class Llvm < Package
depends_on 'libtirpc'
depends_on 'swig'
def self.preinstall
def self.build
############################# Download clang (tools) ###########################################
url_clang = "https://github.com/llvm/llvm-project/releases/download/llvmorg-#{version}/clang-#{version}.src.tar.xz"
uri_clang = URI.parse url_clang
......@@ -269,9 +268,6 @@ class Llvm < Package
puts "Optional packages are ready".lightgreen
############################################################
end
def self.build
puts 'Change to GOLD linker.'.orange
original_default = `ld_default g`.chomp
Dir.mkdir 'builddir'
......
......@@ -20,21 +20,17 @@ class Mp4v2 < Package
x86_64: '0c65a40cbef64c0d33c3d2e7d2b46ea83d0a14f053de873f0efa62dc79f8841b',
})
def self.preinstall
def self.patch
system "curl -Ls -o autoaux/config.guess 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD'"
system "curl -Ls -o autoaux/config.sub 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'"
end
def self.build
system "./configure \
--prefix=#{CREW_PREFIX} \
--libdir=#{CREW_LIB_PREFIX} \
--disable-dependency-tracking \
--disable-debug"
system "make"
system "./configure #{CREW_OPTIONS} --disable-dependency-tracking --disable-debug"
system 'make'
end
def self.install
system "make", "DESTDIR=#{CREW_DEST_DIR}", "install"
system 'make', "DESTDIR=#{CREW_DEST_DIR}", 'install'
end
end
......@@ -7,11 +7,6 @@ class Php5 < Package
source_url 'http://php.net/distributions/php-5.6.40.tar.xz'
source_sha256 '1369a51eee3995d7fbd1c5342e5cc917760e276d561595b6052b21ace2656d1c'
if ARGV[0] == 'install'
phpver = `php -v 2> /dev/null | head -1 | cut -d' ' -f2`.chomp
abort "PHP version #{phpver} already installed.".lightgreen unless "#{phpver}" == ""
end
binary_url ({
aarch64: 'https://dl.bintray.com/chromebrew/chromebrew/php5-5.6.40-1-chromeos-armv7l.tar.xz',
armv7l: 'https://dl.bintray.com/chromebrew/chromebrew/php5-5.6.40-1-chromeos-armv7l.tar.xz',
......@@ -36,6 +31,11 @@ class Php5 < Package
depends_on 'tidy'
depends_on 'unixodbc'
def self.preinstall
phpver = `php -v 2> /dev/null | head -1 | cut -d' ' -f2`.chomp
abort "PHP version #{phpver} already installed.".lightgreen unless "#{phpver}" == ""
end
def self.patch
# Fix for tidy
system "sed -i 's,buffio.h,tidybuffio.h,' ext/tidy/tidy.c"
......
......@@ -7,11 +7,6 @@ class Php70 < Package
source_url 'https://php.net/distributions/php-7.0.33.tar.xz'
source_sha256 'ab8c5be6e32b1f8d032909dedaaaa4bbb1a209e519abb01a52ce3914f9a13d96'
if ARGV[0] == 'install'
phpver = `php -v 2> /dev/null | head -1 | cut -d' ' -f2`.chomp
abort "PHP version #{phpver} already installed.".lightgreen unless "#{phpver}" == ""
end
binary_url ({
aarch64: 'https://dl.bintray.com/chromebrew/chromebrew/php7-7.0.33-1-chromeos-armv7l.tar.xz',
armv7l: 'https://dl.bintray.com/chromebrew/chromebrew/php7-7.0.33-1-chromeos-armv7l.tar.xz',
......@@ -37,6 +32,11 @@ class Php70 < Package
depends_on 'tidy'
depends_on 'unixodbc'
def self.preinstall
phpver = `php -v 2> /dev/null | head -1 | cut -d' ' -f2`.chomp
abort "PHP version #{phpver} already installed.".lightgreen unless "#{phpver}" == ""
end
def self.patch
# Configuration
system "sed -i 's,;pid = run/php-fpm.pid,pid = #{CREW_PREFIX}/tmp/run/php-fpm.pid,' sapi/fpm/php-fpm.conf.in"
......
......@@ -7,11 +7,6 @@ class Php71 < Package
source_url 'https://php.net/distributions/php-7.1.33.tar.xz'
source_sha256 'bd7c0a9bd5433289ee01fd440af3715309faf583f75832b64fe169c100d52968'
if ARGV[0] == 'install'
phpver = `php -v 2> /dev/null | head -1 | cut -d' ' -f2`.chomp
abort "PHP version #{phpver} already installed.".lightgreen unless "#{phpver}" == ""
end
binary_url ({
aarch64: 'https://dl.bintray.com/chromebrew/chromebrew/php71-7.1.33-chromeos-armv7l.tar.xz',
armv7l: 'https://dl.bintray.com/chromebrew/chromebrew/php71-7.1.33-chromeos-armv7l.tar.xz',
......@@ -37,6 +32,11 @@ class Php71 < Package
depends_on 'tidy'
depends_on 'unixodbc'
def self.preinstall
phpver = `php -v 2> /dev/null | head -1 | cut -d' ' -f2`.chomp
abort "PHP version #{phpver} already installed.".lightgreen unless "#{phpver}" == ""
end
def self.patch
# Configuration
system "sed -i 's,;pid = run/php-fpm.pid,pid = #{CREW_PREFIX}/tmp/run/php-fpm.pid,' sapi/fpm/php-fpm.conf.in"
......
......@@ -7,11 +7,6 @@ class Php72 < Package
source_url 'https://www.php.net/distributions/php-7.2.30.tar.xz'
source_sha256 'aa93df27b58a45d6c9800ac813245dfdca03490a918ebe515b3a70189b1bf8c3'
if ARGV[0] == 'install'
phpver = `php -v 2> /dev/null | head -1 | cut -d' ' -f2`.chomp
abort "PHP version #{phpver} already installed.".lightgreen unless "#{phpver}" == ""
end
binary_url ({
aarch64: 'https://dl.bintray.com/chromebrew/chromebrew/php72-7.2.30-chromeos-armv7l.tar.xz',
armv7l: 'https://dl.bintray.com/chromebrew/chromebrew/php72-7.2.30-chromeos-armv7l.tar.xz',
......@@ -37,6 +32,11 @@ class Php72 < Package
depends_on 'tidy'
depends_on 'unixodbc'
def self.preinstall
phpver = `php -v 2> /dev/null | head -1 | cut -d' ' -f2`.chomp
abort "PHP version #{phpver} already installed.".lightgreen unless "#{phpver}" == ""
end
def self.patch
# Configuration
system "sed -i 's,;pid = run/php-fpm.pid,pid = #{CREW_PREFIX}/tmp/run/php-fpm.pid,' sapi/fpm/php-fpm.conf.in"
......
......@@ -7,11 +7,6 @@ class Php73 < Package
source_url 'https://www.php.net/distributions/php-7.3.17.tar.xz'
source_sha256 '6a30304c27f7e7a94538f5ffec599f600ee93aedbbecad8aa4f8bec539b10ad8'
if ARGV[0] == 'install'
phpver = `php -v 2> /dev/null | head -1 | cut -d' ' -f2`.chomp
abort "PHP version #{phpver} already installed.".lightgreen unless "#{phpver}" == ""
end
binary_url ({
aarch64: 'https://dl.bintray.com/chromebrew/chromebrew/php73-7.3.17-chromeos-armv7l.tar.xz',
armv7l: 'https://dl.bintray.com/chromebrew/chromebrew/php73-7.3.17-chromeos-armv7l.tar.xz',
......@@ -37,6 +32,11 @@ class Php73 < Package
depends_on 'tidy'
depends_on 'unixodbc'
def self.preinstall
phpver = `php -v 2> /dev/null | head -1 | cut -d' ' -f2`.chomp
abort "PHP version #{phpver} already installed.".lightgreen unless "#{phpver}" == ""
end
def self.patch
# Configuration
system "sed -i 's,;pid = run/php-fpm.pid,pid = #{CREW_PREFIX}/tmp/run/php-fpm.pid,' sapi/fpm/php-fpm.conf.in"
......
......@@ -7,11 +7,6 @@ class Php74 < Package
source_url 'https://www.php.net/distributions/php-7.4.5.tar.xz'
source_sha256 'd059fd7f55bdc4d2eada15a00a2976697010d3631ef6f83149cc5289e1f23c2c'
if ARGV[0] == 'install'
phpver = `php -v 2> /dev/null | head -1 | cut -d' ' -f2`.chomp
abort "PHP version #{phpver} already installed.".lightgreen unless "#{phpver}" == ""
end
binary_url ({
aarch64: 'https://dl.bintray.com/chromebrew/chromebrew/php74-7.4.5-chromeos-armv7l.tar.xz',
armv7l: 'https://dl.bintray.com/chromebrew/chromebrew/php74-7.4.5-chromeos-armv7l.tar.xz',
......@@ -42,6 +37,11 @@ class Php74 < Package
depends_on 'unixodbc'
depends_on 'oniguruma'
def self.preinstall
phpver = `php -v 2> /dev/null | head -1 | cut -d' ' -f2`.chomp
abort "PHP version #{phpver} already installed.".lightgreen unless "#{phpver}" == ""
end
def self.patch
# Configuration
system "sed -i 's,;pid = run/php-fpm.pid,pid = #{CREW_PREFIX}/tmp/run/php-fpm.pid,' sapi/fpm/php-fpm.conf.in"
......
......@@ -26,7 +26,7 @@ class Python3 < Package
depends_on 'krb5'
depends_on 'libtirpc'
if ARGV[0] == 'install' || ARGV[0] == 'reinstall' || ARGV[0] == 'upgrade'
def self.preinstall
# Fix ImportError: cannot import name 'PackageFinder'.
# See https://stackoverflow.com/questions/59887436/importerror-cannot-import-name-packagefinder.
FileUtils.rm_rf Dir.glob("#{CREW_PREFIX}/lib/python3.8/site-packages/pip*")
......
......@@ -7,11 +7,6 @@ class Vim < Package
source_url 'https://github.com/vim/vim/archive/v8.2.0346.tar.gz'
source_sha256 '418d1cbc9f53f31cb19869b6df0294ca5c377ca2824c759e3f6796edc60e5628'
if ARGV[0] == 'install'
gvim = `which gvim 2> /dev/null`.chomp
abort "gvim version #{version} already installed.".lightgreen unless "#{gvim}" == ""
end
binary_url ({
aarch64: 'https://dl.bintray.com/chromebrew/chromebrew/vim-8.2.0346-chromeos-armv7l.tar.xz',
armv7l: 'https://dl.bintray.com/chromebrew/chromebrew/vim-8.2.0346-chromeos-armv7l.tar.xz',
......@@ -29,6 +24,11 @@ class Vim < Package
depends_on 'python3' => :build
depends_on 'vim_runtime'
def self.preinstall
gvim = `which gvim 2> /dev/null`.chomp
abort "gvim version #{version} already installed.".lightgreen unless "#{gvim}" == ""
end
def self.patch
# set the system-wide vimrc path
FileUtils.cd('src') do
......@@ -39,7 +39,7 @@ class Vim < Package
end
def self.build
system "./configure",
system './configure',
"--prefix=#{CREW_PREFIX}",
"--localstatedir=#{CREW_PREFIX}/var/lib/vim",
'--with-features=huge',
......
......@@ -22,15 +22,13 @@ class Wput < Package
depends_on 'gnutls'
def self.preinstall
def self.patch
system "curl -Ls -o config.guess 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD'"
system "curl -Ls -o config.sub 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'"
end
def self.build
system './configure',
"--prefix=#{CREW_PREFIX}",
"--libdir=#{CREW_LIB_PREFIX}"
system "./configure #{CREW_OPTIONS}"
system 'make'
end
......
......@@ -24,7 +24,7 @@ class Xmlclitools < Package
depends_on 'pcre'
depends_on 'libxml2'
def self.preinstall
def self.patch
system "sed -i 's,/usr/local,#{CREW_DEST_PREFIX},g' Makefile"
system "sed -i 's,/usr/include,#{CREW_PREFIX}/include,g' Makefile"
system "sed -i 's,/usr/lib,#{CREW_LIB_PREFIX},g' Makefile"
......
......@@ -20,16 +20,13 @@ class Zsync < Package
x86_64: 'ce5a3c89fec4f13638ade49db7c2c45ca169e86b34687b3c55710f534789aba6',
})
def self.preinstall
def self.patch
system "curl -Ls -o autotools/config.guess 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD'"
system "curl -Ls -o autotools/config.sub 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'"
end
def self.build
system './configure',
"--prefix=#{CREW_PREFIX}",
"--libdir=#{CREW_LIB_PREFIX}",
'--disable-maintainer-mode'
system "./configure #{CREW_OPTIONS} --disable-maintainer-mode"
system 'make'
end
......
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