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

master: Different issues when building #5168

Closed
thopiekar opened this issue May 10, 2017 · 18 comments
Closed

master: Different issues when building #5168

thopiekar opened this issue May 10, 2017 · 18 comments
Labels
Component: distribution Wheels, apt PPA, conda, end user install issues Platform: Linux
Milestone

Comments

@thopiekar
Copy link
Contributor

A long time passed since I used and looked into kivy.
It seems that a lot changed over here..

The daily PPA is sadly broken and I see a lot error messages, which show that setting up the build fails.
I guess that we have new dependencies, but our setup.py is not able to tell correctly what is wrong.

Can someone take a look on it?
https://launchpadlibrarian.net/319046836/buildlog_ubuntu-zesty-amd64.kivy_1.9.2-0~daily0+201705100616-4024-pkg164~ubuntu17.04.1_BUILDING.txt.gz

I want to make daily build working before investing time on the stable PPA.

Thanks!

@thopiekar thopiekar changed the title master: Different issues building master: Different issues when building May 10, 2017
@KeyWeeUsr
Copy link
Contributor

@thopiekar Comparing it with Travis

 Traceback (most recent call last):
   File "setup.py", line 934, in <module>
     version=get_version(),
   File "setup.py", line 47, in get_version
     ['git', 'rev-parse', 'HEAD']
   File "/usr/lib/python3.5/subprocess.py", line 316, in check_output
     **kwargs).stdout
   File "/usr/lib/python3.5/subprocess.py", line 383, in run
     with Popen(*popenargs, **kwargs) as process:
   File "/usr/lib/python3.5/subprocess.py", line 676, in __init__
     restore_signals, start_new_session)
   File "/usr/lib/python3.5/subprocess.py", line 1282, in _execute_child
     raise child_exception_type(errno_num, err_msg)
 FileNotFoundError: [Errno 2] No such file or directory: 'git'

I believe it fails on get_version and that's this function, especially git rev-parse HEAD which is the thing we now use to get the exact version to the kivy installation (helps with debugging) together with date, etc.

What do you fetch Kivy source with? Either we'll need to add some "exception" to the setup.py, but it'd be probably better to preserve git hash in the version. It should however silently ignore the hash if it can't fetch if from git, but for that it needs git installed.

@KeyWeeUsr KeyWeeUsr added the Component: distribution Wheels, apt PPA, conda, end user install issues label May 12, 2017
@thopiekar
Copy link
Contributor Author

Hmm, I even don't know exactly what it is doing, but what is then missing? git itself?
In that case I just care that git is installed and if git is installed, but there is something differently fetched, so it can't get the version I can also try to set a conflicting dependency, so git gets removed.

@dessant
Copy link
Contributor

dessant commented May 15, 2017

Could we also remove libsdl-image1.2-dev and libsdl-ttf2.0-dev from build deps and python-pygame from suggested packages?

@KeyWeeUsr
Copy link
Contributor

Basically you don't have git installed and it complains. Also, get_version isn't the only thing complaining, however make clean for some reason doesn't crash the build (also uses git). Just add git to the build deps and see how it goes :)

@dessant dessant added this to the 1.10.1 milestone May 25, 2017
@CodeMouse92
Copy link

Definitely need this fixed. My company is on Ubuntu, and we use Kivy in development.

@stale
Copy link

stale bot commented Oct 19, 2017

Thanks for your contribution!

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs in the next 14 days.

If you would like this issue to remain open:

  1. Verify that you can still reproduce the issue with the latest development version of Kivy
  2. Comment that the issue is still reproducible and include:
    • What version of Kivy you reproduced the issue on
    • What OS and version you reproduced the issue on
    • What steps you followed to reproduce the issue (if missing or incomplete)
    • A minimal working example which reproduces the issue (if missing or incomplete)
    • Full runtime logs

Issues that are labeled as confirmed or triaged will not be automatically marked as stale. For a full list of exempt labels, see the config.

@stale stale bot added the stale label Oct 19, 2017
@inclement inclement removed the stale label May 12, 2018
@tshirtman
Copy link
Member

so it seems daily successfully built for bionic last night, https://launchpad.net/~kivy-team/+archive/ubuntu/kivy-daily/+sourcepub/9086624/+listing-archive-extra but i'm not sure why there seem to be no build for the other targets, @thopiekar if you have some time to look into this :).

@tshirtman
Copy link
Member

Ok, only bionic was active, i activated Artful, Xenial and Trusty to see how it goes.

@thopiekar
Copy link
Contributor Author

Hmm, strange that bionic was only active on the daily PPA.
Or are we talking about the stable PPA?

If we are talking about stable I doubt it will work. I simplified the packaging files for the daily ones and they also need this simplification.

This issue is part of an milestone planning. What is the ETA? (For my planning.)

@tshirtman
Copy link
Member

no, it's the daily, but it's ok now, though i removed trusty that didn't build (and it's quite old so i'm ok if we don't bother).

I'm trying to push for a release asap, but it's ok if the stable ppa arrives a few days later, i just wanted to be sure the daily did build and run, as it would be a good indicator for a release.

@tshirtman
Copy link
Member

tshirtman commented May 13, 2018

Also i'm looking into the control file for updates, as it currently doesn't depend on the possible providers and just suggests python-pygame, i think i'd rather see something like

Depends: ${misc:Depends},
         libmtdev1,
         ${python:Depends},
         python-docutils,
         python-pygments,
         xclip | xsel,
         libsdl2-2.0 | python-pygame,
         libsdl2-image-2.0-0 | python-pygame | python-gi | python-pil,
         libsdl2-mixer-2.0-0 | python-pygame | libgstreamer-1.0-0,
         libsdl2-ttf-2.0-0 | python-pygame | python-pil

I of course didn't test that yet, but the idea would be to give some flexibility for providers, while ensuring that kivy can run without any optional dep. I didn't look yet into what to require for raspberry-pie egl or X11 window provider, but it would be good to.

I'm also unsure if we need to depend on libmtdev, we could just suggest it as it's only for hid multitouch devices, and not all setups need that.

@thopiekar
Copy link
Contributor Author

I like the idea. The only thing I don't like are the package names with the version included. Some packages provide neutral names. Using them is better if you build across different Ubuntu releases.
Regarding your RPI provider. Some distributions are either placing the RPI drivers manually or create custom packages. I wouldn't care about them. It is not worth in my opinion.. at least not at the moment.

@tshirtman
Copy link
Member

tshirtman commented May 13, 2018

I assume you mean for libsdl2-2.0 (and friends) and libgstreamer1.0-0? from what i see in apt search, it's part of the name here, and only -dev without a version number , although i agree it looks weird, but i'd be happy if you have neutral names that can be installed instead.

For rpi, yes, but if we can't provide the name, we can't make it an alternative, and in this situation, the user would have to install a provider they won't be able to use, since we make it a hard depend.

But it could be acceptable if it makes it better for the vast majority of users, as i think it does.

Are you ok if i experiment with the aforementioned change in the daily ppa recipe? If you think you'll have some time soonish to do it proper, i'm ok with waiting.

@thopiekar
Copy link
Contributor Author

Feel free to experiment with it. That is for what the daily PPA is for. If something gets terribly broken or you need some hints or help just ask. Maybe we can find a solution for something together then 😉👍

@tshirtman
Copy link
Member

So, after a few breakage and fixups, it seems to be a bit better, feel free to have a look when you can, if we can release this week or next week end that would be nice (but of course, it's not required to have things synced directly at release time).

@tshirtman
Copy link
Member

tshirtman commented Jun 7, 2018

@thopiekar it seems one remaining issue with the current kivy-daily ppa is that if libsdl2-image is not required (e.g because PIL/Pillow is already installed), and the sdl2 window provider is used, then it fails, because it also depends on libsdl2-image to work, so ideally, i think setting something like (libsdl2-2.0-0 & libsdl2-image-2.0)|python-pygame on lines like https://github.com/kivy/kivy-sdk-packager/blob/master/linux/debian/daily/control#L153 would be ideal, but i don't find indication that such thing is possible in the manual (looking here https://www.debian.org/doc/debian-policy/#declaring-relationships-between-packages). Alternatively, i see 4 possible solutions.

  • @dolang pull request https://github.com/kivy/kivy-sdk-packager/pull/41/files#diff-c7fec9fc7a24a1227a3d8f6b598050b2 that simply moves the alternative image provider options to suggests.
  • putting libsdl2-image-2.0 in Recommends section, so it's always installed, unless the user know they don't want it (because they use pygame, so they ask for --no-install-recommends.
  • creating a meta-package (e.g kivy.deps.sdl2) that depends on all the sdl2 libs and using it on every alternative, instead of each variants, it's a bit more blunt, but it could make it clear these are intented to be used together.
  • there's an existing python-sdl2 package that depends on these as well, again, it's a bit blunt because it would install a third party lib we don't need, just for its dependencies, but it would have the upside of not polluting the package namespace, if that's a concern.

feedback on that welcome.

Aside that, i think the package works well, and it would certainly be nice to retrofit the changes into the kivy-stable ppa for next "really soon now" release.

@tshirtman tshirtman modified the milestones: 1.10.1, 1.11.0 Jun 17, 2018
@thopiekar
Copy link
Contributor Author

Well, that's the problem with Debian packaging.. You can't describe an "(foo AND bar)" directly. Only thing we can do is creating separate packages per window provider. In each we can tell that they are providing a window-provider for kivy and tell kivy that it depends on a window provider.
That's in my opinion the only way to describe this dependency.

So this is kind of the solution you had in mind with point #3. #2 is superfluous when going the way as described above. #4 is a dirty hack, which I would like to avoid.
For #1 I would need to take a look at the PR. Have too less time at the moment and need to catch some sleep.

Therefore: Good night! 😛

@matham
Copy link
Member

matham commented May 16, 2019

We made sdl2 a hard dependency, so this solves most of the issues. rpi doesn't need it so it would be superfluous, but this fixes it for everywhere else, so it should be ok.

@matham matham closed this as completed May 16, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component: distribution Wheels, apt PPA, conda, end user install issues Platform: Linux
Projects
None yet
Development

No branches or pull requests

7 participants