Hey, Send a patch with a new app that could demonstrate it, please, if you can. I would like to see it. Sounds like a nice improvement.
Waldek On Monday, November 23, 2020 at 7:36:49 PM UTC-5 Matthew Kenigsberg wrote: > Hi, > > That definitely helped, thanks for the response! > > Haven't had time to look at this in depth, so I feel like I'm not > qualified to know if my own suggestion is actually helpful. But looking at > osv-apps/python-from-host/Makefile, it seems like nix could do things a bit > more cleanly. Nix does manage both the shared libraries and any python > dependencies, so rather than having two runs of manifest_from_host.sh and > an rsync, I can just tell nix I need python and some pip packages. Running > a single command will then give me every path I need. Tested this with > python3.8 and Flask and it worked. Personally I find that workflow a little > simpler than having to figure out what directories pip packages are > installed in. > > Another advantage would be that nixpkgs has 60,000 packages, and although > I'm sure there's plenty of compatibility issues, I think at times it would > be a lot easier to take advantage of the work that's already been done to > create all those packages, like in this case Flask works without > modification. Haven't used mpm much, so maybe it does things nix can't, but > I would guess nix could solve a lot of the same problems. > > Sorry if I'm making suggestions about something I don't understand, just > thought I'd bounce my ideas off someone who does understand them. Happy to > explain anything in more depth or demo what I mean. > > Thanks, > Matthew > On Saturday, November 7, 2020 at 10:15:28 PM UTC-7 [email protected] > wrote: > >> Hi Matthew, >> >> I am not familiar with nix and how exactly it would fit. If you look at >> the osv-apps repo there are many examples of python 2/3 apps. All of those >> are driven by module.py and optional makefiles to do a job of collecting >> relevant files to the final OSv image as scripts/build, scripts/module.py >> orchestrates it all. Alternatively, there is capstan with its package* >> command and *.mpm archives. I am not sure where and how nix would fit into >> this. >> >> Now the purpose of manifest_from_host.sh is quite simple - given a Linux >> shared library/-ies or executable or a directory with those, find all >> *dependant* shared libraries based on information in DT_NEEDED elf header. >> As you can see it is not specific to Python. On other hand >> manifest_from_host.sh is not indended and can not find all other >> dependencies (*.py., *.pyc, etc files) full Python runtime needs. My sense >> is that would still need to run manifest_from_host.sh against files built >> by nix but I might be wrong. >> >> Another alternative to building OSv images could be using Docker images >> and unpacking them to create corresponding OSv image. For an example look >> at >> https://github.com/cloudius-systems/osv-apps/tree/master/openjdk12-jre-from-docker >> >> which uses undocker tool. Another alternative would be then to use Python >> docker image in a similar way. And possibly combine it with capstan. >> >> I hope it helps a bit, >> Waldek >> >> >> >> On Tuesday, November 3, 2020 at 10:03:20 AM UTC-5 Matthew Kenigsberg >> wrote: >> >>> >>> Hi, >>> >>> Is there a recommended way to add pip packages to osv images? >>> >>> Was trying to figure that out and I also have a suggestion: I started >>> using nix, which is a package manager, and it seems like it could be a >>> really good tool for the job. It keeps track of every dependency for a >>> piece of software, and copying all the files to run an image with python38 >>> and some pip packages only takes one command. I think using nix could >>> also make manifest_from_host.sh unnecessary (?) >>> >>> Anyways, is there an easier way to be using pip packages? >>> >>> Thanks, >>> Matthew >>> >> -- You received this message because you are subscribed to the Google Groups "OSv Development" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/osv-dev/9df31db3-9d34-469b-99b1-1091c653b7dbn%40googlegroups.com.
