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

Add support for the Pillow extension #22

Merged
merged 2 commits into from
Oct 16, 2023

Conversation

andreittr
Copy link
Contributor

@andreittr andreittr commented Sep 15, 2023

This change only adds the necessary module registrations and Kconfig options. Pillow itself is provided by its own Unikraft port.

In addition, contains a hotfix commit to consistently use python when building the rootfs (instead of a mix of python and python3).

Depends on the Pillow port PR:

as well as all of its dependencies and interactions.
May also depend on:

Running the Pillow tests:

  • configure & build w/ numpy and all possible dependent libraries (see pillow port PR above)
  • create rootfs from build configuration
  • install pytest in rootfs (via venv + pip)
  • copy $(BUILD_DIR)/lib-python-pillow/origin/Pillow-10.0.0/Tests over into the rootfs
  • run Python unikernel w/ -m pytest Tests/ with plenty of allocated VM RAM
    • on RAMfs/initrd root: expect at most some complaints about missing fork/exec
    • on 9Pfs root: like ramfs + one outright bemusing failure where some compressed tiffs are saved larger than uncompressed; images are OK, uncorrupted; no clue why it happens, even less so why only on 9P. I currently blame it on computer gremlins; free cake for who can figure out the root cause.

@andreittr andreittr requested review from StefanJum and removed request for StefanJum September 15, 2023 14:20
@razvand razvand added the enhancement New feature or request label Oct 1, 2023
This change only adds the necessary module registrations and Kconfig
options. Pillow itself is provided by its own Unikraft port.

Signed-off-by: Andrei Tatar <andrei@unikraft.io>
Previously Makefile.uk used `python` and `python3` interchangeably which
caused unexpected issues on misconfigured systems where these two do not
point to the same binary.
This change fixes this oversight by using `python` everywhere.

Signed-off-by: Andrei Tatar <andrei@unikraft.io>
Copy link
Member

@StefanJum StefanJum left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All good, thanks.

Reviewed-by: Stefan Jumarea stefanjumarea02@gmail.com

Copy link

@RaduNichita RaduNichita left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All good from my side, many thanks @andreittr

Reviewed-by: Radu Nichita radunichita99@gmail.com

Copy link
Contributor

@razvand razvand left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved-by: Razvan Deaconescu razvand@unikraft.io

@razvand razvand merged commit 45fe239 into unikraft:staging Oct 16, 2023
razvand pushed a commit that referenced this pull request Oct 16, 2023
This change only adds the necessary module registrations and Kconfig
options. Pillow itself is provided by its own Unikraft port.

Signed-off-by: Andrei Tatar <andrei@unikraft.io>
Reviewed-by: Stefan Jumarea <stefanjumarea02@gmail.com>
Reviewed-by: Radu Nichita <radunichita99@gmail.com>
Approved-by: Razvan Deaconescu <razvand@unikraft.io>
GitHub-Closes: #22
razvand pushed a commit that referenced this pull request Oct 16, 2023
Previously Makefile.uk used `python` and `python3` interchangeably which
caused unexpected issues on misconfigured systems where these two do not
point to the same binary.
This change fixes this oversight by using `python` everywhere.

Signed-off-by: Andrei Tatar <andrei@unikraft.io>
Reviewed-by: Stefan Jumarea <stefanjumarea02@gmail.com>
Reviewed-by: Radu Nichita <radunichita99@gmail.com>
Approved-by: Razvan Deaconescu <razvand@unikraft.io>
GitHub-Closes: #22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

4 participants