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:
Satadru Pramanik
2022-01-20 12:48:59 -05:00
committed by GitHub
parent 5328831085
commit 1c7204fa89
37 changed files with 1428 additions and 1835 deletions

98
lib/musl.rb Normal file
View 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

View File

@@ -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

View File

@@ -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

View File

@@ -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} \

View File

@@ -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

View File

@@ -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

View File

@@ -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'

View File

@@ -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

View File

@@ -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
View 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

View File

@@ -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

View 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
View 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

View File

@@ -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

View File

@@ -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

View 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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View 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

View File

@@ -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

View File

@@ -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

View 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

View File

@@ -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

View File

@@ -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

View File

@@ -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
View 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

View File

@@ -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
View 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

View 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
View 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

View File

@@ -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

View File

@@ -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

View File

@@ -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