mirror of
https://github.com/chromebrew/chromebrew.git
synced 2026-01-09 23:48:01 -05:00
New musl toolchain w/ static git, curl, lzip (and gcc11 rebuilds to fix brokenness on i686) (#6431)
* Musl revamp * Cleanup Musl Packages * fixup musl_libnghttp2 * fixup musl_libucontext
This commit is contained in:
98
lib/musl.rb
Normal file
98
lib/musl.rb
Normal file
@@ -0,0 +1,98 @@
|
||||
ENV['CREW_DISABLE_ENV_OPTIONS'] = '1'
|
||||
warn_level = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
load "#{CREW_LIB_PATH}lib/const.rb"
|
||||
# Defines common musl build constants used in musl builds
|
||||
MUSL_ABI = ''
|
||||
MUSL_ARCH = ARCH
|
||||
MUSL_ARCH_SSP_CFLAGS = ''
|
||||
MUSL_ARCH_C_FLAGS = ''
|
||||
MUSL_ARCH_CXX_FLAGS = ''
|
||||
case ARCH
|
||||
when 'aarch64', 'armv7l'
|
||||
MUSL_ABI = 'eabihf'
|
||||
MUSL_ARCH = 'armhf'
|
||||
end
|
||||
|
||||
MUSL_CFLAGS = "-isysroot=#{CREW_MUSL_PREFIX} -B#{CREW_MUSL_PREFIX}/include -flto -pipe -O2 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{MUSL_ARCH_C_FLAGS} #{MUSL_ARCH_SSP_CFLAGS} -fcommon -fPIC -ffunction-sections -fdata-sections"
|
||||
MUSL_CXXFLAGS = "-isysroot=#{CREW_MUSL_PREFIX} -B#{CREW_MUSL_PREFIX}/include -flto -pipe -O2 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{MUSL_ARCH_CXX_FLAGS} #{MUSL_ARCH_SSP_CFLAGS} -fcommon -fPIC -ffunction-sections -fdata-sections"
|
||||
# Setting -static & -flto in CMAKE LDFLAGS breaks builds
|
||||
MUSL_CMAKE_LDFLAGS = "-flto"
|
||||
unless @pkg.is_static?
|
||||
MUSL_LDFLAGS = "-L#{CREW_MUSL_PREFIX}/lib -Wl,-rpath=#{CREW_MUSL_PREFIX}/lib -Wl,--enable-new-dtags -Wl,--dynamic-linker,#{CREW_MUSL_PREFIX}/lib/libc.so -Wl,--gc-sections -flto -isysroot=#{CREW_MUSL_PREFIX} "
|
||||
MUSL_PKG_CONFIG = 'pkg-config'
|
||||
else
|
||||
MUSL_LDFLAGS = "-L#{CREW_MUSL_PREFIX}/lib -Wl,-rpath=#{CREW_MUSL_PREFIX}/lib -Wl,--enable-new-dtags -Wl,--gc-sections -flto -isysroot=#{CREW_MUSL_PREFIX} -static "
|
||||
MUSL_PKG_CONFIG = 'pkg-config --static'
|
||||
end
|
||||
MUSL_ENV_OPTIONS = "PATH=#{CREW_MUSL_PREFIX}/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_MUSL_PREFIX}/bin/#{ARCH}-linux-musl#{MUSL_ABI}-gcc' \
|
||||
CXX='#{CREW_MUSL_PREFIX}/bin/#{ARCH}-linux-musl#{MUSL_ABI}-g++' \
|
||||
LD='#{CREW_MUSL_PREFIX}/bin/#{ARCH}-linux-musl#{MUSL_ABI}-ld.gold -L#{CREW_MUSL_PREFIX}/lib' \
|
||||
AR=#{CREW_MUSL_PREFIX}/bin/#{ARCH}-linux-musl#{MUSL_ABI}-ar \
|
||||
LIBRARY_PATH=#{CREW_MUSL_PREFIX}/lib \
|
||||
MUSL_PKG_CONFIG='#{MUSL_PKG_CONFIG}' \
|
||||
PKG_CONFIG_LIBDIR=#{CREW_MUSL_PREFIX}/lib/pkgconfig \
|
||||
CFLAGS='#{MUSL_CFLAGS}' \
|
||||
CXXFLAGS='#{MUSL_CXXFLAGS}' \
|
||||
CPPFLAGS='-I#{CREW_MUSL_PREFIX}/include -fcommon -idirafter#{CREW_PREFIX}/include' \
|
||||
LDFLAGS='#{MUSL_LDFLAGS}'"
|
||||
MUSL_CMAKE_OPTIONS = "PATH=#{CREW_MUSL_PREFIX}/bin:#{CREW_MUSL_PREFIX}/#{ARCH}-linux-musl#{MUSL_ABI}/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_MUSL_PREFIX}/bin/#{ARCH}-linux-musl#{MUSL_ABI}-gcc' \
|
||||
CXX='#{CREW_MUSL_PREFIX}/bin/#{ARCH}-linux-musl#{MUSL_ABI}-g++' \
|
||||
LD=#{CREW_MUSL_PREFIX}/bin/#{ARCH}-linux-musl#{MUSL_ABI}-ld.gold \
|
||||
AR=#{CREW_MUSL_PREFIX}/bin/#{ARCH}-linux-musl#{MUSL_ABI}-ar \
|
||||
MUSL_PKG_CONFIG='#{MUSL_PKG_CONFIG}' \
|
||||
PKG_CONFIG_LIBDIR=#{CREW_MUSL_PREFIX}/lib/pkgconfig \
|
||||
CFLAGS='#{MUSL_CFLAGS}' \
|
||||
CXXFLAGS='#{MUSL_CXXFLAGS}' \
|
||||
CPPFLAGS='-I#{CREW_MUSL_PREFIX}/include -fcommon -idirafter#{CREW_PREFIX}/include' \
|
||||
LDFLAGS='#{MUSL_CMAKE_LDFLAGS}' \
|
||||
cmake \
|
||||
-DCMAKE_INSTALL_PREFIX='#{CREW_MUSL_PREFIX}' \
|
||||
-DCMAKE_INSTALL_LIBDIR='#{CREW_MUSL_PREFIX}/lib' \
|
||||
-DCMAKE_LIBRARY_PATH='#{CREW_MUSL_PREFIX}/lib' \
|
||||
-DCMAKE_C_COMPILER=#{CREW_MUSL_PREFIX}/bin/#{ARCH}-linux-musl#{MUSL_ABI}-gcc \
|
||||
-DCMAKE_CXX_COMPILER=#{CREW_MUSL_PREFIX}/bin/#{ARCH}-linux-musl#{MUSL_ABI}-g++ \
|
||||
-DCMAKE_INCLUDE_DIRECTORIES_BEFORE=ON \
|
||||
-DINCLUDE_DIRECTORIES=#{CREW_MUSL_PREFIX}/include \
|
||||
-DCMAKE_C_FLAGS='#{MUSL_CFLAGS}' \
|
||||
-DCMAKE_CXX_FLAGS='#{MUSL_CXXFLAGS}' \
|
||||
-DCMAKE_EXE_LINKER_FLAGS='#{MUSL_CMAKE_LDFLAGS}' \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS='#{MUSL_CMAKE_LDFLAGS}' \
|
||||
-DCMAKE_STATIC_LINKER_FLAGS='#{MUSL_CMAKE_LDFLAGS}' \
|
||||
-DCMAKE_MODULE_LINKER_FLAGS='#{MUSL_CMAKE_LDFLAGS}' \
|
||||
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=TRUE \
|
||||
-DCMAKE_BUILD_TYPE=Release"
|
||||
|
||||
$VERBOSE = warn_level
|
||||
|
||||
class Musl
|
||||
class << self
|
||||
def patchelf
|
||||
puts 'Running Musl.patchelf'.lightblue
|
||||
abort('No Patchelf found!').lightred unless File.exist?("#{CREW_PREFIX}/bin/patchelf")
|
||||
|
||||
@execfiles = `find . -executable -type f ! \\( -name \"*.a\" \\) -exec sh -c \"file -i \'{}\' | grep -q \'executable; charset=binary\'\" \\; -exec ls -1i {} \\; | sort -u -n -s -k1,1 | awk '{print $2}'`.chomp
|
||||
return if @execfiles.empty? || @execfiles.nil?
|
||||
|
||||
puts 'Running patchelf to patch binaries for musl paths'.lightblue
|
||||
@execfiles.each_line do |execfiletopatch|
|
||||
execfiletopatch.slice! '.'
|
||||
execfiletopatch = `pwd`.chomp + execfiletopatch.chomp
|
||||
system "patchelf --set-interpreter #{CREW_MUSL_PREFIX}/lib/libc.so #{execfiletopatch}"
|
||||
system "patchelf --set-rpath #{CREW_MUSL_PREFIX}/lib #{execfiletopatch}"
|
||||
@neededlibs = `patchelf --print-needed #{execfiletopatch}`.chomp
|
||||
next if @neededlibs.empty? || @neededlibs.nil?
|
||||
|
||||
@neededlibs.each_line do |neededlibspatch|
|
||||
next if neededlibspatch.include?("#{CREW_MUSL_PREFIX}/lib")
|
||||
|
||||
@neededlibspatchednamepath = "#{CREW_MUSL_PREFIX}/lib/" + File.basename(neededlibspatch)
|
||||
puts "patchelf --replace-needed #{neededlibspatch.chomp} #{@neededlibspatchednamepath.chomp} #{execfiletopatch}"
|
||||
system "patchelf --replace-needed #{neededlibspatch.chomp} #{@neededlibspatchednamepath.chomp} #{execfiletopatch}"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -3,7 +3,7 @@ require 'package_helpers'
|
||||
class Package
|
||||
property :description, :homepage, :version, :license, :compatibility,
|
||||
:binary_url, :binary_sha256, :source_url, :source_sha256,
|
||||
:git_branch, :git_hashtag, :is_fake
|
||||
:git_branch, :git_hashtag, :is_fake, :is_static
|
||||
|
||||
create_placeholder :preflight, # Function for checks to see if install should occur.
|
||||
:patch, # Function to perform patch operations prior to build from source.
|
||||
@@ -17,7 +17,7 @@ class Package
|
||||
:remove # Function to perform after package removal.
|
||||
|
||||
class << self
|
||||
attr_reader :is_fake
|
||||
attr_reader :is_fake, :is_static
|
||||
attr_accessor :name, :is_dep, :in_build, :build_from_source
|
||||
attr_accessor :in_upgrade
|
||||
end
|
||||
@@ -110,6 +110,14 @@ class Package
|
||||
@is_fake
|
||||
end
|
||||
|
||||
def self.is_static
|
||||
@is_static = true
|
||||
end
|
||||
|
||||
def self.is_static?
|
||||
@is_static
|
||||
end
|
||||
|
||||
def self.system(*args, **opt_args)
|
||||
# add "-j#" argument to "make" at compile-time, if necessary
|
||||
|
||||
|
||||
218
packages/curl.rb
218
packages/curl.rb
@@ -3,224 +3,12 @@ require 'package'
|
||||
class Curl < Package
|
||||
description 'Command line tool and library for transferring data with URLs.'
|
||||
homepage 'https://curl.se/'
|
||||
@_ver = '7.79.1'
|
||||
@_ver = '7.81.0'
|
||||
version @_ver
|
||||
license 'curl'
|
||||
compatibility 'all'
|
||||
source_url "https://github.com/curl/curl/releases/download/curl-#{@_ver.gsub('.', '_')}/curl-#{@_ver}.tar.xz"
|
||||
source_sha256 '0606f74b1182ab732a17c11613cbbaf7084f2e6cca432642d0e3ad7c224c3689'
|
||||
is_fake
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/curl/7.79.1_armv7l/curl-7.79.1-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/curl/7.79.1_armv7l/curl-7.79.1-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/curl/7.79.1_i686/curl-7.79.1-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/curl/7.79.1_x86_64/curl-7.79.1-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: '28c0602e433b079f2767f4cea9de66d5a20eb20b384c1575972911033241e630',
|
||||
armv7l: '28c0602e433b079f2767f4cea9de66d5a20eb20b384c1575972911033241e630',
|
||||
i686: '9594f4aa3265879bdaf6b301942bb093334459e642ef81a380a4d801e787a561',
|
||||
x86_64: '16ec35a35eb37a81ce3c3775f23299ca2bed4af567ea546297a169af05cca327'
|
||||
})
|
||||
depends_on 'libcurl'
|
||||
|
||||
depends_on 'ca_certificates' => :build
|
||||
depends_on 'libunbound' => :build
|
||||
depends_on 'musl_brotli' => :build
|
||||
depends_on 'musl_c_ares' => :build
|
||||
depends_on 'musl_cyrus_sasl' => :build
|
||||
depends_on 'musl_krb5' => :build
|
||||
depends_on 'musl_libidn2' => :build
|
||||
depends_on 'musl_libnghttp2' => :build
|
||||
depends_on 'musl_libssh' => :build
|
||||
depends_on 'musl_libunistring' => :build
|
||||
depends_on 'musl_native_toolchain' => :build
|
||||
depends_on 'musl_ncurses' => :build
|
||||
depends_on 'musl_openssl' => :build
|
||||
depends_on 'musl_zlib' => :build
|
||||
depends_on 'musl_zstd' => :build
|
||||
depends_on 'rust' => :build
|
||||
depends_on 'valgrind' => :build
|
||||
depends_on 'libcurl' if ARCH == 'i686'
|
||||
|
||||
def self.patch
|
||||
# Curl 7.78.0 needs a patch to enable static builds.
|
||||
# See https://github.com/moparisthebest/static-curl/commit/0ab82474d449b7f2ea0d43451fd3951ebd49ddc3
|
||||
@curl_778_static_patch = <<~CURL_HEREDOC
|
||||
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||
index 734373187..37e3a1564 100644
|
||||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -66,6 +66,9 @@ else
|
||||
curl_LDADD = \$(top_builddir)/lib/libcurl.la @NSS_LIBS@ @SSL_LIBS@ @ZLIB_LIBS@ @CURL_NETWORK_AND_TIME_LIBS@
|
||||
endif
|
||||
#{' '}
|
||||
+curl_LDFLAGS = \$(curl_LDFLAGS)
|
||||
+curl_CPPFLAGS = \$(AM_CPPFLAGS)
|
||||
+
|
||||
# if unit tests are enabled, build a static library to link them with
|
||||
if BUILD_UNITTESTS
|
||||
noinst_LTLIBRARIES = libcurltool.la
|
||||
CURL_HEREDOC
|
||||
IO.write('curl_778_static.patch', @curl_778_static_patch)
|
||||
system 'patch -Np1 -i curl_778_static.patch'
|
||||
end
|
||||
|
||||
def self.build
|
||||
@abi = ''
|
||||
@arch_ssp_cflags = ''
|
||||
@arch_c_flags = ''
|
||||
@arch_cxx_flags = ''
|
||||
case ARCH
|
||||
when 'aarch64', 'armv7l'
|
||||
@abi = 'eabihf'
|
||||
@openssl_configure_target = 'linux-generic32'
|
||||
when 'i686'
|
||||
@arch_ssp_cflags = '-fno-stack-protector'
|
||||
@openssl_configure_target = 'linux-x86'
|
||||
when 'x86_64'
|
||||
@openssl_configure_target = 'linux-x86_64'
|
||||
end
|
||||
|
||||
@cflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_c_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@cxxflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_cxx_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@ldflags = "-L#{CREW_PREFIX}/musl/lib -flto -static"
|
||||
@cmake_ldflags = '-flto'
|
||||
@curldep_cmake_options = "PATH=#{CREW_PREFIX}/musl/bin:#{CREW_PREFIX}/musl/#{ARCH}-linux-musl#{@abi}/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
AR=#{CREW_PREFIX}/bin/ar \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@cmake_ldflags}' \
|
||||
cmake \
|
||||
-DCMAKE_INSTALL_PREFIX='#{CREW_PREFIX}/musl' \
|
||||
-DCMAKE_INSTALL_LIBDIR='#{CREW_PREFIX}/musl/lib' \
|
||||
-DCMAKE_LIBRARY_PATH='#{CREW_PREFIX}/musl/lib' \
|
||||
-DCMAKE_C_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc \
|
||||
-DCMAKE_CXX_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++ \
|
||||
-DCMAKE_INCLUDE_DIRECTORIES_BEFORE=ON \
|
||||
-DINCLUDE_DIRECTORIES=#{CREW_PREFIX}/musl/include \
|
||||
-DCMAKE_C_FLAGS='#{@cflags}' \
|
||||
-DCMAKE_CXX_FLAGS='#{@cxxflags}' \
|
||||
-DCMAKE_EXE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_STATIC_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_MODULE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DPROPERTY_INTERPROCEDURAL_OPTIMIZATION=TRUE \
|
||||
-DCMAKE_BUILD_TYPE=Release"
|
||||
|
||||
@curldep_env_options = "PATH=#{CREW_PREFIX}/musl/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
PKG_CONFIG_LIBDIR=#{CREW_PREFIX}/musl/lib \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -DCURL_STATICLIB -DNGHTTP2_STATICLIB -fcommon' \
|
||||
LDFLAGS='#{@ldflags}'"
|
||||
|
||||
@krb5_env_options = "PATH=#{CREW_PREFIX}/musl/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
LIBS='-l:libncursesw.a -l:libtinfow.a' \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -DCURL_STATICLIB -DNGHTTP2_STATICLIB -fcommon' \
|
||||
LDFLAGS=' #{@ldflags} -l:libncursesw.a -l:libtinfow.a'"
|
||||
|
||||
@krb5_static_libs = "#{CREW_PREFIX}/musl/lib/libkrb5support.a #{CREW_PREFIX}/musl/lib/libgssapi_krb5.a #{CREW_PREFIX}/musl/lib/libkrb5.a #{CREW_PREFIX}/musl/lib/libk5crypto.a #{CREW_PREFIX}/musl/lib/libcom_err.a"
|
||||
|
||||
@curl_lib_deps = "#{@krb5_static_libs} \
|
||||
-l:libresolv.a \
|
||||
-l:libm.a \
|
||||
-l:libbrotlicommon-static.a \
|
||||
-l:libbrotlidec-static.a \
|
||||
-l:libzstd.a \
|
||||
-l:libz.a \
|
||||
-l:libssl.a \
|
||||
-l:libcrypto.a \
|
||||
-l:libsasl2.a \
|
||||
-l:libnghttp2.a \
|
||||
-l:libpthread.a \
|
||||
-l:libncursesw.a \
|
||||
-l:libtinfow.a \
|
||||
-l:libcares.a \
|
||||
-l:libunistring.a \
|
||||
-l:libidn2.a \
|
||||
-l:libssh.a"
|
||||
|
||||
@curl_env_options = "PATH=#{CREW_PREFIX}/musl/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -DCURL_STATICLIB -DNGHTTP2_STATICLIB' \
|
||||
LDFLAGS='#{@ldflags}'"
|
||||
|
||||
system 'autoreconf -fvi'
|
||||
system 'filefix'
|
||||
system "#{@curl_env_options} \
|
||||
LIBS='#{@curl_lib_deps} \
|
||||
-L#{CREW_PREFIX}/musl/lib' \
|
||||
CURL_LIBRARY_PATH=#{CREW_PREFIX}/musl/lib \
|
||||
./configure --prefix=#{CREW_PREFIX}/musl \
|
||||
--libdir=#{CREW_PREFIX}/musl/lib \
|
||||
--disable-dependency-tracking \
|
||||
--disable-imap \
|
||||
--disable-ldap \
|
||||
--disable-ldaps \
|
||||
--disable-maintainer-mode \
|
||||
--disable-rtsp \
|
||||
--disable-shared \
|
||||
--enable-ares \
|
||||
--enable-ipv6 \
|
||||
--enable-static \
|
||||
--enable-unix-sockets \
|
||||
--with-brotli=#{CREW_PREFIX}/musl \
|
||||
--with-ca-bundle=#{CREW_PREFIX}/etc/ssl/certs/ca-certificates.crt \
|
||||
--with-ca-fallback \
|
||||
--with-ca-path=#{CREW_PREFIX}/etc/ssl/certs \
|
||||
--with-gssapi=#{CREW_PREFIX}/musl \
|
||||
--with-libidn2=#{CREW_PREFIX}/musl \
|
||||
--with-libssh=#{CREW_PREFIX}/musl \
|
||||
--with-nghttp2=#{CREW_PREFIX}/musl \
|
||||
--with-openssl=#{CREW_PREFIX}/musl \
|
||||
--without-librtmp \
|
||||
--with-zlib=#{CREW_PREFIX}/musl \
|
||||
"
|
||||
system 'make curl_LDFLAGS=-all-static'
|
||||
# FileUtils.cp 'src/curl', 'curl.static'
|
||||
end
|
||||
|
||||
def self.check
|
||||
# Fail if curl is not statically built.
|
||||
system 'ldd src/curl && exit 1 || true'
|
||||
system 'src/curl -Lf https://github.com/skycocker/chromebrew/raw/master/install.sh -o /tmp/install.sh'
|
||||
FileUtils.rm '/tmp/install.sh'
|
||||
end
|
||||
|
||||
def self.install
|
||||
ENV['CREW_FHS_NONCOMPLIANCE_ONLY_ADVISORY'] = '1'
|
||||
warn_level = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
load "#{CREW_LIB_PATH}lib/const.rb"
|
||||
$VERBOSE = warn_level
|
||||
system 'make', "DESTDIR=#{CREW_DEST_DIR}", 'install', 'curl_LDFLAGS=-all-static'
|
||||
# Curl already includes man pages via "curl -M"
|
||||
FileUtils.rm_rf "#{CREW_DEST_PREFIX}/musl/share/man"
|
||||
FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/bin"
|
||||
FileUtils.ln_s "#{CREW_DEST_PREFIX}/musl/bin/curl", "#{CREW_DEST_PREFIX}/bin/curl"
|
||||
# FileUtils.install 'curl.static', "#{CREW_DEST_PREFIX}/bin/curl", mode: 0o755
|
||||
end
|
||||
|
||||
def self.postinstall
|
||||
if ARCH == 'i686'
|
||||
puts 'Static curl is broken on i686, so using curl from the libcurl package.'.orange
|
||||
FileUtils.cp_r "#{CREW_PREFIX}/bin/curl.nonstatic", "#{CREW_PREFIX}/bin/curl", remove_destination: true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -4,23 +4,23 @@ require 'open3'
|
||||
class Gcc11 < Package
|
||||
description 'The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Ada, and Go.'
|
||||
homepage 'https://www.gnu.org/software/gcc/'
|
||||
version '11.2.0-1'
|
||||
version '11.2.1-20220108'
|
||||
license 'GPL-3, LGPL-3, libgcc, FDL-1.2'
|
||||
compatibility 'all'
|
||||
source_url 'https://ftpmirror.gnu.org/gcc/gcc-11.2.0/gcc-11.2.0.tar.xz'
|
||||
source_sha256 'd08edc536b54c372a1010ff6619dd274c0f1603aa49212ba20f7aa2cda36fa8b'
|
||||
source_url 'https://gcc.gnu.org/pub/gcc/snapshots/11-20220108/gcc-11-20220108.tar.xz'
|
||||
source_sha256 'a433837a85087c2357a456145ae140bd588e75d44a90031ed57c29de66e46468'
|
||||
|
||||
binary_url ({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/gcc11/11.2.0-1_armv7l/gcc11-11.2.0-1-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/gcc11/11.2.0-1_armv7l/gcc11-11.2.0-1-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/gcc11/11.2.0-1_i686/gcc11-11.2.0-1-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/gcc11/11.2.0-1_x86_64/gcc11-11.2.0-1-chromeos-x86_64.tpxz',
|
||||
binary_url({
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/gcc11/11.2.1-20220108_i686/gcc11-11.2.1-20220108-chromeos-i686.tar.xz',
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/gcc11/11.2.1-20220108_armv7l/gcc11-11.2.1-20220108-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/gcc11/11.2.1-20220108_armv7l/gcc11-11.2.1-20220108-chromeos-armv7l.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/gcc11/11.2.1-20220108_x86_64/gcc11-11.2.1-20220108-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256 ({
|
||||
aarch64: 'd0fcbe0b65b9c0e724b17e229bc85e441a9dabaaeec97d97e0e102a58d562e63',
|
||||
armv7l: 'd0fcbe0b65b9c0e724b17e229bc85e441a9dabaaeec97d97e0e102a58d562e63',
|
||||
i686: 'a81f10cac350d24b9a7a050a88288c5703a9f93916aa1018502eafec5daa71cc',
|
||||
x86_64: '21bbe0bb282d7d12acbbe5e9440f009c26223316c708ddd17cd32207649c5b91',
|
||||
binary_sha256({
|
||||
i686: '96cbdec476c3c75a41ae01e9b63060cca42f5ccb262253840c0083f8f7571a54',
|
||||
aarch64: 'cc48b179ccb035a15042e8a7534366ed0358cb69c84521659f7592b4ce08307b',
|
||||
armv7l: 'cc48b179ccb035a15042e8a7534366ed0358cb69c84521659f7592b4ce08307b',
|
||||
x86_64: 'f54549bbae4b15e8360cb73c72a168e168ce603ab4c16470c1b400efe8ca69f4'
|
||||
})
|
||||
|
||||
depends_on 'ccache' => :build
|
||||
@@ -31,6 +31,7 @@ class Gcc11 < Package
|
||||
depends_on 'mpc' # R
|
||||
depends_on 'mpfr' # R
|
||||
depends_on 'libssp' # L
|
||||
depends_on 'zstd' # R
|
||||
|
||||
@gcc_version = version.split('-')[0].partition('.')[0]
|
||||
|
||||
@@ -68,31 +69,31 @@ class Gcc11 < Package
|
||||
@languages = 'c,c++,jit,objc,fortran,go'
|
||||
case ARCH
|
||||
when 'armv7l', 'aarch64'
|
||||
@archflags = '--with-arch=armv7-a --with-float=hard --with-fpu=neon --with-tune=cortex-a15'
|
||||
@archflags = '--with-arch=armv7-a+fp --with-float=hard --with-fpu=neon --with-tune=cortex-a15'
|
||||
when 'x86_64'
|
||||
@archflags = '--with-arch-64=x86-64'
|
||||
when 'i686'
|
||||
@archflags = '--with-arch-32=i686'
|
||||
end
|
||||
|
||||
def self.preflight
|
||||
# Use full gcc path to bypass ccache
|
||||
stdout_and_stderr, status = Open3.capture2e('bash', '-c',
|
||||
"#{CREW_PREFIX}/bin/gcc -dumpversion 2>&1 | tail -1 | cut -d' ' -f1")
|
||||
if status.success?
|
||||
installed_gccver = stdout_and_stderr.chomp
|
||||
# One gets "-dumpversion" or "bash:" with no gcc installed.
|
||||
unless installed_gccver.to_s == '-dumpversion' ||
|
||||
installed_gccver.to_s == 'bash:' ||
|
||||
installed_gccver.to_s == @gcc_version.to_s ||
|
||||
installed_gccver.partition('.')[0].to_s == @gcc_version.partition('.')[0].to_s
|
||||
warn "GCC version #{installed_gccver} is currently installed.".lightred
|
||||
warn "To use #{to_s.downcase} please run:".lightgreen
|
||||
warn "crew remove gcc#{installed_gccver} && crew install #{to_s.downcase}".lightgreen
|
||||
exit 1
|
||||
end
|
||||
end
|
||||
end
|
||||
# def self.preflight
|
||||
## Use full gcc path to bypass ccache
|
||||
# stdout_and_stderr, status = Open3.capture2e('bash', '-c',
|
||||
# "#{CREW_PREFIX}/bin/gcc -dumpversion 2>&1 | tail -1 | cut -d' ' -f1")
|
||||
# if status.success?
|
||||
# installed_gccver = stdout_and_stderr.chomp
|
||||
## One gets "-dumpversion" or "bash:" with no gcc installed.
|
||||
# unless installed_gccver.to_s == '-dumpversion' ||
|
||||
# installed_gccver.to_s == 'bash:' ||
|
||||
# installed_gccver.to_s == @gcc_version.to_s ||
|
||||
# installed_gccver.partition('.')[0].to_s == @gcc_version.partition('.')[0].to_s
|
||||
# warn "GCC version #{installed_gccver} is currently installed.".lightred
|
||||
# warn "To use #{to_s.downcase} please run:".lightgreen
|
||||
# warn "crew remove gcc#{installed_gccver} && crew install #{to_s.downcase}".lightgreen
|
||||
# exit 1
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
|
||||
def self.patch
|
||||
# This fixes a PATH_MAX undefined error which breaks libsanitizer
|
||||
@@ -131,8 +132,8 @@ class Gcc11 < Package
|
||||
done
|
||||
exec gcc $fl ${1+"$@"}
|
||||
EOF
|
||||
IO.write 'c99', @C99
|
||||
IO.write 'c89', @C89
|
||||
File.write 'c99', @C99
|
||||
File.write 'c89', @C89
|
||||
end
|
||||
|
||||
def self.build
|
||||
@@ -179,6 +180,7 @@ class Gcc11 < Package
|
||||
Dir.chdir('objdir') do
|
||||
system "env NM=gcc-nm AR=gcc-ar RANLIB=gcc-ranlib \
|
||||
CFLAGS='#{@cflags}' CXXFLAGS='#{@cxxflags}' \
|
||||
LDFLAGS='-L#{CREW_LIB_PREFIX}/lib -Wl,-rpath=#{CREW_LIB_PREFIX}' \
|
||||
LIBRARY_PATH=#{CREW_LIB_PREFIX} PATH=#{@path} \
|
||||
../configure #{CREW_OPTIONS} \
|
||||
#{@gcc_global_opts} \
|
||||
|
||||
487
packages/git.rb
487
packages/git.rb
@@ -3,436 +3,107 @@ require 'package'
|
||||
class Git < Package
|
||||
description 'Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.'
|
||||
homepage 'https://git-scm.com/'
|
||||
@_ver = '2.32.0'
|
||||
version "#{@_ver}-musl-1"
|
||||
@_ver = '2.34.1'
|
||||
version @_ver
|
||||
license 'GPL-2'
|
||||
compatibility 'all'
|
||||
source_url "https://github.com/git/git/archive/v#{@_ver}.tar.gz"
|
||||
source_sha256 '004697482b6e3b0ae9147580c32efd35869426227f1526f8eafa7950c31def94'
|
||||
source_url 'https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.34.1.tar.gz'
|
||||
source_sha256 'fc4eb5ecb9299db91cdd156c06cdeb41833f53adc5631ddf8c0cb13eaa2911c1'
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/git/2.32.0-musl-1_armv7l/git-2.32.0-musl-1-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/git/2.32.0-musl-1_armv7l/git-2.32.0-musl-1-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/git/2.32.0-musl-1_i686/git-2.32.0-musl-1-chromeos-i686.tar.xz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/git/2.32.0-musl-1_x86_64/git-2.32.0-musl-1-chromeos-x86_64.tpxz'
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/git/2.34.1_armv7l/git-2.34.1-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/git/2.34.1_armv7l/git-2.34.1-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/git/2.34.1_i686/git-2.34.1-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/git/2.34.1_x86_64/git-2.34.1-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: 'f9dce49267eab2dd52233ff8bfdc6899f482dd17dc67a50eebbd2e531a2aa6b4',
|
||||
armv7l: 'f9dce49267eab2dd52233ff8bfdc6899f482dd17dc67a50eebbd2e531a2aa6b4',
|
||||
i686: '4e7ea06987c4ccea0ec900bffaba2184b48d3ca0d4d33d08134f23e1dc590129',
|
||||
x86_64: '17eac279771387b441bd0175cd30451e5ac6f5cb2cd21f73f99477fadba5d947'
|
||||
aarch64: '62c32b857d959173de8b8981d3ffa6fb6c0e10a8732626ad6a64189e794203a4',
|
||||
armv7l: '62c32b857d959173de8b8981d3ffa6fb6c0e10a8732626ad6a64189e794203a4',
|
||||
i686: '5823cc34dfb018e731ec73f867c43e801608c1097353c17ceb6802ba8f4e0f74',
|
||||
x86_64: '4e68335c044cae606598d503f31fba0c3516937003412c2df64dcc5202c64d10'
|
||||
})
|
||||
|
||||
depends_on 'ca_certificates' => :build
|
||||
depends_on 'hashpipe' => :build
|
||||
depends_on 'py3_pip' => :build
|
||||
depends_on 'musl_curl' => :build
|
||||
depends_on 'rust' => :build
|
||||
depends_on 'valgrind' => :build
|
||||
depends_on 'musl_brotli' => :build
|
||||
depends_on 'musl_libidn2' => :build
|
||||
depends_on 'musl_libunistring' => :build
|
||||
depends_on 'musl_native_toolchain' => :build
|
||||
depends_on 'musl_ncurses' => :build
|
||||
depends_on 'musl_openssl' => :build
|
||||
depends_on 'musl_zlib' => :build
|
||||
depends_on 'musl_zstd' => :build
|
||||
depends_on 'musl_expat' => :build
|
||||
|
||||
@deppath = "#{`pwd`.chomp}/deproot"
|
||||
is_static
|
||||
|
||||
def self.patch
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
# Patch to prevent error function conflict with libidn2
|
||||
# By replacing all calls to error with git_error.
|
||||
system "sed -i 's,^#undef error\$,#undef git_error,' usage.c"
|
||||
sedcmd = 's/\([[:blank:]]\)error(/\1git_error(/'.dump
|
||||
system "grep -rl '[[:space:]]error(' . | xargs sed -i #{sedcmd}"
|
||||
sedcmd2 = 's/\([[:blank:]]\)error (/\1git_error (/'.dump
|
||||
system "grep -rl '[[:space:]]error (' . | xargs sed -i #{sedcmd2}"
|
||||
system "grep -rl ' !!error(' . | xargs sed -i 's/ \!\!error(/ \!\!git_error(/g'"
|
||||
system "sed -i 's/#define git_error(...) (error(__VA_ARGS__), const_error())/#define git_error(...) (git_error(__VA_ARGS__), const_error())/' git-compat-util.h"
|
||||
# CMake patches.
|
||||
# Avoid undefined reference to `trace2_collect_process_info' & `obstack_free'
|
||||
system "sed -i 's,compat_SOURCES unix-socket.c unix-stream-server.c,compat_SOURCES unix-socket.c unix-stream-server.c compat/linux/procinfo.c compat/obstack.c,g' contrib/buildsystems/CMakeLists.txt"
|
||||
# The VCPKG optout in this CmakeLists.txt file is quite broken.
|
||||
system "sed -i 's/set(USE_VCPKG/#set(USE_VCPKG/g' contrib/buildsystems/CMakeLists.txt"
|
||||
system "sed -i 's,set(PERL_PATH /usr/bin/perl),set(PERL_PATH #{CREW_PREFIX}/bin/perl),g' contrib/buildsystems/CMakeLists.txt"
|
||||
system "sed -i 's,#!/usr/bin,#!#{CREW_PREFIX}/bin,g' contrib/buildsystems/CMakeLists.txt"
|
||||
# Without the following DESTDIR doesn't work.
|
||||
system "sed -i 's,\${CMAKE_INSTALL_PREFIX}/bin/git,\${CMAKE_BINARY_DIR}/git,g' contrib/buildsystems/CMakeLists.txt"
|
||||
system "sed -i 's,\${CMAKE_INSTALL_PREFIX}/bin/git,\\\\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/bin/git,g' contrib/buildsystems/CMakeLists.txt"
|
||||
system "sed -i 's,\${CMAKE_INSTALL_PREFIX},\\\\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX},g' contrib/buildsystems/CMakeLists.txt"
|
||||
end
|
||||
|
||||
def self.build
|
||||
|
||||
# Create a new buildroot just for musl.
|
||||
FileUtils.mkdir_p 'build'
|
||||
FileUtils.mkdir_p 'deproot/include'
|
||||
FileUtils.mkdir_p 'deproot/lib'
|
||||
Dir.chdir 'deproot' do
|
||||
FileUtils.ln_s 'lib', 'lib64'
|
||||
end
|
||||
@deppath = "#{`pwd`.chomp}/deproot"
|
||||
# some linux headers need to be symlinked in.
|
||||
FileUtils.ln_s "#{CREW_PREFIX}/include/linux", "#{@deppath}/include/"
|
||||
FileUtils.ln_s "#{CREW_PREFIX}/include/asm", "#{@deppath}/include/"
|
||||
FileUtils.ln_s "#{CREW_PREFIX}/include/asm-generic", "#{@deppath}/include/"
|
||||
|
||||
# Install musl-native compiler from musl.cc
|
||||
# The existing musl package only offers a gcc wrapper, which doesn't
|
||||
# work for c++ programs. We need a full musl runtime to be able to
|
||||
# build with musl. Luckily, this is easy.
|
||||
puts "Getting musl native compiler for #{ARCH}".lightblue
|
||||
Dir.chdir 'deproot' do
|
||||
case ARCH
|
||||
when 'i686'
|
||||
system 'curl -Ls https://musl.cc/i686-linux-musl-native.tgz | \
|
||||
hashpipe sha256 ae18b6d0fa58a638dba3b6efa1e660433fe9c0a0ef4283955dd934bc09a9898e | \
|
||||
tar --strip-components=1 -zxf -'
|
||||
when 'armv7l'
|
||||
system 'curl -Ls https://musl.cc/armv7l-linux-musleabihf-native.tgz | \
|
||||
hashpipe sha256 bf54a4762aed1a53be247bd5ead66569145c02d7ec78f405b184a7cda80149d1 | \
|
||||
tar --strip-components=1 -zxf -'
|
||||
when 'aarch64'
|
||||
system 'curl -Ls https://musl.cc/aarch64-linux-musl-native.tgz | \
|
||||
hashpipe sha256 dde5a762e59c7ef16680e7371b50734646eb4fcd7963f557ce0e65044e17e2e6 | \
|
||||
tar --strip-components=1 -zxf -'
|
||||
when 'x86_64'
|
||||
system 'curl -Ls https://musl.cc/x86_64-linux-musl-native.tgz | \
|
||||
hashpipe sha256 6bceb516e51d2eecc65e9670f605692fec419bb7ecca701bb021b720f71d6d86 | \
|
||||
tar --strip-components=1 -zxf -'
|
||||
FileUtils.ln_sf 'lib/ld.so', 'lib/ld-musl-x86_64.so.1'
|
||||
end
|
||||
end
|
||||
|
||||
@abi = ''
|
||||
@arch_ssp_cflags = ''
|
||||
@arch_c_flags = ''
|
||||
@arch_cxx_flags = ''
|
||||
case ARCH
|
||||
when 'aarch64', 'armv7l'
|
||||
@abi = 'eabihf'
|
||||
@openssl_configure_target = 'linux-generic32'
|
||||
when 'i686'
|
||||
@arch_ssp_cflags = '-fno-stack-protector'
|
||||
@openssl_configure_target = 'linux-x86'
|
||||
when 'x86_64'
|
||||
@openssl_configure_target = 'linux-x86_64'
|
||||
end
|
||||
|
||||
@cflags = "-B#{@deppath}/include -flto -pipe -O3 -fPIC -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_c_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@cxxflags = "-B#{@deppath}/include -flto -pipe -O3 -fPIC -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_cxx_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@ldflags = "-L#{@deppath}/#{ARCH_LIB} -flto -static"
|
||||
@cmake_ldflags = '-flto'
|
||||
@curldep_cmake_options = "PATH=#{@deppath}/bin:#{@deppath}/#{ARCH}-linux-musl#{@abi}/bin:#{ENV['PATH']} \
|
||||
CC='#{@deppath}/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{@deppath}/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{@deppath}/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
AR=#{CREW_PREFIX}/bin/ar \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{@deppath}/include -fcommon' \
|
||||
LDFLAGS='#{@cmake_ldflags}' \
|
||||
cmake \
|
||||
-DCMAKE_INSTALL_PREFIX='#{@deppath}' \
|
||||
-DCMAKE_LIBRARY_PATH='#{@deppath}/#{ARCH_LIB}' \
|
||||
-DCMAKE_C_COMPILER=#{@deppath}/bin/#{ARCH}-linux-musl#{@abi}-gcc \
|
||||
-DCMAKE_CXX_COMPILER=#{@deppath}/bin/#{ARCH}-linux-musl#{@abi}-g++ \
|
||||
-DCMAKE_INCLUDE_DIRECTORIES_BEFORE=ON \
|
||||
-DINCLUDE_DIRECTORIES=#{@deppath}/include \
|
||||
-DCMAKE_C_FLAGS='#{@cflags}' \
|
||||
-DCMAKE_CXX_FLAGS='#{@cxxflags}' \
|
||||
-DCMAKE_EXE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_STATIC_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_MODULE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DPROPERTY_INTERPROCEDURAL_OPTIMIZATION=TRUE \
|
||||
-DCMAKE_BUILD_TYPE=Release"
|
||||
|
||||
@curldep_env_options = "PATH=#{@deppath}/bin:#{ENV['PATH']} \
|
||||
CC='#{@deppath}/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{@deppath}/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{@deppath}/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
PKG_CONFIG_LIBDIR=#{@deppath}/#{ARCH_LIB} \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{@deppath}/include -DCURL_STATICLIB -DNGHTTP2_STATICLIB -fcommon' \
|
||||
LDFLAGS='#{@ldflags}'"
|
||||
|
||||
@krb5_env_options = "PATH=#{@deppath}/bin:#{ENV['PATH']} \
|
||||
CC='#{@deppath}/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{@deppath}/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{@deppath}/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
LIBS='-l:libncursesw.a -l:libtinfow.a' \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{@deppath}/include -DCURL_STATICLIB -DNGHTTP2_STATICLIB -fcommon' \
|
||||
LDFLAGS=' #{@ldflags} -l:libncursesw.a -l:libtinfow.a'"
|
||||
|
||||
FileUtils.mkdir_p 'build/zlib'
|
||||
Dir.chdir 'build/zlib' do
|
||||
puts 'Building Zlib.'.yellow
|
||||
system 'curl -Ls http://zlib.net/zlib-1.2.11.tar.gz | \
|
||||
hashpipe sha256 c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1 | \
|
||||
tar --strip-components=1 -zxf -'
|
||||
system "#{@curldep_env_options} ./configure --prefix=#{@deppath} \
|
||||
--static"
|
||||
system 'make'
|
||||
system 'make install'
|
||||
end
|
||||
|
||||
FileUtils.mkdir_p 'build/unistring'
|
||||
Dir.chdir 'build/unistring' do
|
||||
puts 'Building Unistring.'.yellow
|
||||
system 'curl -Ls https://ftpmirror.gnu.org/libunistring/libunistring-0.9.10.tar.xz | \
|
||||
hashpipe sha256 eb8fb2c3e4b6e2d336608377050892b54c3c983b646c561836550863003c05d7 | \
|
||||
tar --strip-components=1 -Jxf -'
|
||||
system "#{@curldep_env_options} \
|
||||
./configure --prefix=#{@deppath} \
|
||||
--enable-static \
|
||||
--disable-shared"
|
||||
system 'make'
|
||||
system 'make install'
|
||||
end
|
||||
|
||||
FileUtils.mkdir_p 'build/ncurses'
|
||||
Dir.chdir 'build/ncurses' do
|
||||
puts 'Building Ncurses.'.yellow
|
||||
system 'curl -Ls https://api.github.com/repos/mirror/ncurses/tarball/2a969388725aa1ee321acadf09a4ff8e00787036 | \
|
||||
hashpipe sha256 662836416ec72d4af1d023769d4212b0cc0eb1d9b2442ebdc8af3e08f2f463c2 | \
|
||||
tar --strip-components=1 -zxf -'
|
||||
system "#{@curldep_env_options} \
|
||||
./configure --prefix=#{@deppath} \
|
||||
--with-static \
|
||||
--with-cxx-static \
|
||||
--without-debug \
|
||||
--enable-pc-files \
|
||||
--enable-widec \
|
||||
--without-tests \
|
||||
--with-termlib"
|
||||
system 'make'
|
||||
system 'make install'
|
||||
end
|
||||
|
||||
FileUtils.mkdir_p 'build/krb5'
|
||||
Dir.chdir 'build/krb5' do
|
||||
puts 'Building krb5.'.yellow
|
||||
@k5libs = %w[libgssapi_krb5.a libgssrpc.a libk5crypto.a
|
||||
libkadm5clnt_mit.a libkadm5clnt.a libkadm5srv_mit.a libkadm5srv.a
|
||||
libkdb5.a libkrad.a libkrb5.a libkrb5support.a libverto.a libcom_err.a]
|
||||
system 'curl -Ls "https://web.mit.edu/kerberos/dist/krb5/1.19/krb5-1.19.1.tar.gz" | \
|
||||
hashpipe sha256 fa16f87eb7e3ec3586143c800d7eaff98b5e0dcdf0772af7d98612e49dbeb20b | \
|
||||
tar --strip-components=1 -zxf -'
|
||||
Dir.chdir 'src' do
|
||||
# krb5 built with gcc10 or newer needs -fcommon
|
||||
# See https://github.com/ripple/rippled/pull/3813
|
||||
system "#{@krb5_env_options} \
|
||||
./configure --prefix=#{@deppath} \
|
||||
--localstatedir=#{CREW_PREFIX}/var/krb5kdc \
|
||||
--disable-shared \
|
||||
--enable-static \
|
||||
--without-system-verto \
|
||||
--without-libedit \
|
||||
--disable-rpath \
|
||||
--without-keyutils"
|
||||
system 'make'
|
||||
system 'make install'
|
||||
end
|
||||
end
|
||||
|
||||
FileUtils.mkdir_p 'build/cyrus'
|
||||
Dir.chdir 'build/cyrus' do
|
||||
puts 'Building cyrussasl.'.yellow
|
||||
system 'curl -Ls https://github.com/cyrusimap/cyrus-sasl/releases/download/cyrus-sasl-2.1.27/cyrus-sasl-2.1.27.tar.gz | \
|
||||
hashpipe sha256 26866b1549b00ffd020f188a43c258017fa1c382b3ddadd8201536f72efb05d5 | \
|
||||
tar --strip-components=1 -zxf -'
|
||||
system "#{@curldep_env_options} ./configure --prefix=#{@deppath} \
|
||||
--enable-static \
|
||||
--enable-shared \
|
||||
--with-cxx-static"
|
||||
system 'make'
|
||||
system 'make install'
|
||||
end
|
||||
|
||||
FileUtils.mkdir_p 'build/zstd'
|
||||
Dir.chdir 'build/zstd' do
|
||||
puts 'Building Zstd.'.yellow
|
||||
system 'curl -Ls https://github.com/facebook/zstd/archive/v1.5.0.tar.gz | \
|
||||
hashpipe sha256 0d9ade222c64e912d6957b11c923e214e2e010a18f39bec102f572e693ba2867 | \
|
||||
tar --strip-components=1 -zxf -'
|
||||
FileUtils.mkdir('build/cmake/builddir')
|
||||
Dir.chdir('build/cmake/builddir') do
|
||||
system "#{@curldep_cmake_options} \
|
||||
-DZSTD_BUILD_STATIC=ON \
|
||||
-DZSTD_BUILD_SHARED=OFF \
|
||||
../ -G Ninja"
|
||||
end
|
||||
system "PATH=#{@deppath}/bin:#{@deppath}/#{ARCH}-linux-musl#{@abi}/bin:#{ENV['PATH']} ninja -C build/cmake/builddir -j#{CREW_NPROC}"
|
||||
system 'ninja -C build/cmake/builddir install'
|
||||
end
|
||||
|
||||
FileUtils.mkdir_p 'build/brotli'
|
||||
Dir.chdir 'build/brotli' do
|
||||
puts 'Building Brotli.'.yellow
|
||||
system 'curl -Ls https://github.com/google/brotli/archive/v1.0.9.tar.gz | \
|
||||
hashpipe sha256 f9e8d81d0405ba66d181529af42a3354f838c939095ff99930da6aa9cdf6fe46 | \
|
||||
tar --strip-components=1 -zxf -'
|
||||
FileUtils.mkdir('builddir')
|
||||
Dir.chdir('builddir') do
|
||||
system "#{@curldep_cmake_options} \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DWITH_STATIC_LIB=ON \
|
||||
../ -G Ninja"
|
||||
end
|
||||
system "PATH=#{@deppath}/bin:#{@deppath}/#{ARCH}-linux-musl#{@abi}/bin:#{ENV['PATH']} ninja -C builddir -j#{CREW_NPROC}"
|
||||
system 'ninja -C builddir install'
|
||||
Dir.chdir "#{@deppath}/#{ARCH_LIB}" do
|
||||
@brotlilibs = %w[libbrotlidec libbrotlienc libbrotlicommon]
|
||||
@brotlilibs.each do |lib|
|
||||
FileUtils.ln_s "#{lib}-static.a", "#{lib}.a"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
FileUtils.mkdir_p 'build/cares'
|
||||
Dir.chdir 'build/cares' do
|
||||
puts 'Building C-Ares.'.yellow
|
||||
system 'curl -Ls https://c-ares.haxx.se/download/c-ares-1.17.1.tar.gz | \
|
||||
hashpipe sha256 d73dd0f6de824afd407ce10750ea081af47eba52b8a6cb307d220131ad93fc40 | \
|
||||
tar --strip-components=1 -zxf -'
|
||||
system "#{@curldep_env_options} ./configure --prefix=#{@deppath}"
|
||||
system 'make'
|
||||
system 'make install'
|
||||
end
|
||||
|
||||
FileUtils.mkdir_p 'build/ssl'
|
||||
Dir.chdir 'build/ssl' do
|
||||
puts 'Building OpenSSL.'.yellow
|
||||
system 'curl -Ls https://www.openssl.org/source/openssl-1.1.1k.tar.gz | \
|
||||
hashpipe sha256 892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5 | \
|
||||
tar --strip-components=1 -zxf -'
|
||||
system "#{@curldep_env_options} \
|
||||
./Configure \
|
||||
--prefix=#{@deppath} \
|
||||
no-tests zlib no-shared \
|
||||
#{@openssl_configure_target}"
|
||||
system 'make'
|
||||
system 'make install_sw'
|
||||
end
|
||||
|
||||
FileUtils.mkdir_p 'build/nghttp2'
|
||||
Dir.chdir 'build/nghttp2' do
|
||||
puts 'Building Nghttp2.'.yellow
|
||||
system 'curl -Ls https://github.com/nghttp2/nghttp2/releases/download/v1.43.0/nghttp2-1.43.0.tar.gz | \
|
||||
hashpipe sha256 45cc3ed91966551f92b31958ceca9b3a9f23ce4faf5cbedb78aa3327cd4e5907 | \
|
||||
tar --strip-components=1 -zxf -'
|
||||
system "#{@curldep_env_options} \
|
||||
LIBS='-l:libz.a \
|
||||
-l:libssl.a \
|
||||
-l:libcrypto.a \
|
||||
-l:libcares.a' \
|
||||
./configure --prefix=#{@deppath} \
|
||||
--enable-lib-only \
|
||||
--disable-shared \
|
||||
--enable-static"
|
||||
system 'make'
|
||||
system 'make install'
|
||||
end
|
||||
|
||||
puts 'Done building static curl dependencies.'.lightblue
|
||||
|
||||
@krb5_static_libs = "#{@deppath}/#{ARCH_LIB}/libkrb5support.a #{@deppath}/#{ARCH_LIB}/libgssapi_krb5.a #{@deppath}/#{ARCH_LIB}/libkrb5.a #{@deppath}/#{ARCH_LIB}/libk5crypto.a #{@deppath}/#{ARCH_LIB}/libcom_err.a"
|
||||
|
||||
@curl_lib_deps = "#{@krb5_static_libs} \
|
||||
-l:libresolv.a \
|
||||
-l:libm.a \
|
||||
-l:libbrotlicommon-static.a \
|
||||
-l:libbrotlidec-static.a \
|
||||
-l:libzstd.a \
|
||||
-l:libz.a \
|
||||
-l:libssl.a \
|
||||
-l:libcrypto.a \
|
||||
-l:libsasl2.a \
|
||||
-l:libnghttp2.a \
|
||||
-l:libpthread.a \
|
||||
-l:libncursesw.a \
|
||||
-l:libtinfow.a \
|
||||
-l:libcares.a"
|
||||
|
||||
@curl_env_options = "PATH=#{@deppath}/bin:#{ENV['PATH']} \
|
||||
CC='#{@deppath}/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{@deppath}/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{@deppath}/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{@deppath}/include -DCURL_STATICLIB -DNGHTTP2_STATICLIB' \
|
||||
LDFLAGS='#{@ldflags}'"
|
||||
|
||||
FileUtils.mkdir_p 'build/curl'
|
||||
Dir.chdir 'build/curl' do
|
||||
puts 'Building libcurl.'.yellow
|
||||
system 'curl -Ls https://curl.se/download/curl-7.77.0.tar.xz | \
|
||||
hashpipe sha256 0f64582c54282f31c0de9f0a1a596b182776bd4df9a4c4a2a41bbeb54f62594b | \
|
||||
tar --strip-components=1 -Jxf -'
|
||||
system '[ -x configure ] || autoreconf -fvi'
|
||||
system 'filefix'
|
||||
system "#{@curl_env_options} \
|
||||
LIBS='#{@curl_lib_deps} \
|
||||
-L#{@deppath}/#{ARCH_LIB}' \
|
||||
CURL_LIBRARY_PATH=#{@deppath}/#{ARCH_LIB} \
|
||||
./configure --prefix=#{@deppath} \
|
||||
--disable-imap \
|
||||
--disable-ldap \
|
||||
--disable-ldaps \
|
||||
--disable-maintainer-mode \
|
||||
--disable-dependency-tracking \
|
||||
--disable-rtsp \
|
||||
--disable-shared \
|
||||
--enable-ares \
|
||||
--enable-ipv6 \
|
||||
--enable-static \
|
||||
--enable-unix-sockets \
|
||||
--with-ca-bundle=#{CREW_PREFIX}/etc/ssl/certs/ca-certificates.crt \
|
||||
--with-ca-fallback \
|
||||
--with-ca-path=#{CREW_PREFIX}/etc/ssl/certs \
|
||||
--with-nghttp2=#{@deppath} \
|
||||
--with-openssl=#{@deppath} \
|
||||
--with-brotli=#{@deppath} \
|
||||
--without-librtmp \
|
||||
--with-openssl=#{@deppath} \
|
||||
--with-zlib=#{@deppath}"
|
||||
system 'make curl_LDFLAGS=-all-static'
|
||||
system 'make install curl_LDFLAGS=-all-static'
|
||||
FileUtils.cp 'src/curl', "#{@deppath}/bin/curl_musl_static"
|
||||
end
|
||||
|
||||
@curl_static_libs = `#{@deppath}/bin/curl-config --static-libs`.chomp.gsub('=auto', '')
|
||||
@git_libs = "#{@krb5_static_libs} \
|
||||
# This build is dependent upon the musl curl package
|
||||
@curl_static_libs = `#{CREW_MUSL_PREFIX}/bin/curl-config --static-libs`.chomp.gsub('=auto', '')
|
||||
@git_libs = "#{@curl_static_libs} \
|
||||
-l:libresolv.a \
|
||||
-l:libm.a \
|
||||
-l:libbrotlidec-static.a \
|
||||
-l:libbrotlicommon-static.a \
|
||||
-l:libzstd.a \
|
||||
-l:libz.a \
|
||||
-l:libssl.a \
|
||||
-l:libcrypto.a \
|
||||
-l:libz.a \
|
||||
-l:libsasl2.a \
|
||||
-l:libnghttp2.a \
|
||||
-l:libpthread.a \
|
||||
-l:libncursesw.a \
|
||||
-l:libtinfow.a \
|
||||
-l:libcurl.a \
|
||||
-l:libcares.a"
|
||||
@git_env_options = "PATH=#{@deppath}/bin:#{ENV['PATH']} \
|
||||
CC='#{@deppath}/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{@deppath}/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{@deppath}/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
LIBS='#{@git_libs}' \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{@deppath}/include -DCURL_STATICLIB -DNGHTTP2_STATICLIB -fcommon' \
|
||||
LDFLAGS='#{@ldflags} \
|
||||
#{@git_libs}'"
|
||||
-l:libidn2.a \
|
||||
-l:libexpat.a"
|
||||
|
||||
FileUtils.mkdir 'curl'
|
||||
FileUtils.ln_s "#{@deppath}/include/curl", 'curl/include'
|
||||
FileUtils.ln_s "#{@deppath}/#{ARCH_LIB}", "curl/lib#{CREW_LIB_SUFFIX}"
|
||||
system 'autoreconf -fiv'
|
||||
system "#{@git_env_options} \
|
||||
./configure \
|
||||
--prefix=#{CREW_PREFIX} \
|
||||
--libdir=#{CREW_LIB_PREFIX} \
|
||||
CURLDIR=`pwd`/curl \
|
||||
CURL_LDFLAGS='-L#{@deppath}/#{ARCH_LIB} #{@git_libs}' \
|
||||
--with-lib='lib#{CREW_LIB_SUFFIX}' \
|
||||
--with-openssl \
|
||||
--without-tcltk \
|
||||
--with-curl \
|
||||
--with-perl=#{CREW_PREFIX}/bin/perl \
|
||||
--with-python=#{CREW_PREFIX}/bin/python3 \
|
||||
--with-gitconfig=#{CREW_PREFIX}/etc/gitconfig \
|
||||
--with-gitattributes=#{CREW_PREFIX}/etc/gitattributes"
|
||||
system 'cp config.log /tmp'
|
||||
system 'make'
|
||||
Dir.mkdir 'contrib/buildsystems/builddir'
|
||||
Dir.chdir 'contrib/buildsystems/builddir' do
|
||||
# This is needed for git's cmake compiler check, which assumes glibc sysctl.h
|
||||
FileUtils.mkdir_p 'sys'
|
||||
FileUtils.ln_s "#{CREW_MUSL_PREFIX}/#{ARCH}-linux-musl#{MUSL_ABI}/include/linux/sysctl.h", 'sys/sysctl.h'
|
||||
|
||||
system "#{MUSL_CMAKE_OPTIONS.gsub('LDFLAGS=\'',
|
||||
"LDFLAGS=\' #{@git_libs} -L#{CREW_MUSL_PREFIX}/lib \
|
||||
-Wl,-rpath=#{CREW_MUSL_PREFIX}/lib").gsub('-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=TRUE',
|
||||
'-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF')} \
|
||||
-DCMAKE_C_STANDARD_LIBRARIES='#{@git_libs}' \
|
||||
-DCMAKE_CXX_STANDARD_LIBRARIES='#{@git_libs}' \
|
||||
-DNO_VCPKG=TRUE \
|
||||
-DUSE_VCPKG=FALSE \
|
||||
-Wdev \
|
||||
-G Ninja \
|
||||
.."
|
||||
system 'samu'
|
||||
end
|
||||
end
|
||||
|
||||
def self.install
|
||||
system 'make', "DESTDIR=#{CREW_DEST_DIR}", 'install'
|
||||
# Save a copy of the built static curl. It's useful to have as a
|
||||
# backup. This also gives insight into the libcurl which has been
|
||||
# been compiled into git.
|
||||
FileUtils.cp "#{@deppath}/bin/curl_musl_static", "#{CREW_DEST_PREFIX}/bin/"
|
||||
Dir.chdir CREW_DEST_PREFIX do
|
||||
system 'symlinks -cr .'
|
||||
end
|
||||
system "DESTDIR=#{CREW_DEST_DIR} samu -C contrib/buildsystems/builddir install"
|
||||
FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/share/git-completion"
|
||||
FileUtils.cp_r Dir.glob('contrib/completion/.'), "#{CREW_DEST_PREFIX}/share/git-completion/"
|
||||
|
||||
@@ -441,12 +112,20 @@ class Git < Package
|
||||
# git bash completion
|
||||
source #{CREW_PREFIX}/share/git-completion/git-completion.bash
|
||||
GIT_BASHD_EOF
|
||||
IO.write("#{CREW_DEST_PREFIX}/etc/bash.d/git", @git_bashd_env)
|
||||
File.write("#{CREW_DEST_PREFIX}/etc/bash.d/git", @git_bashd_env)
|
||||
FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/bin"
|
||||
# Simplying the following block leads to the symlink not being created properly.
|
||||
Dir.chdir "#{CREW_DEST_PREFIX}/bin" do
|
||||
FileUtils.ln_s '../share/musl/bin/git', 'git'
|
||||
end
|
||||
end
|
||||
|
||||
def self.check
|
||||
# Check to see if linking libcurl worked, which means
|
||||
# git-remote-https should exist
|
||||
system "ls #{CREW_DEST_PREFIX}/libexec/git-core/git-remote-https"
|
||||
unless File.symlink?("#{CREW_DEST_MUSL_PREFIX}/libexec/git-core/git-remote-https") ||
|
||||
File.exist?("#{CREW_DEST_MUSL_PREFIX}/libexec/git-core/git-remote-https")
|
||||
abort 'git-remote-https is broken'.lightred
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -3,24 +3,24 @@ require 'package'
|
||||
class Libcurl < Package
|
||||
description 'Command line tool and library for transferring data with URLs.'
|
||||
homepage 'https://curl.se/'
|
||||
@_ver = '7.80.0'
|
||||
@_ver = '7.81.0'
|
||||
version @_ver
|
||||
license 'curl'
|
||||
compatibility 'all'
|
||||
source_url "https://curl.se/download/curl-#{@_ver}.tar.xz"
|
||||
source_sha256 'a132bd93188b938771135ac7c1f3ac1d3ce507c1fcbef8c471397639214ae2ab'
|
||||
source_sha256 'a067b688d1645183febc31309ec1f3cdce9213d02136b6a6de3d50f69c95a7d3'
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libcurl/7.80.0_armv7l/libcurl-7.80.0-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libcurl/7.80.0_armv7l/libcurl-7.80.0-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libcurl/7.80.0_i686/libcurl-7.80.0-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libcurl/7.80.0_x86_64/libcurl-7.80.0-chromeos-x86_64.tpxz'
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libcurl/7.81.0_armv7l/libcurl-7.81.0-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libcurl/7.81.0_armv7l/libcurl-7.81.0-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libcurl/7.81.0_i686/libcurl-7.81.0-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libcurl/7.81.0_x86_64/libcurl-7.81.0-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: '1bcd431029c1168a8e3ec742535f9b1740dbd264f06a0b97d3d46850113da095',
|
||||
armv7l: '1bcd431029c1168a8e3ec742535f9b1740dbd264f06a0b97d3d46850113da095',
|
||||
i686: 'af9cfd841fe69b8a65d4a28fb8c27e2a173dba44b932a50979e32d9c1827fee1',
|
||||
x86_64: '1fa472107b1b670dffdf41f222d374fa599ee22cf6db2fdcc08659c8b2a75eb0'
|
||||
aarch64: '92eef28a611d71bf61031dcc97266cb8ca297a77e3bd4736cd6a4cb9806eabba',
|
||||
armv7l: '92eef28a611d71bf61031dcc97266cb8ca297a77e3bd4736cd6a4cb9806eabba',
|
||||
i686: '2c1b600dd8e66ce7e561f7c8f08026158db9e2f63d88e534720da751719b40ff',
|
||||
x86_64: 'fb1a71b10267c947a800114c7af2b3b9c8559ba489ab4dee0c08fc9e628343bb'
|
||||
})
|
||||
|
||||
depends_on 'brotli' => :build
|
||||
@@ -40,6 +40,49 @@ class Libcurl < Package
|
||||
depends_on 'zlibpkg' # R
|
||||
depends_on 'zstd' # R
|
||||
|
||||
def self.patch
|
||||
# Configure is broken in curl 7.81.0
|
||||
# See https://github.com/curl/curl/pull/8230
|
||||
@curl_781_configure_patch = <<~'CURL_CONFIGURE_HEREDOC'
|
||||
--- a/m4/curl-functions.m4 2022-01-03 16:36:46.000000000 +0000
|
||||
+++ b/m4/curl-functions.m4 2022-01-05 17:34:33.635107486 +0000
|
||||
@@ -6515,16 +6515,21 @@ dnl changes contained within this macro.
|
||||
|
||||
AC_DEFUN([CURL_RUN_IFELSE], [
|
||||
case $host_os in
|
||||
- darwin*) library_path_var=DYLD_LIBRARY_PATH ;;
|
||||
- *) library_path_var=LD_LIBRARY_PATH ;;
|
||||
+ darwin*)
|
||||
+ old=$DYLD_LIBRARY_PATH
|
||||
+ DYLD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
|
||||
+ export DYLD_LIBRARY_PATH
|
||||
+ AC_RUN_IFELSE([AC_LANG_SOURCE([$1])], $2, $3, $4)
|
||||
+ DYLD_LIBRARY_PATH=$old # restore
|
||||
+ ;;
|
||||
+ *)
|
||||
+ old=$LD_LIBRARY_PATH
|
||||
+ LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
|
||||
+ export LD_LIBRARY_PATH
|
||||
+ AC_RUN_IFELSE([AC_LANG_SOURCE([$1])], $2, $3, $4)
|
||||
+ LD_LIBRARY_PATH=$old # restore
|
||||
+ ;;
|
||||
esac
|
||||
-
|
||||
- eval "old=$$library_path_var"
|
||||
- eval "$library_path_var=\$CURL_LIBRARY_PATH:\$old"
|
||||
-
|
||||
- eval "export $library_path_var"
|
||||
- AC_RUN_IFELSE([AC_LANG_SOURCE([$1])], $2, $3, $4)
|
||||
- eval "$library_path_var=\$old" # restore
|
||||
])
|
||||
|
||||
dnl CURL_COVERAGE
|
||||
CURL_CONFIGURE_HEREDOC
|
||||
File.write('curl_781_configure.patch', @curl_781_configure_patch)
|
||||
system 'patch -Np1 -i curl_781_configure.patch'
|
||||
system 'autoreconf -fvi'
|
||||
end
|
||||
|
||||
def self.build
|
||||
@libssh = '--with-libssh'
|
||||
case ARCH
|
||||
@@ -67,6 +110,5 @@ class Libcurl < Package
|
||||
|
||||
def self.install
|
||||
system 'make', "DESTDIR=#{CREW_DEST_DIR}", 'install'
|
||||
FileUtils.mv "#{CREW_DEST_PREFIX}/bin/curl", "#{CREW_DEST_PREFIX}/bin/curl.nonstatic"
|
||||
end
|
||||
end
|
||||
|
||||
@@ -3,23 +3,23 @@ require 'package'
|
||||
class Libssp < Package
|
||||
description 'Libssp is a part of the GCC toolkit.'
|
||||
homepage 'https://gcc.gnu.org/'
|
||||
version '11.2.0'
|
||||
version '11.2.1-20220108'
|
||||
license 'GPL-3, LGPL-3, libgcc, FDL-1.2'
|
||||
compatibility 'all'
|
||||
source_url 'https://ftpmirror.gnu.org/gcc/gcc-11.2.0/gcc-11.2.0.tar.xz'
|
||||
source_sha256 'd08edc536b54c372a1010ff6619dd274c0f1603aa49212ba20f7aa2cda36fa8b'
|
||||
source_url 'https://gcc.gnu.org/pub/gcc/snapshots/11-20220108/gcc-11-20220108.tar.xz'
|
||||
source_sha256 'a433837a85087c2357a456145ae140bd588e75d44a90031ed57c29de66e46468'
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libssp/11.2.0_armv7l/libssp-11.2.0-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libssp/11.2.0_armv7l/libssp-11.2.0-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libssp/11.2.0_i686/libssp-11.2.0-chromeos-i686.tar.xz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libssp/11.2.0_x86_64/libssp-11.2.0-chromeos-x86_64.tpxz'
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libssp/11.2.1-20220108_i686/libssp-11.2.1-20220108-chromeos-i686.tar.xz',
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libssp/11.2.1-20220108_armv7l/libssp-11.2.1-20220108-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libssp/11.2.1-20220108_armv7l/libssp-11.2.1-20220108-chromeos-armv7l.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libssp/11.2.1-20220108_x86_64/libssp-11.2.1-20220108-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: '5ff8842611c3cb8a2d72eb3fa591299354ae2021c2b1927259df407910645f19',
|
||||
armv7l: '5ff8842611c3cb8a2d72eb3fa591299354ae2021c2b1927259df407910645f19',
|
||||
i686: 'dcf1f3951a9f44e8a5aba0f4db7c675684b747a8cb66efdc2340e513913e79fe',
|
||||
x86_64: 'c753248ee6996448fc14d02fe43f79f41974adff30101856a467be70b2b41b7d'
|
||||
i686: 'a8459db3bf278ca9cd120d3d7b166def4816fc112a42869968a2801eb4ceca81',
|
||||
aarch64: 'b7bdc82eca1ade26a484837a9b544852b9c3e5e5f4cbe571213e35e9c417398d',
|
||||
armv7l: 'b7bdc82eca1ade26a484837a9b544852b9c3e5e5f4cbe571213e35e9c417398d',
|
||||
x86_64: 'b443fabf868ac235e2b7e621c9eeec34389e469a87f180a9aaccaa01256b8038'
|
||||
})
|
||||
|
||||
depends_on 'ccache' => :build
|
||||
@@ -61,7 +61,7 @@ class Libssp < Package
|
||||
@languages = 'c,c++,jit,objc,fortran,go'
|
||||
case ARCH
|
||||
when 'armv7l', 'aarch64'
|
||||
@archflags = '--with-arch=armv7-a --with-float=hard --with-fpu=neon'
|
||||
@archflags = '--with-arch=armv7-a+fp --with-float=hard --with-fpu=neon --with-tune=cortex-a15'
|
||||
when 'x86_64'
|
||||
@archflags = '--with-arch-64=x86-64'
|
||||
when 'i686'
|
||||
|
||||
@@ -3,72 +3,42 @@ require 'package'
|
||||
class Lzip < Package
|
||||
description 'Lzip is a lossless data compressor with a user interface similar to the one of gzip or bzip2.'
|
||||
homepage 'https://www.nongnu.org/lzip/lzip.html'
|
||||
version '1.22-2'
|
||||
version '1.22-3'
|
||||
license 'GPL-2+'
|
||||
compatibility 'all'
|
||||
source_url 'https://download.savannah.gnu.org/releases/lzip/lzip-1.22.tar.gz'
|
||||
source_sha256 'c3342d42e67139c165b8b128d033b5c96893a13ac5f25933190315214e87a948'
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/lzip/1.22-2_armv7l/lzip-1.22-2-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/lzip/1.22-2_armv7l/lzip-1.22-2-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/lzip/1.22_i686/lzip-1.22-chromeos-i686.tar.xz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/lzip/1.22-2_x86_64/lzip-1.22-2-chromeos-x86_64.tpxz'
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/lzip/1.22-3_armv7l/lzip-1.22-3-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/lzip/1.22-3_armv7l/lzip-1.22-3-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/lzip/1.22-3_i686/lzip-1.22-3-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/lzip/1.22-3_x86_64/lzip-1.22-3-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: 'c2845ab07bbaf3ece8c9fbe6ebc877b9ab2028d20f125d15dac95c6a805feab4',
|
||||
armv7l: 'c2845ab07bbaf3ece8c9fbe6ebc877b9ab2028d20f125d15dac95c6a805feab4',
|
||||
i686: 'c300c57d644cde5783a76dd125a2e4e80873a9c1f1f07dec84a594807423106a',
|
||||
x86_64: '03d91cc0ed167a0e1cc6a294123b138542ee6a4689461813cd21d058ff590487'
|
||||
aarch64: 'd9f7c85e23c7b2325ceb7d9b1de5f0ed978418214c49b6a2ac022fba638a16b5',
|
||||
armv7l: 'd9f7c85e23c7b2325ceb7d9b1de5f0ed978418214c49b6a2ac022fba638a16b5',
|
||||
i686: '4765d6b4470651f3d51a6200c83be04cf5d66918513d066a4de49e68b6b5814a',
|
||||
x86_64: '0ae3146a01f2412c726f20a48c6eee208b4008bc5b122760d6b8eaf4d888a8be'
|
||||
})
|
||||
|
||||
depends_on 'musl_native_toolchain' => :build
|
||||
depends_on 'musl_libunwind' => :build if ARCH == 'i686'
|
||||
|
||||
@abi = ''
|
||||
@arch_c_flags = ''
|
||||
@arch_cxx_flags = ''
|
||||
@libunwind = ''
|
||||
case ARCH
|
||||
when 'aarch64', 'armv7l'
|
||||
@abi = 'eabihf'
|
||||
when 'i686'
|
||||
@libunwind = '-lunwind'
|
||||
end
|
||||
|
||||
@cflags = "-B#{CREW_PREFIX}/musl/include -pipe -O2 -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_c_flags} -fcommon"
|
||||
@cxxflags = "-B#{CREW_PREFIX}/musl/include -pipe -O2 -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_cxx_flags} -fcommon -static"
|
||||
@ldflags = "-L#{CREW_PREFIX}/musl/lib -static #{@libunwind}"
|
||||
@cmake_ldflags = ''
|
||||
|
||||
@musldep_env_options = "PATH=#{CREW_PREFIX}/musl/bin:#{ENV['PATH']} \
|
||||
LIBRARY_PATH='#{CREW_PREFIX}/musl/lib:$LIBRARY_PATH' \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
PKG_CONFIG_LIBDIR=#{CREW_PREFIX}/musl/lib/pkgconfig \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@ldflags}'"
|
||||
is_static
|
||||
|
||||
def self.build
|
||||
system "./configure --prefix=#{CREW_PREFIX}/musl \
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
system "./configure --prefix=#{CREW_MUSL_PREFIX} \
|
||||
--datarootdir=#{CREW_PREFIX}/share \
|
||||
#{@musldep_env_options}"
|
||||
system 'make -j1'
|
||||
#{MUSL_ENV_OPTIONS}"
|
||||
system 'make'
|
||||
end
|
||||
|
||||
def self.install
|
||||
ENV['CREW_FHS_NONCOMPLIANCE_ONLY_ADVISORY'] = '1'
|
||||
warn_level = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
load "#{CREW_LIB_PATH}lib/const.rb"
|
||||
$VERBOSE = warn_level
|
||||
system 'make', "DESTDIR=#{CREW_DEST_DIR}", 'install'
|
||||
FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/bin"
|
||||
Dir.chdir "#{CREW_DEST_PREFIX}/bin" do
|
||||
FileUtils.ln_s '../musl/bin/lzip', 'lzip'
|
||||
FileUtils.ln_s '../share/musl/bin/lzip', 'lzip'
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -3,99 +3,45 @@ require 'package'
|
||||
class Musl_brotli < Package
|
||||
description 'Brotli compression format'
|
||||
homepage 'https://github.com/google/brotli'
|
||||
version '1.0.9'
|
||||
version '1.0.9-1'
|
||||
license 'MIT'
|
||||
compatibility 'all'
|
||||
source_url 'https://github.com/google/brotli/archive/v1.0.9.tar.gz'
|
||||
source_sha256 'f9e8d81d0405ba66d181529af42a3354f838c939095ff99930da6aa9cdf6fe46'
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_brotli/1.0.9_armv7l/musl_brotli-1.0.9-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_brotli/1.0.9_armv7l/musl_brotli-1.0.9-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_brotli/1.0.9_i686/musl_brotli-1.0.9-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_brotli/1.0.9_x86_64/musl_brotli-1.0.9-chromeos-x86_64.tpxz'
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_brotli/1.0.9-1_armv7l/musl_brotli-1.0.9-1-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_brotli/1.0.9-1_armv7l/musl_brotli-1.0.9-1-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_brotli/1.0.9-1_i686/musl_brotli-1.0.9-1-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_brotli/1.0.9-1_x86_64/musl_brotli-1.0.9-1-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: 'be5c638964696502a16aa3518158875ef7f02dfb367b08d30945454d7126f536',
|
||||
armv7l: 'be5c638964696502a16aa3518158875ef7f02dfb367b08d30945454d7126f536',
|
||||
i686: '04bbca973fa726fe7c6530949d54f1dff2a61b1d953eaf1f48ddc804da871074',
|
||||
x86_64: '326576ba9359c4d4a0c933dcc6a106f2094d4731267e182824fb3f6ff6d962f3'
|
||||
aarch64: 'cc9db48c4b961fe608a7ce3e1992c13e2972dc8779127c0edc8b3a95dd76097c',
|
||||
armv7l: 'cc9db48c4b961fe608a7ce3e1992c13e2972dc8779127c0edc8b3a95dd76097c',
|
||||
i686: '57ee94d94b6e0ea798feaf49f002e3781c0e9ab6daf2795dcc9d938e9901744e',
|
||||
x86_64: '4e85283bc1ee9747495df8c37662d4e4cb9a714718509492f2317b5c08f0ee76'
|
||||
})
|
||||
|
||||
depends_on 'musl_native_toolchain' => :build
|
||||
|
||||
@abi = ''
|
||||
@arch_ssp_cflags = ''
|
||||
@arch_c_flags = ''
|
||||
@arch_cxx_flags = ''
|
||||
case ARCH
|
||||
when 'aarch64', 'armv7l'
|
||||
@abi = 'eabihf'
|
||||
when 'i686'
|
||||
@arch_ssp_cflags = '-fno-stack-protector'
|
||||
when 'x86_64'
|
||||
end
|
||||
|
||||
@cflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_c_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@cxxflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_cxx_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@ldflags = "-L#{CREW_PREFIX}/musl/lib -flto -static"
|
||||
@cmake_ldflags = '-flto'
|
||||
@musldep_cmake_options = "PATH=#{CREW_PREFIX}/musl/bin:#{CREW_PREFIX}/musl/#{ARCH}-linux-musl#{@abi}/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
AR=#{CREW_PREFIX}/musl/bin/ar \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@cmake_ldflags}' \
|
||||
cmake \
|
||||
-DCMAKE_INSTALL_PREFIX='#{CREW_PREFIX}/musl' \
|
||||
-DCMAKE_INSTALL_LIBDIR='#{CREW_PREFIX}/musl/lib' \
|
||||
-DCMAKE_LIBRARY_PATH='#{CREW_PREFIX}/musl/lib' \
|
||||
-DCMAKE_C_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc \
|
||||
-DCMAKE_CXX_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++ \
|
||||
-DCMAKE_INCLUDE_DIRECTORIES_BEFORE=ON \
|
||||
-DINCLUDE_DIRECTORIES=#{CREW_PREFIX}/musl/include \
|
||||
-DCMAKE_C_FLAGS='#{@cflags}' \
|
||||
-DCMAKE_CXX_FLAGS='#{@cxxflags}' \
|
||||
-DCMAKE_EXE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_STATIC_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_MODULE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DPROPERTY_INTERPROCEDURAL_OPTIMIZATION=TRUE \
|
||||
-DCMAKE_BUILD_TYPE=Release"
|
||||
|
||||
@musldep_env_options = "PATH=#{CREW_PREFIX}/musl/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
PKG_CONFIG_LIBDIR=#{CREW_PREFIX}/musl/lib/pkgconfig \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@ldflags}'"
|
||||
is_static
|
||||
|
||||
def self.build
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
FileUtils.mkdir('builddir')
|
||||
Dir.chdir('builddir') do
|
||||
system "#{@musldep_cmake_options} \
|
||||
system "#{MUSL_CMAKE_OPTIONS} \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DWITH_STATIC_LIB=ON \
|
||||
../ -G Ninja"
|
||||
end
|
||||
system "PATH=#{CREW_PREFIX}/musl/bin:#{CREW_PREFIX}/musl/#{ARCH}-linux-musl#{@abi}/bin:#{ENV['PATH']} \
|
||||
system "PATH=#{CREW_MUSL_PREFIX}/bin:#{CREW_MUSL_PREFIX}/#{ARCH}-linux-musl#{@abi}/bin:#{ENV['PATH']} \
|
||||
samu -C builddir -j#{CREW_NPROC}"
|
||||
end
|
||||
|
||||
def self.install
|
||||
ENV['CREW_FHS_NONCOMPLIANCE_ONLY_ADVISORY'] = '1'
|
||||
warn_level = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
load "#{CREW_LIB_PATH}lib/const.rb"
|
||||
$VERBOSE = warn_level
|
||||
system "DESTDIR=#{CREW_DEST_DIR} samu -C builddir install"
|
||||
Dir.chdir "#{CREW_DEST_PREFIX}/musl/lib" do
|
||||
Dir.chdir "#{CREW_DEST_MUSL_PREFIX}/lib" do
|
||||
@brotlilibs = %w[libbrotlidec libbrotlienc libbrotlicommon]
|
||||
@brotlilibs.each do |lib|
|
||||
FileUtils.ln_s "#{lib}-static.a", "#{lib}.a"
|
||||
|
||||
78
packages/musl_bz2.rb
Normal file
78
packages/musl_bz2.rb
Normal file
@@ -0,0 +1,78 @@
|
||||
require 'package'
|
||||
|
||||
class Musl_bz2 < Package
|
||||
description 'bzip2 is a freely available, patent free, high-quality data compressor.'
|
||||
homepage 'http://www.bzip.org/'
|
||||
version '1.0.8'
|
||||
license 'BZIP2'
|
||||
compatibility 'all'
|
||||
source_url 'https://fossies.org/linux/misc/bzip2-1.0.8.tar.gz'
|
||||
source_sha256 'ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269'
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_bz2/1.0.8_armv7l/musl_bz2-1.0.8-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_bz2/1.0.8_armv7l/musl_bz2-1.0.8-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_bz2/1.0.8_i686/musl_bz2-1.0.8-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_bz2/1.0.8_x86_64/musl_bz2-1.0.8-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: '45641ed96b6d391c9835fba0a8e567da398c764b49b3ca2ad0acdffc81c18b5c',
|
||||
armv7l: '45641ed96b6d391c9835fba0a8e567da398c764b49b3ca2ad0acdffc81c18b5c',
|
||||
i686: 'abdce567d02a946581afc4ab6122fc3e21221c92e273841b83b988f0667f996e',
|
||||
x86_64: '0491dda97107a65317cf6a6896d11654159623ed8f6107efdaafa710326723fe'
|
||||
})
|
||||
|
||||
depends_on 'patchelf' => :build
|
||||
|
||||
def self.patch
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
# Modify Makefile from "ln -s $(PREFIX)/bin/xxx $(PREFIX)/bin/yyy" to
|
||||
# "ln -s xxx $(PREFIX)/bin/yyy"
|
||||
system "sed -i Makefile -e '/ln -s/s:$(PREFIX)/bin/::'"
|
||||
system "sed -i 's,gcc,#{CREW_MUSL_PREFIX}/bin/#{ARCH}-linux-musl#{MUSL_ABI}-gcc #{MUSL_CFLAGS},g' Makefile"
|
||||
system "sed -i 's,CFLAGS=-fpic,CFLAGS=-fpic #{MUSL_CFLAGS},g' Makefile"
|
||||
system "sed -i 's,gcc,#{CREW_MUSL_PREFIX}/bin/#{ARCH}-linux-musl#{MUSL_ABI}-gcc,g' Makefile-libbz2_so"
|
||||
system "sed -i 's|CFLAGS=-fpic|CFLAGS=-fpic #{MUSL_CFLAGS}|g' Makefile-libbz2_so"
|
||||
system "sed -i 's|LDFLAGS=|LDFLAGS=\"#{MUSL_LDFLAGS}\"|g' Makefile"
|
||||
system "sed -i 's|LDFLAGS=|LDFLAGS=\"#{MUSL_LDFLAGS}\"|g' Makefile-libbz2_so"
|
||||
# Test expects ./bzip2, which is created in install section.
|
||||
FileUtils.cp 'Makefile', 'Makefile.test'
|
||||
system "sed -i 's,./bzip2 ,./bzip2-shared ,g' Makefile.test"
|
||||
end
|
||||
|
||||
def self.build
|
||||
system 'make -f Makefile-libbz2_so all'
|
||||
end
|
||||
|
||||
def self.check
|
||||
system 'make -f Makefile.test test'
|
||||
end
|
||||
|
||||
def self.install
|
||||
# bz2 Makefile doesn't have DESTDIR, so we need several tricks
|
||||
# to make it install files correctly.
|
||||
|
||||
# Use PREFIX instead of DESTDIR
|
||||
system 'make', "PREFIX=#{CREW_DEST_MUSL_PREFIX}", 'install'
|
||||
|
||||
# Install bzip2 using shared library by hand
|
||||
system 'cp -p bzip2-shared bzip2'
|
||||
# Set musl interpreter for binaries
|
||||
%w[bzip2-shared].each do |f|
|
||||
system "patchelf --set-interpreter #{CREW_MUSL_PREFIX}/lib/libc.so #{f}"
|
||||
end
|
||||
system "install -Dm755 bzip2 #{CREW_DEST_MUSL_PREFIX}/bin/bzip2"
|
||||
system "ln -sf bzip2 #{CREW_DEST_MUSL_PREFIX}/bin/bunzip2"
|
||||
system "ln -sf bzip2 #{CREW_DEST_MUSL_PREFIX}/bin/bzcat"
|
||||
|
||||
# Install shared library by hand
|
||||
system "install -Dm644 libbz2.so.1.0.8 #{CREW_DEST_MUSL_PREFIX}/libbz2.so.1.0.8"
|
||||
system "ln -s libbz2.so.1.0.8 #{CREW_DEST_MUSL_PREFIX}/libbz2.so.1.0"
|
||||
system "ln -s libbz2.so.1.0.8 #{CREW_DEST_MUSL_PREFIX}/libbz2.so.1"
|
||||
system "ln -s libbz2.so.1.0.8 #{CREW_DEST_MUSL_PREFIX}/libbz2.so"
|
||||
|
||||
# Move manpages
|
||||
FileUtils.mkdir_p("#{CREW_DEST_MUSL_PREFIX}/share")
|
||||
system "mv #{CREW_DEST_MUSL_PREFIX}/man #{CREW_DEST_MUSL_PREFIX}/share/"
|
||||
end
|
||||
end
|
||||
@@ -3,92 +3,59 @@ require 'package'
|
||||
class Musl_c_ares < Package
|
||||
description 'c-ares is a C library for asynchronous DNS requests (including name resolves).'
|
||||
homepage 'https://c-ares.haxx.se/'
|
||||
version '1.17.2'
|
||||
version '1.18.1'
|
||||
license 'MIT'
|
||||
compatibility 'all'
|
||||
source_url 'https://c-ares.haxx.se/download/c-ares-1.17.2.tar.gz'
|
||||
source_sha256 '4803c844ce20ce510ef0eb83f8ea41fa24ecaae9d280c468c582d2bb25b3913d'
|
||||
source_url 'https://c-ares.haxx.se/download/c-ares-1.18.1.tar.gz'
|
||||
source_sha256 '1a7d52a8a84a9fbffb1be9133c0f6e17217d91ea5a6fa61f6b4729cda78ebbcf'
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_c_ares/1.17.2_armv7l/musl_c_ares-1.17.2-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_c_ares/1.17.2_armv7l/musl_c_ares-1.17.2-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_c_ares/1.17.2_i686/musl_c_ares-1.17.2-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_c_ares/1.17.2_x86_64/musl_c_ares-1.17.2-chromeos-x86_64.tpxz'
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_c_ares/1.18.1_armv7l/musl_c_ares-1.18.1-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_c_ares/1.18.1_armv7l/musl_c_ares-1.18.1-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_c_ares/1.18.1_i686/musl_c_ares-1.18.1-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_c_ares/1.18.1_x86_64/musl_c_ares-1.18.1-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: '16da6f86c68d47b675f94cadd36635d1c743ea33a599588d5d2b80349e472db8',
|
||||
armv7l: '16da6f86c68d47b675f94cadd36635d1c743ea33a599588d5d2b80349e472db8',
|
||||
i686: '4ca8616b8c42e0b4741080969b90bb80cb75a4cea48b4b98252e9a6f44801647',
|
||||
x86_64: 'b2994bf3c6ed793052492fca6a074ef0c0ad4d12f628bbbe42cc7e2000d2d68c'
|
||||
aarch64: 'c93e3a4f64cd4e667369de02eddf7f524c2828a68ed3d8fe3cd695647527cddd',
|
||||
armv7l: 'c93e3a4f64cd4e667369de02eddf7f524c2828a68ed3d8fe3cd695647527cddd',
|
||||
i686: '87f32259ad3ce220d75b89e481102dcf376d8fc022fd3a577bbdc93c44d219f5',
|
||||
x86_64: '9775556215c5a09423c36f61a902d0510ba8ad68865d26c48c3fbe02af62a23c'
|
||||
})
|
||||
|
||||
depends_on 'musl_native_toolchain' => :build
|
||||
depends_on 'musl_libunistring' => :build
|
||||
depends_on 'musl_libidn2' => :build
|
||||
depends_on 'musl_zlib' => :build
|
||||
depends_on 'musl_ncurses' => :build
|
||||
depends_on 'musl_openssl' => :build
|
||||
depends_on 'musl_krb5' => :build
|
||||
depends_on 'patchelf' => :build
|
||||
|
||||
@abi = ''
|
||||
@arch_ssp_cflags = ''
|
||||
@arch_c_flags = ''
|
||||
@arch_cxx_flags = ''
|
||||
case ARCH
|
||||
when 'aarch64', 'armv7l'
|
||||
@abi = 'eabihf'
|
||||
when 'i686'
|
||||
@arch_ssp_cflags = '-fno-stack-protector'
|
||||
when 'x86_64'
|
||||
end
|
||||
|
||||
@cflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_c_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@cxxflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_cxx_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@ldflags = "-L#{CREW_PREFIX}/musl/lib -flto -static"
|
||||
@cmake_ldflags = '-flto'
|
||||
@musldep_cmake_options = "PATH=#{CREW_PREFIX}/musl/bin:#{CREW_PREFIX}/musl/#{ARCH}-linux-musl#{@abi}/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
AR=#{CREW_PREFIX}/musl/bin/ar \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@cmake_ldflags}' \
|
||||
cmake \
|
||||
-DCMAKE_INSTALL_PREFIX='#{CREW_PREFIX}/musl' \
|
||||
-DCMAKE_LIBRARY_PATH='#{CREW_PREFIX}/musl/lib' \
|
||||
-DCMAKE_C_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc \
|
||||
-DCMAKE_CXX_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++ \
|
||||
-DCMAKE_INCLUDE_DIRECTORIES_BEFORE=ON \
|
||||
-DINCLUDE_DIRECTORIES=#{CREW_PREFIX}/musl/include \
|
||||
-DCMAKE_C_FLAGS='#{@cflags}' \
|
||||
-DCMAKE_CXX_FLAGS='#{@cxxflags}' \
|
||||
-DCMAKE_EXE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_STATIC_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_MODULE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DPROPERTY_INTERPROCEDURAL_OPTIMIZATION=TRUE \
|
||||
-DCMAKE_BUILD_TYPE=Release"
|
||||
|
||||
@musldep_env_options = "PATH=#{CREW_PREFIX}/musl/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
PKG_CONFIG_LIBDIR=#{CREW_PREFIX}/musl/lib/pkgconfig \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@ldflags}'"
|
||||
is_static
|
||||
|
||||
def self.build
|
||||
system "#{@musldep_env_options} ./configure --prefix=#{CREW_PREFIX}/musl \
|
||||
--enable-shared=no \
|
||||
--enable-static=yes \
|
||||
--enable-nonblocking"
|
||||
system 'make'
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
FileUtils.mkdir('builddir')
|
||||
Dir.chdir('builddir') do
|
||||
system "#{MUSL_CMAKE_OPTIONS} \
|
||||
-DOPENSSL_INCLUDE_DIR=#{CREW_MUSL_PREFIX}/include \
|
||||
-DCARES_STATIC=ON \
|
||||
-DCARES_STATIC_PIC=ON \
|
||||
-DCARES_BUILD_TESTS=ON \
|
||||
-DCARES_BUILD_CONTAINER_TESTS=ON \
|
||||
-DCARES_BUILD_TOOLS=ON \
|
||||
-DCARES_SHARED=OFF \
|
||||
../ -G Ninja"
|
||||
end
|
||||
system 'samu -C builddir'
|
||||
end
|
||||
|
||||
def self.install
|
||||
ENV['CREW_FHS_NONCOMPLIANCE_ONLY_ADVISORY'] = '1'
|
||||
warn_level = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
load "#{CREW_LIB_PATH}lib/const.rb"
|
||||
$VERBOSE = warn_level
|
||||
system 'make', "DESTDIR=#{CREW_DEST_DIR}", 'install'
|
||||
system "DESTDIR=#{CREW_DEST_DIR} samu -C builddir install"
|
||||
Dir.chdir "#{CREW_DEST_MUSL_PREFIX}/bin/" do
|
||||
Dir.glob('*').each do |f|
|
||||
system "patchelf --set-interpreter #{CREW_MUSL_PREFIX}/lib/libc.so #{f}"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
44
packages/musl_cc_toolchain.rb
Normal file
44
packages/musl_cc_toolchain.rb
Normal file
@@ -0,0 +1,44 @@
|
||||
require 'package'
|
||||
|
||||
class Musl_cc_toolchain < Package
|
||||
description 'A modern, simple, and fast C library implementation that strives to be lightweight, fast, simple, free, and correct in the sense of standards-conformance and safety.'
|
||||
homepage 'https://musl.cc/'
|
||||
version '1.2.2-b76f37fd'
|
||||
compatibility 'aarch64, armv7l, x86_64'
|
||||
license 'MIT, LGPL-2 and GPL-2'
|
||||
source_url({
|
||||
aarch64: 'https://musl.cc/armv7l-linux-musleabihf-native.tgz',
|
||||
armv7l: 'https://musl.cc/armv7l-linux-musleabihf-native.tgz',
|
||||
x86_64: 'https://musl.cc/x86_64-linux-musl-native.tgz'
|
||||
})
|
||||
source_sha256({
|
||||
aarch64: '2b37466f716d28a9ef313a8916543f53f9c8c78509e1c8d57a18ca4b171f2205',
|
||||
armv7l: '2b37466f716d28a9ef313a8916543f53f9c8c78509e1c8d57a18ca4b171f2205',
|
||||
x86_64: 'eb1db6f0f3c2bdbdbfb993d7ef7e2eeef82ac1259f6a6e1757c33a97dbcef3ad'
|
||||
})
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_cc_toolchain/1.2.2-b76f37fd_armv7l/musl_cc_toolchain-1.2.2-b76f37fd-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_cc_toolchain/1.2.2-b76f37fd_armv7l/musl_cc_toolchain-1.2.2-b76f37fd-chromeos-armv7l.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_cc_toolchain/1.2.2-b76f37fd_x86_64/musl_cc_toolchain-1.2.2-b76f37fd-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: '56b9685504b6ae0894b4c0e9e439c894fc3e9222124982e5c3321279c34de253',
|
||||
armv7l: '56b9685504b6ae0894b4c0e9e439c894fc3e9222124982e5c3321279c34de253',
|
||||
x86_64: 'ca388d227d187db9b60c53aa191803882a9ac21bcb6c0d1d2815ea2bb8725023'
|
||||
})
|
||||
|
||||
def self.install
|
||||
FileUtils.mkdir_p "#{CREW_DEST_MUSL_PREFIX}/lib"
|
||||
FileUtils.cp_r '.', "#{CREW_DEST_MUSL_PREFIX}/", verbose: true
|
||||
Dir.chdir("#{CREW_DEST_MUSL_PREFIX}/lib") do
|
||||
FileUtils.ln_sf 'libc.so', 'ld-musl-x86_64.so.1' if ARCH == 'x86_64'
|
||||
FileUtils.ln_sf 'libc.so', 'ld-musl-armhf.so.1' if ARCH == 'armv7l'
|
||||
end
|
||||
Dir.chdir(CREW_DEST_MUSL_PREFIX.to_s) do
|
||||
FileUtils.ln_sf 'lib', 'lib64' if ARCH == 'x86_64'
|
||||
end
|
||||
end
|
||||
|
||||
def self.postinstall; end
|
||||
end
|
||||
176
packages/musl_curl.rb
Normal file
176
packages/musl_curl.rb
Normal file
@@ -0,0 +1,176 @@
|
||||
require 'package'
|
||||
|
||||
class Musl_curl < Package
|
||||
description 'Command line tool and library for transferring data with URLs.'
|
||||
homepage 'https://curl.se/'
|
||||
@_ver = '7.81.0'
|
||||
version @_ver
|
||||
license 'curl'
|
||||
compatibility 'all'
|
||||
source_url "https://curl.se/download/curl-#{@_ver}.tar.xz"
|
||||
source_sha256 'a067b688d1645183febc31309ec1f3cdce9213d02136b6a6de3d50f69c95a7d3'
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_curl/7.81.0_armv7l/musl_curl-7.81.0-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_curl/7.81.0_armv7l/musl_curl-7.81.0-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_curl/7.81.0_i686/musl_curl-7.81.0-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_curl/7.81.0_x86_64/musl_curl-7.81.0-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: '9acb67514a0db896686eaa834f3cf5c8818627521725d8b71325872ea1507259',
|
||||
armv7l: '9acb67514a0db896686eaa834f3cf5c8818627521725d8b71325872ea1507259',
|
||||
i686: 'bbff7492ea406c7150a4ff38420530035183269c58b6f4a73a0852e94172ab58',
|
||||
x86_64: 'a9d041801aa654b4086988f905f41628beaeefdc2e8df4f134c505202636877f'
|
||||
})
|
||||
|
||||
depends_on 'ca_certificates' => :build
|
||||
depends_on 'musl_libunbound' => :build
|
||||
depends_on 'musl_brotli' => :build
|
||||
depends_on 'musl_libidn2' => :build
|
||||
depends_on 'musl_libunistring' => :build
|
||||
depends_on 'musl_native_toolchain' => :build
|
||||
depends_on 'musl_ncurses' => :build
|
||||
depends_on 'musl_openssl' => :build
|
||||
depends_on 'musl_zlib' => :build
|
||||
depends_on 'musl_zstd' => :build
|
||||
depends_on 'rust' => :build
|
||||
depends_on 'valgrind' => :build
|
||||
|
||||
is_static
|
||||
|
||||
def self.patch
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
# Curl 7.78.0 needs a patch to enable static builds.
|
||||
# See https://github.com/moparisthebest/static-curl/commit/0ab82474d449b7f2ea0d43451fd3951ebd49ddc3
|
||||
@curl_778_static_patch = <<~'CURL_HEREDOC'
|
||||
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||
index 734373187..37e3a1564 100644
|
||||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -66,6 +66,9 @@ else
|
||||
curl_LDADD = $(top_builddir)/lib/libcurl.la @NSS_LIBS@ @SSL_LIBS@ @ZLIB_LIBS@ @CURL_NETWORK_AND_TIME_LIBS@
|
||||
endif
|
||||
|
||||
+curl_LDFLAGS = $(curl_LDFLAGS)
|
||||
+curl_CPPFLAGS = $(AM_CPPFLAGS)
|
||||
+
|
||||
# if unit tests are enabled, build a static library to link them with
|
||||
if BUILD_UNITTESTS
|
||||
noinst_LTLIBRARIES = libcurltool.la
|
||||
CURL_HEREDOC
|
||||
File.write('curl_778_static.patch', @curl_778_static_patch)
|
||||
system 'patch -Np1 -i curl_778_static.patch'
|
||||
# Configure is broken in curl 7.81.0
|
||||
# See https://github.com/curl/curl/pull/8230
|
||||
@curl_781_configure_patch = <<~'CURL_CONFIGURE_HEREDOC'
|
||||
--- a/m4/curl-functions.m4 2022-01-03 16:36:46.000000000 +0000
|
||||
+++ b/m4/curl-functions.m4 2022-01-05 17:34:33.635107486 +0000
|
||||
@@ -6515,16 +6515,21 @@ dnl changes contained within this macro.
|
||||
|
||||
AC_DEFUN([CURL_RUN_IFELSE], [
|
||||
case $host_os in
|
||||
- darwin*) library_path_var=DYLD_LIBRARY_PATH ;;
|
||||
- *) library_path_var=LD_LIBRARY_PATH ;;
|
||||
+ darwin*)
|
||||
+ old=$DYLD_LIBRARY_PATH
|
||||
+ DYLD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
|
||||
+ export DYLD_LIBRARY_PATH
|
||||
+ AC_RUN_IFELSE([AC_LANG_SOURCE([$1])], $2, $3, $4)
|
||||
+ DYLD_LIBRARY_PATH=$old # restore
|
||||
+ ;;
|
||||
+ *)
|
||||
+ old=$LD_LIBRARY_PATH
|
||||
+ LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
|
||||
+ export LD_LIBRARY_PATH
|
||||
+ AC_RUN_IFELSE([AC_LANG_SOURCE([$1])], $2, $3, $4)
|
||||
+ LD_LIBRARY_PATH=$old # restore
|
||||
+ ;;
|
||||
esac
|
||||
-
|
||||
- eval "old=$$library_path_var"
|
||||
- eval "$library_path_var=\$CURL_LIBRARY_PATH:\$old"
|
||||
-
|
||||
- eval "export $library_path_var"
|
||||
- AC_RUN_IFELSE([AC_LANG_SOURCE([$1])], $2, $3, $4)
|
||||
- eval "$library_path_var=\$old" # restore
|
||||
])
|
||||
|
||||
dnl CURL_COVERAGE
|
||||
CURL_CONFIGURE_HEREDOC
|
||||
File.write('curl_781_configure.patch', @curl_781_configure_patch)
|
||||
system 'patch -Np1 -i curl_781_configure.patch'
|
||||
end
|
||||
|
||||
def self.build
|
||||
# Not sure how to avoid this hack.
|
||||
# FileUtils.mv "#{CREW_PREFIX}/include", "#{CREW_PREFIX}/include.disabled"
|
||||
@curl_lib_deps = "-l:libunbound.a \
|
||||
-l:libresolv.a \
|
||||
-l:libm.a \
|
||||
-l:libbrotlicommon-static.a \
|
||||
-l:libbrotlidec-static.a \
|
||||
-l:libzstd.a \
|
||||
-l:libz.a \
|
||||
-l:libssl.a \
|
||||
-l:libcrypto.a \
|
||||
-l:libpthread.a \
|
||||
-l:libncursesw.a \
|
||||
-l:libtinfow.a \
|
||||
-l:libunistring.a \
|
||||
-l:libidn2.a"
|
||||
|
||||
system 'autoreconf -fvi'
|
||||
system 'filefix'
|
||||
# ntlm disabled because requisite openssl des has issues building on i686
|
||||
system "#{MUSL_ENV_OPTIONS.gsub("CPPFLAGS='", "CPPFLAGS='-DCURL_STATICLIB ")} \
|
||||
LIBS='#{@curl_lib_deps} \
|
||||
-L#{CREW_MUSL_PREFIX}/lib' \
|
||||
CURL_LIBRARY_PATH=#{CREW_MUSL_PREFIX}/lib \
|
||||
./configure --prefix=#{CREW_MUSL_PREFIX} \
|
||||
--libdir=#{CREW_MUSL_PREFIX}/lib \
|
||||
--disable-ares \
|
||||
--disable-debug \
|
||||
--disable-dependency-tracking \
|
||||
--disable-imap \
|
||||
--disable-ldap \
|
||||
--disable-ldaps \
|
||||
--disable-maintainer-mode \
|
||||
--disable-ntlm \
|
||||
--disable-rtsp \
|
||||
--disable-shared \
|
||||
--enable-ipv6 \
|
||||
--enable-static \
|
||||
--enable-unix-sockets \
|
||||
--with-brotli=#{CREW_MUSL_PREFIX} \
|
||||
--with-ca-bundle=#{CREW_PREFIX}/etc/ssl/certs/ca-certificates.crt \
|
||||
--with-ca-path=#{CREW_PREFIX}/etc/ssl/certs \
|
||||
--with-ca-fallback \
|
||||
--with-libidn2=#{CREW_MUSL_PREFIX} \
|
||||
--without-librtmp \
|
||||
--without-libpsl \
|
||||
--with-openssl=#{CREW_MUSL_PREFIX} \
|
||||
--with-zlib=#{CREW_MUSL_PREFIX}"
|
||||
# begin
|
||||
system "#{MUSL_ENV_OPTIONS.gsub("CPPFLAGS='", "CPPFLAGS='-DCURL_STATICLIB ")} \
|
||||
make curl_LDFLAGS='-static -all-static -L#{CREW_MUSL_PREFIX}/lib -Wl,-rpath=#{CREW_MUSL_PREFIX}/lib'"
|
||||
# rescue StandardError
|
||||
# undoing prior hack...
|
||||
# FileUtils.mv "#{CREW_PREFIX}/include.disabled", "#{CREW_PREFIX}/include"
|
||||
# end
|
||||
# FileUtils.mv "#{CREW_PREFIX}/include.disabled", "#{CREW_PREFIX}/include" unless Dir.exist?("#{CREW_PREFIX}/include")
|
||||
end
|
||||
|
||||
def self.check
|
||||
# Fail if built curl is not statically built.
|
||||
system 'readelf -d src/curl | grep "Shared library" && exit 1 || true'
|
||||
# Fail if built curl unable to download files
|
||||
system 'src/curl -Lf https://github.com/skycocker/chromebrew/raw/master/install.sh -o /dev/null || exit 1'
|
||||
end
|
||||
|
||||
def self.install
|
||||
system 'make', "DESTDIR=#{CREW_DEST_DIR}", 'install', 'curl_LDFLAGS=-all-static'
|
||||
# Curl already includes man pages via "curl -M"
|
||||
FileUtils.rm_rf "#{CREW_DEST_MUSL_PREFIX}/share/man"
|
||||
FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/bin"
|
||||
end
|
||||
end
|
||||
@@ -4,8 +4,8 @@ class Musl_cyrus_sasl < Package
|
||||
description 'Simple Authentication and Security Layer (SASL) is a specification that describes how authentication mechanisms can be plugged into an application protocol on the wire. Cyrus SASL is an implementation of SASL that makes it easy for application developers to integrate authentication mechanisms into their application in a generic way.'
|
||||
homepage 'https://www.cyrusimap.org/sasl'
|
||||
version '2.1.27'
|
||||
license 'custom'
|
||||
compatibility 'all'
|
||||
license 'custom'
|
||||
source_url 'https://github.com/cyrusimap/cyrus-sasl/releases/download/cyrus-sasl-2.1.27/cyrus-sasl-2.1.27.tar.gz'
|
||||
source_sha256 '26866b1549b00ffd020f188a43c258017fa1c382b3ddadd8201536f72efb05d5'
|
||||
|
||||
@@ -16,78 +16,31 @@ class Musl_cyrus_sasl < Package
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_cyrus_sasl/2.1.27_x86_64/musl_cyrus_sasl-2.1.27-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: 'a1f6ff66ce747000afdec8006730e87506c3e3c2a8af317816ad84fd240e97b8',
|
||||
armv7l: 'a1f6ff66ce747000afdec8006730e87506c3e3c2a8af317816ad84fd240e97b8',
|
||||
i686: '420b9dfd517bd981837a7e26d379d5996635dfc66eae1a02eae1d9ed8e6886aa',
|
||||
x86_64: 'c9c1e6ec2b43a3e3ad74dea27c310331ea6d209adb3bbf73429ff33d97950737'
|
||||
aarch64: '2821b2a97fddab00c8cb159f5c4dc85595a6567c0b3ec83c37f4e7ff3afdfade',
|
||||
armv7l: '2821b2a97fddab00c8cb159f5c4dc85595a6567c0b3ec83c37f4e7ff3afdfade',
|
||||
i686: 'ef815038d7ebc675b8a7e4e0f89b35ee50ff7da31c6e11cd9142eaedd8ab9b12',
|
||||
x86_64: '99ee11da56be7a4e82191b4875b1e5eda36956ba5c9765d41cc4d64e577412db'
|
||||
})
|
||||
|
||||
depends_on 'musl_native_toolchain' => :build
|
||||
depends_on 'musl_libunistring' => :build
|
||||
depends_on 'musl_libidn2' => :build
|
||||
depends_on 'musl_zlib' => :build
|
||||
depends_on 'musl_ncurses' => :build
|
||||
depends_on 'musl_openssl' => :build
|
||||
depends_on 'musl_krb5' => :build
|
||||
|
||||
@abi = ''
|
||||
@arch_ssp_cflags = ''
|
||||
@arch_c_flags = ''
|
||||
@arch_cxx_flags = ''
|
||||
case ARCH
|
||||
when 'aarch64', 'armv7l'
|
||||
@abi = 'eabihf'
|
||||
when 'i686'
|
||||
@arch_ssp_cflags = '-fno-stack-protector'
|
||||
when 'x86_64'
|
||||
end
|
||||
|
||||
@cflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_c_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@cxxflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_cxx_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@ldflags = "-L#{CREW_PREFIX}/musl/lib -flto -static"
|
||||
@cmake_ldflags = '-flto'
|
||||
@musldep_cmake_options = "PATH=#{CREW_PREFIX}/musl/bin:#{CREW_PREFIX}/musl/#{ARCH}-linux-musl#{@abi}/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
AR=#{CREW_PREFIX}/musl/bin/ar \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@cmake_ldflags}' \
|
||||
cmake \
|
||||
-DCMAKE_INSTALL_PREFIX='#{CREW_PREFIX}/musl' \
|
||||
-DCMAKE_LIBRARY_PATH='#{CREW_PREFIX}/musl/lib' \
|
||||
-DCMAKE_C_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc \
|
||||
-DCMAKE_CXX_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++ \
|
||||
-DCMAKE_INCLUDE_DIRECTORIES_BEFORE=ON \
|
||||
-DINCLUDE_DIRECTORIES=#{CREW_PREFIX}/musl/include \
|
||||
-DCMAKE_C_FLAGS='#{@cflags}' \
|
||||
-DCMAKE_CXX_FLAGS='#{@cxxflags}' \
|
||||
-DCMAKE_EXE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_STATIC_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_MODULE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DPROPERTY_INTERPROCEDURAL_OPTIMIZATION=TRUE \
|
||||
-DCMAKE_BUILD_TYPE=Release"
|
||||
|
||||
@musldep_env_options = "PATH=#{CREW_PREFIX}/musl/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
PKG_CONFIG_LIBDIR=#{CREW_PREFIX}/musl/lib/pkgconfig \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@ldflags}'"
|
||||
is_static
|
||||
|
||||
def self.build
|
||||
system "#{@musldep_env_options} ./configure --prefix=#{CREW_PREFIX}/musl \
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
system "#{MUSL_ENV_OPTIONS} ./configure --prefix=#{CREW_MUSL_PREFIX} \
|
||||
--enable-static \
|
||||
--with-cxx-static"
|
||||
system 'make'
|
||||
end
|
||||
|
||||
def self.install
|
||||
ENV['CREW_FHS_NONCOMPLIANCE_ONLY_ADVISORY'] = '1'
|
||||
warn_level = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
load "#{CREW_LIB_PATH}lib/const.rb"
|
||||
$VERBOSE = warn_level
|
||||
system 'make', "DESTDIR=#{CREW_DEST_DIR}", 'install'
|
||||
end
|
||||
end
|
||||
|
||||
@@ -3,31 +3,36 @@ require 'package'
|
||||
class Musl_expat < Package
|
||||
description 'James Clark\'s Expat XML parser library in C.'
|
||||
homepage 'https://sourceforge.net/projects/expat/'
|
||||
version '2.4.1'
|
||||
version '2.4.1-1'
|
||||
license 'MIT'
|
||||
compatibility 'all'
|
||||
source_url 'https://prdownloads.sourceforge.net/project/expat/expat/2.4.1/expat-2.4.1.tar.xz'
|
||||
source_sha256 'cf032d0dba9b928636548e32b327a2d66b1aab63c4f4a13dd132c2d1d2f2fb6a'
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_expat/2.4.1_armv7l/musl_expat-2.4.1-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_expat/2.4.1_armv7l/musl_expat-2.4.1-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_expat/2.4.1_i686/musl_expat-2.4.1-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_expat/2.4.1_x86_64/musl_expat-2.4.1-chromeos-x86_64.tpxz'
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_expat/2.4.1-1_armv7l/musl_expat-2.4.1-1-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_expat/2.4.1-1_armv7l/musl_expat-2.4.1-1-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_expat/2.4.1-1_i686/musl_expat-2.4.1-1-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_expat/2.4.1-1_x86_64/musl_expat-2.4.1-1-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: '7f5fe3311c73a4737cefdfe8553ee604c1e046376ca240711cc953186f35d590',
|
||||
armv7l: '7f5fe3311c73a4737cefdfe8553ee604c1e046376ca240711cc953186f35d590',
|
||||
i686: 'deb210dcd8e6db83798ff3e349669b726318ae4c99a8797b327e938c43e5e0c1',
|
||||
x86_64: 'fe4d81b538419c1e27d8600c3bd87c1a4011289fb7eddd58ad75a9e8b623decc'
|
||||
aarch64: '0d3de6837cb658a742d53ed9c6df190708dd0a454802bc42e15d448a8e9fbe46',
|
||||
armv7l: '0d3de6837cb658a742d53ed9c6df190708dd0a454802bc42e15d448a8e9fbe46',
|
||||
i686: 'c549a1c5c37d959f9c29dd9018c0e7621e3cff64af77e46c0ab16a43f43ccd85',
|
||||
x86_64: 'dabf216e0c02afd4e7d98333c37de3f7aaba4fc0841d6079e6cb3be1db2811c3'
|
||||
})
|
||||
|
||||
depends_on 'musl_native_toolchain' => :build
|
||||
|
||||
is_static
|
||||
|
||||
def self.patch
|
||||
system 'filefix'
|
||||
end
|
||||
|
||||
def self.build
|
||||
system "#{@musldep_env_options} ./configure --prefix=#{CREW_PREFIX}/musl \
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
system "#{MUSL_ENV_OPTIONS} ./configure --prefix=#{CREW_MUSL_PREFIX} \
|
||||
--disable-shared \
|
||||
--enable-static \
|
||||
--with-pic"
|
||||
@@ -35,11 +40,6 @@ class Musl_expat < Package
|
||||
end
|
||||
|
||||
def self.install
|
||||
ENV['CREW_FHS_NONCOMPLIANCE_ONLY_ADVISORY'] = '1'
|
||||
warn_level = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
load "#{CREW_LIB_PATH}lib/const.rb"
|
||||
$VERBOSE = warn_level
|
||||
system 'make', "DESTDIR=#{CREW_DEST_DIR}", 'install'
|
||||
end
|
||||
end
|
||||
|
||||
76
packages/musl_getaddrinfo_test.rb
Normal file
76
packages/musl_getaddrinfo_test.rb
Normal file
@@ -0,0 +1,76 @@
|
||||
require 'package'
|
||||
|
||||
class Musl_getaddrinfo_test < Package
|
||||
description 'musl getaddrinfo test.'
|
||||
homepage 'https://www.openwall.com/lists/musl/2021/07/19/1'
|
||||
version '1.0'
|
||||
license 'custom'
|
||||
compatibility 'all'
|
||||
source_url 'SKIP'
|
||||
|
||||
depends_on 'musl_native_toolchain' => :build
|
||||
|
||||
def self.build
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
@a_c = <<~'SOURCEEOF'
|
||||
#include <netdb.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <arpa/inet.h>
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
struct addrinfo hints;
|
||||
struct addrinfo *result, *rp;
|
||||
int r;
|
||||
char s[INET6_ADDRSTRLEN];
|
||||
|
||||
memset(&hints, 0, sizeof(hints));
|
||||
if (argc > 2)
|
||||
hints.ai_family = AF_INET;
|
||||
hints.ai_socktype = SOCK_DGRAM;
|
||||
|
||||
r = getaddrinfo(argv[1], NULL, &hints, &result);
|
||||
if (r != 0) {
|
||||
fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(r));
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
for (rp = result; rp != NULL; rp = rp->ai_next) {
|
||||
switch (rp->ai_family) {
|
||||
case AF_INET:
|
||||
inet_ntop(AF_INET, &((struct sockaddr_in
|
||||
*)rp->ai_addr)->sin_addr, s, INET6_ADDRSTRLEN);
|
||||
printf("AF_INET: %s\n", s);
|
||||
break;
|
||||
case AF_INET6:
|
||||
inet_ntop(AF_INET6, &((struct sockaddr_in6
|
||||
*)rp->ai_addr)->sin6_addr, s, INET6_ADDRSTRLEN);
|
||||
printf("AF_INET6: %s\n", s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
freeaddrinfo(result);
|
||||
}
|
||||
SOURCEEOF
|
||||
File.write('a.c', @a_c)
|
||||
system "#{CREW_MUSL_PREFIX}/bin/#{ARCH}-linux-musl#{MUSL_ABI}-gcc \
|
||||
-isysroot=#{CREW_MUSL_PREFIX} -B#{CREW_MUSL_PREFIX}/include \
|
||||
-static --static \
|
||||
a.c -o musl_getaddrinfo_test"
|
||||
end
|
||||
|
||||
def self.install
|
||||
FileUtils.mkdir_p "#{CREW_DEST_MUSL_PREFIX}/bin"
|
||||
FileUtils.cp 'musl_getaddrinfo_test', "#{CREW_DEST_MUSL_PREFIX}/bin/"
|
||||
end
|
||||
|
||||
def self.check
|
||||
puts 'Testing the musl resolver to see if it can resolve google.com:'.lightblue
|
||||
system './musl_getaddrinfo_test google.com set_ai_family'
|
||||
system './musl_getaddrinfo_test google.com'
|
||||
end
|
||||
end
|
||||
@@ -3,103 +3,54 @@ require 'package'
|
||||
class Musl_krb5 < Package
|
||||
description 'Kerberos is a network authentication protocol.'
|
||||
homepage 'https://web.mit.edu/kerberos'
|
||||
version '1.20-4b17'
|
||||
license 'openafs-krb5-a, BSD, MIT, OPENLDAP, BSD-2, HPND, BSD-4, ISC, RSA, CC-BY-SA-3.0 and BSD-2 or GPL-2+ )'
|
||||
version '1.20-5c39'
|
||||
compatibility 'all'
|
||||
license 'openafs-krb5-a, BSD, MIT, OPENLDAP, BSD-2, HPND, BSD-4, ISC, RSA, CC-BY-SA-3.0 and BSD-2 or GPL-2+ )'
|
||||
source_url 'https://github.com/krb5/krb5.git'
|
||||
git_hashtag '4b170a1814413cbc515f9322483851a4ac5012b7'
|
||||
git_hashtag '5c394dc54c9196c300bd99a66a3257692f520920'
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_krb5/1.20-4b17_armv7l/musl_krb5-1.20-4b17-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_krb5/1.20-4b17_armv7l/musl_krb5-1.20-4b17-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_krb5/1.20-4b17_i686/musl_krb5-1.20-4b17-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_krb5/1.20-4b17_x86_64/musl_krb5-1.20-4b17-chromeos-x86_64.tpxz'
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_krb5/1.20-149d_armv7l/musl_krb5-1.20-149d-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_krb5/1.20-149d_armv7l/musl_krb5-1.20-149d-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_krb5/1.20-5c39_i686/musl_krb5-1.20-5c39-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_krb5/1.20-5c39_x86_64/musl_krb5-1.20-5c39-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: 'dbc9ed703ae303b9a505681f65caef656a73778e7ab8de45d2e9bee7092417aa',
|
||||
armv7l: 'dbc9ed703ae303b9a505681f65caef656a73778e7ab8de45d2e9bee7092417aa',
|
||||
i686: '1008d3ed9cc1cd2c57c2cd573195475dfcea7e15240e0a3cd065acb016f8324b',
|
||||
x86_64: '6db802be3a76a2ae409a459061b2cf6a16f10d831484b71c9307a78b85ead89f'
|
||||
aarch64: 'ff862ef8c5c8711a2825f39a53b18ab39045424ed977f5a2ba6a431d3b706dd1',
|
||||
armv7l: 'ff862ef8c5c8711a2825f39a53b18ab39045424ed977f5a2ba6a431d3b706dd1',
|
||||
i686: '0e490d5c2ef27c23ddfc7f9247ad11d7d232f452c74ac45492a920d69e1640f1',
|
||||
x86_64: '16b09030992177017079d74ce3bbf60f553ba42a0ce107f7c8ec86ae6278034d'
|
||||
})
|
||||
|
||||
depends_on 'musl_native_toolchain' => :build
|
||||
depends_on 'musl_libunistring' => :build
|
||||
depends_on 'musl_libidn2' => :build
|
||||
depends_on 'musl_zlib' => :build
|
||||
depends_on 'musl_ncurses' => :build
|
||||
depends_on 'musl_openssl' => :build
|
||||
|
||||
@abi = ''
|
||||
@arch_ssp_cflags = ''
|
||||
@arch_c_flags = ''
|
||||
@arch_cxx_flags = ''
|
||||
case ARCH
|
||||
when 'aarch64', 'armv7l'
|
||||
@abi = 'eabihf'
|
||||
when 'i686'
|
||||
@arch_ssp_cflags = '-fno-stack-protector'
|
||||
when 'x86_64'
|
||||
end
|
||||
|
||||
@cflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_c_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@cxxflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_cxx_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@ldflags = "-L#{CREW_PREFIX}/musl/lib -flto -static"
|
||||
@cmake_ldflags = '-flto'
|
||||
@musldep_cmake_options = "PATH=#{CREW_PREFIX}/musl/bin:#{CREW_PREFIX}/musl/#{ARCH}-linux-musl#{@abi}/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
AR=#{CREW_PREFIX}/musl/bin/ar \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@cmake_ldflags}' \
|
||||
cmake \
|
||||
-DCMAKE_INSTALL_PREFIX='#{CREW_PREFIX}/musl' \
|
||||
-DCMAKE_LIBRARY_PATH='#{CREW_PREFIX}/musl/lib' \
|
||||
-DCMAKE_C_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc \
|
||||
-DCMAKE_CXX_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++ \
|
||||
-DCMAKE_INCLUDE_DIRECTORIES_BEFORE=ON \
|
||||
-DINCLUDE_DIRECTORIES=#{CREW_PREFIX}/musl/include \
|
||||
-DCMAKE_C_FLAGS='#{@cflags}' \
|
||||
-DCMAKE_CXX_FLAGS='#{@cxxflags}' \
|
||||
-DCMAKE_EXE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_STATIC_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_MODULE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DPROPERTY_INTERPROCEDURAL_OPTIMIZATION=TRUE \
|
||||
-DCMAKE_BUILD_TYPE=Release"
|
||||
|
||||
@krb5_env_options = "PATH=#{CREW_PREFIX}/musl/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
PKG_CONFIG_LIBDIR=#{CREW_PREFIX}/musl/lib/pkgconfig \
|
||||
LIBS='-l:libncursesw.a -l:libtinfow.a' \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS=' #{@ldflags} -l:libncursesw.a -l:libtinfow.a'"
|
||||
is_static
|
||||
|
||||
def self.build
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
Dir.chdir 'src' do
|
||||
system 'autoreconf -fiv'
|
||||
system "#{@krb5_env_options} ./configure --prefix=#{CREW_PREFIX}/musl \
|
||||
--libdir=#{CREW_PREFIX}/musl/lib \
|
||||
--localstatedir=#{CREW_PREFIX}/var/krb5kdc \
|
||||
--disable-shared \
|
||||
--enable-static \
|
||||
--without-system-verto \
|
||||
--without-libedit \
|
||||
--disable-rpath \
|
||||
--without-keyutils"
|
||||
system "#{MUSL_ENV_OPTIONS.gsub("LDFLAGS='",
|
||||
"LDFLAGS='-l:libncursesw.a -l:libtinfow.a ").prepend("LIBS='-l:libncursesw.a -l:libtinfow.a' ")} \
|
||||
./configure --prefix=#{CREW_MUSL_PREFIX} \
|
||||
--libdir=#{CREW_MUSL_PREFIX}/lib \
|
||||
--localstatedir=#{CREW_PREFIX}/var/krb5kdc \
|
||||
--disable-shared \
|
||||
--enable-static \
|
||||
--without-system-verto \
|
||||
--without-libedit \
|
||||
--disable-rpath \
|
||||
--without-keyutils"
|
||||
system 'make'
|
||||
end
|
||||
end
|
||||
|
||||
def self.install
|
||||
ENV['CREW_FHS_NONCOMPLIANCE_ONLY_ADVISORY'] = '1'
|
||||
warn_level = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
load "#{CREW_LIB_PATH}lib/const.rb"
|
||||
$VERBOSE = warn_level
|
||||
Dir.chdir 'src' do
|
||||
system 'make', "DESTDIR=#{CREW_DEST_DIR}", 'install'
|
||||
end
|
||||
|
||||
@@ -18,52 +18,24 @@ class Musl_libbacktrace < Package
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libbacktrace/d0f5e95a87a4d3e0a1ed6c069b5dae7cbab3ed2a_x86_64/musl_libbacktrace-d0f5e95a87a4d3e0a1ed6c069b5dae7cbab3ed2a-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: '19bc88daa2ee3de04167a159d2a52d1f35e3f54e531847de9b441517cfef7d4b',
|
||||
armv7l: '19bc88daa2ee3de04167a159d2a52d1f35e3f54e531847de9b441517cfef7d4b',
|
||||
i686: '1dc24f90bd5cb0c86518f6843906fa28647f8e3c4c4c44ce33e41707e22cf967',
|
||||
x86_64: '24b85b73f26b55343485cca8938aebfcd09c586ffba6cef5a7430b4a0336c82b'
|
||||
aarch64: '6bbc858bbdaad878e275581442c17cae435cf936fec7bf1d98da24b93f46c729',
|
||||
armv7l: '6bbc858bbdaad878e275581442c17cae435cf936fec7bf1d98da24b93f46c729',
|
||||
i686: 'b2a40ba11af574e0a39cb2f3ec7e3befcc6640d44b474c4b04a558f1303a225d',
|
||||
x86_64: '675283778411fed85ce6890f2bdce2d6e4f8b0956f8c1c3d2eb93c80ecc7e381'
|
||||
})
|
||||
|
||||
depends_on 'musl_native_toolchain' => :build
|
||||
|
||||
@abi = ''
|
||||
@arch_c_flags = ''
|
||||
@arch_cxx_flags = ''
|
||||
case ARCH
|
||||
when 'aarch64', 'armv7l'
|
||||
@abi = 'eabihf'
|
||||
end
|
||||
|
||||
@cflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_c_flags} -fcommon"
|
||||
@cxxflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_cxx_flags} -fcommon -static"
|
||||
@ldflags = "-L#{CREW_PREFIX}/musl/lib -flto -static"
|
||||
@cmake_ldflags = '-flto'
|
||||
|
||||
@musldep_env_options = "PATH=#{CREW_PREFIX}/musl/bin:#{ENV['PATH']} \
|
||||
LIBRARY_PATH='#{CREW_PREFIX}/musl/lib:$LIBRARY_PATH' \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
PKG_CONFIG_LIBDIR=#{CREW_PREFIX}/musl/lib/pkgconfig \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@ldflags}'"
|
||||
|
||||
def self.build
|
||||
system "./configure --prefix=#{CREW_PREFIX}/musl \
|
||||
#{@musldep_env_options} \
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
system "./configure --prefix=#{CREW_MUSL_PREFIX} \
|
||||
#{MUSL_ENV_OPTIONS} \
|
||||
--enable-shared \
|
||||
--enable-static"
|
||||
system 'make'
|
||||
end
|
||||
|
||||
def self.install
|
||||
ENV['CREW_FHS_NONCOMPLIANCE_ONLY_ADVISORY'] = '1'
|
||||
warn_level = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
load "#{CREW_LIB_PATH}lib/const.rb"
|
||||
$VERBOSE = warn_level
|
||||
system "make DESTDIR=#{CREW_DEST_DIR} install"
|
||||
end
|
||||
end
|
||||
|
||||
@@ -3,85 +3,39 @@ require 'package'
|
||||
class Musl_libidn2 < Package
|
||||
description 'GNU Libidn is a fully documented implementation of the Stringprep, Punycode and IDNA 2003 specifications.'
|
||||
homepage 'https://www.gnu.org/software/libidn/'
|
||||
version '2.3.2'
|
||||
@_ver = '2.3.2'
|
||||
version "#{@_ver}-1"
|
||||
license 'GPL-2+ and LGPL-3+'
|
||||
compatibility 'all'
|
||||
source_url "https://ftpmirror.gnu.org/libidn/libidn2-#{version}.tar.gz"
|
||||
source_url "https://ftpmirror.gnu.org/libidn/libidn2-#{@_ver}.tar.gz"
|
||||
source_sha256 '76940cd4e778e8093579a9d195b25fff5e936e9dc6242068528b437a76764f91'
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libidn2/2.3.2_armv7l/musl_libidn2-2.3.2-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libidn2/2.3.2_armv7l/musl_libidn2-2.3.2-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libidn2/2.3.2_i686/musl_libidn2-2.3.2-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libidn2/2.3.2_x86_64/musl_libidn2-2.3.2-chromeos-x86_64.tpxz'
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libidn2/2.3.2-1_armv7l/musl_libidn2-2.3.2-1-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libidn2/2.3.2-1_armv7l/musl_libidn2-2.3.2-1-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libidn2/2.3.2-1_i686/musl_libidn2-2.3.2-1-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libidn2/2.3.2-1_x86_64/musl_libidn2-2.3.2-1-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: '05013c0c7e71e590b2b7d7c55519ff837a09f187330612c142f2bb7e2632b5a6',
|
||||
armv7l: '05013c0c7e71e590b2b7d7c55519ff837a09f187330612c142f2bb7e2632b5a6',
|
||||
i686: '5652db6b61a1b4245a8b72aa27da31cffcdb15de4a3b7bb724b07264f022b505',
|
||||
x86_64: '0813b2ae14c7349e1112f4e93ca5cd76e5a0ba5bee4c51b1db2f74c8e86006c7'
|
||||
aarch64: 'fd3f74482aebcf9897c618eb74c45e6512ff77524f3f6135029ad7e746e5ecbe',
|
||||
armv7l: 'fd3f74482aebcf9897c618eb74c45e6512ff77524f3f6135029ad7e746e5ecbe',
|
||||
i686: '45c0aa8e6cac6846789851ae08a06d0f7165fbfe0ef8c8c3a331befa2d00edb9',
|
||||
x86_64: '9919fe30f0b8710388e874a7289664a4867dae54b3bf2bbd494eecf92ebb8ac4'
|
||||
})
|
||||
|
||||
depends_on 'musl_native_toolchain' => :build
|
||||
depends_on 'musl_libunistring' => :build
|
||||
depends_on 'musl_zlib' => :build
|
||||
|
||||
@abi = ''
|
||||
@arch_ssp_cflags = ''
|
||||
@arch_c_flags = ''
|
||||
@arch_cxx_flags = ''
|
||||
case ARCH
|
||||
when 'aarch64', 'armv7l'
|
||||
@abi = 'eabihf'
|
||||
when 'i686'
|
||||
@arch_ssp_cflags = '-fno-stack-protector'
|
||||
when 'x86_64'
|
||||
end
|
||||
|
||||
@cflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_c_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@cxxflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_cxx_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@ldflags = "-L#{CREW_PREFIX}/musl/lib -flto -static"
|
||||
@cmake_ldflags = '-flto'
|
||||
@musldep_cmake_options = "PATH=#{CREW_PREFIX}/musl/bin:#{CREW_PREFIX}/musl/#{ARCH}-linux-musl#{@abi}/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
AR=#{CREW_PREFIX}/musl/bin/ar \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@cmake_ldflags}' \
|
||||
cmake \
|
||||
-DCMAKE_INSTALL_PREFIX='#{CREW_PREFIX}/musl' \
|
||||
-DCMAKE_LIBRARY_PATH='#{CREW_PREFIX}/musl/lib' \
|
||||
-DCMAKE_C_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc \
|
||||
-DCMAKE_CXX_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++ \
|
||||
-DCMAKE_INCLUDE_DIRECTORIES_BEFORE=ON \
|
||||
-DINCLUDE_DIRECTORIES=#{CREW_PREFIX}/musl/include \
|
||||
-DCMAKE_C_FLAGS='#{@cflags}' \
|
||||
-DCMAKE_CXX_FLAGS='#{@cxxflags}' \
|
||||
-DCMAKE_EXE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_STATIC_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_MODULE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DPROPERTY_INTERPROCEDURAL_OPTIMIZATION=TRUE \
|
||||
-DCMAKE_BUILD_TYPE=Release"
|
||||
|
||||
@musldep_env_options = "PATH=#{CREW_PREFIX}/musl/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
PKG_CONFIG_LIBDIR=#{CREW_PREFIX}/musl/lib/pkgconfig \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@ldflags}'"
|
||||
is_static
|
||||
|
||||
def self.patch
|
||||
FileUtils.rm_f 'doc/idn2.1'
|
||||
end
|
||||
|
||||
def self.build
|
||||
system "#{@musldep_env_options} ./configure --prefix=#{CREW_PREFIX}/musl \
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
system "#{MUSL_ENV_OPTIONS} ./configure --prefix=#{CREW_MUSL_PREFIX} \
|
||||
--disable-shared \
|
||||
--disable-doc \
|
||||
--disable-rpath \
|
||||
@@ -91,11 +45,6 @@ class Musl_libidn2 < Package
|
||||
end
|
||||
|
||||
def self.install
|
||||
ENV['CREW_FHS_NONCOMPLIANCE_ONLY_ADVISORY'] = '1'
|
||||
warn_level = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
load "#{CREW_LIB_PATH}lib/const.rb"
|
||||
$VERBOSE = warn_level
|
||||
system 'make', "DESTDIR=#{CREW_DEST_DIR}", 'install'
|
||||
end
|
||||
end
|
||||
|
||||
@@ -3,7 +3,7 @@ require 'package'
|
||||
class Musl_libnghttp2 < Package
|
||||
description 'library implementing HTTP/2 protocol'
|
||||
homepage 'https://nghttp2.org/'
|
||||
@_ver = '1.45.1'
|
||||
@_ver = '1.46.0'
|
||||
version @_ver
|
||||
license 'MIT'
|
||||
compatibility 'all'
|
||||
@@ -11,93 +11,42 @@ class Musl_libnghttp2 < Package
|
||||
git_hashtag "v#{@_ver}"
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libnghttp2/1.45.1_armv7l/musl_libnghttp2-1.45.1-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libnghttp2/1.45.1_armv7l/musl_libnghttp2-1.45.1-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libnghttp2/1.45.1_i686/musl_libnghttp2-1.45.1-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libnghttp2/1.45.1_x86_64/musl_libnghttp2-1.45.1-chromeos-x86_64.tpxz'
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libnghttp2/1.46.0_armv7l/musl_libnghttp2-1.46.0-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libnghttp2/1.46.0_armv7l/musl_libnghttp2-1.46.0-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libnghttp2/1.46.0_i686/musl_libnghttp2-1.46.0-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libnghttp2/1.46.0_x86_64/musl_libnghttp2-1.46.0-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: '11da4116f1a2053d66dffc6ba678add182ce4fd779164a98206ccb2dac9c882b',
|
||||
armv7l: '11da4116f1a2053d66dffc6ba678add182ce4fd779164a98206ccb2dac9c882b',
|
||||
i686: '6976dfd15fbb3fe701d5805dd5fe5c9e3e8451a1fc4e3a3ffedd552484232260',
|
||||
x86_64: '89f12cc2a150334b932ecc58e235721d776e42dc44e9acd34fa4b0d5529dc8a3'
|
||||
aarch64: '100bc140036d70a07ae3497da6b276b46acadbbe9f214f17c7eea4b2eedea6b7',
|
||||
armv7l: '100bc140036d70a07ae3497da6b276b46acadbbe9f214f17c7eea4b2eedea6b7',
|
||||
i686: '45ee0ea9e9fbb24681e9da2dabd2191d76b2374521cf9a4ee6bcc200edf9de73',
|
||||
x86_64: '7f52972492d8445872028ee6a6c6ca899abd30e2b3fee4d0e2325a9c69300e4c'
|
||||
})
|
||||
|
||||
depends_on 'musl_native_toolchain' => :build
|
||||
depends_on 'musl_libunistring' => :build
|
||||
depends_on 'musl_libidn2' => :build
|
||||
depends_on 'musl_zlib' => :build
|
||||
depends_on 'musl_ncurses' => :build
|
||||
depends_on 'musl_openssl' => :build
|
||||
|
||||
@abi = ''
|
||||
@arch_ssp_cflags = ''
|
||||
@arch_c_flags = ''
|
||||
@arch_cxx_flags = ''
|
||||
case ARCH
|
||||
when 'aarch64', 'armv7l'
|
||||
@abi = 'eabihf'
|
||||
when 'i686'
|
||||
@arch_ssp_cflags = '-fno-stack-protector'
|
||||
when 'x86_64'
|
||||
end
|
||||
|
||||
@cflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_c_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@cxxflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_cxx_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@ldflags = "-L#{CREW_PREFIX}/musl/lib -flto -static"
|
||||
@cmake_ldflags = '-flto'
|
||||
@musldep_cmake_options = "PATH=#{CREW_PREFIX}/musl/bin:#{CREW_PREFIX}/musl/#{ARCH}-linux-musl#{@abi}/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
AR=#{CREW_PREFIX}/musl/bin/ar \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@cmake_ldflags}' \
|
||||
cmake \
|
||||
-DCMAKE_INSTALL_PREFIX='#{CREW_PREFIX}/musl' \
|
||||
-DCMAKE_INSTALL_LIBDIR='#{CREW_PREFIX}/musl/lib' \
|
||||
-DCMAKE_LIBRARY_PATH='#{CREW_PREFIX}/musl/lib' \
|
||||
-DCMAKE_C_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc \
|
||||
-DCMAKE_CXX_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++ \
|
||||
-DCMAKE_INCLUDE_DIRECTORIES_BEFORE=ON \
|
||||
-DINCLUDE_DIRECTORIES=#{CREW_PREFIX}/musl/include \
|
||||
-DCMAKE_C_FLAGS='#{@cflags}' \
|
||||
-DCMAKE_CXX_FLAGS='#{@cxxflags}' \
|
||||
-DCMAKE_EXE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_STATIC_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_MODULE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DPROPERTY_INTERPROCEDURAL_OPTIMIZATION=TRUE \
|
||||
-DCMAKE_BUILD_TYPE=Release"
|
||||
|
||||
@musldep_env_options = "PATH=#{CREW_PREFIX}/musl/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
PKG_CONFIG_LIBDIR=#{CREW_PREFIX}/musl/lib/pkgconfig \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@ldflags}'"
|
||||
is_static
|
||||
|
||||
def self.build
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
FileUtils.mkdir('builddir')
|
||||
Dir.chdir('builddir') do
|
||||
system "#{@musldep_cmake_options} \
|
||||
system "#{MUSL_CMAKE_OPTIONS} \
|
||||
-DENABLE_SHARED_LIB=OFF \
|
||||
-DENABLE_STATIC_LIB=ON \
|
||||
-DENABLE_LIB_ONLY=ON \
|
||||
../ -G Ninja"
|
||||
end
|
||||
system "PATH=#{CREW_PREFIX}/musl/bin:#{CREW_PREFIX}/musl/#{ARCH}-linux-musl#{@abi}/bin:#{ENV['PATH']} \
|
||||
system "PATH=#{CREW_MUSL_PREFIX}/bin:#{CREW_MUSL_PREFIX}/#{ARCH}-linux-musl#{MUSL_ABI}/bin:#{ENV['PATH']} \
|
||||
samu -C builddir -j#{CREW_NPROC}"
|
||||
end
|
||||
|
||||
def self.install
|
||||
ENV['CREW_FHS_NONCOMPLIANCE_ONLY_ADVISORY'] = '1'
|
||||
warn_level = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
load "#{CREW_LIB_PATH}lib/const.rb"
|
||||
$VERBOSE = warn_level
|
||||
system "DESTDIR=#{CREW_DEST_DIR} samu -C builddir install"
|
||||
end
|
||||
end
|
||||
|
||||
@@ -5,11 +5,10 @@ class Musl_libssh < Package
|
||||
homepage 'https://www.libssh.org/'
|
||||
@_ver = '0.9.6'
|
||||
version @_ver
|
||||
@_ver_prelastdot = @_ver.rpartition('.')[0]
|
||||
license 'LGPL-2.1'
|
||||
compatibility 'all'
|
||||
source_url "https://www.libssh.org/files/#{@_ver_prelastdot}/libssh-#{@_ver}.tar.xz"
|
||||
source_sha256 '86bcf885bd9b80466fe0e05453c58b877df61afa8ba947a58c356d7f0fab829b'
|
||||
license 'LGPL-2.1'
|
||||
source_url 'https://git.libssh.org/projects/libssh.git'
|
||||
git_hashtag "libssh-#{@_ver}"
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libssh/0.9.6_armv7l/musl_libssh-0.9.6-chromeos-armv7l.tpxz',
|
||||
@@ -18,93 +17,41 @@ class Musl_libssh < Package
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libssh/0.9.6_x86_64/musl_libssh-0.9.6-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: 'c34d6dc7d52669c6587c7d1523ab526897332edc3a185b6295f4a338f1e5e6cb',
|
||||
armv7l: 'c34d6dc7d52669c6587c7d1523ab526897332edc3a185b6295f4a338f1e5e6cb',
|
||||
i686: '55180705914fcb13215be2fe52d798b37ce760c6cf504a25b0a0c3d857388e29',
|
||||
x86_64: '1917dffdc56af43aea4ccd9472ea8d6d4002b3057ea1118907e20e6fdc383f50'
|
||||
aarch64: '4174ea38f912fdc3de9f7100131b0bf826ad9412877bd33ff68835692aabe86f',
|
||||
armv7l: '4174ea38f912fdc3de9f7100131b0bf826ad9412877bd33ff68835692aabe86f',
|
||||
i686: 'ddb6ba2660d2118ce19a9b551668bf75b55a45fa202d1673186aa1ccb7a1a4db',
|
||||
x86_64: '59e96f9b5902d6789dcb71d7ff864d533ed4522f419dd7178b2d1c86664a3264'
|
||||
})
|
||||
|
||||
depends_on 'musl_krb5' => :build
|
||||
depends_on 'musl_native_toolchain' => :build
|
||||
depends_on 'musl_libunistring' => :build
|
||||
depends_on 'musl_libidn2' => :build
|
||||
depends_on 'musl_zlib' => :build
|
||||
depends_on 'musl_ncurses' => :build
|
||||
depends_on 'musl_openssl' => :build
|
||||
depends_on 'musl_libnghttp2' => :build
|
||||
depends_on 'py3_abimap' => :build
|
||||
|
||||
@abi = ''
|
||||
@arch_ssp_cflags = ''
|
||||
@arch_c_flags = ''
|
||||
@arch_cxx_flags = ''
|
||||
case ARCH
|
||||
when 'aarch64', 'armv7l'
|
||||
@abi = 'eabihf'
|
||||
when 'i686'
|
||||
@arch_ssp_cflags = '-fno-stack-protector'
|
||||
when 'x86_64'
|
||||
end
|
||||
|
||||
@cflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_c_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@cxxflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_cxx_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@ldflags = "-L#{CREW_PREFIX}/musl/lib -flto -static"
|
||||
@cmake_ldflags = '-flto'
|
||||
@musldep_cmake_options = "PATH=#{CREW_PREFIX}/musl/bin:#{CREW_PREFIX}/musl/#{ARCH}-linux-musl#{@abi}/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
AR=#{CREW_PREFIX}/musl/bin/ar \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@cmake_ldflags}' \
|
||||
cmake \
|
||||
-DCMAKE_INSTALL_PREFIX='#{CREW_PREFIX}/musl' \
|
||||
-DCMAKE_INSTALL_LIBDIR='#{CREW_PREFIX}/musl/lib' \
|
||||
-DCMAKE_LIBRARY_PATH='#{CREW_PREFIX}/musl/lib' \
|
||||
-DCMAKE_C_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc \
|
||||
-DCMAKE_CXX_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++ \
|
||||
-DCMAKE_INCLUDE_DIRECTORIES_BEFORE=ON \
|
||||
-DINCLUDE_DIRECTORIES=#{CREW_PREFIX}/musl/include \
|
||||
-DCMAKE_C_FLAGS='#{@cflags}' \
|
||||
-DCMAKE_CXX_FLAGS='#{@cxxflags}' \
|
||||
-DCMAKE_EXE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_STATIC_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_MODULE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DPROPERTY_INTERPROCEDURAL_OPTIMIZATION=TRUE \
|
||||
-DCMAKE_BUILD_TYPE=Release"
|
||||
|
||||
@musldep_env_options = "PATH=#{CREW_PREFIX}/musl/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
PKG_CONFIG_LIBDIR=#{CREW_PREFIX}/musl/lib/pkgconfig \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@ldflags}'"
|
||||
is_static
|
||||
|
||||
def self.build
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
FileUtils.mkdir('builddir')
|
||||
Dir.chdir('builddir') do
|
||||
system "#{@musldep_cmake_options} \
|
||||
-DOPENSSL_INCLUDE_DIR=#{CREW_PREFIX}/musl/include \
|
||||
system "#{MUSL_CMAKE_OPTIONS} \
|
||||
-DOPENSSL_INCLUDE_DIR=#{CREW_MUSL_PREFIX}/include \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DGLOBAL_BIND_CONFIG=#{CREW_PREFIX}/etc/ssh/libssh_server_config \
|
||||
-DGLOBAL_CLIENT_CONFIG=#{CREW_PREFIX}/etc/ssh/ssh_config \
|
||||
-DHAVE_GLOB=0 \
|
||||
-DUNIT_TESTING=OFF \
|
||||
-DWITH_EXAMPLES=OFF \
|
||||
-DWITH_STATIC_LIB=ON \
|
||||
../ -G Ninja"
|
||||
end
|
||||
system "PATH=#{CREW_PREFIX}/musl/bin:#{CREW_PREFIX}/musl/#{ARCH}-linux-musl#{@abi}/bin:#{ENV['PATH']} \
|
||||
samu -C builddir -j#{CREW_NPROC}"
|
||||
system 'samu -C builddir'
|
||||
end
|
||||
|
||||
def self.install
|
||||
ENV['CREW_FHS_NONCOMPLIANCE_ONLY_ADVISORY'] = '1'
|
||||
warn_level = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
load "#{CREW_LIB_PATH}lib/const.rb"
|
||||
$VERBOSE = warn_level
|
||||
system "DESTDIR=#{CREW_DEST_DIR} samu -C builddir install"
|
||||
end
|
||||
end
|
||||
|
||||
@@ -16,62 +16,36 @@ class Musl_libucontext < Package
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libucontext/1.1_x86_64/musl_libucontext-1.1-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: 'ecb4f59b8669ea34f61cb5889e46f5de6be4241f8730c570d2f180d30782370f',
|
||||
armv7l: 'ecb4f59b8669ea34f61cb5889e46f5de6be4241f8730c570d2f180d30782370f',
|
||||
i686: '6bc511905bc917b2cd3ecf708760e18fd3b2c1f59560b1f5796bdeb2e3c4ffaf',
|
||||
x86_64: 'cc3d984411b2353fe19cb3796cbe0d8a590b48d7e7998dc6a42d22703201c325'
|
||||
aarch64: '5b44c0cfd1bdad11b17ff782784dd0ac1f21d5cbeed72a924826b038e1ca1476',
|
||||
armv7l: '5b44c0cfd1bdad11b17ff782784dd0ac1f21d5cbeed72a924826b038e1ca1476',
|
||||
i686: 'eb76db594fce4f7f5d087276c547489a9d5b3808827d417e5f023e1c034e4f64',
|
||||
x86_64: 'ac3eb3428728c28d7daa10008d5b189f3223fc7957e5879e2a7f2cc63f5d7a07'
|
||||
})
|
||||
|
||||
depends_on 'musl_native_toolchain' => :build
|
||||
|
||||
@abi = ''
|
||||
@arch_c_flags = ''
|
||||
@arch_cxx_flags = ''
|
||||
case ARCH
|
||||
when 'aarch64', 'armv7l'
|
||||
@abi = 'eabihf'
|
||||
@arch = 'arm'
|
||||
when 'i686'
|
||||
@arch = 'X86'
|
||||
when 'x86_64'
|
||||
@arch = 'X86_64'
|
||||
end
|
||||
|
||||
@cflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_c_flags} -fcommon"
|
||||
@cxxflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_cxx_flags} -fcommon -static"
|
||||
@ldflags = "-L#{CREW_PREFIX}/musl/lib -flto -static"
|
||||
@cmake_ldflags = '-flto'
|
||||
|
||||
@musldep_env_options = "PATH=#{CREW_PREFIX}/musl/bin:#{ENV['PATH']} \
|
||||
LIBRARY_PATH='#{CREW_PREFIX}/musl/lib:$LIBRARY_PATH' \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
LIBDIR=#{CREW_PREFIX}/musl/lib \
|
||||
INCLUDEDIR=#{CREW_PREFIX}/musl/include \
|
||||
PKG_CONFIG_LIBDIR=#{CREW_PREFIX}/musl/lib/pkgconfig \
|
||||
PKGCONFIGDIR=#{CREW_PREFIX}/musl/lib/pkgconfig \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@ldflags}'"
|
||||
is_static
|
||||
|
||||
def self.patch
|
||||
system "sed -i 's,LIBDIR := /lib,LIBDIR := #{CREW_PREFIX}/musl/lib,g' Makefile"
|
||||
system "sed -i 's,INCLUDEDIR := /usr/include,INCLUDEDIR := #{CREW_PREFIX}/musl/include,g' Makefile"
|
||||
system "sed -i 's,PKGCONFIGDIR := /usr/lib/pkgconfig,PKGCONFIGDIR := #{CREW_PREFIX}/musl/lib/pkgconfig,g' Makefile"
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
system "sed -i 's,LIBDIR := /lib,LIBDIR := #{CREW_MUSL_PREFIX}/lib,g' Makefile"
|
||||
system "sed -i 's,INCLUDEDIR := /usr/include,INCLUDEDIR := #{CREW_MUSL_PREFIX}/include,g' Makefile"
|
||||
system "sed -i 's,PKGCONFIGDIR := /usr/lib/pkgconfig,PKGCONFIGDIR := #{CREW_MUSL_PREFIX}/lib/pkgconfig,g' Makefile"
|
||||
end
|
||||
|
||||
def self.build
|
||||
system "#{@musldep_env_options} make ARCH=#{@arch}"
|
||||
case ARCH
|
||||
when 'aarch64', 'armv7l'
|
||||
@arch = 'arm'
|
||||
when 'i686'
|
||||
@arch = 'X86'
|
||||
when 'x86_64'
|
||||
@arch = 'X86_64'
|
||||
end
|
||||
system "#{MUSL_ENV_OPTIONS} make ARCH=#{@arch}"
|
||||
end
|
||||
|
||||
def self.install
|
||||
ENV['CREW_FHS_NONCOMPLIANCE_ONLY_ADVISORY'] = '1'
|
||||
warn_level = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
load "#{CREW_LIB_PATH}lib/const.rb"
|
||||
$VERBOSE = warn_level
|
||||
system "make ARCH=#{@arch} DESTDIR=#{CREW_DEST_DIR} install"
|
||||
end
|
||||
end
|
||||
|
||||
58
packages/musl_libunbound.rb
Normal file
58
packages/musl_libunbound.rb
Normal file
@@ -0,0 +1,58 @@
|
||||
require 'package'
|
||||
|
||||
class Musl_libunbound < Package
|
||||
description 'Unbound is a validating, recursive, and caching DNS resolver.'
|
||||
homepage 'https://nlnetlabs.nl/projects/unbound/about/'
|
||||
@_ver = '1.14.0'
|
||||
version @_ver
|
||||
license 'BSD and GPL-2'
|
||||
compatibility 'all'
|
||||
source_url "https://nlnetlabs.nl/downloads/unbound/unbound-#{@_ver}.tar.gz"
|
||||
source_sha256 '6ef91cbf02d5299eab39328c0857393de7b4885a2fe7233ddfe3c124ff5a89c8'
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libunbound/1.14.0_armv7l/musl_libunbound-1.14.0-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libunbound/1.14.0_armv7l/musl_libunbound-1.14.0-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libunbound/1.14.0_i686/musl_libunbound-1.14.0-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libunbound/1.14.0_x86_64/musl_libunbound-1.14.0-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: '6a4fff3a80696455b624ae2ba0e1304148142390bfbf363e571d3deb927f67f3',
|
||||
armv7l: '6a4fff3a80696455b624ae2ba0e1304148142390bfbf363e571d3deb927f67f3',
|
||||
i686: 'f72c7bdb7092fc431f5b99c37b2350975410b268c8c92ef768503bca8c285692',
|
||||
x86_64: 'f25952a3c365543c2404da2b0b14138d8dfa7caac01e1cadf6444fcaa37b5e4f'
|
||||
})
|
||||
|
||||
depends_on 'musl_openssl' => :build
|
||||
depends_on 'musl_expat' => :build
|
||||
depends_on 'musl_native_toolchain' => :build
|
||||
|
||||
is_static
|
||||
|
||||
def self.patch
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
system 'filefix'
|
||||
end
|
||||
|
||||
def self.build
|
||||
system './configure --help'
|
||||
system "#{MUSL_ENV_OPTIONS} ./configure \
|
||||
--prefix=#{CREW_MUSL_PREFIX} \
|
||||
--disable-shared \
|
||||
--enable-static \
|
||||
--with-pic \
|
||||
--with-ssl=#{CREW_MUSL_PREFIX} \
|
||||
--with-libexpat=#{CREW_MUSL_PREFIX} \
|
||||
--with-libunbound-only"
|
||||
system 'make'
|
||||
end
|
||||
|
||||
def self.check
|
||||
# tests are broken on musl for this.
|
||||
# system 'make', 'test'
|
||||
end
|
||||
|
||||
def self.install
|
||||
system "make DESTDIR=#{CREW_DEST_DIR} install"
|
||||
end
|
||||
end
|
||||
@@ -3,94 +3,41 @@ require 'package'
|
||||
class Musl_libunistring < Package
|
||||
description 'A library that provides functions for manipulating Unicode strings and for manipulating C strings according to the Unicode standard.'
|
||||
homepage 'https://www.gnu.org/software/libunistring/'
|
||||
version '0.9.10'
|
||||
version '0.9.10-1'
|
||||
license 'LGPL-3+ or GPL-2+ and FDL-1.2 or GPL-3+'
|
||||
compatibility 'all'
|
||||
source_url 'https://ftpmirror.gnu.org/libunistring/libunistring-0.9.10.tar.xz'
|
||||
source_sha256 'eb8fb2c3e4b6e2d336608377050892b54c3c983b646c561836550863003c05d7'
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libunistring/0.9.10_armv7l/musl_libunistring-0.9.10-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libunistring/0.9.10_armv7l/musl_libunistring-0.9.10-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libunistring/0.9.10_i686/musl_libunistring-0.9.10-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libunistring/0.9.10_x86_64/musl_libunistring-0.9.10-chromeos-x86_64.tpxz'
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libunistring/0.9.10-1_armv7l/musl_libunistring-0.9.10-1-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libunistring/0.9.10-1_armv7l/musl_libunistring-0.9.10-1-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libunistring/0.9.10-1_i686/musl_libunistring-0.9.10-1-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libunistring/0.9.10-1_x86_64/musl_libunistring-0.9.10-1-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: 'c1e10a31ed0f6a307f3988571e19d3b6e18a0e46c67f68a4dcaaac15f5bc754a',
|
||||
armv7l: 'c1e10a31ed0f6a307f3988571e19d3b6e18a0e46c67f68a4dcaaac15f5bc754a',
|
||||
i686: '6edaae97bfdf67dab38234a29cfc21b8c5bbae453bd3e71a777dce858f392a8d',
|
||||
x86_64: '12aece78b0944c92022305c75365a48ab6adbb2c68ba8e36bbd01c142b48ae33'
|
||||
aarch64: '7993833f0c924bbe1cc0886181287cf52a74252660ccdf7de9db2ca0f58fbf17',
|
||||
armv7l: '7993833f0c924bbe1cc0886181287cf52a74252660ccdf7de9db2ca0f58fbf17',
|
||||
i686: '460681fc32028b10be1365826a902e3f24e707a6d3fa45f038554af41d3494bc',
|
||||
x86_64: '2ab6bc568ddd929c7cab3bf14fc2ad44746cbb943e3cbf896c10f28220a8a4e8'
|
||||
})
|
||||
|
||||
depends_on 'musl_native_toolchain' => :build
|
||||
depends_on 'musl_zlib' => :build
|
||||
|
||||
@abi = ''
|
||||
@arch_ssp_cflags = ''
|
||||
@arch_c_flags = ''
|
||||
@arch_cxx_flags = ''
|
||||
case ARCH
|
||||
when 'aarch64', 'armv7l'
|
||||
@abi = 'eabihf'
|
||||
when 'i686'
|
||||
@arch_ssp_cflags = '-fno-stack-protector'
|
||||
when 'x86_64'
|
||||
end
|
||||
|
||||
@cflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_c_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@cxxflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_cxx_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@ldflags = "-L#{CREW_PREFIX}/musl/lib -flto -static"
|
||||
@cmake_ldflags = '-flto'
|
||||
@musldep_cmake_options = "PATH=#{CREW_PREFIX}/musl/bin:#{CREW_PREFIX}/musl/#{ARCH}-linux-musl#{@abi}/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
AR=#{CREW_PREFIX}/musl/bin/ar \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@cmake_ldflags}' \
|
||||
cmake \
|
||||
-DCMAKE_INSTALL_PREFIX='#{CREW_PREFIX}/musl' \
|
||||
-DCMAKE_LIBRARY_PATH='#{CREW_PREFIX}/musl/lib' \
|
||||
-DCMAKE_C_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc \
|
||||
-DCMAKE_CXX_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++ \
|
||||
-DCMAKE_INCLUDE_DIRECTORIES_BEFORE=ON \
|
||||
-DINCLUDE_DIRECTORIES=#{CREW_PREFIX}/musl/include \
|
||||
-DCMAKE_C_FLAGS='#{@cflags}' \
|
||||
-DCMAKE_CXX_FLAGS='#{@cxxflags}' \
|
||||
-DCMAKE_EXE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_STATIC_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_MODULE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DPROPERTY_INTERPROCEDURAL_OPTIMIZATION=TRUE \
|
||||
-DCMAKE_BUILD_TYPE=Release"
|
||||
|
||||
@musldep_env_options = "PATH=#{CREW_PREFIX}/musl/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
PKG_CONFIG_LIBDIR=#{CREW_PREFIX}/musl/lib/pkgconfig \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@ldflags}'"
|
||||
is_static
|
||||
|
||||
def self.build
|
||||
system "#{@musldep_env_options} ./configure --prefix=#{CREW_PREFIX}/musl \
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
system "#{MUSL_ENV_OPTIONS} ./configure --prefix=#{CREW_MUSL_PREFIX} \
|
||||
--enable-static \
|
||||
--disable-shared"
|
||||
system 'make'
|
||||
end
|
||||
|
||||
def self.install
|
||||
ENV['CREW_FHS_NONCOMPLIANCE_ONLY_ADVISORY'] = '1'
|
||||
warn_level = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
load "#{CREW_LIB_PATH}lib/const.rb"
|
||||
$VERBOSE = warn_level
|
||||
system 'make', "DESTDIR=#{CREW_DEST_DIR}", 'install'
|
||||
# avoid conflict with musl_libidn2
|
||||
FileUtils.rm_f "#{CREW_DEST_PREFIX}/musl/share/info/dir"
|
||||
FileUtils.rm_f "#{CREW_DEST_MUSL_PREFIX}/share/info/dir"
|
||||
end
|
||||
end
|
||||
|
||||
@@ -17,57 +17,34 @@ class Musl_libunwind < Package
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_libunwind/1.5.0_x86_64/musl_libunwind-1.5.0-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: '8325ff524aa0259dfd76a96fe43a12d16f8cc7e7c0d1a69f2db5bd68eb0f5879',
|
||||
armv7l: '8325ff524aa0259dfd76a96fe43a12d16f8cc7e7c0d1a69f2db5bd68eb0f5879',
|
||||
i686: 'c87940a7e9ea4963fce675445c4276cf8baae2506fb4260adbb1b8baf78cc9d2',
|
||||
x86_64: '77172a1ee1ee561db6c95c1dffd8553b094214afbd8860a5dcdf00b0d288ec23'
|
||||
aarch64: '6c8cd877134f2b8b79ae166aff8d08fa782fecac5dbbb70a937d3a0f6cd65588',
|
||||
armv7l: '6c8cd877134f2b8b79ae166aff8d08fa782fecac5dbbb70a937d3a0f6cd65588',
|
||||
i686: 'b350166133b7d657c2316740f8a3e236ff4653c9ce7b9842b473f6bf153d8465',
|
||||
x86_64: '52eb28cf1ae245e52084699cdc1bc18e604f3a9d2b1ac2c5a4fd82b2548a2d8c'
|
||||
})
|
||||
|
||||
depends_on 'musl_native_toolchain' => :build
|
||||
depends_on 'musl_libbacktrace' => :build
|
||||
depends_on 'musl_libucontext' => :build
|
||||
|
||||
@abi = ''
|
||||
@arch_c_flags = ''
|
||||
@arch_cxx_flags = ''
|
||||
case ARCH
|
||||
when 'aarch64', 'armv7l'
|
||||
@abi = 'eabihf'
|
||||
@arch = 'arm'
|
||||
when 'i686'
|
||||
@arch = 'x86'
|
||||
when 'x86_64'
|
||||
@arch = 'x86_64'
|
||||
end
|
||||
|
||||
@cflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_c_flags} -fcommon"
|
||||
@cxxflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_cxx_flags} -fcommon -static"
|
||||
@ldflags = "-L#{CREW_PREFIX}/musl/lib -flto -static"
|
||||
@cmake_ldflags = '-flto'
|
||||
|
||||
@musldep_env_options = "PATH=#{CREW_PREFIX}/musl/bin:#{ENV['PATH']} \
|
||||
LIBRARY_PATH='#{CREW_PREFIX}/musl/lib:$LIBRARY_PATH' \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
LIBDIR=#{CREW_PREFIX}/musl/lib \
|
||||
INCLUDEDIR=#{CREW_PREFIX}/musl/include \
|
||||
PKG_CONFIG_LIBDIR=#{CREW_PREFIX}/musl/lib/pkgconfig \
|
||||
PKGCONFIGDIR=#{CREW_PREFIX}/musl/lib/pkgconfig \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@ldflags}'"
|
||||
|
||||
def self.patch
|
||||
# As per https://www.linuxquestions.org/questions/linux-software-2/building-libunwind-on-x86-musl-libc-against-libucontext-4175692781/#post6235105
|
||||
# https://archive.md/gaEbN
|
||||
case ARCH
|
||||
when 'aarch64', 'armv7l'
|
||||
@arch = 'arm'
|
||||
when 'i686'
|
||||
@arch = 'x86'
|
||||
when 'x86_64'
|
||||
@arch = 'x86_64'
|
||||
end
|
||||
system "sed -i '1i#include <ucontext.h>\' src/#{@arch}/Gos-linux.c"
|
||||
system 'filefix'
|
||||
end
|
||||
|
||||
def self.build
|
||||
system "#{@musldep_env_options} ./configure --prefix=#{CREW_PREFIX}/musl \
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
system "#{MUSL_ENV_OPTIONS} ./configure --prefix=#{CREW_MUSL_PREFIX} \
|
||||
--enable-shared \
|
||||
--enable-static \
|
||||
--enable-ptrace \
|
||||
@@ -76,11 +53,6 @@ class Musl_libunwind < Package
|
||||
end
|
||||
|
||||
def self.install
|
||||
ENV['CREW_FHS_NONCOMPLIANCE_ONLY_ADVISORY'] = '1'
|
||||
warn_level = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
load "#{CREW_LIB_PATH}lib/const.rb"
|
||||
$VERBOSE = warn_level
|
||||
system 'make', "DESTDIR=#{CREW_DEST_DIR}", 'install'
|
||||
end
|
||||
end
|
||||
|
||||
57
packages/musl_linuxheaders.rb
Normal file
57
packages/musl_linuxheaders.rb
Normal file
@@ -0,0 +1,57 @@
|
||||
require 'package'
|
||||
|
||||
class Musl_linuxheaders < Package
|
||||
description 'Linux headers for Chrome OS, installed into MUSL_PREFIX.'
|
||||
homepage 'https://kernel.org/'
|
||||
case ARCH
|
||||
when 'aarch64', 'armv7l', 'x86_64'
|
||||
@_ver = '4.14'
|
||||
version @_ver
|
||||
when 'i686'
|
||||
@_ver = '3.8'
|
||||
version @_ver
|
||||
end
|
||||
# Only check for kernel version if not in container.
|
||||
unless File.exist?('/.dockerenv')
|
||||
@KERNEL_VERSION = `uname -r`.chomp.reverse.split('.', 2).collect(&:reverse)[1]
|
||||
@ver = @KERNEL_VERSION.between?(@KERNEL_VERSION, '5.15') ? @ver : @KERNEL_VERSION
|
||||
version @ver
|
||||
end
|
||||
license 'GPL-2'
|
||||
compatibility 'all'
|
||||
source_url 'SKIP'
|
||||
|
||||
binary_url({
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_linuxheaders/3.8_i686/musl_linuxheaders-3.8-chromeos-i686.tpxz',
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_linuxheaders/4.14_armv7l/musl_linuxheaders-4.14-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_linuxheaders/4.14_armv7l/musl_linuxheaders-4.14-chromeos-armv7l.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_linuxheaders/4.14_x86_64/musl_linuxheaders-4.14-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
i686: '92c0794189e3631847293ae517b4e0a7bc41e9898433d514f46391b5807369cd',
|
||||
aarch64: '0673fa9ca73c10b60d4109dacc349247f98b5ea616110650a9f2917a281d780a',
|
||||
armv7l: '0673fa9ca73c10b60d4109dacc349247f98b5ea616110650a9f2917a281d780a',
|
||||
x86_64: '8cb5a33d005cae9be24d2491d20b855c9561853f89f974159094bb66ef41b02f'
|
||||
})
|
||||
|
||||
depends_on 'linux_sources' => :build
|
||||
|
||||
def self.install
|
||||
ENV['CREW_FHS_NONCOMPLIANCE_ONLY_ADVISORY'] = '1'
|
||||
warn_level = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
load "#{CREW_LIB_PATH}lib/const.rb"
|
||||
$VERBOSE = warn_level
|
||||
linux_src_dir = "#{CREW_PREFIX}/src/linux"
|
||||
Dir.chdir(linux_src_dir) do
|
||||
system 'make',
|
||||
'headers_install',
|
||||
"INSTALL_HDR_PATH=#{CREW_DEST_MUSL_PREFIX}"
|
||||
end
|
||||
Dir.chdir("#{CREW_DEST_MUSL_PREFIX}/include") do
|
||||
system "for file in \$(find . -not -type d -name '.*'); do
|
||||
rm \${file};
|
||||
done"
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -12,80 +12,29 @@ class Musl_lz4 < Package
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_lz4/1.9.2_armv7l/musl_lz4-1.9.2-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_lz4/1.9.2_armv7l/musl_lz4-1.9.2-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_lz4/1.9.2_i686/musl_lz4-1.9.2-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_lz4/1.9.2_x86_64/musl_lz4-1.9.2-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: 'ffe7b999c45a2417dac278c1742d482938fee96db2f2a2213ed01153b20ac3a7',
|
||||
armv7l: 'ffe7b999c45a2417dac278c1742d482938fee96db2f2a2213ed01153b20ac3a7',
|
||||
x86_64: 'a0ef3300ac61b6c5c513fb2f8d4f99b155dfc2eabf1c0e93c9c224437ab32af0'
|
||||
aarch64: 'a2f12adbb2413535fd05f3b8f9cccc02f8674a250d1ac3051f41f539845a4dd1',
|
||||
armv7l: 'a2f12adbb2413535fd05f3b8f9cccc02f8674a250d1ac3051f41f539845a4dd1',
|
||||
i686: 'cfae6b5d4f0df8b3f7b92a7f64179357629a5d4ca5c84474dc810ba8f71af9f2',
|
||||
x86_64: '029d44c8b9c124c5be2d46a36901171a500c8c66e71caa6ffdd08668865b1f57'
|
||||
})
|
||||
|
||||
depends_on 'musl_native_toolchain' => :build
|
||||
|
||||
@abi = ''
|
||||
@arch_ssp_cflags = ''
|
||||
@arch_c_flags = ''
|
||||
@arch_cxx_flags = ''
|
||||
case ARCH
|
||||
when 'aarch64', 'armv7l'
|
||||
@abi = 'eabihf'
|
||||
when 'i686'
|
||||
@arch_ssp_cflags = '-fno-stack-protector'
|
||||
when 'x86_64'
|
||||
end
|
||||
|
||||
@cflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_c_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@cxxflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_cxx_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@ldflags = "-L#{CREW_PREFIX}/musl/lib -flto -static"
|
||||
@cmake_ldflags = '-flto'
|
||||
@musldep_cmake_options = "PATH=#{CREW_PREFIX}/musl/bin:#{CREW_PREFIX}/musl/#{ARCH}-linux-musl#{@abi}/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
AR=#{CREW_PREFIX}/musl/bin/ar \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@cmake_ldflags}' \
|
||||
cmake \
|
||||
-DCMAKE_INSTALL_PREFIX='#{CREW_PREFIX}/musl' \
|
||||
-DCMAKE_LIBRARY_PATH='#{CREW_PREFIX}/musl/lib' \
|
||||
-DCMAKE_C_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc \
|
||||
-DCMAKE_CXX_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++ \
|
||||
-DCMAKE_INCLUDE_DIRECTORIES_BEFORE=ON \
|
||||
-DINCLUDE_DIRECTORIES=#{CREW_PREFIX}/musl/include \
|
||||
-DCMAKE_C_FLAGS='#{@cflags}' \
|
||||
-DCMAKE_CXX_FLAGS='#{@cxxflags}' \
|
||||
-DCMAKE_EXE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_STATIC_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_MODULE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DPROPERTY_INTERPROCEDURAL_OPTIMIZATION=TRUE \
|
||||
-DCMAKE_BUILD_TYPE=Release"
|
||||
|
||||
@musldep_env_options = "PATH=#{CREW_PREFIX}/musl/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
PKG_CONFIG_LIBDIR=#{CREW_PREFIX}/musl/lib/pkgconfig \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@ldflags}'"
|
||||
is_static
|
||||
|
||||
def self.build
|
||||
system "#{@musldep_env_options} make PREFIX=#{CREW_PREFIX}/musl \
|
||||
LIBDIR=#{CREW_PREFIX}/musl/lib \
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
system "#{MUSL_ENV_OPTIONS} make PREFIX=#{CREW_MUSL_PREFIX} \
|
||||
LIBDIR=#{CREW_MUSL_PREFIX}/lib \
|
||||
BUILD_STATIC=yes \
|
||||
BUILD_SHARED=no"
|
||||
end
|
||||
|
||||
def self.install
|
||||
ENV['CREW_FHS_NONCOMPLIANCE_ONLY_ADVISORY'] = '1'
|
||||
warn_level = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
load "#{CREW_LIB_PATH}lib/const.rb"
|
||||
$VERBOSE = warn_level
|
||||
system 'make', "DESTDIR=#{CREW_DEST_DIR}", "LIBDIR=#{CREW_PREFIX}/musl/lib", 'install'
|
||||
system 'make', "DESTDIR=#{CREW_DEST_DIR}", "LIBDIR=#{CREW_MUSL_PREFIX}/lib", 'install'
|
||||
end
|
||||
end
|
||||
|
||||
@@ -3,54 +3,110 @@ require 'package'
|
||||
class Musl_native_toolchain < Package
|
||||
description 'A modern, simple, and fast C library implementation that strives to be lightweight, fast, simple, free, and correct in the sense of standards-conformance and safety.'
|
||||
homepage 'https://musl.cc/'
|
||||
version '1.2.2-b76f37fd'
|
||||
compatibility 'all'
|
||||
version 'd1395c'
|
||||
license 'MIT, LGPL-2 and GPL-2'
|
||||
source_url({
|
||||
aarch64: 'https://musl.cc/armv7l-linux-musleabihf-native.tgz',
|
||||
armv7l: 'https://musl.cc/armv7l-linux-musleabihf-native.tgz',
|
||||
i686: 'https://musl.cc/i686-linux-musl-native.tgz',
|
||||
x86_64: 'https://musl.cc/x86_64-linux-musl-native.tgz'
|
||||
})
|
||||
source_sha256({
|
||||
aarch64: '2b37466f716d28a9ef313a8916543f53f9c8c78509e1c8d57a18ca4b171f2205',
|
||||
armv7l: '2b37466f716d28a9ef313a8916543f53f9c8c78509e1c8d57a18ca4b171f2205',
|
||||
i686: '978471bf7b8111dfd8c5559a23ef18b80bcd85936872f00424f1b7a5300580ee',
|
||||
x86_64: 'eb1db6f0f3c2bdbdbfb993d7ef7e2eeef82ac1259f6a6e1757c33a97dbcef3ad'
|
||||
})
|
||||
compatibility 'all'
|
||||
source_url 'https://git.zv.io/toolchains/musl-cross-make.git'
|
||||
git_hashtag '53280e53a32202a0ee874911fc52005874db344b'
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_native_toolchain/1.2.2-b76f37fd_armv7l/musl_native_toolchain-1.2.2-b76f37fd-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_native_toolchain/1.2.2-b76f37fd_armv7l/musl_native_toolchain-1.2.2-b76f37fd-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_native_toolchain/1.2.2-b76f37fd_i686/musl_native_toolchain-1.2.2-b76f37fd-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_native_toolchain/1.2.2-b76f37fd_x86_64/musl_native_toolchain-1.2.2-b76f37fd-chromeos-x86_64.tpxz'
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_native_toolchain/d1395c_armv7l/musl_native_toolchain-d1395c-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_native_toolchain/d1395c_armv7l/musl_native_toolchain-d1395c-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_native_toolchain/d1395c_i686/musl_native_toolchain-d1395c-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_native_toolchain/d1395c_x86_64/musl_native_toolchain-d1395c-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: '740430d7ac599b6ee678943599cf88b31195f695cc00e6c86336a8b687a27804',
|
||||
armv7l: '740430d7ac599b6ee678943599cf88b31195f695cc00e6c86336a8b687a27804',
|
||||
i686: 'eda5d0e5ec72fa553a75377ac27994e9bb3f5466076de60ff1ad503522288b7b',
|
||||
x86_64: 'af4d4c2b4c451a0679c70b4ba39a5b701d6d0df112b89d080c201c6708e27d77'
|
||||
aarch64: '67f4c90e9604f2f9faa1862389a72a7d4ed9a7d202ea52eeb6a4aaab1d0a1d07',
|
||||
armv7l: '67f4c90e9604f2f9faa1862389a72a7d4ed9a7d202ea52eeb6a4aaab1d0a1d07',
|
||||
i686: '77bb046c80ac1b48df0d38a6a55f603a1c6f83805f2b7c23b59303199618c9bc',
|
||||
x86_64: 'a390c454918f3a3f4ada528f2f1f19e71ea276a293191b5ae9ecad2cb9b37bff'
|
||||
})
|
||||
|
||||
@archflags = ''
|
||||
@linux_ver = '4.14.261'
|
||||
@target_tuple = "#{ARCH}-linux-musl"
|
||||
@gcc_version = '11-20220108'
|
||||
case ARCH
|
||||
when 'aarch64', 'armv7l'
|
||||
@archflags = '--with-arch=armv7-a+fp --with-float=hard --with-fpu=neon --with-tune=cortex-a15'
|
||||
@target_tuple = 'armv7l-linux-musleabihf'
|
||||
when 'i686'
|
||||
@linux_ver = '3.8.12'
|
||||
end
|
||||
|
||||
def self.patch
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
@config_mak = <<~CONFIG_MAK_EOF
|
||||
STAT = -static --static
|
||||
FLAG = -g0 -O2 -pipe -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -Wno-error -fPIC
|
||||
|
||||
ifneq (\$(NATIVE),)
|
||||
COMMON_CONFIG += CC="\$(HOST)-gcc \${STAT}" CXX="\$(HOST)-g++ \${STAT}" FC="\$(HOST)-gfortran \${STAT}"
|
||||
else
|
||||
COMMON_CONFIG += CC="gcc \${STAT}" CXX="g++ \${STAT}" FC="gfortran \${STAT}"
|
||||
endif
|
||||
|
||||
COMMON_CONFIG += CFLAGS="\${FLAG}" CXXFLAGS="\${FLAG}" FFLAGS="\${FLAG}" LDFLAGS="-s \${STAT}"
|
||||
|
||||
BINUTILS_CONFIG += --enable-gold --enable-plugins --enable-64-bit-bfd
|
||||
GCC_CONFIG += --enable-default-pie --enable-static-pie --disable-cet --without-zstd #{@archflags}
|
||||
|
||||
CONFIG_SUB_REV = 888c8e3d5f7b
|
||||
GCC_VER = #{@gcc_version}
|
||||
BINUTILS_VER = 2.37
|
||||
MUSL_VER = git-d1395c43c019aec6b855cf3c656bf47c8a719e7f
|
||||
GMP_VER = 6.2.1
|
||||
ISL_VER = 0.23
|
||||
MPC_VER = 1.2.1
|
||||
MPFR_VER = 4.1.0
|
||||
LINUX_VER = #{@linux_ver}
|
||||
|
||||
TARGET = #{@target_tuple}
|
||||
|
||||
OUTPUT = #{CREW_DEST_MUSL_PREFIX}
|
||||
CONFIG_MAK_EOF
|
||||
File.write('config.mak', @config_mak)
|
||||
File.write('hashes/linux-3.8.12.tar.xz.sha1',
|
||||
'13d4f4f8f447b721e4a18ca39ed60fb7055d1de1 linux-3.8.12.tar.xz')
|
||||
File.write('hashes/linux-4.14.261.tar.xz.sha1',
|
||||
'28247a5448ac33e4031afa2544f384a525547b20 linux-4.14.261.tar.xz')
|
||||
File.write("hashes/gcc-#{@gcc_version}.tar.xz.sha1",
|
||||
"f89942362a87cb9c49f53177e7fcc57c77238197 gcc-#{@gcc_version}.tar.xz")
|
||||
FileUtils.mv 'patches/gcc-11-20211120', "patches/gcc-#{@gcc_version}"
|
||||
end
|
||||
|
||||
def self.build
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
system 'make'
|
||||
end
|
||||
|
||||
def self.install
|
||||
ENV['CREW_FHS_NONCOMPLIANCE_ONLY_ADVISORY'] = '1'
|
||||
ENV['CREW_NOT_STRIP'] = '1'
|
||||
ENV['CREW_NOT_SHRINK_ARCHIVE'] = '1'
|
||||
warn_level = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
load "#{CREW_LIB_PATH}lib/const.rb"
|
||||
$VERBOSE = warn_level
|
||||
FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/musl/lib"
|
||||
FileUtils.cp_r '.', "#{CREW_DEST_PREFIX}/musl/", verbose: true
|
||||
Dir.chdir("#{CREW_DEST_PREFIX}/musl/lib") do
|
||||
FileUtils.ln_sf 'libc.so', 'ld-musl-x86_64.so.1' if ARCH == 'x86_64'
|
||||
FileUtils.ln_sf 'libc.so', 'ld-musl-armhf.so.1' if ARCH == 'armv7l'
|
||||
FileUtils.ln_sf 'libc.so', 'ld-musl-i386.so.1' if ARCH == 'i686'
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
system "OUTPUT=#{CREW_DEST_MUSL_PREFIX} make install"
|
||||
# Delete libc symlink made to syslibdir
|
||||
FileUtils.rm_f "#{CREW_DEST_MUSL_PREFIX}/usr/local"
|
||||
# copy everything to standard locations
|
||||
Dir.chdir("#{CREW_DEST_MUSL_PREFIX}/#{@target_tuple}") do
|
||||
system 'cp -r * ../'
|
||||
end
|
||||
Dir.chdir("#{CREW_DEST_PREFIX}/musl") do
|
||||
Dir.chdir("#{CREW_DEST_MUSL_PREFIX}/lib") do
|
||||
# Delete broken symlink pointing to /lib/libc.so
|
||||
FileUtils.rm_f "#{CREW_DEST_MUSL_PREFIX}/lib/ld-musl-#{MUSL_ARCH}.so.1"
|
||||
FileUtils.ln "#{CREW_DEST_MUSL_PREFIX}/#{@target_tuple}/lib/libc.so",
|
||||
"#{CREW_DEST_MUSL_PREFIX}/lib/ld-musl-#{MUSL_ARCH}.so.1", force: true
|
||||
FileUtils.ln "#{CREW_DEST_MUSL_PREFIX}/#{@target_tuple}/lib/libc.so", "#{CREW_DEST_MUSL_PREFIX}/lib/libc.so",
|
||||
force: true
|
||||
end
|
||||
Dir.chdir(CREW_DEST_MUSL_PREFIX) do
|
||||
FileUtils.ln_sf 'lib', 'lib64' if ARCH == 'x86_64'
|
||||
end
|
||||
end
|
||||
|
||||
def self.postinstall; end
|
||||
def self.postinstall
|
||||
return unless ARCH == 'i686'
|
||||
|
||||
# perl needs this.
|
||||
FileUtils.ln_s "#{CREW_MUSL_PREFIX}/#{@target_tuple}/include/locale.h",
|
||||
"#{CREW_MUSL_PREFIX}/#{@target_tuple}/include/xlocale.h"
|
||||
end
|
||||
end
|
||||
|
||||
@@ -3,85 +3,40 @@ require 'package'
|
||||
class Musl_ncurses < Package
|
||||
description 'The ncurses (new curses) library is a free software emulation of curses in System V Release 4.0 (SVr4), and more. — Wide character'
|
||||
homepage 'https://www.gnu.org/software/ncurses/'
|
||||
version '6.2-20210522'
|
||||
version '6.3-20220115'
|
||||
license 'MIT'
|
||||
compatibility 'all'
|
||||
source_url 'https://github.com/mirror/ncurses.git'
|
||||
git_hashtag '2a969388725aa1ee321acadf09a4ff8e00787036'
|
||||
git_hashtag '91e462de27aeecd5b1c8965a6dba078f7a438003'
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_ncurses/6.2-20210522_armv7l/musl_ncurses-6.2-20210522-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_ncurses/6.2-20210522_armv7l/musl_ncurses-6.2-20210522-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_ncurses/6.2-20210522_i686/musl_ncurses-6.2-20210522-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_ncurses/6.2-20210522_x86_64/musl_ncurses-6.2-20210522-chromeos-x86_64.tpxz'
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_ncurses/6.3-20220115_armv7l/musl_ncurses-6.3-20220115-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_ncurses/6.3-20220115_armv7l/musl_ncurses-6.3-20220115-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_ncurses/6.3-20220115_i686/musl_ncurses-6.3-20220115-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_ncurses/6.3-20220115_x86_64/musl_ncurses-6.3-20220115-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: '1df7dbbdb34fd3df6307958721afc56ce70d2540cfcc16c084557636e0331a00',
|
||||
armv7l: '1df7dbbdb34fd3df6307958721afc56ce70d2540cfcc16c084557636e0331a00',
|
||||
i686: '4d9abcb8ce86f3f9a751c67d041caf77c7ddcfb5d56924322bf5d8332098946f',
|
||||
x86_64: '8d1edb89b38fb4b48084f4197748e8c0ebc160b926c78c476db93cfbc4930e3f'
|
||||
aarch64: '8cd01482d8cda2bd798ed3ac249cb2500bc25a17e1c0173400fe4f906582cec3',
|
||||
armv7l: '8cd01482d8cda2bd798ed3ac249cb2500bc25a17e1c0173400fe4f906582cec3',
|
||||
i686: '8cd18fb303321334f520c282e36aeaa33c31b4cd4d92ed19837ff99c7bedff35',
|
||||
x86_64: '793300816d2290bd7519c6edd4d3196470d9dc210c7aec8ba1b4d45a6aa2cf5d'
|
||||
})
|
||||
|
||||
depends_on 'musl_native_toolchain' => :build
|
||||
depends_on 'musl_libunistring' => :build
|
||||
depends_on 'musl_libidn2' => :build
|
||||
depends_on 'musl_zlib' => :build
|
||||
|
||||
@abi = ''
|
||||
@arch_ssp_cflags = ''
|
||||
@arch_c_flags = ''
|
||||
@arch_cxx_flags = ''
|
||||
case ARCH
|
||||
when 'aarch64', 'armv7l'
|
||||
@abi = 'eabihf'
|
||||
when 'i686'
|
||||
@arch_ssp_cflags = '-fno-stack-protector'
|
||||
when 'x86_64'
|
||||
end
|
||||
|
||||
@cflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_c_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@cxxflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_cxx_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@ldflags = "-L#{CREW_PREFIX}/musl/lib -flto -static"
|
||||
@cmake_ldflags = '-flto'
|
||||
@musldep_cmake_options = "PATH=#{CREW_PREFIX}/musl/bin:#{CREW_PREFIX}/musl/#{ARCH}-linux-musl#{@abi}/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
AR=#{CREW_PREFIX}/musl/bin/ar \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@cmake_ldflags}' \
|
||||
cmake \
|
||||
-DCMAKE_INSTALL_PREFIX='#{CREW_PREFIX}/musl' \
|
||||
-DCMAKE_LIBRARY_PATH='#{CREW_PREFIX}/musl/lib' \
|
||||
-DCMAKE_C_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc \
|
||||
-DCMAKE_CXX_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++ \
|
||||
-DCMAKE_INCLUDE_DIRECTORIES_BEFORE=ON \
|
||||
-DINCLUDE_DIRECTORIES=#{CREW_PREFIX}/musl/include \
|
||||
-DCMAKE_C_FLAGS='#{@cflags}' \
|
||||
-DCMAKE_CXX_FLAGS='#{@cxxflags}' \
|
||||
-DCMAKE_EXE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_STATIC_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_MODULE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DPROPERTY_INTERPROCEDURAL_OPTIMIZATION=TRUE \
|
||||
-DCMAKE_BUILD_TYPE=Release"
|
||||
|
||||
@musldep_env_options = "PATH=#{CREW_PREFIX}/musl/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
PKG_CONFIG_LIBDIR=#{CREW_PREFIX}/musl/lib/pkgconfig \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@ldflags}'"
|
||||
is_static
|
||||
|
||||
def self.build
|
||||
system "#{@musldep_env_options} ./configure --prefix=#{CREW_PREFIX}/musl \
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
system "#{MUSL_ENV_OPTIONS} ./configure --prefix=#{CREW_MUSL_PREFIX} \
|
||||
--with-static \
|
||||
--with-cxx-static \
|
||||
--without-debug \
|
||||
--enable-pc-files \
|
||||
--with-pkg-config-libdir=#{CREW_PREFIX}/musl/lib/pkgconfig \
|
||||
--with-pkg-config-libdir=#{CREW_MUSL_PREFIX}/lib/pkgconfig \
|
||||
--enable-widec \
|
||||
--without-tests \
|
||||
--with-termlib"
|
||||
@@ -89,11 +44,6 @@ class Musl_ncurses < Package
|
||||
end
|
||||
|
||||
def self.install
|
||||
ENV['CREW_FHS_NONCOMPLIANCE_ONLY_ADVISORY'] = '1'
|
||||
warn_level = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
load "#{CREW_LIB_PATH}lib/const.rb"
|
||||
$VERBOSE = warn_level
|
||||
system 'make', "DESTDIR=#{CREW_DEST_DIR}", 'install'
|
||||
end
|
||||
end
|
||||
|
||||
40
packages/musl_obstack.rb
Normal file
40
packages/musl_obstack.rb
Normal file
@@ -0,0 +1,40 @@
|
||||
require 'package'
|
||||
|
||||
class Musl_obstack < Package
|
||||
description 'Void Linux copy + paste of the obstack functions and macros found in GNU gcc libiberty library for use with musl libc'
|
||||
homepage 'https://github.com/void-linux/musl-obstack'
|
||||
@_ver = '1.2.2'
|
||||
version @_ver
|
||||
license 'zlib'
|
||||
compatibility 'all'
|
||||
source_url 'https://github.com/void-linux/musl-obstack.git'
|
||||
git_hashtag "v#{@_ver}"
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_obstack/1.2.2_armv7l/musl_obstack-1.2.2-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_obstack/1.2.2_armv7l/musl_obstack-1.2.2-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_obstack/1.2.2_i686/musl_obstack-1.2.2-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_obstack/1.2.2_x86_64/musl_obstack-1.2.2-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: 'fcfd3b87dcb48cc7d4798e7af325a185a242e7c90d8776e833a1eb8cca1c3567',
|
||||
armv7l: 'fcfd3b87dcb48cc7d4798e7af325a185a242e7c90d8776e833a1eb8cca1c3567',
|
||||
i686: '1673a62c62cde7e1d8628fd181a0495521fc0b87c7545846927ed8ccef42256a',
|
||||
x86_64: 'c3ceef174bdf36800ab62e187e11b9a5d37d51e9a0674eb9caf769f4cdbc74d3'
|
||||
})
|
||||
|
||||
depends_on 'musl_native_toolchain' => :build
|
||||
|
||||
is_static
|
||||
|
||||
def self.build
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
system "#{MUSL_ENV_OPTIONS} ./bootstrap.sh"
|
||||
system "#{MUSL_ENV_OPTIONS} ./configure --prefix=#{CREW_MUSL_PREFIX}"
|
||||
system "#{MUSL_ENV_OPTIONS} make"
|
||||
end
|
||||
|
||||
def self.install
|
||||
system 'make', "DESTDIR=#{CREW_DEST_DIR}", 'install'
|
||||
end
|
||||
end
|
||||
@@ -3,99 +3,73 @@ require 'package'
|
||||
class Musl_openssl < Package
|
||||
description 'The Open Source toolkit for Secure Sockets Layer and Transport Layer Security'
|
||||
homepage 'https://www.openssl.org'
|
||||
@_ver = '3.0.0'
|
||||
@_ver = '3.0.1'
|
||||
version @_ver
|
||||
license 'openssl'
|
||||
compatibility 'all'
|
||||
source_url "https://www.openssl.org/source/openssl-#{@_ver}.tar.gz"
|
||||
source_sha256 '59eedfcb46c25214c9bd37ed6078297b4df01d012267fe9e9eee31f61bc70536'
|
||||
source_sha256 'c311ad853353bce796edad01a862c50a8a587f62e7e2100ef465ab53ec9b06d1'
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_openssl/3.0.0_armv7l/musl_openssl-3.0.0-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_openssl/3.0.0_armv7l/musl_openssl-3.0.0-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_openssl/3.0.0_i686/musl_openssl-3.0.0-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_openssl/3.0.0_x86_64/musl_openssl-3.0.0-chromeos-x86_64.tpxz'
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_openssl/3.0.1_armv7l/musl_openssl-3.0.1-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_openssl/3.0.1_armv7l/musl_openssl-3.0.1-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_openssl/3.0.1_i686/musl_openssl-3.0.1-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_openssl/3.0.1_x86_64/musl_openssl-3.0.1-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: 'a9b6e78fe11c73ec19c4698786a7d01d39d8bafbd35ff82243106cb2a40a3889',
|
||||
armv7l: 'a9b6e78fe11c73ec19c4698786a7d01d39d8bafbd35ff82243106cb2a40a3889',
|
||||
i686: 'dc3c37e2d1badaf4b192339d144a0e3a83c47182a5531e80a9fa91255694733e',
|
||||
x86_64: 'a17f737f02bb9c15d288832a066795b532530d68623bd6d3568946a99894258e'
|
||||
aarch64: 'b18e75dd8d59a179ec8e0c84ed50194253c3350494326059dcaadd0f1abb6d23',
|
||||
armv7l: 'b18e75dd8d59a179ec8e0c84ed50194253c3350494326059dcaadd0f1abb6d23',
|
||||
i686: '4e5f715a69c494f9d10b6a071a95771bdacde44253d692e4e9f84addad57de85',
|
||||
x86_64: '745cc2cd4f4f861f4d7ac4be33f724ab7da1b1a1ec833fb9dbb5828d2dc5e6fd'
|
||||
})
|
||||
|
||||
depends_on 'musl_native_toolchain' => :build
|
||||
depends_on 'musl_libunistring' => :build
|
||||
depends_on 'musl_libidn2' => :build
|
||||
depends_on 'musl_zlib' => :build
|
||||
depends_on 'musl_ncurses' => :build
|
||||
|
||||
is_static
|
||||
|
||||
@abi = ''
|
||||
@arch_ssp_cflags = ''
|
||||
@arch_c_flags = ''
|
||||
@arch_cxx_flags = ''
|
||||
case ARCH
|
||||
when 'aarch64', 'armv7l'
|
||||
@abi = 'eabihf'
|
||||
@openssl_configure_target = 'linux-generic32'
|
||||
when 'i686'
|
||||
@arch_ssp_cflags = '-fno-stack-protector'
|
||||
@openssl_configure_target = 'linux-x86'
|
||||
@openssl_configure_target = 'linux-elf'
|
||||
when 'x86_64'
|
||||
@openssl_configure_target = 'linux-x86_64'
|
||||
end
|
||||
|
||||
@cflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_c_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@cxxflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_cxx_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@ldflags = "-L#{CREW_PREFIX}/musl/lib -flto -static"
|
||||
@cmake_ldflags = '-flto'
|
||||
@musldep_cmake_options = "PATH=#{CREW_PREFIX}/musl/bin:#{CREW_PREFIX}/musl/#{ARCH}-linux-musl#{@abi}/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
AR=#{CREW_PREFIX}/musl/bin/ar \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@cmake_ldflags}' \
|
||||
cmake \
|
||||
-DCMAKE_INSTALL_PREFIX='#{CREW_PREFIX}/musl' \
|
||||
-DCMAKE_INSTALL_LIBDIR='#{CREW_PREFIX}/musl/lib' \
|
||||
-DCMAKE_LIBRARY_PATH='#{CREW_PREFIX}/musl/lib' \
|
||||
-DCMAKE_C_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc \
|
||||
-DCMAKE_CXX_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++ \
|
||||
-DCMAKE_INCLUDE_DIRECTORIES_BEFORE=ON \
|
||||
-DINCLUDE_DIRECTORIES=#{CREW_PREFIX}/musl/include \
|
||||
-DCMAKE_C_FLAGS='#{@cflags}' \
|
||||
-DCMAKE_CXX_FLAGS='#{@cxxflags}' \
|
||||
-DCMAKE_EXE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_STATIC_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_MODULE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DPROPERTY_INTERPROCEDURAL_OPTIMIZATION=TRUE \
|
||||
-DCMAKE_BUILD_TYPE=Release"
|
||||
|
||||
@musldep_env_options = "PATH=#{CREW_PREFIX}/musl/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
PKG_CONFIG_LIBDIR=#{CREW_PREFIX}/musl/lib/pkgconfig \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@ldflags}'"
|
||||
|
||||
def self.build
|
||||
system "#{@musldep_env_options} ./Configure \
|
||||
--prefix=#{CREW_PREFIX}/musl \
|
||||
--libdir=#{CREW_PREFIX}/musl/lib \
|
||||
no-tests zlib no-shared \
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
system "#{MUSL_ENV_OPTIONS} ./Configure \
|
||||
--prefix=#{CREW_MUSL_PREFIX} \
|
||||
--openssldir=#{CREW_MUSL_PREFIX} \
|
||||
--libdir=#{CREW_MUSL_PREFIX}/lib \
|
||||
no-tests \
|
||||
no-zlib \
|
||||
no-async \
|
||||
no-comp \
|
||||
no-idea \
|
||||
no-mdc2 \
|
||||
no-rc5 \
|
||||
no-ec2m \
|
||||
no-sm2 \
|
||||
no-sm4 \
|
||||
no-ssl2 \
|
||||
no-ssl3 \
|
||||
no-seed \
|
||||
no-weak-ssl-ciphers \
|
||||
no-des \
|
||||
no-cast \
|
||||
-static --static \
|
||||
-Wl,-rpath=#{CREW_MUSL_PREFIX}/lib -Wl,--enable-new-dtags \
|
||||
-Wl,-Bsymbolic \
|
||||
#{@openssl_configure_target}"
|
||||
system 'make'
|
||||
system "#{MUSL_ENV_OPTIONS} make"
|
||||
end
|
||||
|
||||
def self.install
|
||||
ENV['CREW_FHS_NONCOMPLIANCE_ONLY_ADVISORY'] = '1'
|
||||
warn_level = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
load "#{CREW_LIB_PATH}lib/const.rb"
|
||||
$VERBOSE = warn_level
|
||||
system 'make', "DESTDIR=#{CREW_DEST_DIR}", 'install_sw'
|
||||
end
|
||||
end
|
||||
|
||||
100
packages/musl_perl.rb
Normal file
100
packages/musl_perl.rb
Normal file
@@ -0,0 +1,100 @@
|
||||
require 'package'
|
||||
|
||||
class Musl_perl < Package
|
||||
description 'Perl 5 is a highly capable, feature-rich programming language with over 29 years of development.'
|
||||
homepage 'https://www.perl.org/'
|
||||
@_ver = '5.34.0'
|
||||
version @_ver
|
||||
license 'GPL-1+ or Artistic'
|
||||
compatibility 'all'
|
||||
source_url "http://www.cpan.org/src/5.0/perl-#{@_ver}.tar.gz"
|
||||
source_sha256 '551efc818b968b05216024fb0b727ef2ad4c100f8cb6b43fab615fa78ae5be9a'
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_perl/5.34.0_armv7l/musl_perl-5.34.0-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_perl/5.34.0_armv7l/musl_perl-5.34.0-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_perl/5.34.0_i686/musl_perl-5.34.0-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_perl/5.34.0_x86_64/musl_perl-5.34.0-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: '6387be753a5b69e6665317a60493d9c8f823d19da026a3007a9c80b32d95e2a6',
|
||||
armv7l: '6387be753a5b69e6665317a60493d9c8f823d19da026a3007a9c80b32d95e2a6',
|
||||
i686: 'dbcb88ffa14b891eca8e9a230f24caa1d26f7e2e88f04a27bb2b8140d8b955b4',
|
||||
x86_64: '3e9f12c893b92fef6c38b57a22be90ff1d80a10156631fbdc8587031516983e8'
|
||||
})
|
||||
|
||||
depends_on 'patch' => :build
|
||||
depends_on 'patchelf' => :build
|
||||
depends_on 'musl_native_toolchain'
|
||||
depends_on 'musl_zlib' => :build
|
||||
depends_on 'musl_bz2' => :build
|
||||
|
||||
@perl_fullversion = @_ver.split('-')[0]
|
||||
|
||||
@perl_version = @_ver.rpartition('.')[0]
|
||||
|
||||
def self.build
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
# Install manual files into #{CREW_MUSL_PREFIX}/share/man/man* even if groff is not installed.
|
||||
system "#{MUSL_ENV_OPTIONS} \
|
||||
./Configure \
|
||||
-Doptimize='-O2 -pipe -flto=auto' \
|
||||
-Dusethreads \
|
||||
-de -Duseshrplib \
|
||||
-Dprefix=#{CREW_MUSL_PREFIX} \
|
||||
-Dcc=#{CREW_MUSL_PREFIX}/bin/#{ARCH}-linux-musl#{MUSL_ABI}-gcc \
|
||||
-Dcxx=#{CREW_MUSL_PREFIX}/bin/#{ARCH}-linux-musl#{MUSL_ABI}-g++ \
|
||||
-Dccflags='#{MUSL_CFLAGS}' \
|
||||
-Dccxflags='#{MUSL_CXXFLAGS}' \
|
||||
-Dcppflags='-I#{CREW_MUSL_PREFIX}/include -fcommon -idirafter#{CREW_PREFIX}/include' \
|
||||
-Dldflags='#{MUSL_LDFLAGS}' \
|
||||
-Dlocincpth=#{CREW_MUSL_PREFIX}/include \
|
||||
-Dloclibpth=none \
|
||||
-A define:libpth=#{CREW_MUSL_PREFIX}/lib \
|
||||
-Dplibpth=#{CREW_MUSL_PREFIX}/lib \
|
||||
-A define:glibpth=#{CREW_MUSL_PREFIX}/lib \
|
||||
-U xlibpth='' \
|
||||
-Dlibswanted=none \
|
||||
-Dinstallusrbinperl=n"
|
||||
system "sed -i \"s, #{CREW_LIB_PREFIX}',',g\" config.sh"
|
||||
system "sed -i \"s, #{CREW_PREFIX}/include',',g\" config.sh"
|
||||
system "sed -i \"s,:#{CREW_LIB_PREFIX},:#{CREW_MUSL_PREFIX}/lib,g\" Makefile"
|
||||
system "#{MUSL_ENV_OPTIONS} make"
|
||||
system 'curl -o cpanm https://cpanmin.us'
|
||||
end
|
||||
|
||||
def self.check
|
||||
# having strange error as explained at https://patchwork.openembedded.org/patch/95795/
|
||||
# so, apply patch from https://github.com/habitat-sh/core-plans/blob/master/perl/skip-wide-character-test.patch
|
||||
# to ignore this single test
|
||||
system 'patch -p1 << EOF
|
||||
diff -ur perl-5.22.1.orig/t/lib/warnings/regexec perl-5.22.1/t/lib/warnings/regexec
|
||||
--- perl-5.22.1.orig/t/lib/warnings/regexec 2015-10-30 21:14:29.000000000 +0000
|
||||
+++ perl-5.22.1/t/lib/warnings/regexec 2016-01-19 05:05:50.218474114 +0000
|
||||
@@ -188,6 +188,7 @@
|
||||
########
|
||||
# NAME \b{} in UTF-8 locale
|
||||
require \'../loc_tools.pl\';
|
||||
+print("SKIPPED\n# This test causes a failure in the test suite\n"),exit;
|
||||
unless (locales_enabled()) {
|
||||
print("SKIPPED\n# locales not available\n"),exit;
|
||||
}
|
||||
EOF'
|
||||
|
||||
# test
|
||||
system "#{MUSL_ENV_OPTIONS} make test || true"
|
||||
end
|
||||
|
||||
def self.install
|
||||
system 'make', "DESTDIR=#{CREW_DEST_DIR}", 'install'
|
||||
FileUtils.mkdir_p "#{CREW_DEST_MUSL_PREFIX}/lib"
|
||||
FileUtils.ln_sf "#{CREW_MUSL_PREFIX}/lib/perl5/#{@perl_fullversion}/#{ARCH}-linux-thread-multi/CORE/libperl.so",
|
||||
"#{CREW_DEST_MUSL_PREFIX}/lib/libperl.so"
|
||||
FileUtils.ln_sf "#{CREW_MUSL_PREFIX}/lib/libnsl.so.1", "#{CREW_DEST_MUSL_PREFIX}/lib/libnsl.so"
|
||||
system "install -Dm755 cpanm #{CREW_DEST_MUSL_PREFIX}/bin/cpanm"
|
||||
Dir.chdir(CREW_DEST_MUSL_PREFIX) do
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
Musl.patchelf
|
||||
end
|
||||
end
|
||||
end
|
||||
14
packages/musl_toolchain.rb
Normal file
14
packages/musl_toolchain.rb
Normal file
@@ -0,0 +1,14 @@
|
||||
require 'package'
|
||||
|
||||
class Musl_toolchain < Package
|
||||
description 'A modern, simple, and fast C library implementation that strives to be lightweight, fast, simple, free, and correct in the sense of standards-conformance and safety.'
|
||||
homepage 'https://musl.cc/'
|
||||
version '1.2.2-b76f37fd'
|
||||
compatibility 'all'
|
||||
license 'MIT, LGPL-2 and GPL-2'
|
||||
|
||||
is_fake
|
||||
|
||||
depends_on 'musl_cc_toolchain' unless ARCH == 'i686'
|
||||
depends_on 'musl_native_toolchain' if ARCH == 'i686'
|
||||
end
|
||||
65
packages/musl_wolfssl.rb
Normal file
65
packages/musl_wolfssl.rb
Normal file
@@ -0,0 +1,65 @@
|
||||
# Adapted from Arch Linux wolfssl PKGBUILD at:
|
||||
# https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=wolfssl
|
||||
|
||||
require 'package'
|
||||
|
||||
class Musl_wolfssl < Package
|
||||
description 'small, fast, portable implementation of TLS/SSL for embedded devices to the cloud formerly CyaSSL'
|
||||
homepage 'https://www.wolfssl.com/'
|
||||
version '5.1.1'
|
||||
compatibility 'all'
|
||||
source_url 'https://github.com/wolfSSL/wolfssl/archive/v5.1.1-stable.tar.gz'
|
||||
source_sha256 'd3e0544dbe7e9587c0f6538cdc671b6492663bb7a4281819538abe6c99cdbd92'
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_wolfssl/5.1.1_armv7l/musl_wolfssl-5.1.1-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_wolfssl/5.1.1_armv7l/musl_wolfssl-5.1.1-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_wolfssl/5.1.1_i686/musl_wolfssl-5.1.1-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_wolfssl/5.1.1_x86_64/musl_wolfssl-5.1.1-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: 'c47ed88e5ebbdd796a131bda2de60ddc8662ba489e22e949e4acc62df099ff82',
|
||||
armv7l: 'c47ed88e5ebbdd796a131bda2de60ddc8662ba489e22e949e4acc62df099ff82',
|
||||
i686: '0d18e3a80a7078974d752145c7204c07f0fff0a332cd96632adbdb28d5b00bdf',
|
||||
x86_64: '714c1aabfc97632c2e10f3376b9a3b82ce3008a48a1f99a3f33d0b62ade61637'
|
||||
})
|
||||
|
||||
depends_on 'musl_native_toolchain'
|
||||
|
||||
is_static
|
||||
|
||||
def self.build
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
system "#{MUSL_ENV_OPTIONS} ./autogen.sh"
|
||||
system "#{MUSL_ENV_OPTIONS} ./configure \
|
||||
--prefix=#{CREW_MUSL_PREFIX} \
|
||||
--sysconfdir=#{CREW_MUSL_PREFIX}/etc \
|
||||
--disable-bump \
|
||||
--disable-debug \
|
||||
--disable-examples \
|
||||
--enable-all-crypto \
|
||||
--enable-fastmath \
|
||||
--enable-fasthugemath \
|
||||
--enable-certgen \
|
||||
--enable-curve25519 \
|
||||
--enable-curve448 \
|
||||
--enable-ed25519 \
|
||||
--enable-ed448 \
|
||||
--enable-sessioncerts \
|
||||
--enable-fortress \
|
||||
--enable-keygen \
|
||||
--enable-libssh2 \
|
||||
--enable-openssh \
|
||||
--enable-opensslall \
|
||||
--enable-opensslextra \
|
||||
--enable-reproducible-build \
|
||||
--enable-static \
|
||||
--enable-writedup"
|
||||
|
||||
system "#{MUSL_ENV_OPTIONS} make"
|
||||
end
|
||||
|
||||
def self.install
|
||||
system "make install DESTDIR=#{CREW_DEST_DIR}"
|
||||
end
|
||||
end
|
||||
@@ -16,70 +16,22 @@ class Musl_xz < Package
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_xz/5.2.5-e7da-1_x86_64/musl_xz-5.2.5-e7da-1-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: '1bc30592c301adedf6ff176313128b3fd1ecec1cc526f64ff1bd5529dd195d6b',
|
||||
armv7l: '1bc30592c301adedf6ff176313128b3fd1ecec1cc526f64ff1bd5529dd195d6b',
|
||||
i686: '5b0b648fdf75c2e31b25f9b291d99f9d70d29260db9fb380f370a579c11c3afd',
|
||||
x86_64: '23568c835384e2ca14b1054c2e11909ddd79dd0fb281db1e20d4bfa0c6cc9c40'
|
||||
aarch64: '4920c40308b221b02c82704f699de5ab302ac0f51643cf1fc30cc62837ca493d',
|
||||
armv7l: '4920c40308b221b02c82704f699de5ab302ac0f51643cf1fc30cc62837ca493d',
|
||||
i686: '6004dac184942b97e97315dbbc0bebdb3691b0a4437de7d085f1fc2a54088d32',
|
||||
x86_64: 'b88d42f2a8f3129c2b460257f539909d40205df41296b56d87cc6b3c96ba24f7'
|
||||
})
|
||||
|
||||
depends_on 'autoconf_archive' => :build
|
||||
depends_on 'musl_native_toolchain' => :build
|
||||
|
||||
@abi = ''
|
||||
@arch_ssp_cflags = ''
|
||||
@arch_c_flags = ''
|
||||
@arch_cxx_flags = ''
|
||||
case ARCH
|
||||
when 'aarch64', 'armv7l'
|
||||
@abi = 'eabihf'
|
||||
when 'i686'
|
||||
@arch_ssp_cflags = '-fno-stack-protector'
|
||||
when 'x86_64'
|
||||
end
|
||||
|
||||
@cflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_c_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@cxxflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_cxx_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@ldflags = "-L#{CREW_PREFIX}/musl/lib -flto -static"
|
||||
@cmake_ldflags = '-flto'
|
||||
@musldep_cmake_options = "PATH=#{CREW_PREFIX}/musl/bin:#{CREW_PREFIX}/musl/#{ARCH}-linux-musl#{@abi}/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
AR=#{CREW_PREFIX}/musl/bin/ar \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@cmake_ldflags}' \
|
||||
cmake \
|
||||
-DCMAKE_INSTALL_PREFIX='#{CREW_PREFIX}/musl' \
|
||||
-DCMAKE_LIBRARY_PATH='#{CREW_PREFIX}/musl/lib' \
|
||||
-DCMAKE_C_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc \
|
||||
-DCMAKE_CXX_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++ \
|
||||
-DCMAKE_INCLUDE_DIRECTORIES_BEFORE=ON \
|
||||
-DINCLUDE_DIRECTORIES=#{CREW_PREFIX}/musl/include \
|
||||
-DCMAKE_C_FLAGS='#{@cflags}' \
|
||||
-DCMAKE_CXX_FLAGS='#{@cxxflags}' \
|
||||
-DCMAKE_EXE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_STATIC_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_MODULE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DPROPERTY_INTERPROCEDURAL_OPTIMIZATION=TRUE \
|
||||
-DCMAKE_BUILD_TYPE=Release"
|
||||
|
||||
@musldep_env_options = "PATH=#{CREW_PREFIX}/musl/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
PKG_CONFIG_LIBDIR=#{CREW_PREFIX}/musl/lib/pkgconfig \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@ldflags}'"
|
||||
is_static
|
||||
|
||||
def self.build
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
system 'NOCONFIGURE=1 ./autogen.sh --no-po4a'
|
||||
system "#{@musldep_env_options} ./configure --prefix=#{CREW_PREFIX}/musl \
|
||||
--libdir=#{CREW_PREFIX}/musl/lib \
|
||||
system "#{MUSL_ENV_OPTIONS} ./configure --prefix=#{CREW_MUSL_PREFIX} \
|
||||
--libdir=#{CREW_MUSL_PREFIX}/lib \
|
||||
--disable-doc \
|
||||
--disable-shared \
|
||||
--enable-static \
|
||||
@@ -89,11 +41,6 @@ class Musl_xz < Package
|
||||
end
|
||||
|
||||
def self.install
|
||||
ENV['CREW_FHS_NONCOMPLIANCE_ONLY_ADVISORY'] = '1'
|
||||
warn_level = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
load "#{CREW_LIB_PATH}lib/const.rb"
|
||||
$VERBOSE = warn_level
|
||||
system 'make', "DESTDIR=#{CREW_DEST_DIR}", "LIBDIR=#{CREW_PREFIX}/musl/lib", 'install'
|
||||
system 'make', "DESTDIR=#{CREW_DEST_DIR}", "LIBDIR=#{CREW_MUSL_PREFIX}/lib", 'install'
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2,92 +2,39 @@ require 'package'
|
||||
|
||||
class Musl_zlib < Package
|
||||
description 'zlib is a massively spiffy yet delicately unobtrusive compression library.'
|
||||
homepage 'http://www.zlib.net/'
|
||||
homepage 'https://www.zlib.net/'
|
||||
@_ver = '1.2.11'
|
||||
version @_ver.to_s
|
||||
version "#{@_ver}-1"
|
||||
license 'zlib'
|
||||
compatibility 'all'
|
||||
source_url "http://www.zlib.net/zlib-#{@_ver}.tar.gz"
|
||||
source_url "https://www.zlib.net/zlib-#{@_ver}.tar.gz"
|
||||
source_sha256 'c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1'
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_zlib/1.2.11_armv7l/musl_zlib-1.2.11-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_zlib/1.2.11_armv7l/musl_zlib-1.2.11-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_zlib/1.2.11_i686/musl_zlib-1.2.11-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_zlib/1.2.11_x86_64/musl_zlib-1.2.11-chromeos-x86_64.tpxz'
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_zlib/1.2.11-1_armv7l/musl_zlib-1.2.11-1-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_zlib/1.2.11-1_armv7l/musl_zlib-1.2.11-1-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_zlib/1.2.11-1_i686/musl_zlib-1.2.11-1-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_zlib/1.2.11-1_x86_64/musl_zlib-1.2.11-1-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: '00d2af88bd0b9ac504405379e470392a8c66d293046f4466899f493fec34c082',
|
||||
armv7l: '00d2af88bd0b9ac504405379e470392a8c66d293046f4466899f493fec34c082',
|
||||
i686: 'e30270a0ed70bd26ff96f2929f19f2e7dcba4dd6b5b458ccb299f618e2e72795',
|
||||
x86_64: 'dbe2f1f798905e8577e9b1b2579554a22802fec93c803fd10857be7cfc999cc2'
|
||||
aarch64: '2ef3cfd50efbcd094cba24b4a776fe95f655f1ab9e36c3186355c3c710b95235',
|
||||
armv7l: '2ef3cfd50efbcd094cba24b4a776fe95f655f1ab9e36c3186355c3c710b95235',
|
||||
i686: '5e36e9ad564e7323524be1bcc6ba1ea5a5d161b37c2dc3a0b05bcd1daa7c6783',
|
||||
x86_64: '3258869aa53a18df34f79f150becf9d1e6d2e69ee2a2ab6c31aa131981ae54f3'
|
||||
})
|
||||
|
||||
depends_on 'musl_native_toolchain' => :build
|
||||
|
||||
@abi = ''
|
||||
@arch_ssp_cflags = ''
|
||||
@arch_c_flags = ''
|
||||
@arch_cxx_flags = ''
|
||||
case ARCH
|
||||
when 'aarch64', 'armv7l'
|
||||
@abi = 'eabihf'
|
||||
when 'i686'
|
||||
@arch_ssp_cflags = '-fno-stack-protector'
|
||||
when 'x86_64'
|
||||
end
|
||||
|
||||
@cflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_c_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@cxxflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_cxx_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@ldflags = "-L#{CREW_PREFIX}/musl/lib -flto -static"
|
||||
@cmake_ldflags = '-flto'
|
||||
@musldep_cmake_options = "PATH=#{CREW_PREFIX}/musl/bin:#{CREW_PREFIX}/musl/#{ARCH}-linux-musl#{@abi}/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
AR=#{CREW_PREFIX}/musl/bin/ar \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@cmake_ldflags}' \
|
||||
cmake \
|
||||
-DCMAKE_INSTALL_PREFIX='#{CREW_PREFIX}/musl' \
|
||||
-DCMAKE_LIBRARY_PATH='#{CREW_PREFIX}/musl/lib' \
|
||||
-DCMAKE_C_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc \
|
||||
-DCMAKE_CXX_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++ \
|
||||
-DCMAKE_INCLUDE_DIRECTORIES_BEFORE=ON \
|
||||
-DINCLUDE_DIRECTORIES=#{CREW_PREFIX}/musl/include \
|
||||
-DCMAKE_C_FLAGS='#{@cflags}' \
|
||||
-DCMAKE_CXX_FLAGS='#{@cxxflags}' \
|
||||
-DCMAKE_EXE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_STATIC_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_MODULE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DPROPERTY_INTERPROCEDURAL_OPTIMIZATION=TRUE \
|
||||
-DCMAKE_BUILD_TYPE=Release"
|
||||
|
||||
@musldep_env_options = "PATH=#{CREW_PREFIX}/musl/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
PKG_CONFIG_LIBDIR=#{CREW_PREFIX}/musl/lib/pkgconfig \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@ldflags}'"
|
||||
is_static
|
||||
|
||||
def self.build
|
||||
system "#{@musldep_env_options} ./configure --prefix=#{CREW_PREFIX}/musl \
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
system "#{MUSL_ENV_OPTIONS} ./configure --prefix=#{CREW_MUSL_PREFIX} \
|
||||
--static"
|
||||
system 'make'
|
||||
system "#{MUSL_ENV_OPTIONS} make"
|
||||
end
|
||||
|
||||
def self.install
|
||||
ENV['CREW_FHS_NONCOMPLIANCE_ONLY_ADVISORY'] = '1'
|
||||
warn_level = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
load "#{CREW_LIB_PATH}lib/const.rb"
|
||||
$VERBOSE = warn_level
|
||||
system 'make', "DESTDIR=#{CREW_DEST_DIR}", 'install'
|
||||
end
|
||||
end
|
||||
|
||||
@@ -3,98 +3,46 @@ require 'package'
|
||||
class Musl_zstd < Package
|
||||
description 'Zstandard - Fast real-time compression algorithm'
|
||||
homepage 'http://www.zstd.net'
|
||||
version '1.5.0'
|
||||
@_ver = '1.5.1'
|
||||
version @_ver
|
||||
license 'BSD or GPL-2'
|
||||
compatibility 'all'
|
||||
source_url 'https://github.com/facebook/zstd.git'
|
||||
git_hashtag "v#{version}"
|
||||
git_hashtag "v#{@_ver}"
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_zstd/1.5.0_armv7l/musl_zstd-1.5.0-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_zstd/1.5.0_armv7l/musl_zstd-1.5.0-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_zstd/1.5.0_i686/musl_zstd-1.5.0-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_zstd/1.5.0_x86_64/musl_zstd-1.5.0-chromeos-x86_64.tpxz'
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_zstd/1.5.1_armv7l/musl_zstd-1.5.1-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_zstd/1.5.1_armv7l/musl_zstd-1.5.1-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_zstd/1.5.1_i686/musl_zstd-1.5.1-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/musl_zstd/1.5.1_x86_64/musl_zstd-1.5.1-chromeos-x86_64.tpxz'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: 'd540242853af21262637b7dcfd5d25e01e97daaa5817a053e30204dcc0a2fe68',
|
||||
armv7l: 'd540242853af21262637b7dcfd5d25e01e97daaa5817a053e30204dcc0a2fe68',
|
||||
i686: '2d18e52937e5e40c4e54ee1d728eca8216b49906a84d37ae2c528ea20772f932',
|
||||
x86_64: '85c337d209e779cc39f697ef754326aca8d13b00d69c25e2461f2b085e4d1a28'
|
||||
aarch64: 'd87582aa6dbd85e81c90317acd30b30b6300e4c63c01fe5570b37b631338e26e',
|
||||
armv7l: 'd87582aa6dbd85e81c90317acd30b30b6300e4c63c01fe5570b37b631338e26e',
|
||||
i686: '88af0514d1a2a6d93df12c0566a675175012ed7906b8bb27e7bf50d4d1ec13ae',
|
||||
x86_64: 'bd7ef06d006489657649d1e3a2d999dde9b4e2d7788ca9b6b967a7ccecc75b9c'
|
||||
})
|
||||
|
||||
depends_on 'musl_native_toolchain' => :build
|
||||
|
||||
@abi = ''
|
||||
@arch_ssp_cflags = ''
|
||||
@arch_c_flags = ''
|
||||
@arch_cxx_flags = ''
|
||||
case ARCH
|
||||
when 'aarch64', 'armv7l'
|
||||
@abi = 'eabihf'
|
||||
when 'i686'
|
||||
@arch_ssp_cflags = '-fno-stack-protector'
|
||||
when 'x86_64'
|
||||
end
|
||||
|
||||
@cflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_c_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@cxxflags = "-B#{CREW_PREFIX}/musl/include -flto -pipe -O3 -ffat-lto-objects -fipa-pta -fno-semantic-interposition -fdevirtualize-at-ltrans #{@arch_cxx_flags} #{@arch_ssp_cflags} -fcommon"
|
||||
@ldflags = "-L#{CREW_PREFIX}/musl/lib -flto -static"
|
||||
@cmake_ldflags = '-flto'
|
||||
@musldep_cmake_options = "PATH=#{CREW_PREFIX}/musl/bin:#{CREW_PREFIX}/musl/#{ARCH}-linux-musl#{@abi}/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
AR=#{CREW_PREFIX}/musl/bin/ar \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@cmake_ldflags}' \
|
||||
cmake \
|
||||
-DCMAKE_INSTALL_PREFIX='#{CREW_PREFIX}/musl' \
|
||||
-DCMAKE_INSTALL_LIBDIR='#{CREW_PREFIX}/musl/lib' \
|
||||
-DCMAKE_LIBRARY_PATH='#{CREW_PREFIX}/musl/lib' \
|
||||
-DCMAKE_C_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc \
|
||||
-DCMAKE_CXX_COMPILER=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++ \
|
||||
-DCMAKE_INCLUDE_DIRECTORIES_BEFORE=ON \
|
||||
-DINCLUDE_DIRECTORIES=#{CREW_PREFIX}/musl/include \
|
||||
-DCMAKE_C_FLAGS='#{@cflags}' \
|
||||
-DCMAKE_CXX_FLAGS='#{@cxxflags}' \
|
||||
-DCMAKE_EXE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_STATIC_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DCMAKE_MODULE_LINKER_FLAGS='#{@cmake_ldflags}' \
|
||||
-DPROPERTY_INTERPROCEDURAL_OPTIMIZATION=TRUE \
|
||||
-DCMAKE_BUILD_TYPE=Release"
|
||||
|
||||
@musldep_env_options = "PATH=#{CREW_PREFIX}/musl/bin:#{ENV['PATH']} \
|
||||
CC='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-gcc' \
|
||||
CXX='#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-g++' \
|
||||
LD=#{CREW_PREFIX}/musl/bin/#{ARCH}-linux-musl#{@abi}-ld.gold \
|
||||
PKG_CONFIG_LIBDIR=#{CREW_PREFIX}/musl/lib/pkgconfig \
|
||||
CFLAGS='#{@cflags}' \
|
||||
CXXFLAGS='#{@cxxflags}' \
|
||||
CPPFLAGS='-I#{CREW_PREFIX}/musl/include -fcommon' \
|
||||
LDFLAGS='#{@ldflags}'"
|
||||
is_static
|
||||
|
||||
def self.build
|
||||
load "#{CREW_LIB_PATH}lib/musl.rb"
|
||||
FileUtils.mkdir('build/cmake/builddir')
|
||||
Dir.chdir('build/cmake/builddir') do
|
||||
system "#{@musldep_cmake_options} \
|
||||
system "#{MUSL_CMAKE_OPTIONS.gsub('-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=TRUE',
|
||||
'-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF')} \
|
||||
-DZSTD_BUILD_STATIC=ON \
|
||||
-DZSTD_BUILD_SHARED=OFF \
|
||||
-DZSTD_BUILD_PROGRAMS=OFF \
|
||||
../ -G Ninja"
|
||||
end
|
||||
system "PATH=#{CREW_PREFIX}/musl/bin:#{CREW_PREFIX}/musl/#{ARCH}-linux-musl#{@abi}/bin:#{ENV['PATH']} \
|
||||
system "PATH=#{CREW_MUSL_PREFIX}/bin:#{CREW_MUSL_PREFIX}/#{ARCH}-linux-musl#{@abi}/bin:#{ENV['PATH']} \
|
||||
samu -C build/cmake/builddir -j#{CREW_NPROC}"
|
||||
end
|
||||
|
||||
def self.install
|
||||
ENV['CREW_FHS_NONCOMPLIANCE_ONLY_ADVISORY'] = '1'
|
||||
warn_level = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
load "#{CREW_LIB_PATH}lib/const.rb"
|
||||
$VERBOSE = warn_level
|
||||
system "DESTDIR=#{CREW_DEST_DIR} samu -C build/cmake/builddir install"
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user