diff --git a/patches/ninja/jinx-working-patch.patch b/patches/ninja/jinx-working-patch.patch new file mode 100644 index 00000000..606d3a17 --- /dev/null +++ b/patches/ninja/jinx-working-patch.patch @@ -0,0 +1,36 @@ +diff --git ninja-clean/configure.py ninja-workdir/configure.py +index 03b5ce4..66af21a 100755 +--- ninja-clean/configure.py ++++ ninja-workdir/configure.py +@@ -65,16 +65,21 @@ class Platform(object): + self._platform = 'os400' + elif self._platform.startswith('dragonfly'): + self._platform = 'dragonfly' ++ elif self._platform.startswith('astral'): ++ self._platform = 'astral' + + @staticmethod + def known_platforms() -> List[str]: + return ['linux', 'darwin', 'freebsd', 'openbsd', 'solaris', 'sunos5', + 'mingw', 'msvc', 'gnukfreebsd', 'bitrig', 'netbsd', 'aix', +- 'dragonfly'] ++ 'dragonfly', 'astral'] + + def platform(self) -> str: + return self._platform # type: ignore # Incompatible return value type + ++ def is_astral(self) -> bool: ++ return self._platform == 'astral' ++ + def is_linux(self) -> bool: + return self._platform == 'linux' + +@@ -108,7 +113,7 @@ class Platform(object): + + def supports_ppoll(self) -> bool: + return self._platform in ('freebsd', 'linux', 'openbsd', 'bitrig', +- 'dragonfly') ++ 'dragonfly', 'astral') + + def supports_ninja_browse(self) -> bool: + return (not self.is_windows() diff --git a/patches/parted/jinx-working-patch.patch b/patches/parted/jinx-working-patch.patch new file mode 100644 index 00000000..85c9a916 --- /dev/null +++ b/patches/parted/jinx-working-patch.patch @@ -0,0 +1,639 @@ +diff --git parted-clean/configure parted-workdir/configure +index 7b7b1fd..7f6404f 100755 +--- parted-clean/configure ++++ parted-workdir/configure +@@ -5323,6 +5323,7 @@ case "$host_os" in + linux*|uclinux*) OS=linux ;; + gnu*) OS=gnu ;; + beos*) OS=beos ;; ++ astral*) OS=astral ;; + *) as_fn_error $? "Unknown or unsupported OS \"$host_os\". Only \"linux\", \"uclinux\", \"gnu\" and \"beos\" are supported in this version of GNU Parted." "$LINENO" 5 ;; + esac + +diff --git parted-workdir/libparted/arch/astral.c parted-workdir/libparted/arch/astral.c +new file mode 100644 +index 0000000..2989679 +--- /dev/null ++++ parted-workdir/libparted/arch/astral.c +@@ -0,0 +1,558 @@ ++/* ++ libparted - a library for manipulating disk partitions ++ Copyright (C) 2006-2007, 2009-2014, 2019-2023 Free Software Foundation, ++ Inc. ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 3 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program. If not, see . ++*/ ++ ++#include ++ ++#include ++#include ++ ++/* POSIX headers */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "../architecture.h" ++ ++#define _(str) (str) ++ ++#define ASTRAL_SPECIFIC(dev) ((struct astral_specific *) (dev)->arch_specific) ++ ++struct astral_specific { ++ int fd; ++}; ++ ++#define BLOCK_TYPE_DISK 0 ++#define BLOCK_TYPE_PART 1 ++ ++#define BLOCK_IOCTL_GETDESC 0xb10ccd35c ++ ++struct astral_blockdesc { ++ void *filler; ++ int type; ++ uintmax_t lbaoffset; ++ size_t blockcapacity; ++ size_t blocksize; ++ void *filler2[2]; ++}; ++ ++static int ++_do_fsync (PedDevice* dev) ++{ ++ struct astral_specific* arch_specific = ASTRAL_SPECIFIC (dev); ++ int status; ++ PedExceptionOption ex_status; ++ ++ while (1) { ++ status = fsync (arch_specific->fd); ++ if (status >= 0) break; ++ ++ ex_status = ped_exception_throw ( ++ PED_EXCEPTION_ERROR, ++ PED_EXCEPTION_RETRY_IGNORE_CANCEL, ++ _("%s during write on %s"), ++ strerror (errno), dev->path); ++ ++ switch (ex_status) { ++ case PED_EXCEPTION_IGNORE: ++ return 1; ++ ++ case PED_EXCEPTION_RETRY: ++ break; ++ ++ case PED_EXCEPTION_UNHANDLED: ++ ped_exception_catch (); ++ /* FALLTHROUGH */ ++ case PED_EXCEPTION_CANCEL: ++ return 0; ++ default: ++ PED_ASSERT (0); ++ break; ++ } ++ } ++ return 1; ++} ++ ++static int ++_device_init_blkdev(PedDevice* dev) ++{ ++ int type; ++ struct astral_blockdesc desc; ++ int fd = open(dev->path, O_RDONLY); ++ if (fd < 0) ++ return 0; ++ ++ if (ioctl(fd, BLOCK_IOCTL_GETDESC, &desc) < 0) ++ goto error; ++ ++ close (fd); ++ ++ dev->length = desc.blockcapacity; ++ dev->sector_size = dev->phys_sector_size = desc.blocksize; ++ ++ /* XXX: We have no way to get this! */ ++ dev->bios_geom.sectors = 63; ++ dev->bios_geom.heads = 255; ++ int cyl_size = dev->bios_geom.sectors * dev->bios_geom.heads; ++ dev->bios_geom.cylinders = dev->length / cyl_size ++ * (dev->sector_size / PED_SECTOR_SIZE_DEFAULT); ++ dev->hw_geom = dev->bios_geom; ++ dev->model = strdup("Disk device"); ++ ++ // determine type ++ ++ if (dev->path && strstr(dev->path, "nvme")) ++ return PED_DEVICE_NVME; ++ ++ return PED_DEVICE_UNKNOWN; ++error: ++ close(fd); ++ return 0; ++} ++ ++static int ++_device_init_file(PedDevice* dev, struct stat* dev_statp) ++{ ++ if (!dev_statp->st_size) ++ return 0; ++ ++ dev->sector_size = ++ dev->phys_sector_size = PED_SECTOR_SIZE_DEFAULT; ++ ++ dev->length = dev_statp->st_size / PED_SECTOR_SIZE_DEFAULT; ++ ++ dev->bios_geom.cylinders = dev->length / (4 * 32); ++ dev->bios_geom.heads = 4; ++ dev->bios_geom.sectors = 32; ++ dev->hw_geom = dev->bios_geom; ++ ++ dev->model = strdup(_("Disk Image")); ++ ++ return PED_DEVICE_FILE; ++} ++ ++static int ++_device_init(PedDevice* dev) ++{ ++ struct stat dev_stat; ++ int type = 0; ++ ++ /* Check if we're a regular file */ ++ if (stat(dev->path, &dev_stat) < 0) ++ goto done; ++ ++ if (S_ISBLK(dev_stat.st_mode)) ++ type = _device_init_blkdev(dev); ++ else if (S_ISREG(dev_stat.st_mode)) ++ type = _device_init_file(dev,&dev_stat); ++ ++done: ++ return type; ++} ++ ++ ++static PedDevice* ++astral_new (const char* path) ++{ ++ struct stat stat_info; ++ PedDevice* dev; ++ ++ PED_ASSERT(path != NULL); ++ ++ dev = (PedDevice*) ped_malloc (sizeof (PedDevice)); ++ if (!dev) ++ goto error; ++ ++ dev->path = strdup(path); ++ if (!dev->path) ++ goto error_free_dev; ++ ++ dev->arch_specific ++ = (struct astral_specific *) ped_malloc(sizeof(struct astral_specific)); ++ if (dev->arch_specific == NULL) ++ goto error_free_path; ++ ++ dev->open_count = 0; ++ dev->read_only = 0; ++ dev->external_mode = 0; ++ dev->dirty = 0; ++ dev->boot_dirty = 0; ++ ++ if ((dev->type=_device_init(dev)) <= 0) ++ goto error_free_arch_specific; ++ ++ /* All OK! */ ++ return dev; ++ ++error_free_arch_specific: ++ free (dev->arch_specific); ++ ++error_free_path: ++ free (dev->path); ++ ++error_free_dev: ++ free (dev); ++ ++error: ++ return NULL; ++} ++ ++static void ++astral_destroy (PedDevice* dev) ++{ ++ free (dev->arch_specific); ++ free (dev->path); ++ free (dev->model); ++ free (dev); ++} ++ ++static int ++astral_is_busy (PedDevice* dev) ++{ ++ return 1; ++} ++ ++static int ++astral_open (PedDevice* dev) ++{ ++ struct astral_specific *arch_specific = ASTRAL_SPECIFIC(dev); ++ ++retry: ++ arch_specific->fd = open(dev->path, O_RDWR); ++ if (arch_specific->fd == -1) { ++ char* rw_error_msg = strerror(errno); ++ ++ arch_specific->fd = open (dev->path, O_RDONLY); ++ if (arch_specific->fd == -1) { ++ if (ped_exception_throw ( ++ PED_EXCEPTION_ERROR, ++ PED_EXCEPTION_RETRY_CANCEL, ++ _("Error opening %s: %s"), ++ dev->path, strerror (errno)) ++ != PED_EXCEPTION_RETRY) { ++ return 0; ++ } else { ++ goto retry; ++ } ++ } else { ++ ped_exception_throw ( ++ PED_EXCEPTION_WARNING, ++ PED_EXCEPTION_OK, ++ _("Unable to open %s read-write (%s). %s has " ++ "been opened read-only."), ++ dev->path, rw_error_msg, dev->path); ++ dev->read_only = 1; ++ } ++ } else { ++ dev->read_only = 0; ++ } ++ ++ _do_fsync (dev); ++ ++ return 1; ++} ++ ++static int astral_refresh_open (PedDevice* dev) ++{ ++ return 1; ++} ++ ++static int astral_close (PedDevice* dev) ++{ ++ struct astral_specific *arch_specific = ASTRAL_SPECIFIC(dev); ++ ++ if (dev->dirty) ++ _do_fsync(dev); ++ ++ close (arch_specific->fd); ++ ++ return 1; ++} ++ ++static int astral_refresh_close (PedDevice* dev) ++{ ++ if (dev->dirty) ++ _do_fsync(dev); ++ ++ return 1; ++} ++ ++static int astral_read (const PedDevice* dev, void* buffer, PedSector start, PedSector count) ++{ ++ struct astral_specific *arch_specific = ASTRAL_SPECIFIC(dev); ++ int status; ++ PedExceptionOption ex_status; ++ size_t read_length = count * dev->sector_size; ++ ++ PED_ASSERT(dev->sector_size % PED_SECTOR_SIZE_DEFAULT == 0); ++ ++ /* First, try to seek */ ++ while(1) ++ { ++ if (lseek(arch_specific->fd, start * dev->sector_size, SEEK_SET) ++ == start * dev->sector_size) ++ break; ++ ++ ex_status = ped_exception_throw ( ++ PED_EXCEPTION_ERROR, ++ PED_EXCEPTION_RETRY_IGNORE_CANCEL, ++ _("%s during seek for read on %s"), ++ strerror (errno), dev->path); ++ ++ switch (ex_status) ++ { ++ case PED_EXCEPTION_IGNORE: ++ return 1; ++ case PED_EXCEPTION_RETRY: ++ break /* out of switch */; ++ case PED_EXCEPTION_UNHANDLED: ++ ped_exception_catch (); ++ case PED_EXCEPTION_CANCEL: ++ return 0; ++ } ++ } ++ ++ /* If we seeked ok, now is the time to read */ ++ while (1) ++ { ++ status = read(arch_specific->fd, buffer, read_length); ++ if (status == count * dev->sector_size) ++ break; ++ ++ if (status > 0) ++ { ++ read_length -= status; ++ buffer += status; ++ continue; ++ } ++ ++ ex_status = ped_exception_throw ( ++ PED_EXCEPTION_ERROR, ++ PED_EXCEPTION_RETRY_IGNORE_CANCEL, ++ _("%s during read on %s"), ++ strerror (errno), ++ dev->path); ++ ++ switch (ex_status) ++ { ++ case PED_EXCEPTION_IGNORE: ++ return 1; ++ case PED_EXCEPTION_RETRY: ++ break; ++ case PED_EXCEPTION_UNHANDLED: ++ ped_exception_catch (); ++ case PED_EXCEPTION_CANCEL: ++ return 0; ++ } ++ } ++ ++ return 1; ++} ++ ++static int astral_write (PedDevice* dev, const void* buffer, PedSector start, ++ PedSector count) ++{ ++ struct astral_specific *arch_specific = ASTRAL_SPECIFIC(dev); ++ int status; ++ PedExceptionOption ex_status; ++ size_t write_length = count * dev->sector_size; ++ ++ PED_ASSERT(dev->sector_size % PED_SECTOR_SIZE_DEFAULT == 0); ++ ++ if (dev->read_only) ++ { ++ if (ped_exception_throw ( ++ PED_EXCEPTION_ERROR, ++ PED_EXCEPTION_IGNORE_CANCEL, ++ _("Can't write to %s, because it is opened read-only."), ++ dev->path) ++ != PED_EXCEPTION_IGNORE) ++ return 0; ++ else ++ return 1; ++ } ++ ++ while(1) ++ { ++ if (lseek(arch_specific->fd,start * dev->sector_size,SEEK_SET) ++ == start * dev->sector_size) ++ break; ++ ++ ex_status = ped_exception_throw ( ++ PED_EXCEPTION_ERROR, PED_EXCEPTION_RETRY_IGNORE_CANCEL, ++ _("%s during seek for write on %s"), ++ strerror (errno), dev->path); ++ ++ switch (ex_status) ++ { ++ case PED_EXCEPTION_IGNORE: ++ return 1; ++ case PED_EXCEPTION_RETRY: ++ break; ++ case PED_EXCEPTION_UNHANDLED: ++ ped_exception_catch (); ++ case PED_EXCEPTION_CANCEL: ++ return 0; ++ } ++ } ++ ++#ifdef READ_ONLY ++ printf ("ped_device_write (\"%s\", %p, %d, %d)\n", ++ dev->path, buffer, (int) start, (int) count); ++#else ++ dev->dirty = 1; ++ while(1) ++ { ++ status = write (arch_specific->fd, buffer, write_length); ++ if (status == count * dev->sector_size) ++ break; ++ ++ if (status > 0) ++ { ++ write_length -= status; ++ buffer += status; ++ continue; ++ } ++ ++ ex_status = ped_exception_throw ( ++ PED_EXCEPTION_ERROR, ++ PED_EXCEPTION_RETRY_IGNORE_CANCEL, ++ _("%s during write on %s"), ++ strerror (errno), dev->path); ++ ++ switch (ex_status) ++ { ++ case PED_EXCEPTION_IGNORE: ++ return 1; ++ case PED_EXCEPTION_RETRY: ++ break; ++ case PED_EXCEPTION_UNHANDLED: ++ ped_exception_catch (); ++ case PED_EXCEPTION_CANCEL: ++ return 0; ++ } ++ } ++#endif /* !READ_ONLY */ ++ ++ return 1; ++} ++ ++static PedSector astral_check (PedDevice* dev, void* buffer, PedSector start, PedSector count) ++{ ++ struct astral_specific* arch_specific = ASTRAL_SPECIFIC(dev); ++ PedSector done = 0; ++ int status; ++ ++ PED_ASSERT(dev != NULL); ++ ++ if (lseek(arch_specific->fd, start * dev->sector_size, SEEK_SET) ++ != start * dev->sector_size) ++ return 0; ++ ++ for (done = 0; done < count; done += status / dev->sector_size) ++ { ++ status = read (arch_specific->fd, buffer, ++ (size_t) ((count-done) * dev->sector_size)); ++ if (status < 0) ++ break; ++ } ++ ++ return done; ++} ++ ++static int astral_sync (PedDevice* dev) ++{ ++ if (dev->read_only) ++ return 1; ++ if (!_do_fsync (dev)) ++ return 0; ++ ++ return 1; ++} ++ ++/* Probe for all available disks */ ++static void astral_probe_all(void) { ++ DIR *dir = opendir("/dev/"); ++ if (!dir) ++ return; ++ ++ struct dirent *dent = readdir(dir); ++ struct stat stat; ++ while (dent) { ++ char full_path[100]; ++ snprintf(full_path, 100, "/dev/%s", dent->d_name); ++ if (stat(full_path, &stat) == 0 && S_ISBLK(stat.st_mode) && major(stat.st_rdev) == 7) { ++ // figure out if this is a disk ++ int f = open(full_path, O_RDONLY); ++ struct astral_blockdesc desc = {0}; ++ if (ioctl(f, BLOCK_IOCTL_GETDESC, &desc) == 0 && desc.type == BLOCK_TYPE_DISK) ++ _ped_device_probe(full_path); ++ } ++ ++ dent = readdir(dir); ++ } ++ ++ closedir(dir); ++} ++ ++static char* astral_partition_get_path (const PedPartition* part) ++{ ++ return NULL; ++} ++ ++static int astral_partition_is_busy (const PedPartition* part) ++{ ++ return 0; ++} ++ ++static int astral_disk_commit (PedDisk* disk) ++{ ++ return 0; ++} ++ ++static PedDeviceArchOps astral_dev_ops = { ++ _new: astral_new, ++ destroy: astral_destroy, ++ is_busy: astral_is_busy, ++ open: astral_open, ++ refresh_open: astral_refresh_open, ++ close: astral_close, ++ refresh_close: astral_refresh_close, ++ read: astral_read, ++ write: astral_write, ++ check: astral_check, ++ sync: astral_sync, ++ sync_fast: astral_sync, ++ probe_all: astral_probe_all ++}; ++ ++static PedDiskArchOps astral_disk_ops = { ++ partition_get_path: astral_partition_get_path, ++ partition_is_busy: astral_partition_is_busy, ++ disk_commit: astral_disk_commit ++}; ++ ++PedArchitecture ped_astral_arch = { ++ dev_ops: &astral_dev_ops, ++ disk_ops: &astral_disk_ops ++}; +diff --git parted-clean/libparted/architecture.c parted-workdir/libparted/architecture.c +index 4020f98..0126e39 100644 +--- parted-clean/libparted/architecture.c ++++ parted-workdir/libparted/architecture.c +@@ -34,6 +34,9 @@ ped_set_architecture () + #elif defined(__BEOS__) + extern PedArchitecture ped_beos_arch; + const PedArchitecture* arch = &ped_beos_arch; ++#elif defined(__astral__) ++ extern PedArchitecture ped_astral_arch; ++ const PedArchitecture* arch = &ped_astral_arch; + #else + extern PedArchitecture ped_gnu_arch; + const PedArchitecture* arch = &ped_gnu_arch; +diff --git parted-clean/libparted/libparted.c parted-workdir/libparted/libparted.c +index 204ce00..1b72255 100644 +--- parted-clean/libparted/libparted.c ++++ parted-workdir/libparted/libparted.c +@@ -76,7 +76,6 @@ extern void ped_disk_pc98_init (); + extern void ped_disk_sun_init (); + extern void ped_disk_amiga_init (); + extern void ped_disk_dasd_init (); +-extern void ped_disk_atari_init (); + + static void + init_disk_types () +@@ -87,7 +86,6 @@ init_disk_types () + #if defined __s390__ || defined __s390x__ + ped_disk_dasd_init(); + #endif +- ped_disk_atari_init (); /* easy false positives, so probe others first */ + ped_disk_sun_init (); + #ifdef ENABLE_PC98 + ped_disk_pc98_init (); +@@ -146,7 +144,6 @@ extern void ped_disk_pc98_done (); + extern void ped_disk_sun_done (); + extern void ped_disk_amiga_done (); + extern void ped_disk_dasd_done (); +-extern void ped_disk_atari_done (); + + static void + done_disk_types () +@@ -166,7 +163,6 @@ done_disk_types () + ped_disk_bsd_done (); + ped_disk_amiga_done (); + ped_disk_aix_done (); +- ped_disk_atari_done (); + } + + static void _init() __attribute__ ((constructor)); +diff --git parted-clean/libparted/unit.c parted-workdir/libparted/unit.c +index a63b98d..01f46fb 100644 +--- parted-clean/libparted/unit.c ++++ parted-workdir/libparted/unit.c +@@ -248,7 +248,7 @@ ped_unit_format_custom_byte (const PedDevice* dev, PedSector byte, PedUnit unit) + (w < 100.) ? 1 : + 0 ; + +-#ifdef __BEOS__ ++#if defined(__BEOS__) || defined(__astral__) + snprintf (buf, 100, "%.*f%s", p, d, ped_unit_get_name(unit)); + #else + snprintf (buf, 100, "%1$.*2$f%3$s", d, p, ped_unit_get_name (unit)); diff --git a/patches/readline/jinx-working-patch.patch b/patches/readline/jinx-working-patch.patch index 07753db5..44a76d62 100644 --- a/patches/readline/jinx-working-patch.patch +++ b/patches/readline/jinx-working-patch.patch @@ -1,7 +1,8 @@ -diff -ruN readline-clean/support/config.sub readline/support/config.sub ---- readline-clean/support/config.sub 2022-10-14 16:21:57.553229749 -0300 -+++ readline/support/config.sub 2022-10-14 16:22:12.479896273 -0300 -@@ -1723,7 +1723,7 @@ +diff --git readline-clean/support/config.sub readline-workdir/support/config.sub +index 9b62e37..12d8ea2 100644 +--- readline-clean/support/config.sub ++++ readline-workdir/support/config.sub +@@ -1723,7 +1723,7 @@ case $os in # Now accept the basic system types. # The portable systems comes first. # Each alternative MUST end in a * to match a version number. @@ -10,3 +11,29 @@ diff -ruN readline-clean/support/config.sub readline/support/config.sub | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ +diff --git readline-clean/support/shlib-install readline-workdir/support/shlib-install +index 661355d..8c14919 100644 +--- readline-clean/support/shlib-install ++++ readline-workdir/support/shlib-install +@@ -118,7 +118,7 @@ INSTALL_LINK2='${echo} cd $INSTALLDIR && ${echo} ${LN} $LIBNAME $LINK2' + # Create symlinks to the installed library. This section is incomplete. + # + case "$host_os-$host_vendor" in +-*linux*|freebsd*|dragonfly*) ++*linux*|freebsd*|dragonfly*|astral*) + # libname.so.M -> libname.so.M.N + ${echo} ${RM} ${INSTALLDIR}/$LINK2 + if [ -z "$uninstall" ]; then +diff --git readline-clean/support/shobj-conf readline-workdir/support/shobj-conf +index cd7634d..c72d34a 100644 +--- readline-clean/support/shobj-conf ++++ readline-workdir/support/shobj-conf +@@ -123,7 +123,7 @@ sunos5*|solaris2*) + ;; + + # All versions of Linux (including Gentoo/FreeBSD) or the semi-mythical GNU Hurd. +-linux*-*|gnu*-*|k*bsd*-gnu-*|midnightbsd*|freebsd*|dragonfly*) ++linux*-*|gnu*-*|k*bsd*-gnu-*|midnightbsd*|freebsd*|dragonfly*|astral*) + SHOBJ_CFLAGS=-fPIC + SHOBJ_LD='${CC}' + SHOBJ_LDFLAGS='-shared -Wl,-soname,$@' diff --git a/patches/util-linux/jinx-working-patch.patch b/patches/util-linux/jinx-working-patch.patch new file mode 100644 index 00000000..effe9a54 --- /dev/null +++ b/patches/util-linux/jinx-working-patch.patch @@ -0,0 +1,33 @@ +diff --git util-linux-clean/Makefile.am util-linux-workdir/Makefile.am +index 01e9970..7660be9 100644 +--- util-linux-clean/Makefile.am ++++ util-linux-workdir/Makefile.am +@@ -84,7 +84,7 @@ EXTRA_DIST = + CLEANFILES = + DISTCLEANFILES = + +-SUBDIRS = po ++SUBDIRS = #po + + RCS_FIND_IGNORE = \( -name SCCS -o -name BitKeeper -o -name .svn -o \ + -name CVS -o -name .pc -o -name .hg -o -name .git \) -prune -o +@@ -120,7 +120,6 @@ include lsfd-cmd/Makemodule.am + include pam_lastlog2/Makemodule.am + include bash-completion/Makemodule.am + include man-common/Makemodule.am +-include po-man/Makemodule.am + + include Documentation/Makemodule.am + include tests/Makemodule.am +diff --git util-linux-clean/configure.ac util-linux-workdir/configure.ac +index d1c1840..a860cc9 100644 +--- util-linux-clean/configure.ac ++++ util-linux-workdir/configure.ac +@@ -3110,7 +3110,6 @@ libmount/src/libmount.h + libsmartcols/docs/Makefile + libsmartcols/docs/version.xml + libsmartcols/src/libsmartcols.h +-po/Makefile.in + ]) + + AC_OUTPUT diff --git a/patches/xz/jinx-working-patch.patch b/patches/xz/jinx-working-patch.patch deleted file mode 100644 index 7d80954d..00000000 --- a/patches/xz/jinx-working-patch.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff --git xz-clean/src/xz/message.c xz-workdir/src/xz/message.c -index abf30ad..4331696 100644 ---- xz-clean/src/xz/message.c -+++ xz-workdir/src/xz/message.c -@@ -149,8 +149,8 @@ message_init(void) - sa.sa_handler = &progress_signal_handler; - - for (size_t i = 0; message_progress_sigs[i] != 0; ++i) -- if (sigaction(message_progress_sigs[i], &sa, NULL)) -- message_signal_handler(); -+ if (sigaction(message_progress_sigs[i], &sa, NULL)) ; -+ //message_signal_handler(); - #endif - - return; -diff --git xz-clean/src/xz/signals.c xz-workdir/src/xz/signals.c -index 7aef463..6ea2540 100644 ---- xz-clean/src/xz/signals.c -+++ xz-workdir/src/xz/signals.c -@@ -105,8 +105,8 @@ signals_init(void) - continue; - - // Establish the signal handler. -- if (sigaction(sigs[i], &my_sa, NULL)) -- message_signal_handler(); -+ if (sigaction(sigs[i], &my_sa, NULL)) ; -+ // message_signal_handler(); - } - - signals_are_initialized = true; diff --git a/recipes/e2fsprogs b/recipes/e2fsprogs index 7451fef6..a5229702 100644 --- a/recipes/e2fsprogs +++ b/recipes/e2fsprogs @@ -2,11 +2,11 @@ name=e2fsprogs revision=1 from_source=e2fsprogs imagedeps="build-essential" -hostdeps="xgcc xbinutils" -deps="base" +hostdeps="xgcc xbinutils pkgconfig libtool" +deps="base libuuid" configure() { - ${source_dir}/configure --host=x86_64-astral --prefix=${prefix} + ${source_dir}/configure --host=x86_64-astral --prefix=${prefix} --disable-libuuid } build() { diff --git a/recipes/libuuid b/recipes/libuuid new file mode 100644 index 00000000..256af57f --- /dev/null +++ b/recipes/libuuid @@ -0,0 +1,26 @@ +name=libuuid +revision=1 +from_source=util-linux +imagedeps="build-essential python3 python3-dev" +hostrundeps="automake autoconf xgcc xbinutils libstdc++-v3 pkgconfig libtool" +deps="base gmp mpfr mpc binutils python" + +configure() { + cp -rp ${source_dir}/* . + rm -rf po + #./configure --host=x86_64-astral --prefix=${prefix} --enable-libuuid --enable-elf-shlibs --enable-subset + ./configure --host=x86_64-astral --prefix=${prefix} --enable-libuuid --disable-all-programs --enable-po --disable-nls --disable-static +} + +#build() { +# make -j ${parallelism} libuuid.la +#} + +package() { + make DESTDIR="${dest_dir}" install + mv -v ${dest_dir}/lib/* ${dest_dir}/${prefix}/lib + rm -r ${dest_dir}/lib + rm ${dest_dir}/${prefix}/lib/libuuid.so{,.1} + ln -sv libuuid.so.1.3.0 ${dest_dir}/${prefix}/lib/libuuid.so.1 + ln -sv libuuid.so.1 ${dest_dir}/${prefix}/lib/libuuid.so +} diff --git a/recipes/meson b/recipes/meson new file mode 100644 index 00000000..830d2392 --- /dev/null +++ b/recipes/meson @@ -0,0 +1,14 @@ +name=meson +from_source=meson +revision=1 +hostdeps="python" +deps="base" + +build() { + cp -rp ${source_dir}/* . +} + +package() { + /usr/bin/env python3 setup.py install --prefix=${prefix} --root=${dest_dir} + sed -i -e 's/\/usr\/local\/bin\/python3/\/usr\/bin\/env python3/g' ${dest_dir}/${prefix}/bin/meson +} diff --git a/recipes/ninja b/recipes/ninja new file mode 100644 index 00000000..c85a80c7 --- /dev/null +++ b/recipes/ninja @@ -0,0 +1,23 @@ +name=ninja +from_source=ninja +revision=1 +hostdeps="xgcc xbinutils pkgconfig libstdc++-v3" +imagedeps="build-essential python3" +deps="base" + +configure() { + CC=x86_64-astral-gcc CXX=x86_64-astral-g++ LD=x86_64-astral-g++ python3 ${source_dir}/configure.py --verbose --platform astral --host astral +} + +build() { + ninja +} + +package() { + mkdir -p ${dest_dir}/${prefix}/bin/ + mkdir -p ${dest_dir}/${prefix}/share/bash-completion/completions + mkdir -p ${dest_dir}/${prefix}/share/zsh/site-functions + install -vm755 ninja ${dest_dir}/${prefix}/bin/ninja + install -vDm644 ${source_dir}/misc/bash-completion ${dest_dir}/${prefix}/share/bash-completion/completions/ninja + install -vDm644 ${source_dir}/misc/zsh-completion ${dest_dir}/${prefix}/share/zsh/site-functions/_ninja +} diff --git a/recipes/parted b/recipes/parted new file mode 100644 index 00000000..3c70f3cf --- /dev/null +++ b/recipes/parted @@ -0,0 +1,19 @@ +name=parted +revision=1 +from_source=parted +imagedeps="build-essential" +hostdeps="xgcc xbinutils pkgconfig libtool" +deps="base ncurses libuuid readline" + +configure() { + cp -rp ${source_dir}/* . + ./configure --host=x86_64-astral --prefix=${prefix} --disable-device-mapper --disable-nls --enable-shared --disable-static +} + +build() { + make -j ${parallelism} +} + +package() { + make install DESTDIR=${dest_dir} +} diff --git a/recipes/python b/recipes/python index bed9944f..c19a5795 100644 --- a/recipes/python +++ b/recipes/python @@ -3,12 +3,12 @@ revision=1 from_source=python imagedeps="build-essential zlib1g-dev" hostdeps="xgcc xbinutils pkgconfig python" -deps="base" +deps="base zlib" configure() { echo "ac_cv_file__dev_ptmx=yes" > /tmp/configsite echo "ac_cv_file__dev_ptc=no" >> /tmp/configsite - CONFIG_SITE=/tmp/configsite ${source_dir}/configure --prefix=${prefix} --host=x86_64-astral --build=x86_64 --with-build-python=python3 --disable-ipv6 --enable-shared + CONFIG_SITE=/tmp/configsite ${source_dir}/configure --prefix=${prefix} --host=x86_64-astral --build=x86_64 --disable-ipv6 --enable-shared } build() { diff --git a/recipes/readline b/recipes/readline index 8447319b..1a4b7713 100644 --- a/recipes/readline +++ b/recipes/readline @@ -2,7 +2,7 @@ name=readline revision=1 from_source=readline imagedeps="build-essential" -hostdeps="xgcc xbinutils" +hostdeps="xgcc xbinutils libtool pkgconfig" deps="base ncurses" configure() { diff --git a/recipes/xz b/recipes/xz new file mode 100644 index 00000000..f54abffd --- /dev/null +++ b/recipes/xz @@ -0,0 +1,18 @@ +name=xz +revision=1 +from_source=xz +imagedeps="build-essential" +hostdeps="xgcc xbinutils pkgconfig libtool" +deps="base" + +configure() { + ${source_dir}/configure --host=x86_64-astral --prefix=${prefix} --disable-static +} + +build() { + make -j ${parallelism} +} + +package() { + make install DESTDIR=${dest_dir} +} diff --git a/source-recipes/frigg b/source-recipes/frigg index 32aacbdc..f2a96e8f 100644 --- a/source-recipes/frigg +++ b/source-recipes/frigg @@ -1,8 +1,8 @@ name=frigg -version=91ada7d4e12b9e73a454e7be13919e989444faa2 +version=f44b5e821c7d83fbe5189850045f262d544acd8b source_method=tarball tarball_url="https://github.com/managarm/frigg/archive/${version}.tar.gz" -tarball_sha512=d7011bcb0b2adfe88968de7cf9080fc71664725784491e66266b34b7fd83c2e3005f8ba7b530116075a7f5f7b31103af9aef1b32dab3143ed9ae3a247d2aa655 +tarball_sha512=56b5d134630dd653db063bdc6f4ea7f48f7a106f28315acbaea4008b064a52794abd9a8251d5551a50de94b65be5670499ab3fc63f184947871ebe09e955a9c3 prepare() { true diff --git a/source-recipes/meson b/source-recipes/meson new file mode 100644 index 00000000..0f71c75b --- /dev/null +++ b/source-recipes/meson @@ -0,0 +1,9 @@ +name=meson +version=1.9.0 +source_method=tarball +tarball_url="https://github.com/mesonbuild/meson/archive/refs/tags/${version}.tar.gz" +tarball_sha512=ecd69b6734be14c467f7db67dd88c0e57ebfad83ce3ddada131ff3e43ac964523e1083d7c7f3803033a9a76adbc32ad26dd2e3aca69884269000ca64130bde07 + +prepare() { + true +} diff --git a/source-recipes/ninja b/source-recipes/ninja new file mode 100644 index 00000000..ca47f74c --- /dev/null +++ b/source-recipes/ninja @@ -0,0 +1,9 @@ +name=ninja +version=1.13.1 +source_method=tarball +tarball_url="https://github.com/ninja-build/ninja/archive/refs/tags/v${version}.tar.gz" +tarball_sha512=ec94d42967b962d66ab0747fcb9d095510117159de0473ec08df47a657895aa2523f920798e4608d0c6cf0e2e382512c14aec8a54ea58b6cd4b01edd3a7c8e62 + +prepare() { + true +} diff --git a/source-recipes/parted b/source-recipes/parted new file mode 100644 index 00000000..d4ea3b01 --- /dev/null +++ b/source-recipes/parted @@ -0,0 +1,10 @@ +name=parted +version=3.6 +source_method=tarball +tarball_url="https://ftpmirror.gnu.org/gnu/parted/parted-${version}.tar.xz" +tarball_sha512=034a44b25718acba175212019d24f092972a791c5bd1d921ae91e17478657a77c5c5dd0c832bed7968c3a07ec6c65c0785acfac2f90c1ca5e1692f3c141693ef +hostdeps="libtool automake autoconf pkgconfig" + +prepare() { + cp -v $(find /usr/local/share/automake* -name config.sub) build-aux +} diff --git a/source-recipes/util-linux b/source-recipes/util-linux new file mode 100644 index 00000000..9dfb89fa --- /dev/null +++ b/source-recipes/util-linux @@ -0,0 +1,10 @@ +name=util-linux +version=2.41.1 +source_method=tarball +tarball_url="https://github.com/util-linux/util-linux/archive/refs/tags/v${version}.tar.gz" +tarball_sha512="cada3b2c4b19be00265bd984fe74d49d75a62e14be8df89010068ee65022c252eeb08b98ec1cdf1951e2981ea3864f1837428cb089f1c2317fe2fd44d8135bcc" +hostdeps="automake autoconf libtool pkgconfig" + +prepare() { + autoreconf -fvi +} diff --git a/source-recipes/xz b/source-recipes/xz new file mode 100644 index 00000000..c52c5fe0 --- /dev/null +++ b/source-recipes/xz @@ -0,0 +1,10 @@ +name=xz +version=5.8.1 +source_method=tarball +tarball_url="https://github.com/tukaani-project/xz/releases/download/v${version}/xz-${version}.tar.gz" +tarball_sha512=151b2a47fdf00274c4fd71ceada8fb6c892bdac44070847ebf3259e602b97c95ee5ee88974e03d7aa821ab4f16d5c38e50dfb2baf660cf39c199878a666e19ad +hostdeps="autoconf automake libtool pkgconfig" + +prepare() { + autoreconf -fvi +}