mirror of
https://github.com/chromebrew/chromebrew.git
synced 2026-01-09 15:37:56 -05:00
87 lines
3.5 KiB
Ruby
87 lines
3.5 KiB
Ruby
require 'package'
|
|
|
|
class Tinycore < Package
|
|
description 'TinyCore Linux is a distro based on loop-device mounted programs, like Snaps.
|
|
This is a wrapper script to be able to execute their .tcz files.'
|
|
homepage 'https://distro.ibiblio.org/tinycorelinux/'
|
|
version '15.x'
|
|
license 'GPL-2'
|
|
compatibility 'all'
|
|
source_url({
|
|
aarch64: "https://distro.ibiblio.org/tinycorelinux/#{version}/armhf/tcz/bash.tcz",
|
|
armv7l: "https://distro.ibiblio.org/tinycorelinux/#{version}/armhf/tcz/bash.tcz",
|
|
i686: "https://distro.ibiblio.org/tinycorelinux/#{version}/x86/tcz/bash.tcz",
|
|
x86_64: "https://distro.ibiblio.org/tinycorelinux/#{version}/x86_64//tcz/bash.tcz"
|
|
})
|
|
source_sha256({
|
|
aarch64: '5d85920a8176cad9ac9b44bae85084d8ca30239fe1c7df3188753b4f64412782',
|
|
armv7l: '5d85920a8176cad9ac9b44bae85084d8ca30239fe1c7df3188753b4f64412782',
|
|
i686: 'eabe7d8ac11d07b1084863b36f0612b10639a63ea52946768f42cfbedf249c2a',
|
|
x86_64: '898452acbf321a9a4e9f1386967123884ef8d97693262e2c2155454fcbddc160'
|
|
})
|
|
|
|
no_compile_needed
|
|
|
|
def self.build
|
|
case ARCH
|
|
when 'x86_64'
|
|
File.write 'tinycore', <<~EOF
|
|
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
export PKG=`echo $\{1%%.*\}`
|
|
export BIN=`echo $1|sed \"s/^[^\.]*\.//\"`
|
|
export OPT=`shift; echo $@`
|
|
|
|
[ -d #{CREW_PREFIX}/share/tinycore/$PKG ] || { echo Package $PKG not found. && exit 1; }
|
|
[ -e #{CREW_PREFIX}/share/tinycore/$PKG/usr/local/bin/$BIN ] || { echo Program $BIN not found. && exit 1; }
|
|
if file #{CREW_PREFIX}/share/tinycore/$PKG/usr/local/bin/$BIN | grep \"text executable\" &>/dev/null; then
|
|
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:#{CREW_PREFIX}/share/tinycore/$PKG/usr/local/lib #{CREW_PREFIX}/share/tinycore/$PKG/usr/local/bin/$BIN $OPT
|
|
else
|
|
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:#{CREW_PREFIX}/share/tinycore/$PKG/usr/local/lib /#{ARCH_LIB}/ld-linux-x86-64.so.2 #{CREW_PREFIX}/share/tinycore/$PKG/usr/local/bin/$BIN $OPT
|
|
fi
|
|
EOF
|
|
else
|
|
File.write 'tinycore', <<~EOF
|
|
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
export PKG=`echo $\{1%%.*\}`
|
|
export BIN=`echo $1|sed \"s/^[^\.]*\.//\"`
|
|
export OPT=`shift; echo $@`
|
|
|
|
[ -d #{CREW_PREFIX}/share/tinycore/$PKG ] || { echo Package $PKG not found. && exit 1; }
|
|
[ -e #{CREW_PREFIX}/share/tinycore/$PKG/usr/local/bin/$BIN ] || { echo Program $BIN not found. && exit 1; }
|
|
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:#{CREW_PREFIX}/share/tinycore/$PKG/usr/local/lib #{CREW_PREFIX}/share/tinycore/$PKG/usr/local/bin/$BIN $OPT
|
|
EOF
|
|
end
|
|
end
|
|
|
|
def self.install
|
|
FileUtils.install 'tinycore', "#{CREW_DEST_PREFIX}/bin/tinycore", mode: 0o755
|
|
FileUtils.install 'bash.tcz', "#{CREW_DEST_PREFIX}/share/tinycore/examples/bash.tcz", mode: 0o644
|
|
end
|
|
|
|
def self.postinstall
|
|
ExitMessage.add <<~EOM.lightblue
|
|
|
|
Examples are located at #{CREW_PREFIX}/share/tinycore/examples/.
|
|
|
|
To try TinyCore Bash, execute the following:
|
|
sudo mount -o loop #{CREW_PREFIX}/share/tinycore/examples/bash.tcz #{CREW_PREFIX}/share/tinycore/bash/
|
|
tinycore bash.bash
|
|
sudo umount #{CREW_PREFIX}/share/tinycore/bash/
|
|
|
|
The executable names are in the format of Snap executable names.
|
|
This is imperative to be able to run TinyCore programs.
|
|
For example, to run the 'bashbug' program in the TinyCore 'bash' package, execute the following:
|
|
tinycore bash.bashbug
|
|
|
|
To run a binary that has a dot in its name, such as 'ld.gold', use the full name:
|
|
tinycore binutils.ld.gold
|
|
EOM
|
|
end
|
|
end
|