-
Notifications
You must be signed in to change notification settings - Fork 11
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
Packaging on OBS (for Tumbleweed) #66
Comments
Just some quick responses. I've been building up a openSUSE collection of wine-python3 https://build.opensuse.org/project/show/home:jayvdb:wine-python3:py37 , and normal packages https://build.opensuse.org/project/show/home:jayvdb:wine-python3:py37:packages https://build.opensuse.org/project/show/home:jayvdb:wine-python3:py37:packages-p2 , and even a Nuitka package set https://build.opensuse.org/project/show/home:jayvdb:wine-python3:py37:packages-Nuitka It is automated using some overrides to python-rpm-macros at https://build.opensuse.org/projects/home:jayvdb:wine-python3:py37:packages/prjconf I would rather be using that instead of wenv, as usually virtualenv-ish things are hard to control on OBS - it already provides a isolated VM, and the VM is readonly except for the buildroot, and the PYTHONPATH needs to be system + buildroot, and virtualenvs typically bungle that up / create a new set of side-effects. That said, I'll start getting wenv packaged at https://build.opensuse.org/package/show/home:jayvdb:py-bridge/python-wenv I see in https://build.opensuse.org/package/show/home:jayvdb:wine-python3:py37/mingw-w64-python3-base is the relevant project - and it has a project link at alternative name https://build.opensuse.org/package/show/home:jayvdb:wine-python3:py37/mingw-w64-python3 . This 'python3' / 'python3-base' is the same structure as the 'real' linux packages @ https://build.opensuse.org/project/show/devel:languages:python:Factory . There are only minor changes to those spec files. My wine project builds are disabled atm, as I wanted to take pressure of the OBS farm as I wasnt using / continuing that project atm. I'll get it operational again. Also as you probably know, the embedded CPython redists are a dogs breakfast, especially Windows. It lacks venv support, and many other things, so the external |
The embedded CPython redists ... yes, they are not ideal. But they work fine on Wine. I can not say this about most contemporary alternatives. This was (and still is) the selling point for me. For a longer version of the story see here. I have been working around this problem for about six or seven years now. Bottom line: I need a very robust (and simple) solution for running Python on Wine for zugbruecke and other things (example, example).
Hmm wenv is not that virtualenv-ish. It's basically the embedded CPython redist, unpacked, with an added site-packages folder, a shared folder and some tweaks to its config so it finds packages in the right places (site config). In its current form it resides in
That's awesome. If I understand your OBS space, the spec files and patches correctly, you're cross-compiling Python for Windows/Wine on Linux (OBS) with mingw? Impressive. I did not dare to do this, but the thought had crossed my mind ...
Nice. Thanks, I'll keep an eye on them.
Again thanks for this. I just pushed the first release of wenv up to pypi. In case you want to use it. I'll soon remove this code from zugbruecke. If I may ask: What's the overall goal of your efforts? |
Yup. The credit goes to the people involved in https://github.com/msys2/MINGW-packages/tree/master/mingw-w64-python3 , inc the Anaconda team.
None. I chanced upon your repo, and thought it was interesting, and saw the overlap with what I had been working on. The goal of my previous work was to build standalone Windows exe's from Python code, and do that build on Linux esp OBS where deps can be pre-built and are managed as discrete units. Previously I was focused on Nuitka, which is a very good solution, however atm I am focusing on PyOxidizer. Oddly enough, my rough objective/motivator was to be able to build a Jupyter exe with common kernels/plugins pre-built, removing the complexity in user's getting a useful Jupyter environment locally. |
@jayvdb Not published on PyPI yet (too many rough edges and an odd setup process), but it now does more or less what it is supposed to do: wenv-kernel, a Jupyter kernel for Python on Wine. |
Not related - just a note, https://github.com/uranusjr/pythonup-windows and https://github.com/uranusjr/pythonup-posix , and predecessor https://github.com/uranusjr/snafu may be of interest. |
Reported by @jayvdb in #55 although not related.
The Tumbleweed builds fail because ... well, have a look at this project's travis file, sections
install
andscript
(the actual test). There are two things missing in your spec file.make dll
from project root. The test therefore requires a cross-compiler (mingw). The DLL is not part of the distributed Python package, however.make install
, I runwine-pytest --version
. The trick here is that this script pulls in CPython for Windows, pip and pytest (in case something is missing). It is not necessary to do this but doing it like this prohibits the kind of timeout that you see on OBS when running pytest later on.Bug #55 already refers to a much cleaner solution that substitutes
wine-pytest
(and some other stuff). It's a new Python script namedwenv
. Have a look at the unpublished (but implemented) changes for 0.1.0 in the change log of the develop branch. Actually,wenv
is kind of a topic on its own - I am currently separating it fromzugbruecke
into its own Python package.The text was updated successfully, but these errors were encountered: