Commit eeb35add authored by Ed Reel's avatar Ed Reel Committed by Chris Thurber

Update glibc from 2.23 to 2.2x (#3188)

Add LIBC_VERSION constant
parent 93c767ed
......@@ -267,6 +267,7 @@ def const (var)
'CREW_PREFIX',
'CREW_VERSION',
'HOME',
'LIBC_VERSION',
'USER'
]
vars.each { |var|
......
# Defines common constants used in different parts of crew
CREW_VERSION = '1.2.0'
CREW_VERSION = '1.2.1'
ARCH = `uname -m`.strip
ARCH_LIB = if ARCH == 'x86_64' then 'lib64' else 'lib' end
LIBC_VERSION = if File.exists? "/#{ARCH_LIB}/libc-2.27.so" then '2.27' else '2.23' end
if ENV['CREW_PREFIX'].to_s == ''
CREW_PREFIX = '/usr/local'
......
......@@ -3,29 +3,44 @@ require 'package'
class Glibc < Package
description 'The GNU C Library project provides the core libraries for GNU/Linux systems.'
homepage 'https://www.gnu.org/software/libc/'
version '2.23'
source_url 'https://ftpmirror.gnu.org/glibc/glibc-2.23.tar.xz'
source_sha256 '94efeb00e4603c8546209cefb3e1a50a5315c86fa9b078b6fad758e187ce13e9'
binary_url ({
aarch64: 'https://dl.bintray.com/chromebrew/chromebrew/glibc-2.23-chromeos-armv7l.tar.xz',
armv7l: 'https://dl.bintray.com/chromebrew/chromebrew/glibc-2.23-chromeos-armv7l.tar.xz',
i686: 'https://dl.bintray.com/chromebrew/chromebrew/glibc-2.23-chromeos-i686.tar.xz',
x86_64: 'https://dl.bintray.com/chromebrew/chromebrew/glibc-2.23-chromeos-x86_64.tar.xz',
})
binary_sha256 ({
aarch64: 'acbecc4c5824653a1aca66da9856970fa4ae0ad97179747047e1a72fc2c2bac7',
armv7l: 'acbecc4c5824653a1aca66da9856970fa4ae0ad97179747047e1a72fc2c2bac7',
i686: '52145b65cb49c2751f69d4c46636f0685f2abb6685d8a080b71b2f091595a950',
x86_64: '2d09f88f6de0f3fbd9f01ffcf9d61d43df688826bf1df63d8f193d6ed69ded11',
})
version '2.2x'
case LIBC_VERSION
when '2.23'
source_url 'https://ftpmirror.gnu.org/glibc/glibc-2.23.tar.xz'
source_sha256 '94efeb00e4603c8546209cefb3e1a50a5315c86fa9b078b6fad758e187ce13e9'
binary_url ({
aarch64: 'https://dl.bintray.com/chromebrew/chromebrew/glibc-2.23-chromeos-armv7l.tar.xz',
armv7l: 'https://dl.bintray.com/chromebrew/chromebrew/glibc-2.23-chromeos-armv7l.tar.xz',
i686: 'https://dl.bintray.com/chromebrew/chromebrew/glibc-2.23-chromeos-i686.tar.xz',
x86_64: 'https://dl.bintray.com/chromebrew/chromebrew/glibc-2.23-chromeos-x86_64.tar.xz',
})
binary_sha256 ({
aarch64: 'acbecc4c5824653a1aca66da9856970fa4ae0ad97179747047e1a72fc2c2bac7',
armv7l: 'acbecc4c5824653a1aca66da9856970fa4ae0ad97179747047e1a72fc2c2bac7',
i686: '52145b65cb49c2751f69d4c46636f0685f2abb6685d8a080b71b2f091595a950',
x86_64: '2d09f88f6de0f3fbd9f01ffcf9d61d43df688826bf1df63d8f193d6ed69ded11',
})
when '2.27'
source_url 'https://ftpmirror.gnu.org/glibc/glibc-2.27.tar.xz'
source_sha256 '5172de54318ec0b7f2735e5a91d908afe1c9ca291fec16b5374d9faadfc1fc72'
binary_url ({
aarch64: 'https://dl.bintray.com/chromebrew/chromebrew/glibc-2.27-chromeos-armv7l.tar.xz',
armv7l: 'https://dl.bintray.com/chromebrew/chromebrew/glibc-2.27-chromeos-armv7l.tar.xz',
x86_64: 'https://dl.bintray.com/chromebrew/chromebrew/glibc-2.27-chromeos-x86_64.tar.xz',
})
binary_sha256 ({
aarch64: '64b4b73e2096998fd1a0a0e7d18472ef977aebb2f1cad83d99c77e164cb6a1d6',
armv7l: '64b4b73e2096998fd1a0a0e7d18472ef977aebb2f1cad83d99c77e164cb6a1d6',
x86_64: '5fe94642dbbf900d22b715021c73ac1a601b81517f0da1e7413f0af8fbea7997',
})
end
depends_on 'gawk' => :build
depends_on 'libgd' => :build
depends_on 'texinfo' => :build
def self.patch
# Apply patch due to new version of binutils which causes compilation failure
# Apply patch due to new version of binutils which causes compilation failure
# http://lists.busybox.net/pipermail/buildroot/2017-August/199812.html
Dir.chdir "misc" do
if File.readlines("regexp.c").grep(/monitor/).any?
......@@ -94,30 +109,28 @@ class Glibc < Package
# This installs full locales, but requires a lot of disk space.
#system "make", "DESTDIR=#{CREW_DEST_DIR}", "localedata/install-locales"
# Symlink to system libraries
if File.exist? "/#{ARCH_LIB}/libc-2.23.so"
Dir.chdir "#{CREW_DEST_LIB_PREFIX}" do
system "ln -sf /#{ARCH_LIB}/ld-2.23.so ld-2.23.so" if File.exist? "/#{ARCH_LIB}/ld-2.23.so"
system "ln -sf /#{ARCH_LIB}/libanl-2.23.so libanl-2.23.so" if File.exist? "/#{ARCH_LIB}/libanl-2.23.so"
system "ln -sf /#{ARCH_LIB}/libBrokenLocale-2.23.so libBrokenLocale-2.23.so" if File.exist? "/#{ARCH_LIB}/libBrokenLocale-2.23.so"
system "ln -sf /#{ARCH_LIB}/libc-2.23.so libc-2.23.so" if File.exist? "/#{ARCH_LIB}/libc-2.23.so"
system "ln -sf /#{ARCH_LIB}/libcidn-2.23.so libcidn-2.23.so" if File.exist? "/#{ARCH_LIB}/libcidn-2.23.so"
system "ln -sf /#{ARCH_LIB}/libcrypt-2.23.so libcrypt-2.23.so" if File.exist? "/#{ARCH_LIB}/libcrypt-2.23.so"
system "ln -sf /#{ARCH_LIB}/libdl-2.23.so libdl-2.23.so" if File.exist? "/#{ARCH_LIB}/libdl-2.23.so"
system "ln -sf /#{ARCH_LIB}/libm-2.23.so libm-2.23.so" if File.exist? "/#{ARCH_LIB}/libm-2.23.so"
system "ln -sf /#{ARCH_LIB}/libmvec-2.23.so libmvec-2.23.so" if File.exist? "/#{ARCH_LIB}/libmvec-2.23.so"
system "ln -sf /#{ARCH_LIB}/libnsl-2.23.so libnsl-2.23.so" if File.exist? "/#{ARCH_LIB}/libnsl-2.23.so"
system "ln -sf /#{ARCH_LIB}/libnss_compat-2.23.so libnss_compat-2.23.so" if File.exist? "/#{ARCH_LIB}/libnss_compat-2.23.so"
system "ln -sf /#{ARCH_LIB}/libnss_db-2.23.so libnss_db-2.23.so" if File.exist? "/#{ARCH_LIB}/libnss_db-2.23.so"
system "ln -sf /#{ARCH_LIB}/libnss_dns-2.23.so libnss_dns-2.23.so" if File.exist? "/#{ARCH_LIB}/libnss_dns-2.23.so"
system "ln -sf /#{ARCH_LIB}/libnss_files-2.23.so libnss_files-2.23.so" if File.exist? "/#{ARCH_LIB}/libnss_files-2.23.so"
system "ln -sf /#{ARCH_LIB}/libnss_hesiod-2.23.so libnss_hesiod-2.23.so" if File.exist? "/#{ARCH_LIB}/libnss_hesiod-2.23.so"
system "ln -sf /#{ARCH_LIB}/libnss_nis-2.23.so libnss_nis-2.23.so" if File.exist? "/#{ARCH_LIB}/libnss_nis-2.23.so"
system "ln -sf /#{ARCH_LIB}/libnss_nisplus-2.23.so libnss_nisplus-2.23.so" if File.exist? "/#{ARCH_LIB}/libnss_nisplus-2.23.so"
system "ln -sf /#{ARCH_LIB}/libpthread-2.23.so libpthread-2.23.so" if File.exist? "/#{ARCH_LIB}/libpthread-2.23.so"
system "ln -sf /#{ARCH_LIB}/libresolv-2.23.so libresolv-2.23.so" if File.exist? "/#{ARCH_LIB}/libresolv-2.23.so"
system "ln -sf /#{ARCH_LIB}/librt-2.23.so librt-2.23.so" if File.exist? "/#{ARCH_LIB}/librt-2.23.so"
system "ln -sf /#{ARCH_LIB}/libutil-2.23.so libutil-2.23.so" if File.exist? "/#{ARCH_LIB}/libutil-2.23.so"
end
Dir.chdir "#{CREW_DEST_LIB_PREFIX}" do
system "ln -sf /#{ARCH_LIB}/ld-#{LIBC_VERSION}.so ld-#{LIBC_VERSION}.so" if File.exist? "/#{ARCH_LIB}/ld-#{LIBC_VERSION}.so"
system "ln -sf /#{ARCH_LIB}/libanl-#{LIBC_VERSION}.so libanl-#{LIBC_VERSION}.so" if File.exist? "/#{ARCH_LIB}/libanl-#{LIBC_VERSION}.so"
system "ln -sf /#{ARCH_LIB}/libBrokenLocale-#{LIBC_VERSION}.so libBrokenLocale-#{LIBC_VERSION}.so" if File.exist? "/#{ARCH_LIB}/libBrokenLocale-#{LIBC_VERSION}.so"
system "ln -sf /#{ARCH_LIB}/libc-#{LIBC_VERSION}.so libc-#{LIBC_VERSION}.so" if File.exist? "/#{ARCH_LIB}/libc-#{LIBC_VERSION}.so"
system "ln -sf /#{ARCH_LIB}/libcidn-#{LIBC_VERSION}.so libcidn-#{LIBC_VERSION}.so" if File.exist? "/#{ARCH_LIB}/libcidn-#{LIBC_VERSION}.so"
system "ln -sf /#{ARCH_LIB}/libcrypt-#{LIBC_VERSION}.so libcrypt-#{LIBC_VERSION}.so" if File.exist? "/#{ARCH_LIB}/libcrypt-#{LIBC_VERSION}.so"
system "ln -sf /#{ARCH_LIB}/libdl-#{LIBC_VERSION}.so libdl-#{LIBC_VERSION}.so" if File.exist? "/#{ARCH_LIB}/libdl-#{LIBC_VERSION}.so"
system "ln -sf /#{ARCH_LIB}/libm-#{LIBC_VERSION}.so libm-#{LIBC_VERSION}.so" if File.exist? "/#{ARCH_LIB}/libm-#{LIBC_VERSION}.so"
system "ln -sf /#{ARCH_LIB}/libmvec-#{LIBC_VERSION}.so libmvec-#{LIBC_VERSION}.so" if File.exist? "/#{ARCH_LIB}/libmvec-#{LIBC_VERSION}.so"
system "ln -sf /#{ARCH_LIB}/libnsl-#{LIBC_VERSION}.so libnsl-#{LIBC_VERSION}.so" if File.exist? "/#{ARCH_LIB}/libnsl-#{LIBC_VERSION}.so"
system "ln -sf /#{ARCH_LIB}/libnss_compat-#{LIBC_VERSION}.so libnss_compat-#{LIBC_VERSION}.so" if File.exist? "/#{ARCH_LIB}/libnss_compat-#{LIBC_VERSION}.so"
system "ln -sf /#{ARCH_LIB}/libnss_db-#{LIBC_VERSION}.so libnss_db-#{LIBC_VERSION}.so" if File.exist? "/#{ARCH_LIB}/libnss_db-#{LIBC_VERSION}.so"
system "ln -sf /#{ARCH_LIB}/libnss_dns-#{LIBC_VERSION}.so libnss_dns-#{LIBC_VERSION}.so" if File.exist? "/#{ARCH_LIB}/libnss_dns-#{LIBC_VERSION}.so"
system "ln -sf /#{ARCH_LIB}/libnss_files-#{LIBC_VERSION}.so libnss_files-#{LIBC_VERSION}.so" if File.exist? "/#{ARCH_LIB}/libnss_files-#{LIBC_VERSION}.so"
system "ln -sf /#{ARCH_LIB}/libnss_hesiod-#{LIBC_VERSION}.so libnss_hesiod-#{LIBC_VERSION}.so" if File.exist? "/#{ARCH_LIB}/libnss_hesiod-#{LIBC_VERSION}.so"
system "ln -sf /#{ARCH_LIB}/libnss_nis-#{LIBC_VERSION}.so libnss_nis-#{LIBC_VERSION}.so" if File.exist? "/#{ARCH_LIB}/libnss_nis-#{LIBC_VERSION}.so"
system "ln -sf /#{ARCH_LIB}/libnss_nisplus-#{LIBC_VERSION}.so libnss_nisplus-#{LIBC_VERSION}.so" if File.exist? "/#{ARCH_LIB}/libnss_nisplus-#{LIBC_VERSION}.so"
system "ln -sf /#{ARCH_LIB}/libpthread-#{LIBC_VERSION}.so libpthread-#{LIBC_VERSION}.so" if File.exist? "/#{ARCH_LIB}/libpthread-#{LIBC_VERSION}.so"
system "ln -sf /#{ARCH_LIB}/libresolv-#{LIBC_VERSION}.so libresolv-#{LIBC_VERSION}.so" if File.exist? "/#{ARCH_LIB}/libresolv-#{LIBC_VERSION}.so"
system "ln -sf /#{ARCH_LIB}/librt-#{LIBC_VERSION}.so librt-#{LIBC_VERSION}.so" if File.exist? "/#{ARCH_LIB}/librt-#{LIBC_VERSION}.so"
system "ln -sf /#{ARCH_LIB}/libutil-#{LIBC_VERSION}.so libutil-#{LIBC_VERSION}.so" if File.exist? "/#{ARCH_LIB}/libutil-#{LIBC_VERSION}.so"
end
end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment