Luke 37008 Posted September 16, 2014 Share Posted September 16, 2014 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 More sharing options...
Luke 37008 Posted September 16, 2014 Share Posted September 16, 2014 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 More sharing options...
Luke 37008 Posted September 17, 2014 Share Posted September 17, 2014 i've adjusted GetLocalIpAddresses. Let me know how it works out. thanks. Link to comment Share on other sites More sharing options...
woodsb02 17 Posted September 17, 2014 Share Posted September 17, 2014 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 More sharing options...
Luke 37008 Posted September 17, 2014 Share Posted September 17, 2014 we'll tag in github starting with the next release. or do you need something in code? Link to comment Share on other sites More sharing options...
woodsb02 17 Posted September 17, 2014 Share Posted September 17, 2014 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 More sharing options...
marcisikoff 4 Posted September 17, 2014 Share Posted September 17, 2014 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 More sharing options...
woodsb02 17 Posted September 17, 2014 Share Posted September 17, 2014 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 More sharing options...
gsnerf 26 Posted September 17, 2014 Share Posted September 17, 2014 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 More sharing options...
woodsb02 17 Posted September 18, 2014 Share Posted September 18, 2014 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 More sharing options...
Luke 37008 Posted September 18, 2014 Share Posted September 18, 2014 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 More sharing options...
Luis 41 Posted September 18, 2014 Share Posted September 18, 2014 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 More sharing options...
woodsb02 17 Posted September 18, 2014 Share Posted September 18, 2014 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 More sharing options...
Luke 37008 Posted September 18, 2014 Share Posted September 18, 2014 yes that is correct. Link to comment Share on other sites More sharing options...
woodsb02 17 Posted September 19, 2014 Share Posted September 19, 2014 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 More sharing options...
woodsb02 17 Posted September 19, 2014 Share Posted September 19, 2014 This seems to be a bug in mono working on FreeBSD... in the mono code it expects to be able to use /proc/net/route (refer to file mcs/class/System/System.Net.NetworkInformation/IPInterfaceProperties.cs ) https://github.com/mono/mono/search?utf8=%E2%9C%93&q=%22proc%2Fnet%2Froute%22&type=Code Link to comment Share on other sites More sharing options...
woodsb02 17 Posted October 15, 2014 Share Posted October 15, 2014 (edited) 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 October 15, 2014 by woodsb02 Link to comment Share on other sites More sharing options...
Luke 37008 Posted October 15, 2014 Share Posted October 15, 2014 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 More sharing options...
woodsb02 17 Posted October 15, 2014 Share Posted October 15, 2014 No, because those binary files are compiled for Linux, not FreeBSD. Link to comment Share on other sites More sharing options...
Luke 37008 Posted October 15, 2014 Share Posted October 15, 2014 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 More sharing options...
woodsb02 17 Posted October 15, 2014 Share Posted October 15, 2014 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 More sharing options...
Luke 37008 Posted October 15, 2014 Share Posted October 15, 2014 you need to supply the dependencies here: http://mediabrowser.tv/community/index.php?/topic/3634-linux-setup/ including ffmpeg, which i'll add to that page on how to do that. then yes, you just run it via mono. the only things that have to be compiled per OS are the dependencies. Link to comment Share on other sites More sharing options...
Luke 37008 Posted October 16, 2014 Share Posted October 16, 2014 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. 1 Link to comment Share on other sites More sharing options...
Abobader 2941 Posted October 27, 2014 Share Posted October 27, 2014 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 More sharing options...
Luke 37008 Posted October 27, 2014 Share Posted October 27, 2014 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 More sharing options...
Recommended Posts