Are there any nightly builds for OSMC?

#1

As per the title - are there any nightly builds available.

I used to run nightlies for xbmc but those have long since died. The only nightlies I can now find is openelec builds for the R-Pi (Kodi 16)

How do you build OSMC?
After Stable version - No more Update ? Where's a project like Nightly or similar?
#2

Hi

There aren’t. I plan to release all Kodi 16 Betas and RC as soon as they are available however.

I don’t have time to maintain nightlies. It would be good if someone in the community would pick this up. Would you be interested?

Sam

#3

Sounds like a idea. I would love to look into this.

#4

I just need someone to maintain patches on top of master. I can help with this and whomever maintains it can use our CDN to host builds.

I’m happy to walk someone through this

Sam

#5

Not sure what kind of learning curve there will be but I’m very familiar with linux. I"m not a software developer though although have messed around plenty with various languages.

Would love to start maintaining this if you could show me the ropes to get started.

#6

Do you have a 64-bit Ubuntu setup available or a spare Pi 2? A spare Pi 2 is a little more favourable. You’d need about 16GB of free space.

Building OSMC packages is quite easy, but we haven’t done enough to document it.

git clone https://github.com/osmc/osmc
cd osmc/package/mediacenter-osmc
make PLATFORM

where PLATFORM is either rbp1, rbp2 or vero.

That’s all it takes to build Kodi for OSMC. You’ll get two .deb files after, one is a release build and one is a debug build.

I’d suggest forking OSMC, and making a new directory under package/ called mediacenter-next-osmc. You would then need to edit build.sh to change Isengard’s commit to ‘master.tar.gz’. You could then run ‘make rbp2’. If a patch doesn’t merge cleanly, you’ll need to update it so that it does. As it stands, I believe all patches merge with Jarvis, which is nice (and makes running nightlies) quite easy. If you want to add @popcornmix’s ‘newclock4’ patches, you’ll want to remove the Isengard backports patch from patches/ and add this instead.

Sam

#7

Sounds straight forward enough.

I have a spare Pi2 I can use. Will start and let you know how it goes.

#8

If you use GitHub’s compare feature and add ‘.patch’, you conveniently get a patch file that you can drop in patches/.

For example:

this is how I get @popcornmix’s Isengard backports:

https://github.com/popcornmix/xbmc/compare/xbmc:Isengard...popcornmix:isenguard_rbp_backports.patch

For ‘newclock4’ and master, you’d do:

https://github.com/popcornmix/xbmc/compare/xbmc:master...popcornmix:newclock4.patch

It would be great if you could do a Vero build too. This won’t need the newclock 4 patch.

A few things:

  • Remember to ‘sync’ patches between mediacenter-osmc and mediacenter-next-osmc periodically: i.e. if I add a new patch or update it, you should adapt that for nightlies
  • Remember to edit files/DEBIAN/control and edit version. I use 1{4|5}.990+ for beta and RC versions. For nightlies, you may wish to start at 15.5xxx-1 (the dash is an internal revision) and this should give you ample room.

I can give you instructions on how to provide builds to users. I would recommend you do it Milhouse style which is keeping a small changelog of new commits etc. This will upgrade the APT package, but I can also show you how to get users back on normal OSMC release builds.

It really will be great to have someone in the community maintain these builds.

Sam

#9

Thanks for the guide.

I’ll start tackling this tomorrow and get getting everything setup.

#10

Really seem to be struggling to just get the basic media-center-osmc built. After a few hours it eventually dies with a connection error to mirror.de.leaseweb.net

I’ve tried 4 or 5 times and it always dies here:

--2015-10-10 18:40:15--  http://mirror.de.leaseweb.net/xbmc/addons/isengard/resource.language.en_au/resource.language.en_au-1.0.3.zip
Resolving mirror.de.leaseweb.net (mirror.de.leaseweb.net)... 37.58.58.140, 2a00:c98:2030:a034::21
Connecting to mirror.de.leaseweb.net (mirror.de.leaseweb.net)|37.58.58.140|:80... failed: Connection timed out.
Connecting to mirror.de.leaseweb.net (mirror.de.leaseweb.net)|2a00:c98:2030:a034::21|:80... failed: Network is unreachable.

Its a bit of an odd issue. If I open another session to the pi while its trying to download the file and do a wget to the site it connects fine. Seems every 1 out of 10 tries fails to connect though. Maybe issues with the mirror site.

Will keep trying and see if the compile goes through.

#11

Hi

You can use a different XBMC mirror. I just hardcoded one because it makes things easier. Kodi languages are now considered addons and are no longer bundled with Kodi, but we want to bundle them so users don’t need a network connection to switch language and we can offer language setup from the tutorial. As you will see, I have added a rather crude way of directory scraping (and downloading all supported languages) automatically. This only works on Apache2 mirrors with directory listings enabled that haven’t customised their page. That’s why I chose Leaseweb.

Give it a few hours and it will probably be fine again

Sam

#12

Sam - dropped you a message with a few questions.

I’ve got a few more - noob mode on :smile:

In the build.sh file it pulls the source from 4ed3eb6692b6b755354a5fe18d5cd45f8003ea26.tar.gz which seems to stay consent.

This refers to a specific commit for isengard correct? Shouldn’t this change to use the latest commits?

For Jarvis should I just point this to master.tar.gz, remove the isengard backport and use newclock4 patch?

Slowly getting there though - I can compile the standard build with no changes and rbp1 & 2 and vero compiles fine.

#13

Hi

I will answer your questions here for the benefit of others;

Firstly, I would copy mediacenter-osmc to mediacenter-next-osmc. Then change build_in_env to reflect the new directory name.

The reference to the specific commit is because Isengard is a branch (and thus a moving target). We prefer to pin the upstream and then apply our own patches. This makes it very easy to track changes and get no unwanted surprises.

You will also want to change API_VERSION=15 to ensure you are getting the correct language files.

You should change this commit tag to pull upstream, but do not just change it to ‘master.tar.gz’, change it to a specific commit. If you use Git correctly, you will be able to work out what builds were produced on which day which makes for easy tracking. You’ll also be able to build an identical build, or an almost identical build with just one change etc.

There is now newclock5: https://github.com/popcornmix/xbmc/tree/newclock5. Indeed, removing the backport patch and adding the newclock5 one will work. There may be times when OSMC commits won’t apply cleanly afterwards, but I can help with that.

You also asked if it’s OK to have newclock5 in the directory and not affect Vero builds. Provided that the newclock5 patch is appropriately prefixed (rbp-xxx-SOME_PATCH_NAME.patch), then it will only be applied for that device. The only patches that are applied universally are prefixed with ‘all’.

Hope this helps and let me know if you have any questions

Sam

#14

Ok, I’ve created the folder and changed build_in_env. Also pointed to the latest commit (103d2d5e70) ,removed the backport patch and using https://github.com/popcornmix/xbmc/compare/xbmc:master...popcornmix:newclock5.patch

When I try and build rbp2 I get this:

Applying patch all-000-disable-cec-toasts.patch
patching file xbmc/peripherals/devices/PeripheralCecAdapter.cpp
Hunk #2 succeeded at 1586 (offset -15 lines).
Hunk #3 succeeded at 1632 (offset -15 lines).
Applying patch all-001-system-info-display.patch
patching file xbmc/windows/GUIWindowSystemInfo.cpp
Hunk #1 FAILED at 56.
Hunk #2 succeeded at 100 with fuzz 2.
Hunk #3 succeeded at 122 with fuzz 1.
1 out of 3 hunks FAILED -- saving rejects to file xbmc/windows/GUIWindowSystemInfo.cpp.rej
Exiting build
#15

Hi

Yes – that means that one of our patches no longer applies to Kodi. all patch series is applied before the device specific ones, so it means this patch needs a rebase against Kodi master rather than newclock5 specifically.

You will need to pull Kodi master (git clone https://github.com/xbmc/xbmc). Then you should try and apply the patch with git am. It will fail. Git will then let you edit the patch and rebase. You can then do git format-patch HEAD~1…HEAD and copy that patch over the original.

Sam

#16

I was kind of following but then you lost me at the patching bit :smile:
I’ve run git am against the patch that was failing. What do I need to edit in the patch?

Applying: Cosmetic changes to the System Information dialog
error: patch failed: xbmc/windows/GUIWindowSystemInfo.cpp:56
error: xbmc/windows/GUIWindowSystemInfo.cpp: patch does not apply
Patch failed at 0001 Cosmetic changes to the System Information dialog
The copy of the patch that failed is found in:
   /home/disk4/osmc/xbmc/.git/rebase-apply/patch

Details of the patch:
http://pastebin.com/F2BxpnEc

#17

Done some reading up and fiddling but still can’t work out what I need to do to get past this step. :confused:

#18

You would need to edit the Kodi source against the latest patch. Then afterwards, you replace the old patch in patches/.

The patch you mentioned there is a small one, so it may be easier for you to hand edit it and use git diff to generate a new one. This is a nice resource on how to resolve Git merge conflicts: http://tedfelix.com/software/git-conflict-resolution.html

Sam

#19

Thanks for the link. Will spend some time reading up on git - I’m completely lost at the moment.

#20

I can rebase the patches if you would like, but can’t guarantee I can do this regularly / as soon as they break.

Sam