Merge branch 'master' into builder-hex0-issue

This commit is contained in:
Liam Wilson 2024-01-24 17:48:48 +00:00
commit a411c6ec3b
18 changed files with 410 additions and 2879 deletions

4
.gitmodules vendored
View file

@ -5,3 +5,7 @@
[submodule "seed/stage0-posix"]
path = seed/stage0-posix
url = https://github.com/oriansj/stage0-posix
[submodule "builder-hex0"]
path = builder-hex0
url = https://github.com/ironmeld/builder-hex0

1
builder-hex0 Submodule

@ -0,0 +1 @@
Subproject commit 8621e56191c635c04fa68687e411016c2b1deab7

File diff suppressed because it is too large Load diff

View file

@ -29,6 +29,7 @@ class Generator():
self.external_sources = external_sources
self.repo_path = repo_path
self.source_manifest = self.get_source_manifest(not self.external_sources)
self.early_source_manifest = self.get_source_manifest(True)
self.target_dir = None
self.external_dir = None
@ -59,26 +60,16 @@ class Generator():
# argument matrix ... or we could just use ext3 instead which
# is effectively universally the same
if kernel_bootstrap:
init_path = os.path.join(self.target_dir, 'init')
self.target_dir = os.path.join(self.target_dir, 'init')
os.mkdir(self.target_dir)
os.mkdir(init_path)
self.target_dir = init_path
if self.repo_path or self.external_sources:
target.add_disk("external", filesystem="ext3")
target.mount_disk("external", "external")
else:
if not self.repo_path and not self.external_sources:
self.external_dir = os.path.join(self.target_dir, 'external')
elif using_kernel:
self.target_dir = os.path.join(self.target_dir, 'disk')
target.add_disk("disk",
filesystem="ext3",
size=(str(target_size) + "M") if target_size else "16G",
bootable=True)
target.mount_disk("disk", "disk")
self.external_dir = os.path.join(self.target_dir, 'external')
os.makedirs(self.external_dir, exist_ok=True)
os.makedirs(self.external_dir)
if self.early_preseed:
# Extract tar containing preseed
@ -103,10 +94,16 @@ class Generator():
if kernel_bootstrap:
self.create_builder_hex0_disk_image(self.target_dir + '.img', target_size)
if kernel_bootstrap and (self.external_sources or self.repo_path):
target.umount_disk('external')
if self.repo_path or self.external_sources:
mkfs_args = ['-d', os.path.join(target.path, 'external')]
target.add_disk("external", filesystem="ext3", mkfs_args=mkfs_args)
elif using_kernel:
target.umount_disk('disk')
mkfs_args = ['-d', os.path.join(target.path, 'disk')]
target.add_disk("disk",
filesystem="ext3",
size=(str(target_size) + "M") if target_size else "16G",
bootable=True,
mkfs_args=mkfs_args)
def steps(self):
"""Copy in steps."""
@ -163,9 +160,10 @@ class Generator():
def distfiles(self):
"""Copy in distfiles"""
def copy_no_network_distfiles(out):
def copy_no_network_distfiles(out, early):
# Note that "no disk" implies "no network" for kernel bootstrap mode
for file in self.source_manifest:
manifest = self.early_source_manifest if early else self.source_manifest
for file in manifest:
file = file[3].strip()
shutil.copy2(os.path.join(self.distfiles_dir, file),
os.path.join(out, file))
@ -175,13 +173,13 @@ class Generator():
if early_distfile_dir != main_distfile_dir:
os.makedirs(early_distfile_dir, exist_ok=True)
copy_no_network_distfiles(early_distfile_dir)
copy_no_network_distfiles(early_distfile_dir, True)
if self.external_sources:
shutil.copytree(self.distfiles_dir, main_distfile_dir, dirs_exist_ok=True)
else:
os.mkdir(main_distfile_dir)
copy_no_network_distfiles(main_distfile_dir)
copy_no_network_distfiles(main_distfile_dir, False)
@staticmethod
def output_dir(srcfs_file, dirpath):
@ -236,13 +234,14 @@ class Generator():
def create_builder_hex0_disk_image(self, image_file_name, size):
"""Create builder-hex0 disk image"""
shutil.copyfile(os.path.join('seed', 'stage0-posix', 'bootstrap-seeds',
'NATIVE', 'x86', 'builder-hex0-x86-stage1.img'),
image_file_name)
with open(image_file_name, 'ab') as image_file:
# Compile and write stage1 binary seed
with open(os.path.join('builder-hex0', 'builder-hex0-x86-stage1.hex0'),
encoding="utf-8") as infile:
for line in infile:
image_file.write(bytes.fromhex(line.split('#')[0].split(';')[0].strip()))
# Append stage2 hex0 source
with open(os.path.join('kernel-bootstrap', 'builder-hex0-x86-stage2.hex0'),
with open(os.path.join('builder-hex0', 'builder-hex0-x86-stage2.hex0'),
encoding="utf-8") as infile:
image_file.write(infile.read().encode())
# Pad to next sector

View file

@ -8,10 +8,9 @@ Contains a class that represents a target directory
"""
import enum
import getpass
import os
from lib.utils import mount, umount, create_disk, run_as_root
from lib.utils import mount, create_disk
class TargetType(enum.Enum):
"""Different types of target dirs we can have"""
@ -24,7 +23,6 @@ class Target:
"""
_disks = {}
_disk_filesystems = {}
_mountpoints = {}
def __init__(self, path="target"):
@ -34,15 +32,6 @@ class Target:
if not os.path.exists(self.path):
os.mkdir(self.path)
def __del__(self):
for path in self._mountpoints:
print(f"Unmounting {path}")
umount(path)
for disk in self._disks.values():
print(f"Detaching {disk}")
run_as_root("losetup", "-d", disk)
def tmpfs(self, size="8G"):
"""Mount a tmpfs"""
print(f"Mounting tmpfs on {self.path}")
@ -59,32 +48,13 @@ class Target:
mkfs_args=None):
"""Add a disk"""
disk_path = os.path.join(self.path, f"{name}.img")
self._disks[name] = create_disk(disk_path,
tabletype,
filesystem,
size,
bootable,
mkfs_args)
self._disk_filesystems[name] = filesystem
# Allow executing user to access it
run_as_root("chown", getpass.getuser(), self._disks[name])
def mount_disk(self, name, mountpoint=None):
"""Mount the disk"""
if mountpoint is None:
mountpoint = f"{name}_mnt"
mountpoint = os.path.join(self.path, mountpoint)
os.mkdir(mountpoint)
mount(self._disks[name] + "p1", mountpoint, self._disk_filesystems[name])
# Allow executing user to access it
run_as_root("chown", getpass.getuser(), mountpoint)
self._mountpoints[name] = mountpoint
return mountpoint
def umount_disk(self, name):
"""Unmount a disk"""
umount(self._mountpoints[name])
del self._mountpoints[name]
create_disk(disk_path,
tabletype,
filesystem,
size,
bootable,
mkfs_args)
self._disks[name] = disk_path
def get_disk(self, name):
"""Get the path to a device of a disk"""

View file

@ -37,16 +37,13 @@ def create_disk(image, disk_type, fs_type, size, bootable=False, mkfs_args=None)
if mkfs_args is None:
mkfs_args = []
run('truncate', '-s', size, image)
# First find the device we will use, then actually use it
loop_dev = run_as_root('losetup', '-f', capture_output=True).stdout.decode().strip()
run_as_root('losetup', '-P', loop_dev, image)
# Create the partition
if disk_type != "none":
run_as_root('parted', '--script', image, 'mklabel', disk_type, 'mkpart',
'primary', fs_type, '1GiB' if bootable else '1MiB', '100%')
run_as_root('partprobe', loop_dev)
run_as_root('mkfs.' + fs_type, loop_dev + "p1", *mkfs_args)
return loop_dev
# 1 GiB if bootable, 1 MiB otherwise
offset = str(1024 * 1024 * (1024 if bootable else 1))
run('parted', '--script', image, 'mklabel', disk_type, 'mkpart',
'primary', fs_type, offset + 'B', '100%')
run('mkfs.' + fs_type, image, '-E', 'offset=' + offset, *mkfs_args)
def mount(source, target, fs_type, options='', **kwargs):
"""Mount filesystem"""

View file

@ -34,7 +34,7 @@ ca7403a7503e8f3bb55e6c5bd54571b8c061b11c96e50ee89e006df6011d1518 bzip2-1.0.8_0.
543214998317d764595d3dd247a1fb2e0803ad77978b8474bd24d64c161b9530 ca-certificates-3.95_0.tar.bz2
7450bb38caaa633f8c11269fed44eb680c6ba03bb0e19c18fce3b2450f80e358 coreutils-5.0_0.tar.bz2
c95fd8c51c3bfbd4d08a4a50d0033ee85394e6efe4ff82703c050e4dbc4347bf coreutils-6.10_0.tar.bz2
f49900486ae7f0c8107d729b71ede155ee44544cdf8d562b50fbea4095bd05b2 coreutils-8.32_0.tar.bz2
9fa31a4aeaa5132205efb796c8f546c94c1cfef6b5c27e64f6ebe06ca0360e67 coreutils-9.4_0.tar.bz2
6a10f5258650ae75e92eb7aa1a5e6107b72c8b6419a4f64272262a1545c43161 curl-8.5.0_0.tar.bz2
f9efd6600ceb91918078078ff44a33f2a4fb4a59edb804866aebd288c2cfb24e curl-8.5.0_1.tar.bz2
1d4dec2d1885a6b5499a0f0d55e9c2c65dab532c4c593d848b6a542f67789627 dhcpcd-10.0.1_0.tar.bz2

View file

@ -1,298 +0,0 @@
#!/bin/sh
# SPDX-FileCopyrightText: 2021 Melg Eight <public.melg8@gmail.com>
#
# SPDX-License-Identifier: GPL-3.0-or-later
../gnulib-d279bc/gnulib-tool --import --local-dir=gl \
--lib=libcoreutils \
--source-base=lib \
--m4-base=m4 \
--doc-base=doc \
--tests-base=gnulib-tests \
--aux-dir=build-aux \
--with-tests \
--makefile-name=gnulib.mk \
--no-conditional-dependencies \
--no-libtool \
--macro-prefix=gl \
--avoid=canonicalize-lgpl \
--avoid=dummy \
acl \
alignof \
alloca \
announce-gen \
areadlink-with-size \
argmatch \
argv-iter \
assert \
autobuild \
backup-rename \
backupfile \
base32 \
base64 \
btowc \
buffer-lcm \
c-strcase \
calloc-gnu \
canon-host \
canonicalize \
chmodat \
chown \
chownat \
cl-strtod \
cl-strtold \
cloexec \
closein \
closeout \
config-h \
configmake \
crypto/md5 \
crypto/sha1 \
crypto/sha256 \
crypto/sha512 \
cycle-check \
d-ino \
d-type \
di-set \
diacrit \
dirfd \
dirname \
do-release-commit-and-tag \
dtoastr \
dup2 \
environ \
error \
euidaccess \
exclude \
exitfail \
explicit_bzero \
faccessat \
fadvise \
fchdir \
fclose \
fcntl \
fcntl-safer \
fd-reopen \
fdatasync \
fdl \
fdopen \
fdutimensat \
file-has-acl \
file-type \
fileblocks \
filemode \
filenamecat \
filevercmp \
flexmember \
fnmatch-gnu \
fopen-safer \
fprintftime \
freopen \
freopen-safer \
fseeko \
fstatat \
fsusage \
fsync \
ftoastr \
ftruncate \
fts \
full-read \
full-write \
getgroups \
gethrxtime \
getline \
getloadavg \
getlogin \
getndelim2 \
getopt-gnu \
getpagesize \
getpass-gnu \
gettext-h \
gettime \
gettimeofday \
getugroups \
getusershell \
git-version-gen \
gitlog-to-changelog \
gnu-make \
gnu-web-doc-update \
gnumakefile \
gnupload \
group-member \
hard-locale \
hash \
hash-pjw \
heap \
host-os \
human \
idcache \
ignore-value \
inttostr \
inttypes \
isapipe \
isatty \
isblank \
largefile \
lchmod \
lchown \
ldtoastr \
lib-ignore \
linebuffer \
link \
link-follow \
linkat \
long-options \
lstat \
maintainer-makefile \
malloc-gnu \
manywarnings \
mbrlen \
mbrtowc \
mbsalign \
mbschr \
mbslen \
mbswidth \
memcasecmp \
memchr \
memcmp2 \
mempcpy \
memrchr \
mgetgroups \
minmax \
mkancesdirs \
mkdir \
mkdir-p \
mkfifo \
mknod \
mkostemp \
mkstemp \
mktime \
modechange \
mountlist \
mpsort \
netinet_in \
non-recursive-gnulib-prefix-hack \
nproc \
nstrftime \
obstack \
open \
openat-safer \
parse-datetime \
pathmax \
perl \
physmem \
pipe-posix \
pipe2 \
posix-shell \
posixtm \
posixver \
priv-set \
progname \
pthread-cond \
pthread-mutex \
pthread-thread \
pthread_sigmask \
putenv \
quote \
quotearg \
randint \
randperm \
read-file \
readlink \
readtokens \
readtokens0 \
readutmp \
realloc-gnu \
regex \
remove \
rename \
renameat \
renameatu \
rmdir \
root-dev-ino \
rpmatch \
safe-read \
same \
save-cwd \
savedir \
savewd \
select \
selinux-at \
setenv \
settime \
sig2str \
sigaction \
smack \
ssize_t \
stat-macros \
stat-size \
stat-time \
statat \
stdbool \
stdlib-safer \
stpcpy \
stpncpy \
strdup-posix \
strncat \
strnumcmp \
strsignal \
strtoimax \
strtoumax \
symlinkat \
sys_ioctl \
sys_resource \
sys_stat \
sys_wait \
tempname \
termios \
time_rz \
timer-time \
timespec \
tzset \
uname \
unistd-safer \
unlink-busy \
unlinkat \
unlinkdir \
unlocked-io \
unsetenv \
update-copyright \
uptime \
useless-if-before-free \
userspec \
utimecmp \
utimens \
vasprintf-posix \
vc-list-files \
verify \
verror \
version-etc-fsf \
wchar-single \
wcswidth \
wcwidth \
winsz-ioctl \
winsz-termios \
write-any-file \
xalloc \
xbinary-io \
xdectoint \
xfts \
xgetcwd \
xgetgroups \
xgethostname \
xmemcoll \
xnanosleep \
xprintf \
xprintf-posix \
xreadlink \
xstrtod \
xstrtoimax \
xstrtol \
xstrtol-error \
xstrtold \
xstrtoumax \
year2038 \
yesno
../gnulib-d279bc/build-aux/prefix-gnulib-mk --lib-name=libcoreutils lib/gnulib.mk

View file

@ -1,50 +0,0 @@
SPDX-FileCopyrightText: 2021 Melg Eight <public.melg8@gmail.com>
SPDX-License-Identifier: GPL-3.0-or-later
Remove dependency on gperf. This drops support for outputting unicode
characters. We do that, because inclusion of unicodeio.h and propername.h
from gnulib brings dependencies on gperf generated files. We don't have
gperf at this stage so we can't regenerate them.
--- ./src/printf.c
+++ ./src/printf.c
@@ -59,7 +59,6 @@
#include "die.h"
#include "error.h"
#include "quote.h"
-#include "unicodeio.h"
#include "xprintf.h"
/* The official name of this program (e.g., no 'g' prefix). */
@@ -292,8 +291,12 @@ print_esc (const char *escstart, bool octal_0)
|| (uni_value >= 0xd800 && uni_value <= 0xdfff))
die (EXIT_FAILURE, 0, _("invalid universal character name \\%c%0*x"),
esc_char, (esc_char == 'u' ? 4 : 8), uni_value);
-
- print_unicode_char (stdout, uni_value, 0);
+ putchar ('\\');
+ if (*p)
+ {
+ putchar (*p);
+ p++;
+ }
}
else
{
--- ./src/system.h
+++ ./src/system.h
@@ -361,13 +361,13 @@ enum
#include "version-etc.h"
#undef emit_bug_reporting_address
-#include "propername.h"
/* Define away proper_name (leaving proper_name_utf8, which affects far
fewer programs), since it's not worth the cost of adding ~17KB to
the x86_64 text size of every single program. This avoids a 40%
(almost ~2MB) increase in the on-disk space utilization for the set
of the 100 binaries. */
#define proper_name(x) (x)
+#define proper_name_utf8(x, y) (x, y)
#include "progname.h"

View file

@ -1,2 +0,0 @@
http://git.savannah.gnu.org/cgit/coreutils.git/snapshot/coreutils-8.32.tar.gz 6f7cfc0ac6717afb6ba1f41b0da43a713ba0dd97dec1227e32effc12d79f08c1
http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-d279bc.tar.gz 12cfa21abf618a274017d6b18e95fc6582519d7c08e2403e5c5772ccdd5b85f4

View file

@ -0,0 +1,327 @@
#!/bin/sh
# SPDX-FileCopyrightText: 2021 Melg Eight <public.melg8@gmail.com>
# SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
# Regenerate unicode files
pushd ../gnulib-bb5bb43/lib
gcc -Iunictype -o gen-uni-tables gen-uni-tables.c
mv ../../*.txt .
./gen-uni-tables UnicodeData-15.0.0.txt PropList-15.0.0.txt DerivedCoreProperties-15.0.0.txt emoji-data-15.0.0.txt ArabicShaping-15.0.0.txt Scripts-15.0.0.txt Blocks-15.0.0.txt PropList-3.0.1.txt EastAsianWidth-15.0.0.txt LineBreak-15.0.0.txt WordBreakProperty-15.0.0.txt GraphemeBreakProperty-15.0.0.txt CompositionExclusions-15.0.0.txt SpecialCasing-15.0.0.txt CaseFolding-15.0.0.txt 15.0
popd
../gnulib-bb5bb43/gnulib-tool --import --local-dir=gl \
--lib=libcoreutils \
--source-base=lib \
--m4-base=m4 \
--doc-base=doc \
--tests-base=gnulib-tests \
--aux-dir=build-aux \
--with-tests \
--makefile-name=gnulib.mk \
--automake-subdir \
--no-conditional-dependencies \
--no-libtool \
--macro-prefix=gl \
--avoid=canonicalize-lgpl \
--avoid=dummy \
acl \
alignalloc \
alignasof \
alloca \
announce-gen \
areadlink-with-size \
areadlinkat-with-size \
argmatch \
argv-iter \
assert \
assert-h \
assure \
attribute \
autobuild \
backup-rename \
backupfile \
base32 \
base64 \
btowc \
buffer-lcm \
byteswap \
c-strcase \
calloc-gnu \
canon-host \
canonicalize \
chmodat \
chown \
chownat \
cl-strtod \
cl-strtold \
cloexec \
closein \
closeout \
config-h \
configmake \
copy-file-range \
count-leading-zeros \
crypto/md5 \
crypto/sha1 \
crypto/sha256 \
crypto/sha512 \
crypto/sm3 \
cycle-check \
d-ino \
d-type \
di-set \
dirfd \
dirname \
do-release-commit-and-tag \
dtoastr \
dup2 \
environ \
error \
euidaccess \
exclude \
exitfail \
explicit_bzero \
faccessat \
fadvise \
fchdir \
fchmodat \
fchownat \
fclose \
fcntl \
fcntl-safer \
fd-reopen \
fdatasync \
fdopen \
fdutimensat \
file-has-acl \
file-type \
fileblocks \
filemode \
filenamecat \
filevercmp \
flexmember \
fnmatch-gnu \
fopen-safer \
fprintftime \
fpurge \
free-posix \
freopen \
freopen-safer \
fseeko \
fstatat \
fsusage \
fsync \
ftoastr \
ftruncate \
fts \
full-read \
full-write \
getgroups \
gethrxtime \
getline \
getloadavg \
getlogin \
getndelim2 \
getopt-gnu \
getpagesize \
getpass-gnu \
gettext-h \
gettime \
gettime-res \
getugroups \
getusershell \
git-version-gen \
gitlog-to-changelog \
gnu-make \
gnu-web-doc-update \
gnumakefile \
gnupload \
group-member \
hard-locale \
hash \
hash-triple \
heap \
host-os \
human \
idcache \
idx \
ignore-value \
inttostr \
inttypes \
isapipe \
isatty \
isblank \
largefile \
lchmod \
lchown \
ldtoastr \
lib-ignore \
libgmp \
linebuffer \
link \
link-follow \
linkat \
long-options \
lstat \
maintainer-makefile \
malloc-gnu \
manywarnings \
mbrlen \
mbrtowc \
mbsalign \
mbschr \
mbslen \
mbswidth \
memcasecmp \
memchr \
memcmp2 \
mempcpy \
memrchr \
mgetgroups \
minmax \
mkancesdirs \
mkdir \
mkdir-p \
mkdirat \
mkfifo \
mkfifoat \
mknod \
mkostemp \
mkstemp \
mktime \
modechange \
mountlist \
mpsort \
netinet_in \
nproc \
nstrftime \
nullptr \
obstack \
open \
openat-safer \
parse-datetime \
parse-datetime2 \
pathmax \
perl \
physmem \
pipe-posix \
pipe2 \
posix-shell \
posixtm \
posixver \
priv-set \
progname \
propername-lite \
pthread-cond \
pthread-mutex \
pthread-thread \
pthread_sigmask \
putenv \
quote \
quotearg \
randint \
randperm \
rawmemchr \
read-file \
readlink \
readtokens \
readtokens0 \
readutmp \
realloc-gnu \
regex \
remove \
rename \
renameat \
renameatu \
rmdir \
root-dev-ino \
rpmatch \
safe-read \
same \
save-cwd \
savedir \
savewd \
select \
selinux-at \
setenv \
settime \
sig2str \
sigaction \
smack \
ssize_t \
stat-macros \
stat-size \
stat-time \
stdbool \
stdckdint \
stdlib-safer \
stpcpy \
stpncpy \
strdup-posix \
strncat \
strnumcmp \
strsignal \
strtoimax \
strtoumax \
symlinkat \
sys_ioctl \
sys_resource \
sys_stat \
sys_wait \
targetdir \
tempname \
termios \
time_rz \
timer-time \
timespec \
tmpdir \
tzset \
uname \
unicodeio \
unistd-safer \
unlink-busy \
unlinkat \
unlinkdir \
unlocked-io \
unsetenv \
update-copyright \
useless-if-before-free \
userspec \
utimecmp \
utimens \
utimensat \
vasprintf-posix \
vc-list-files \
verify \
verror \
version-etc-fsf \
wchar-single \
wcswidth \
wcwidth \
winsz-ioctl \
winsz-termios \
write-any-file \
xalignalloc \
xalloc \
xbinary-io \
xdectoint \
xfts \
xgetcwd \
xgetgroups \
xgethostname \
xmemcoll \
xnanosleep \
xprintf \
xprintf-posix \
xreadlink \
xstrtod \
xstrtoimax \
xstrtol \
xstrtol-error \
xstrtold \
xstrtoumax \
year2038-recommended \
yesno

View file

@ -1,5 +1,6 @@
# SPDX-FileCopyrightText: 2021 Melg Eight <public.melg8@gmail.com>
# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
@ -8,14 +9,17 @@ regenerate_files() {
build-aux/gen-lists-of-programs.sh --automake > src/cu-progs.mk
build-aux/gen-single-binary.sh src/local.mk > src/single-binary.mk
touch ChangeLog
cp ../gnulib-d279bc/build-aux/po/Makefile.in.in po/Makefile.in.in
cp ../gnulib-bb5bb43/build-aux/po/Makefile.in.in po/Makefile.in.in
# Remove pregenerated gnulib files
pushd ../gnulib-bb5bb43
rm lib/uniwidth/width*.h
rm lib/unictype/ctype*.h
rm lib/unicase/tolower.h
popd
. ../../import-gnulib.sh
# Disable generation of man pages due to lack of needed perl 5.8
# dependency.
cp man/dummy-man man/help2man
VERSION=$(basename "${BASH_SOURCE[0]}" .sh | sed 's/coreutils-//')
echo "$VERSION" > .tarball-version
@ -35,14 +39,16 @@ src_configure() {
# In some environments, the configure script would set it to
# "no, but it is partly working", and in others it would set it
# to "yes", producing different build outputs.
# Also, tell coreutils we don't have perl, which disables help2man
FORCE_UNSAFE_CONFIGURE=1 ./configure CFLAGS="-static" \
--prefix="${PREFIX}" \
--build=i386-unknown-linux-musl \
gl_cv_func_getcwd_path_max="no, but it is partly working"
gl_cv_func_getcwd_path_max="no, but it is partly working" \
gl_cv_prog_perl="no"
}
src_compile() {
make "${MAKEJOBS}" PREFIX="${PREFIX}" MAKEINFO="true"
make "${MAKEJOBS}" PREFIX="${PREFIX}" MAKEINFO="true" GPERF="true"
}
src_install() {

View file

@ -7,8 +7,8 @@ We always assume that kernel doesn't have correct implementation and
instead use function from gnulib with fix. That fixes reproducibility
problem across different kernels.
--- ../gnulib-d279bc/m4/nanosleep.m4
+++ ../gnulib-d279bc/m4/nanosleep.m4
--- ../gnulib-bb5bb43/m4/nanosleep.m4
+++ ../gnulib-bb5bb43/m4/nanosleep.m4
@@ -85,23 +85,9 @@ AC_DEFUN([gl_FUNC_NANOSLEEP],
ts_sleep.tv_nsec = 1;
#if HAVE_DECL_ALARM

View file

@ -0,0 +1,17 @@
http://git.savannah.gnu.org/cgit/coreutils.git/snapshot/coreutils-9.4.tar.xz 8fb56810310253300b3d6f84e68dc97eb2d74e1f4f78e05776831d9d82e4f2d7
http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-bb5bb43.tar.gz b8aa1ac1b18c67f081486069e6a7a5564f20431c2313a94c20a46dcfb904be2a
http://ftp.unicode.org/Public/15.0.0/ucd/UnicodeData.txt 806e9aed65037197f1ec85e12be6e8cd870fc5608b4de0fffd990f689f376a73 UnicodeData-15.0.0.txt
http://ftp.unicode.org/Public/15.0.0/ucd/PropList.txt e05c0a2811d113dae4abd832884199a3ea8d187ee1b872d8240a788a96540bfd PropList-15.0.0.txt
http://ftp.unicode.org/Public/15.0.0/ucd/DerivedCoreProperties.txt d367290bc0867e6b484c68370530bdd1a08b6b32404601b8c7accaf83e05628d DerivedCoreProperties-15.0.0.txt
http://ftp.unicode.org/Public/15.0.0/ucd/emoji/emoji-data.txt 29071dba22c72c27783a73016afb8ffaeb025866740791f9c2d0b55cc45a3470 emoji-data-15.0.0.txt
http://ftp.unicode.org/Public/15.0.0/ucd/ArabicShaping.txt eb840f36e0a7446293578c684a54c6d83d249abde7bdd4dfa89794af1d7fe9e9 ArabicShaping-15.0.0.txt
http://ftp.unicode.org/Public/15.0.0/ucd/Scripts.txt cca85d830f46aece2e7c1459ef1249993dca8f2e46d51e869255be140d7ea4b0 Scripts-15.0.0.txt
http://ftp.unicode.org/Public/15.0.0/ucd/Blocks.txt 529dc5d0f6386d52f2f56e004bbfab48ce2d587eea9d38ba546c4052491bd820 Blocks-15.0.0.txt
http://ftp.unicode.org/Public/3.0-Update1/PropList-3.0.1.txt 909eef4adbeddbdddcd9487c856fe8cdbb8912aa8eb315ed7885b6ef65f4dc4c
http://ftp.unicode.org/Public/15.0.0/ucd/EastAsianWidth.txt 743e7bc435c04ab1a8459710b1c3cad56eedced5b806b4659b6e69b85d0adf2a EastAsianWidth-15.0.0.txt
http://ftp.unicode.org/Public/15.0.0/ucd/LineBreak.txt 012bca868e2c4e59a5a10a7546baf0c6fb1b2ef458c277f054915c8a49d292bf LineBreak-15.0.0.txt
http://ftp.unicode.org/Public/15.0.0/ucd/auxiliary/WordBreakProperty.txt 5188a56e91593467c2e912601ebc78750e6adc9b04541b8c5becb5441e388ce2 WordBreakProperty-15.0.0.txt
http://ftp.unicode.org/Public/15.0.0/ucd/auxiliary/GraphemeBreakProperty.txt 5a0f8748575432f8ff95e1dd5bfaa27bda1a844809e17d6939ee912bba6568a1 GraphemeBreakProperty-15.0.0.txt
http://ftp.unicode.org/Public/15.0.0/ucd/CompositionExclusions.txt 3b019c0a33c3140cbc920c078f4f9af2680ba4f71869c8d4de5190667c70b6a3 CompositionExclusions-15.0.0.txt
http://ftp.unicode.org/Public/15.0.0/ucd/SpecialCasing.txt 78b29c64b5840d25c11a9f31b665ee551b8a499eca6c70d770fcad7dd710f494 SpecialCasing-15.0.0.txt
http://ftp.unicode.org/Public/15.0.0/ucd/CaseFolding.txt cdd49e55eae3bbf1f0a3f6580c974a0263cb86a6a08daa10fbf705b4808a56f7 CaseFolding-15.0.0.txt

View file

@ -113,11 +113,12 @@ bin_preseed() {
# that can be overridden on per package basis in the build script.
# build takes two arguments:
# 1) name-version of the package
# 2) optionally specify build script. Default is name-version.sh
# 2) optionally specify build script. Default is pass$((revision+1)).sh
# 3) optionally specify directory to cd into
build() {
pkg=$1
script_name=${2:-${pkg}.sh}
get_revision "${pkg}"
script_name=${2:-pass$((revision+1)).sh}
dirname=${3:-${pkg}}
# shellcheck disable=SC2015
@ -176,7 +177,6 @@ build() {
call $build_stage
echo "${pkg}: creating package."
get_revision "${pkg}"
cd "${DESTDIR}"
src_pkg

View file

@ -22,7 +22,9 @@ while ! dd if=/dev/${DISK} of=/dev/null bs=512 count=1; do
done
# Create partition if it doesn't exist
if [ $(($(stat -c "%Lr" "/dev/${DISK}") % 8)) -eq 0 ]; then
# 'stat -c "%T"' prints the minor device type in hexadecimal.
# The decimal version (with "%Lr") is not available in this version of stat.
if [ $((0x$(stat -c "%T" "/dev/${DISK}") % 8)) -eq 0 ]; then
echo "Creating partition table..."
# Start at 1GiB, use -S32 -H64 to align to MiB rather than cylinder boundary
echo "2097152;" | sfdisk -uS -S32 -H64 --force "/dev/${DISK}"

View file

@ -132,7 +132,7 @@ build: xz-5.4.1
build: file-5.44
build: libtool-2.4.7
build: tar-1.34
build: coreutils-8.32
build: coreutils-9.4
build: pkg-config-0.29.2
build: make-4.2.1
build: gmp-6.2.1