Jump to content

MB3 on FreeNAS plugin


prashy21

Recommended Posts

yes it can for pre-made packages such as yours yes. so in that case, libwebp is a dependency. for other distros where we don't have a pre-made package yet, we have been including them for now until we have a package. it is easier than answering the questions over and over why won't my server start. because libxxx isn't available. we are working on an ubuntu package and it's the same situation there. once the package is ready we will just use the built-in dependency management.

Link to comment
Share on other sites

i don't follow. i just removed what we added yesterday so if you grab the source you can manage those dependencies like before.

Link to comment
Share on other sites

woodsb02

Sorry to be the bearer of bad news... but still getting a similar error. See logs below.

http://slexy.org/view/s25eO6iMxB

 

Also, for ease of my port Makefile, is there a way to tell what the version is going to be before i compile? I.e. I can't find in the code where it states this is version 3.0.5373.35518

Link to comment
Share on other sites

woodsb02

Yeah, sorry, didn't mean to push that point as you already mentioned it.

I was just wondering if the version is already in the code somewhere so I don't first have to build it and then go back and update my Makefile with the version after its already built?

If its not in the code, no problems... just thought it must be somewhere since the binary seems to know what version it is :)

Link to comment
Share on other sites

marcisikoff

Great to see work on FreeNAS plugin and seems like progress is steady, with expected gotchas along the way.

 

I'm a fierce believer in client / server divide so running freeNAS as server and Win7 as HTPC client, I have to chuckle when I'm told "You can also install server on your Win7 HTPC...it's easy and takes up little resources".

 

Yeah, I keep my dirty dishes out of the cabinet, but hey, would you want to put them in your cabinet?  I mean it's easy...quick...might take only one shelf.

 

Anyway, glad to see a FreeNAS plugin is moving... awesome news.

Link to comment
Share on other sites

woodsb02

I am used to software builds where you first download all the code, and then compile it offline.

 

With MediaBrowser, it seems there are a number of times in the build that require an internet connection (after the source code has been downloaded).

 

Can someone please explain these two steps, why they are needed and if they can be skipped?

mozroots --import --sync

mono .nuget/NuGet.exe update -self

 

Also, I noticed during the xbuild that it seemed to be going out to the internet. Again, can anyone explain what it is getting, why it didn't originally come with the source code and if it can be skipped?

 

My FreeBSD port failed to build when I uploaded it to a build server. I suspect that's because it denied an internet connection for the entire build process, but I need to look into it further.

Link to comment
Share on other sites

In order:

  • mozroots --import --sync does import all trusted ssl root certificates from the system into the mono certificate store so mono can access ssl secured websites. You generally need to do this only once, but if you build a package for everyone to use you will propably want to include it as you don't know if users already executed that or not. Also in general the package systems do not differ betwenn install or reinstall. Depending on how mono was installed in the system this might already have been done by the install procedure.
  • NuGet is a .net dependency management system (much like linux distributions package systems, just for .net libraries instead of software or native libraries).
  • mono .nuget/NuGet.exe update -self would instruct the NuGet package manager to update itself. You generally do not need to do this manually as a working and current version is provided when downloading the code.
  • when building the code xbuild checks the nuget package files defined alongside the code, downloads the dependencies and uses them to compile the code. You cannot skip that, it's required.

I hope this helps :)

Link to comment
Share on other sites

woodsb02

Ok, so given that the FreeBSD package will be built on a build server and then installed on people's home servers, am I right in saying the mozroots command will be required twice (once before building on the build server to allow NuGet to get dependencies from ssl sites and once after installing the package on people's home servers to allow MediaBrowser to contact ssl sites)?

 

Also, out of curiosity, is there a way to find out the complete list of dependencies which NuGet goes out to download?

Link to comment
Share on other sites

what ssl sites are you referring to that we contact after installation? i believe you are handling all the dependence in a way that will ensure that doesn't happen. the exception of course is contacting our own servers but that's not for downloading dependencies.

Link to comment
Share on other sites

 

 

Also, out of curiosity, is there a way to find out the complete list of dependencies which NuGet goes out to download?

the list of dependencies is in the packages.config of each project.

Link to comment
Share on other sites

woodsb02

Luke: as I understand it each PC running MediaBrowser after installation from the package will have had to run mozroot to allow it to communicate with the MediaBrowser website over ssl (assuming this uses ssl) and potentially download media metadata if that uses ssl (not for dependencies).

Link to comment
Share on other sites

woodsb02

I may have found something that explains the DLNA not working. I managed to compile MediaBrowser in debug mode, and then run with mono --trace=N:nothing ...

 

I can now see the output below on my screen. Another difference between Linux and BSD is that BSD does not use /proc by default.

[0x805907000:] EXCEPTION handling: System.IO.DirectoryNotFoundException: Could not find a part of the path "/proc/net/route".
[0x80ce3b800:] EXCEPTION handling: System.IO.DirectoryNotFoundException: Could not find a part of the path "/proc/net/route".
[0x80ce3b800:] EXCEPTION handling: System.IO.DirectoryNotFoundException: Could not find a part of the path "/proc/net/route".
[0x805907000:] EXCEPTION handling: System.IO.DirectoryNotFoundException: Could not find a part of the path "/proc/net/route".
[0x80ce3b800:] EXCEPTION handling: System.Net.Sockets.SocketException: The requested address is not valid in this context
[0x80180e000:] EXCEPTION handling: System.InvalidOperationException: The BlockingCollection<T> has been marked as complete with regards to additions.
. USN: uuid:ab3147707d3cceb1d5ebf01b16930831::upnp:rootdevice75.39964ebf01b16930831/description.xml
        The requested address is not valid in this context
        System.Net.Sockets.SocketException
          at System.Net.Sockets.Socket.Bind (System.Net.EndPoint local_end) [0x00000] in <filename unknown>:0
          at MediaBrowser.Dlna.Ssdp.Datagram.Send () [0x00000] in <filename unknown>:0

Link to comment
Share on other sites

  • 4 weeks later...
woodsb02

Back to the question of packaging MediaBrowser for FreeBSD, I have received the following advice from a FreeBSD ports commiter. Regarding the mozroots and NuGet required for the source build.

 

"The issue is that software source code is fetched separately by the FreeBSD ports system, and are then expected to be all in place for the package building. The build system is not allowed to connect to the Internet after the download of the original source code.

 

What we need to do is fetch ALL the required source yourself, run whatever commands are needed to import any external source code trees, and then repackage the sources yourself for use by the FreeBSD build system (so it can skip mozroots and NuGet)."

 

Can anyone provide some advice as to how these steps can be skipped during the build? (Eg. Where/how to manually download anything external that NuGet is trying to get).

Edited by woodsb02
Link to comment
Share on other sites

Back to the question of packaging MediaBrowser for FreeBSD, I have received the following advice from a FreeBSD ports commiter. Regarding the mozroots and NuGet required for the source build.

 

"The issue is that software source code is fetched separately by the FreeBSD ports system, and are then expected to be all in place for the package building. The build system is not allowed to connect to the Internet after the download of the original source code.

 

What we need to do is fetch ALL the required source yourself, run whatever commands are needed to import any external source code trees, and then repackage the sources yourself for use by the FreeBSD build system (so it can skip mozroots and NuGet)."

 

Can anyone provide some advice as to how these steps can be skipped during the build? (Eg. Where/how to manually download anything external that NuGet is trying to get).

 

it looks like the same situation as the unraid plugin. it is using the compilation output, which i post with each release:

 

https://github.com/MediaBrowser/MediaBrowser.Resources/tree/master/Releases/Server

 

can you use that?

Link to comment
Share on other sites

no that's only the mono output. there's nothing in MBS code specific to linux. there are some linux dependencies included, but they won't be loaded by freebsd, so at worst, they're just adding to the zip size.

Link to comment
Share on other sites

woodsb02

Oh ok. How are these files intended to be used? Is this the fully compiled code, and it just needs to be run with mono MediaBrowser.exe?

 

Does mono not compiled binaries specific to the operating system?

Link to comment
Share on other sites

  • 2 weeks later...

if you are going to use the zip, i've updated the url tonight, fyi. thanks.

 

https://github.com/MediaBrowser/MediaBrowser.Releases/raw/master/Server/MediaBrowser.Mono.zip

 

 

that url will always point to the latest, and there will be numbered releases in there as well.

 

Good day Luke,

 

Is the above link have the latest mb3 server build?

 

I really give up on the sh build on freebsd.

 

My best

Link to comment
Share on other sites

Good day Luke,

 

Is the above link have the latest mb3 server build?

 

I really give up on the sh build on freebsd.

 

My best

It is the latest stable. you can also build that zip yourself on windows using the windows build script

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...