mirror of
https://github.com/chromebrew/chromebrew.git
synced 2026-01-07 22:54:11 -05:00
* Only add musl bin to path if musl is installed Signed-off-by: Satadru Pramanik <satadru@gmail.com> * Add print_source_bashrc to crew_profile_base Signed-off-by: Satadru Pramanik <satadru@gmail.com> --------- Signed-off-by: Satadru Pramanik <satadru@gmail.com>
115 lines
4.5 KiB
Ruby
115 lines
4.5 KiB
Ruby
require 'package'
|
|
|
|
class Musl_curl < Package
|
|
description 'Command line tool and library for transferring data with URLs.'
|
|
homepage 'https://curl.se/'
|
|
version '7.84.0'
|
|
license 'curl'
|
|
compatibility 'all'
|
|
source_url "https://curl.se/download/curl-#{version}.tar.xz"
|
|
source_sha256 '2d118b43f547bfe5bae806d8d47b4e596ea5b25a6c1f080aef49fbcd817c5db8'
|
|
binary_compression 'tar.zst'
|
|
|
|
binary_sha256({
|
|
aarch64: '2c21d0bbc43fd965743a37b49bb53663e510df3940e00b83cd6fd0f91e0ae085',
|
|
armv7l: '2c21d0bbc43fd965743a37b49bb53663e510df3940e00b83cd6fd0f91e0ae085',
|
|
i686: '1e27afa774b53a5c0db25b7779f09997540870cb549ce01a57e44a4d5e93a8f1',
|
|
x86_64: '403fb26245e958681aef632dd859ce645ab2339cc72ad46e7ad983c789976448'
|
|
})
|
|
|
|
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_musl
|
|
is_static
|
|
patchelf
|
|
print_source_bashrc
|
|
|
|
def self.patch
|
|
# Fix arm build error
|
|
# easy_lock.h:56:7: error: implicit declaration of function 'sched_yield' [-Werror=implicit-function-declaration]
|
|
# via https://github.com/curl/curl/pull/9054 & https://github.com/curl/curl/pull/9056
|
|
downloader 'https://github.com/curl/curl/commit/e2e7f54b7bea521fa8373095d0f43261a720cda0.patch',
|
|
'9b011c957cedcc089b53399f31328b1ebb7ec87dd5eeefd1f83c7fc8741405a0'
|
|
system 'patch -p1 -i e2e7f54b7bea521fa8373095d0f43261a720cda0.patch'
|
|
downloader 'https://github.com/curl/curl/commit/5a1a892565443fa4145888c6150da65c9a33d15c.patch',
|
|
'9a83b1b8b7fa3f6951bf890d6af7bc37c830d0741849d8b1e98acfb5dbdaf563'
|
|
system 'patch -p1 -i 5a1a892565443fa4145888c6150da65c9a33d15c.patch'
|
|
end
|
|
|
|
def self.build
|
|
@curl_lib_deps = "#{CREW_MUSL_PREFIX}/lib/libunbound.a \
|
|
#{CREW_MUSL_PREFIX}/lib/libresolv.a \
|
|
#{CREW_MUSL_PREFIX}/lib/libm.a \
|
|
#{CREW_MUSL_PREFIX}/lib/libbrotlicommon-static.a \
|
|
#{CREW_MUSL_PREFIX}/lib/libbrotlidec-static.a \
|
|
#{CREW_MUSL_PREFIX}/lib/libzstd.a \
|
|
#{CREW_MUSL_PREFIX}/lib/libz.a \
|
|
#{CREW_MUSL_PREFIX}/lib/libssl.a \
|
|
#{CREW_MUSL_PREFIX}/lib/libcrypto.a \
|
|
#{CREW_MUSL_PREFIX}/lib/libpthread.a \
|
|
#{CREW_MUSL_PREFIX}/lib/libncursesw.a \
|
|
#{CREW_MUSL_PREFIX}/lib/libtinfow.a \
|
|
#{CREW_MUSL_PREFIX}/lib/libidn2.a \
|
|
#{CREW_MUSL_PREFIX}/lib/libunistring.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}"
|
|
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'"
|
|
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/chromebrew/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
|