ports: tar and xz

This commit is contained in:
Matheus
2023-08-02 21:27:24 -03:00
parent 245da66fc3
commit 30851d4971
7 changed files with 71 additions and 9 deletions
+1 -4
View File
@@ -11,16 +11,13 @@
#define VMM_FLAGS_FILE 8
#define VMM_FLAGS_EXACT 16
#define VMM_FLAGS_SHARED 32
#define VMM_FLAGS_COPY 64
#define VMM_PERMANENT_FLAGS_MASK (VMM_FLAGS_FILE | VMM_FLAGS_SHARED | VMM_FLAGS_COPY)
#define VMM_PERMANENT_FLAGS_MASK (VMM_FLAGS_FILE | VMM_FLAGS_SHARED)
#define VMM_ACTION_READ 1
#define VMM_ACTION_WRITE 2
#define VMM_ACTION_EXEC 4
#define VMM_DESTROY_FLAGS_NOSYNC 1
typedef struct {
vnode_t *node;
uintmax_t offset;
+1 -5
View File
@@ -206,7 +206,6 @@ static void insertrange(vmmspace_t *space, vmmrange_t *newrange) {
static void destroyrange(vmmrange_t *range, uintmax_t _offset, size_t size, int flags) {
uintmax_t top = _offset + size;
__assert(!(range->flags & VMM_FLAGS_COPY)); // TODO unimplemented
for (uintmax_t offset = _offset; offset < top; offset += PAGE_SIZE) {
void *vaddr = (void *)((uintptr_t)range->start + offset);
@@ -218,7 +217,7 @@ static void destroyrange(vmmrange_t *range, uintmax_t _offset, size_t size, int
proc_t *proc = thread ? thread->proc : NULL;
cred_t *cred = proc ? &proc->cred : NULL;
if ((range->flags & VMM_FLAGS_FILE) && (range->flags & VMM_FLAGS_SHARED) && (flags & VMM_DESTROY_FLAGS_NOSYNC) == 0) {
if ((range->flags & VMM_FLAGS_FILE) && (range->flags & VMM_FLAGS_SHARED)) {
__assert(VOP_MUNMAP(range->vnode, vaddr, range->offset + offset, mmuflagstovnodeflags(range->mmuflags) | (range->flags & VMM_FLAGS_SHARED ? V_FFLAGS_SHARED : 0), cred) == 0);
} else {
pmm_release(physical);
@@ -402,8 +401,6 @@ void *vmm_map(void *addr, volatile size_t size, int flags, mmuflags_t mmuflags,
range->flags = VMM_PERMANENT_FLAGS_MASK & flags;
range->mmuflags = mmuflags;
// TODO CoW
if (flags & VMM_FLAGS_FILE) {
// XXX make sure that writes can't happen to executable memory mapped files and check file permissions
vmmfiledesc_t *desc = private;
@@ -526,7 +523,6 @@ void vmm_destroycontext(vmmcontext_t *context) {
}
vmmcontext_t *vmm_fork(vmmcontext_t *oldcontext) {
// TODO copy on write
vmmcontext_t *newcontext = vmm_newcontext();
if (newcontext == NULL)
return NULL;
+13
View File
@@ -0,0 +1,13 @@
diff --git tar-clean/build-aux/config.sub tar-workdir/build-aux/config.sub
index f6ede1d..5b7f3f8 100755
--- tar-clean/build-aux/config.sub
+++ tar-workdir/build-aux/config.sub
@@ -1727,7 +1727,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.
- gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
+ gnu* | android* | astral* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
| *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
| hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
| sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
+19
View File
@@ -0,0 +1,19 @@
name=tar
revision=1
from_source=tar
imagedeps="base-devel"
hostdeps="xgcc xbinutils"
deps="mlibc xz"
configure() {
cp -rpf ${source_dir}/* .
./configure --host=x86_64-astral --prefix=${prefix}
}
build() {
make -j ${parallelism}
}
install() {
make install DESTDIR=${dest_dir}
}
+18
View File
@@ -0,0 +1,18 @@
name=xz
revision=1
from_source=xz
imagedeps="base-devel"
hostdeps="xgcc xbinutils"
deps="mlibc"
configure() {
${source_dir}/configure --host=x86_64-astral --prefix=${prefix} --disable-static
}
build() {
make -j${parallelism}
}
install() {
make install DESTDIR="${dest_dir}"
}
+9
View File
@@ -0,0 +1,9 @@
name=tar
version=1.35
source_method=tarball
tarball_url="https://ftp.gnu.org/gnu/tar/tar-${version}.tar.gz"
tarball_sha512=38dca8fbc193859770902c31aa6a6cf7a8fcd28687792b5aa8ba938bf39ce1e25c1b0de05f2a982b7b371eeb13502eb67cd27428ae1ade439bd6771aa9d05271
regenerate() {
true
}
+10
View File
@@ -0,0 +1,10 @@
name=xz
version=5.4.4
source_method=tarball
tarball_url="https://tukaani.org/xz/xz-${version}.tar.xz"
tarball_sha512=2b233a924b82190ff15e970c5a4a59f1c53a0b39a96bde228c9dfc9b103b4a3e5888f5024da4834e180f6010620ff23caf9f7135a38724eb2c8d01bff7a9a9e1
hostdeps="autoconf automake libtool pkgconfig"
regenerate() {
autoreconf -vfi
}