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

RPi: remove platform #16321

Merged
merged 1 commit into from
Sep 9, 2020
Merged

RPi: remove platform #16321

merged 1 commit into from
Sep 9, 2020

Conversation

lrusak
Copy link
Contributor

@lrusak lrusak commented Jun 28, 2019

Similar to #16043

To be clear for people. This does not remove support for the Raspberry Pi. It simply removes the RPi specific platform in Kodi. Raspberry Pi users can move to use GBM. The Raspberry Pi 4 will only ever use GBM and the older models can use it as well.

There as some things that aren't up to feature parity but it will be a level playing field for RPi, amlogic, rockchip, allwinner, etc. If someone submits improvements for one platform it will benefit all the platforms. That is the biggest reason for this removal.

This removal has been pushed off for some time now. I feel it is best to do this early in our V19 release cycle as to give other developers early warning that they will have to make changes to their development and OS's. This PR removes over 10,000 lines of platform specific code.

The entire goal of this (and what I have been working towards for over two years now) is to unify the code base into a more platform agnostic way. Developers are encouraged to move to GBM and ask as many questions as they would like about it.

Thanks to everyone that has made this possible so far. @popcornmix @6by9 @anholt @Kwiboo @chewitt and anyone else that I missed. There is still a lot to do but we will get there and when we do it will work on all platforms.

I am always available to answer any questions as they come up and can always be pinged in the #kodi-dev or #kodi-linux IRC rooms on freenode.

@lrusak lrusak added Type: Cleanup non-breaking change which removes non-working or unmaintained functionality Platform: Linux Platform: RPi v19 Matrix Type: Breaking change fix or feature that will cause existing functionality to change labels Jun 28, 2019
@lrusak lrusak added this to the Matrix 19.0-alpha 1 milestone Jun 28, 2019
@lrusak lrusak requested review from popcornmix and Rechi June 28, 2019 17:09
@@ -1135,14 +1135,6 @@ const infomap weather[] = {{ "isfetched", WEATHER_IS_FETCHED },
/// @return **True** if Kodi is running on a linux/unix based computer.
/// <p>
/// }
/// \table_row3{ <b>`System.Platform.Linux.RaspberryPi`</b>,
Copy link
Member

Choose a reason for hiding this comment

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

Can you add this to removed infolabels for v19? Search for "@skinning_v18 [Removed Infolabels] The following infolabels have been removed:" in this file

Copy link
Contributor Author

Choose a reason for hiding this comment

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

added, I hope I did that correctly!

@graysky2
Copy link
Contributor

graysky2 commented Jun 29, 2019

I believe this PR would remove the RPi specific MAKEFLAGS for kodi and for ffmpeg thus removing the specific optimizations for at least those two components. Any way to allow for these?

For example:
https://github.com/xbmc/xbmc/pull/16321/files#diff-3127e7a36ef2ad9c5df64b48679c2899L45
https://github.com/xbmc/xbmc/pull/16321/files#diff-25bb87ae2148a0a2abba0a8a4296b5bfL416

@lrusak
Copy link
Contributor Author

lrusak commented Jul 1, 2019

I believe this PR would remove the RPi specific MAKEFLAGS for kodi and for ffmpeg thus removing the specific optimizations for at least those two components. Any way to allow for these?

For example:
https://github.com/xbmc/xbmc/pull/16321/files#diff-3127e7a36ef2ad9c5df64b48679c2899L45
https://github.com/xbmc/xbmc/pull/16321/files#diff-25bb87ae2148a0a2abba0a8a4296b5bfL416

set your CFLAGS and CXXFLAGS in your env before building

@jenkins4kodi jenkins4kodi added the Rebase needed PR that does not apply/merge cleanly to current base branch label Jul 1, 2019
@graysky2
Copy link
Contributor

graysky2 commented Jul 1, 2019

set your CFLAGS and CXXFLAGS in your env before building

Yes, but I thought the the cmake scripts also passed some extra flags particularly for building ffmpeg.

@lrusak
Copy link
Contributor Author

lrusak commented Jul 1, 2019

set your CFLAGS and CXXFLAGS in your env before building

Yes, but I thought the the cmake scripts also passed some extra flags particularly for building ffmpeg.

same answer

@stefansaraev
Copy link
Contributor

this needs a rebase ;)

@phunkyfish
Copy link
Contributor

@lrusak do you want to progress this?

@phunkyfish phunkyfish added the PR Cleanup: Ask Author PR appears to still be relevant and mergeable. Comment to author to check on status. label Mar 9, 2020
@lrusak
Copy link
Contributor Author

lrusak commented Mar 21, 2020

Yes this will continue to stay open.

@phunkyfish phunkyfish added PR Cleanup: Recent Checked as part of PR cleanup. PR has been followed up on recently. and removed PR Cleanup: Ask Author PR appears to still be relevant and mergeable. Comment to author to check on status. labels Mar 23, 2020
@lrusak lrusak requested a review from garbear as a code owner September 5, 2020 20:44
docs/README.md Show resolved Hide resolved
xbmc/Application.cpp Outdated Show resolved Hide resolved
Copy link
Member

@garbear garbear left a comment

Choose a reason for hiding this comment

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

diff looks good

@jenkins4kodi jenkins4kodi removed the Rebase needed PR that does not apply/merge cleanly to current base branch label Sep 5, 2020
@popcornmix
Copy link
Member

I think you've removed AESinkPi.cpp/AESinkPi.h from the makefiles but not removed the files themselves.

@jenkins4kodi jenkins4kodi added the Rebase needed PR that does not apply/merge cleanly to current base branch label Sep 8, 2020
@jenkins4kodi jenkins4kodi removed the Rebase needed PR that does not apply/merge cleanly to current base branch label Sep 8, 2020
@lrusak
Copy link
Contributor Author

lrusak commented Sep 8, 2020

I think you've removed AESinkPi.cpp/AESinkPi.h from the makefiles but not removed the files themselves.

nice catch, probably lost in the rebase. Updated.

Copy link
Member

@popcornmix popcornmix left a comment

Choose a reason for hiding this comment

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

Look okay.

@garbear
Copy link
Member

garbear commented Sep 8, 2020

@lrusak
Copy link
Contributor Author

lrusak commented Sep 8, 2020

https://github.com/garbear/xbmc/blob/rpi-removal/docs/README.RaspberryPi.md

Perfect thanks! I've updated it with this included.

@garbear
Copy link
Member

garbear commented Sep 8, 2020

Does the GBM build for raspberry pi require any pi-specific steps that should be mentioned in the linux readme?

@lrusak
Copy link
Contributor Author

lrusak commented Sep 8, 2020

Does the GBM build for raspberry pi require any pi-specific steps that should be mentioned in the linux readme?

Not that I can think of. Users will have to use the VC4 DRM and mesa3d driver but using a DRM driver and a mesa3d driver are typical of any platform using GBM (other than some mali platforms). @popcornmix can you think of any other specifics that you would like to add?

@popcornmix
Copy link
Member

I think it's okay. To run you need kms (dtoverlay=vc4-kms-v3d or dtoverlay=vc4-fkms-v3d) which is a default on Pi4 (but not earlier models).

I suspect users building themselves are familiar with this. If it seems to be a common issue I guess the
README.RaspberryPi.md stub could add it, or add it to the wiki (it's more an issue for running kodi than building it).

@lrusak
Copy link
Contributor Author

lrusak commented Sep 9, 2020

@popcornmix your button 😊

@popcornmix popcornmix merged commit 811bd49 into xbmc:master Sep 9, 2020
@graysky2
Copy link
Contributor

graysky2 commented Oct 3, 2020

Raspberry Pi users can move to use GBM. The Raspberry Pi 4 will only ever use GBM and the older models can use it as well.

I think it's okay. To run you need kms (dtoverlay=vc4-kms-v3d or dtoverlay=vc4-fkms-v3d) which is a default on Pi4 (but not earlier models). I suspect users building themselves are familiar with this. If it seems to be a common issue I guess the
README.RaspberryPi.md stub could add it, or add it to the wiki (it's more an issue for running kodi than building it).

@lrusak @popcornmix - If all Pis can in fact use gbm moving forward, what the default recommendations for:

  • RPi1
  • RPi2
  • RPi3
  • RPi4

Currently, for RPi4, I am using:

dtoverlay=vc4-kms-v3d-pi4,cma-size=402653184
dtoverlay=rpivid-v4l2

@popcornmix
Copy link
Member

Use the forum for these questions.

@graysky2
Copy link
Contributor

graysky2 commented Oct 3, 2020

graysky2 added a commit to archlinuxarm/PKGBUILDs that referenced this pull request Dec 10, 2020
Upstream dropped support for RPi platform since gbm matured and is stable[1].
This package should support RPi2+ hardware.

1. xbmc/xbmc#16321
@lrusak lrusak deleted the rpi-removal branch February 11, 2022 21:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Platform: Linux Platform: RPi PR Cleanup: Recent Checked as part of PR cleanup. PR has been followed up on recently. Type: Breaking change fix or feature that will cause existing functionality to change Type: Cleanup non-breaking change which removes non-working or unmaintained functionality v19 Matrix
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

9 participants