2009-04-27, 06:08
I was looking into the reason that the Bablylon Beta1 ubuntu runtime package for xbmc-common has a dependency on libcurl4-openssl-dev. This doesn't seem like it should be required for a runtime package.
What I saw is that there is an explicit file open being done on /usr/lib/libcurl.so, because of the following in Makefile.include.in:
ifeq (linux,$(findstring linux, $(ARCH)))
ifeq ($(ARCH), x86_64-linux)
DEFINES+=-DDLL_PATH_LIBCURL="\"/usr/lib64/libcurl.so\""
else
DEFINES+=-DDLL_PATH_LIBCURL="\"/usr/lib/libcurl.so\""
endif
endif
I was able to fix the crash at startup without the dev package installed, and I seem to have reasonable network functionality (weather, scrapers, etc). Basically, I just changed them to use the runtime shared library that the dev library symlinks to anyway:
ifeq (linux,$(findstring linux, $(ARCH)))
ifeq ($(ARCH), x86_64-linux)
DEFINES+=-DDLL_PATH_LIBCURL="\"/usr/lib64/libcurl.so.4\""
else
DEFINES+=-DDLL_PATH_LIBCURL="\"/usr/lib/libcurl.so.4\""
endif
endif
Is there a reason it was done this way? Or is this an oversight? It would be nice to be able to remove this dependency for final release to be able to support smaller footprint systems. On my HTPC, this 1 dev library ends up pulling in all of the base dev libraries, gcc, etc.
What I saw is that there is an explicit file open being done on /usr/lib/libcurl.so, because of the following in Makefile.include.in:
ifeq (linux,$(findstring linux, $(ARCH)))
ifeq ($(ARCH), x86_64-linux)
DEFINES+=-DDLL_PATH_LIBCURL="\"/usr/lib64/libcurl.so\""
else
DEFINES+=-DDLL_PATH_LIBCURL="\"/usr/lib/libcurl.so\""
endif
endif
I was able to fix the crash at startup without the dev package installed, and I seem to have reasonable network functionality (weather, scrapers, etc). Basically, I just changed them to use the runtime shared library that the dev library symlinks to anyway:
ifeq (linux,$(findstring linux, $(ARCH)))
ifeq ($(ARCH), x86_64-linux)
DEFINES+=-DDLL_PATH_LIBCURL="\"/usr/lib64/libcurl.so.4\""
else
DEFINES+=-DDLL_PATH_LIBCURL="\"/usr/lib/libcurl.so.4\""
endif
endif
Is there a reason it was done this way? Or is this an oversight? It would be nice to be able to remove this dependency for final release to be able to support smaller footprint systems. On my HTPC, this 1 dev library ends up pulling in all of the base dev libraries, gcc, etc.