mirror of
https://github.com/chromebrew/chromebrew.git
synced 2026-01-09 15:37:56 -05:00
* crew: Set dynamic linker path in linker Signed-off-by: SupeChicken666 <me@supechicken666.dev> Fix constant order Signed-off-by: SupeChicken666 <me@supechicken666.dev> Suggested changes Signed-off-by: SupeChicken666 <me@supechicken666.dev> Merge CREW_LDFLAGS and CREW_LINKER_FLAGS Signed-off-by: SupeChicken666 <me@supechicken666.dev> Adjust argument order Signed-off-by: SupeChicken666 <me@supechicken666.dev> Fix CREW_GLIBC_PREFIX, add LIBRARY_PATH for gcc Signed-off-by: SupeChicken666 <me@supechicken666.dev> Add some patches from Chromium OS Signed-off-by: SupeChicken666 <me@supechicken666.dev> Bump version Signed-off-by: SupeChicken666 <me@supechicken666.dev> Add install-locales line Signed-off-by: SupeChicken666 <me@supechicken666.dev> Add comments Signed-off-by: SupeChicken666 <me@supechicken666.dev> Remove LD_LIBRARY_PATH from CREW_ENV_OPTIONS Signed-off-by: SupeChicken666 <me@supechicken666.dev> Add `CREW_GLIBC_PREFIX` to linker search path Signed-off-by: SupeChicken666 <me@supechicken666.dev> Set minimum kernel version to 3.2 for all architectures Signed-off-by: SupeChicken666 <me@supechicken666.dev> Pass CERW_PREFIX with macro Signed-off-by: SupeChicken666 <me@supechicken666.dev> Fix asprintf usage Signed-off-by: SupeChicken666 <me@supechicken666.dev> Fix macro usage Signed-off-by: SupeChicken666 <me@supechicken666.dev> Move all patches into a separate repo Signed-off-by: SupeChicken666 <me@supechicken666.dev> * Add finishing touches :) Signed-off-by: SupeChicken666 <me@supechicken666.dev> Set compiler search path also Signed-off-by: SupeChicken666 <me@supechicken666.dev> Fix installation path Signed-off-by: SupeChicken666 <me@supechicken666.dev> Rebuilt binaries with same version Signed-off-by: SupeChicken666 <me@supechicken666.dev> * lint Signed-off-by: Satadru Pramanik <satadru@gmail.com> * bump version Signed-off-by: Satadru Pramanik <satadru@gmail.com> * Fix already initialized constant error. Signed-off-by: Satadru Pramanik <satadru@gmail.com> * Merge changes from #11828 Signed-off-by: SupeChicken666 <me@supechicken666.dev> * crew: Run `upx -d` and `patchelf` on existing/to-be-installed packages Signed-off-by: SupeChicken666 <me@supechicken666.dev> * Fix syntax Signed-off-by: SupeChicken666 <me@supechicken666.dev> Silence output Signed-off-by: SupeChicken666 <me@supechicken666.dev> * Suggested changes Signed-off-by: SupeChicken666 <me@supechicken666.dev> Re-add `2> /dev/null` to upx commands Signed-off-by: SupeChicken666 <me@supechicken666.dev> Fix `patchelf` usage Signed-off-by: SupeChicken666 <me@supechicken666.dev> Correct function name Signed-off-by: SupeChicken666 <me@supechicken666.dev> Fix CI build test Signed-off-by: SupeChicken666 <me@supechicken666.dev> Make rubocop happy Signed-off-by: SupeChicken666 <me@supechicken666.dev> * Update search cache for on postinstall Signed-off-by: SupeChicken666 <me@supechicken666.dev> * Add a config file for ld.so Signed-off-by: SupeChicken666 <me@supechicken666.dev> * Suggested changes Signed-off-by: SupeChicken666 <me@supechicken666.dev> * Add built packages for linux/386 to set_dynamic_linker * Add built packages for linux/amd64 to set_dynamic_linker * Add built packages for linux/arm/v7 to set_dynamic_linker * Update install.sh Signed-off-by: SupeChicken666 <me@supechicken666.dev> * Fix rubocop Signed-off-by: SupeChicken666 <me@supechicken666.dev> --------- Signed-off-by: SupeChicken666 <me@supechicken666.dev> Signed-off-by: Satadru Pramanik <satadru@gmail.com> Co-authored-by: Satadru Pramanik <satadru@gmail.com> Co-authored-by: supechicken <supechicken@users.noreply.github.com>
158 lines
7.1 KiB
Ruby
158 lines
7.1 KiB
Ruby
# Adapted from Arch Linux docker PKGBUILD at:
|
|
# https://github.com/archlinux/svntogit-community/raw/packages/docker/trunk/PKGBUILD
|
|
|
|
require 'package'
|
|
|
|
class Docker < Package
|
|
description 'Pack, ship and run any application as a lightweight container'
|
|
homepage 'https://www.docker.com/'
|
|
version '24.0.1'
|
|
license 'Apache'
|
|
compatibility 'aarch64 armv7l x86_64'
|
|
source_url 'https://github.com/docker/cli.git'
|
|
git_hashtag "v#{version}"
|
|
binary_compression 'tar.zst'
|
|
|
|
binary_sha256({
|
|
aarch64: '923b0eb95c947dde422e196abd0f1ddbc0958792db2807e2c55c3048b700702a',
|
|
armv7l: '923b0eb95c947dde422e196abd0f1ddbc0958792db2807e2c55c3048b700702a',
|
|
x86_64: '21f9db6ec0086ab6452be9cd50a6bc980eb00caafb439a3387802c5363085ec1'
|
|
})
|
|
|
|
depends_on 'bridge_utils' # L
|
|
depends_on 'btrfs_progs' => :build
|
|
depends_on 'containerd' # L
|
|
depends_on 'elogind' => :build
|
|
depends_on 'eudev' => :build
|
|
depends_on 'glibc' # R
|
|
depends_on 'go' => :build
|
|
depends_on 'go_md2man' => :build
|
|
depends_on 'iproute2' # L
|
|
depends_on 'lvm2' # R
|
|
depends_on 'sqlite' => :build
|
|
|
|
no_env_options
|
|
no_fhs
|
|
|
|
def self.preflight
|
|
return if File.exist?('/dev/kvm') || CREW_IN_CONTAINER
|
|
|
|
abort 'This device does not have virtualization enabled :/'.lightred
|
|
end
|
|
|
|
def self.build
|
|
@cli_version = git_hashtag
|
|
|
|
@moby_version = git_hashtag
|
|
|
|
@libnetwork_version = '3f0048413d95802b9c6c836eba06bfc54f9dbd03'
|
|
@tini_version = '0b44d3665869e46ccbac7414241b8256d6234dc4'
|
|
@buildx_version = 'v0.10.5'
|
|
@gopath = Dir.pwd
|
|
FileUtils.mkdir_p 'src/github.com/docker'
|
|
FileUtils.ln_s @gopath, 'src/github.com/docker/cli'
|
|
Dir.chdir 'src/github.com/docker/cli' do
|
|
system "GOPATH=#{@gopath} \
|
|
CGO_CPPFLAGS='#{CREW_COMMON_FLAGS.gsub('=auto', '')}' \
|
|
CGO_CFLAGS='#{CREW_COMMON_FLAGS.gsub('=auto', '')}' \
|
|
CGO_CXXFLAGS='#{CREW_COMMON_FLAGS.gsub('=auto', '')}' \
|
|
CGO_LDFLAGS='#{CREW_LINKER_FLAGS.gsub('=auto', '')}' \
|
|
LDFLAGS='' \
|
|
GOFLAGS='-buildmode=pie -trimpath -mod=readonly -modcacherw -ldflags=-linkmode=external' \
|
|
GO111MODULE=off \
|
|
DISABLE_WARN_OUTSIDE_CONTAINER=1 \
|
|
make VERSION=#{version} dynbinary"
|
|
system "GOPATH=#{@gopath} \
|
|
CGO_CPPFLAGS='#{CREW_COMMON_FLAGS.gsub('=auto', '')}' \
|
|
CGO_CFLAGS='#{CREW_COMMON_FLAGS.gsub('=auto', '')}' \
|
|
CGO_CXXFLAGS='#{CREW_COMMON_FLAGS.gsub('=auto', '')}' \
|
|
CGO_LDFLAGS='#{CREW_LINKER_FLAGS.gsub('=auto', '')}' \
|
|
LDFLAGS='' \
|
|
GOFLAGS='-buildmode=pie -trimpath -mod=readonly -modcacherw -ldflags=-linkmode=external' \
|
|
GO111MODULE=off \
|
|
DISABLE_WARN_OUTSIDE_CONTAINER=1 \
|
|
make manpages"
|
|
end
|
|
Dir.chdir 'src/github.com/docker/' do
|
|
system "git clone --depth 1 --branch #{@moby_version} https://github.com/moby/moby.git docker"
|
|
Dir.chdir 'docker' do
|
|
system "sed -i 's,/usr,#{CREW_PREFIX},g' contrib/init/systemd/docker.service"
|
|
system "GOPATH=#{@gopath} \
|
|
CGO_CPPFLAGS='#{CREW_COMMON_FLAGS.gsub('=auto', '').gsub('-flto', '')}' \
|
|
CGO_CFLAGS='#{CREW_COMMON_FLAGS.gsub('=auto', '').gsub('-flto', '')}' \
|
|
CGO_CXXFLAGS='#{CREW_COMMON_FLAGS.gsub('=auto', '').gsub('-flto', '')}' \
|
|
CGO_LDFLAGS='' \
|
|
LDFLAGS='' \
|
|
GOFLAGS='-buildmode=pie -trimpath -mod=readonly -modcacherw -ldflags=-linkmode=external' \
|
|
GO111MODULE=off \
|
|
DISABLE_WARN_OUTSIDE_CONTAINER=1 \
|
|
DOCKER_GITCOMMIT=$(git rev-parse --short HEAD) \
|
|
DOCKER_BUILDTAGS='seccomp apparmor' \
|
|
VERSION=#{version} \
|
|
hack/make.sh dynbinary"
|
|
end
|
|
system 'git clone https://github.com/docker/libnetwork.git'
|
|
Dir.chdir 'libnetwork' do
|
|
system "git checkout #{@libnetwork_version}"
|
|
system "GOPATH=#{@gopath} \
|
|
CGO_CPPFLAGS='#{CREW_COMMON_FLAGS.gsub('=auto', '')}' \
|
|
CGO_CFLAGS='#{CREW_COMMON_FLAGS.gsub('=auto', '')}' \
|
|
CGO_CXXFLAGS='#{CREW_COMMON_FLAGS.gsub('=auto', '')}' \
|
|
CGO_LDFLAGS='#{CREW_LINKER_FLAGS.gsub('=auto', '')}' \
|
|
LDFLAGS='' \
|
|
GOFLAGS='-buildmode=pie -trimpath -mod=readonly -modcacherw -ldflags=-linkmode=external' \
|
|
GO111MODULE=off \
|
|
DISABLE_WARN_OUTSIDE_CONTAINER=1 \
|
|
go build github.com/docker/libnetwork/cmd/proxy"
|
|
end
|
|
system 'git clone https://github.com/krallin/tini.git'
|
|
Dir.chdir 'tini' do
|
|
system "git checkout #{@tini_version}"
|
|
system "cmake #{CREW_CMAKE_OPTIONS} ."
|
|
system 'make tini-static'
|
|
end
|
|
system 'git clone https://github.com/docker/buildx.git'
|
|
Dir.chdir 'buildx' do
|
|
system "git checkout #{@buildx_version}"
|
|
@buildx_r = 'github.com/docker/buildx'
|
|
system "GOPATH=#{@gopath} \
|
|
GO111MODULE=on go build -mod=vendor -o docker-buildx -ldflags \"-linkmode=external \
|
|
-X #{@buildx_r}/version.Version=$(git describe --match 'v[0-9]*' --always --tags)-docker \
|
|
-X #{@buildx_r}/version.Revision=$(git rev-parse HEAD) \
|
|
-X #{@buildx_r}/version.Package=#{@buildx_r}\" \
|
|
./cmd/buildx"
|
|
end
|
|
end
|
|
end
|
|
|
|
def self.install
|
|
FileUtils.mkdir_p %W[
|
|
#{CREW_DEST_PREFIX}/etc/sysusers.d
|
|
]
|
|
FileUtils.install 'src/github.com/docker/libnetwork/proxy', "#{CREW_DEST_PREFIX}/bin/docker-proxy", mode: 0o755
|
|
FileUtils.install 'src/github.com/docker/tini/tini-static', "#{CREW_DEST_PREFIX}/bin/docker-init", mode: 0o755
|
|
FileUtils.install 'src/github.com/docker/docker/bundles/dynbinary-daemon/dockerd',
|
|
"#{CREW_DEST_PREFIX}/bin/dockerd", mode: 0o755
|
|
FileUtils.install 'src/github.com/docker/docker/contrib/init/systemd/docker.service',
|
|
"#{CREW_DEST_PREFIX}/.config/systemd/user/docker.service", mode: 0o644
|
|
FileUtils.install 'src/github.com/docker/docker/contrib/init/systemd/docker.socket',
|
|
"#{CREW_DEST_PREFIX}/.config/systemd/user/docker.socket", mode: 0o644
|
|
FileUtils.install 'src/github.com/docker/docker/contrib/udev/80-docker.rules',
|
|
"#{CREW_DEST_PREFIX}/etc/udev/rules.d/80-docker.rules", mode: 0o644
|
|
@docker_sysusers = 'g chronos - -'
|
|
File.write("#{CREW_DEST_PREFIX}/etc/sysusers.d/docker.conf", @docker_sysusers, perm: 0o644)
|
|
FileUtils.install 'build/docker', "#{CREW_DEST_PREFIX}/bin/docker", mode: 0o755
|
|
FileUtils.install 'contrib/completion/bash/docker',
|
|
"#{CREW_DEST_PREFIX}/share/bash-completion/completions/dockeres", mode: 0o644
|
|
FileUtils.install 'contrib/completion/zsh/_docker', "#{CREW_DEST_PREFIX}/share/zsh/site-functions/_docker",
|
|
mode: 0o644
|
|
FileUtils.install 'contrib/completion/fish/docker.fish',
|
|
"#{CREW_DEST_PREFIX}/share/fish/vendor_completions.d/docker.fish", mode: 0o644
|
|
FileUtils.install Dir.glob('man/man1/*'), "#{CREW_DEST_MAN_PREFIX}/man1/", mode: 0o644
|
|
FileUtils.install Dir.glob('man/man5/*'), "#{CREW_DEST_MAN_PREFIX}/man5/", mode: 0o644
|
|
FileUtils.install Dir.glob('man/man8/*'), "#{CREW_DEST_MAN_PREFIX}/man8/", mode: 0o644
|
|
FileUtils.install 'src/github.com/docker/buildx/docker-buildx',
|
|
"#{CREW_DEST_LIB_PREFIX}/docker/cli-plugins/docker-buildx", mode: 0o755
|
|
end
|
|
end
|