Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pkgman support #4

Open
trungnt2910 opened this issue Oct 4, 2022 · 4 comments
Open

pkgman support #4

trungnt2910 opened this issue Oct 4, 2022 · 4 comments
Assignees
Labels
enhancement New feature or request hacktoberfest help wanted Extra attention is needed

Comments

@trungnt2910
Copy link
Owner

While filesystem and network emulation has been implemented in Hyclone, pkgman still requires some magic port to communicate with the kernel.

This magic port's specification is still unknown by Hyclone and undocumented by Haiku.

@trungnt2910 trungnt2910 added enhancement New feature or request help wanted Extra attention is needed hacktoberfest labels Oct 4, 2022
@trungnt2910
Copy link
Owner Author

image

We've been able to run package_daemon, but pkgman is still returning an error.

@trungnt2910
Copy link
Owner Author

Currently package_daemon requires specific details related to mounted volumes.

It would now be necessary to rewrite the whole way HyClone emulates the filesystem. The vchroot mechanism that is currently living in haiku_loader should be completely re-written in HyClone server instead.

It does not need to be something complicated like fs_shell, probably just a function that translates paths (a more robust solution to the current vchroot), and statbufs (necessary for us to establish full control over dev_t, and probably uid_t and gid_t in the not so far future.

@trungnt2910
Copy link
Owner Author

As of 9ab2cf6 the features mentioned above has been implemented.

package_daemon is now stuck when trying to communicate with the packagefs driver through a magic ioctl:

		if (ioctl(fd.Get(), PACKAGE_FS_OPERATION_GET_VOLUME_INFO, info,
				bufferSize) != 0) {
			ERROR("Volume::Init(): failed to get volume info: %s\n",
				strerror(errno));
			RETURN_ERROR(errno);
		}

This is closely related to #2

@trungnt2910 trungnt2910 self-assigned this Apr 6, 2023
@trungnt2910
Copy link
Owner Author

image

package_daemon works!

However, running pkgman will immediately crash the package_daemon due to a missing transfer_area syscall.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request hacktoberfest help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant