Debian Programming :: Packaging Shared Library With Python Wrapper
Apr 12, 2014
I have written a shared library and successfully used debhelper 9 to create a Debian package from source using a Makefile generated by cmake. I then went about writing a python wrapper to that library and wish to package that wrapper in with the library so I can have a single distributable rather than 2 separate ones.
All of my attempts so far have me placing my python source and a setup.py file in the same directory as the makefile at the time where I call debuild.
From here I have tried a couple different configurations to my debian/rules file as seen below:
Attempt 1:
# -*- makefile -*-
%:
dh $@ --with-python2 --buildsystem=python_distutils
This try seemed to package up the python stuff nicely but proceeded to ignore my makefile for the shared library and therefore ultimately failed.
Attempt 2:
# -*- makefile -*-
%:
dh $@ --with-python2
This try ran make, but completely ignored the python stuff. From some research I have gathered that the --buildsystem flag tells debuild to ignore any makefiles in the directory, which obviously causes a problem in my case.
Another attempt was to modify the build dependency to first run make and then call the python build process that file looked like this
Attempt 3:
# -*- makefile -*-
build:
dh $@
dh $@ --with-python2 --buildsystem=python_distutils
%:
dh $@ --with-python2 --buildsystem=python_distutils
This appears to somewhat work as both processes do build, but a few of the python files are still not getting installed.
Is this the way I should be going about doing this? I've noticed that most python wrappers tend to package themselves individually and then make that package dependent on the library it is attempting to wrap.
View 0 Replies
ADVERTISEMENT
Apr 7, 2009
I'm reading about shared, static, and dynamic libraries. What is SDL? Is it static, shared, or dynamic?
I always thought a library would be a lot of .h and .cpp files compiled separately into .o files and then if you compiled your own program you could use the -l parameter to link the library and it was all compiled together. Now I'm not so sure.
I don't even see any SDL .cpp files in my system anywhere. All I have are lots of SDL .h files in /usr/include/SDL and I don't really understand the code in them.
I'm making a wild guess here: SDL is a shared library. SDL itself is NOT compiled into my program, therefore SDL must be on any system my program tries to run on. When I compile and link SDL all it needs is the header files to know what SDL function and objects it can use. And then on every system it uses an already compiled SDL shared library thingy somewhere.
So... where is that part of SDL? All I can find are header files.
I'm thinking the advantage of shared libraries is that someone could say update SDL on their own system and take advantage of the new features without having to download new executables with the new version of SDL compiled into them for every program that uses SDL.
So if I'm making an editor and a game engine and they both use a lot of the same .cpp and .h files that I wrote and I'm tired of updating one and then the other and I need to turn them into a library, then a shared library might be kind of a silly solution. I could just make a static library. Right? Because it's not SDL. Nobody else is ever going to use this library.
View 6 Replies
View Related
Feb 15, 2011
I have visited these boards a few times, but never posted. Here's my problem: I was given the source to a program and asked to get it running on a 64-bit Debian 2.6.26 machine. Currently it is working on 2 64-bit OpenSUSE machines.
The application uses TCL TK for a GUI and everything compiles just fine; however, on startup, the user must enter one of three possible modules to load; when attempting to load these modules (tcl 'load' function), I receive this error:
Code:
Error in startup script: couldn't load file "../Build/libMpf.so": libTransReaders.so: cannot open shared object file: No such file or directory
while executing
"load ../Build/libMpf.so Mpf"
("eval" body line 1)
invoked from within
"eval load ../Build/${px}${i}${sx} $i"
[Code]...
View 8 Replies
View Related
Jan 3, 2009
I'm trying to package a Qt application using debuild. However, I can't figure out how to make qmake generate a correct Makefile.
The main problem is that the binary doesn't get put into ./usr/bin inside the .deb.
So dh_shlibdeps always fails and I get the following:
Code: Select alldpkg-gencontrol: warning: unknown substitution variable ${shlibs:Depends}
dpkg-gencontrol: warning: unknown substitution variable ${misc:Depends}
The resulting debian package then has an empty "depends" field and no binary.
I used the Qt Hello World example application to start.
I changed debian/rules (generated by dh_make) so that it runs qmake as follows:
Code: Select all#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
[code]....
View 6 Replies
View Related
Aug 27, 2009
My code needs to link to some libraries. In my project file, I specify linker to link to abc library, for example. By default, does gcc link to libabc.a or libabc.so ? What if I really need to specify static or shared, how do I do that?
View 4 Replies
View Related
Feb 26, 2010
I have written a simple library and ended up with a .so file. I have a header file from writing the code that describes how to use the functions in the source code I have written. I think this .h files needs to be available to other programs that access this code.
I have seen lots of tutorials on how to copy the .so file to the relevant directories and make links with the version number. What I can't find is where to put the header file so that any programs I write to use my new library can access the header.
Hope this makes sense. For example, I might use <stdio.h> normally, I will need to access <mylibrary.h> once mylibrary.so is loaded (as far as I understand!)
It's weird, I've been using C compilers for embedded processors over ten years now and never given a second thought to how libraries and headers work behind the scenes!
View 6 Replies
View Related
May 27, 2010
I think that the solution is very simple, but I cannot reach this solution. I'm trying to build an B.so that uses A.so.
A.so is compiled using C;
B.so is compiled using C++;
Inside "Aso.h" file I'had declared:
Code:
#ifdef __cplusplus
extern "C" {
#endif
[code]....
There's no error to compile that, this library seems to be compiled correctly, but using the "nm" command the Aso.so functions appear with "U" of undefined. Trying to build an executable using the Bso.so library, I got this error: /lib/../lib/libBso.so: undefined reference to `foo(int, int, int)' I think that to solve this problem it's only link the Aso.so with the .o files generated at the compilation phase of my Bso. Using the "ldd" command I'm able to see that Bso.so depends on Aso.so, so what am I missing?
View 2 Replies
View Related
Mar 18, 2010
I am currently having an application package which provides some applications.however API's for the same will be provided by third party.Currently i am using a dummy functions in my code.Now i have a release by the third party for the first Api version.They have given a set of .so libraries.How do i integrate this with my application?Also i need an idea in general to how to go ahead with programming in such a development scenario where in it is distribued?
View 3 Replies
View Related
Aug 25, 2010
Our application uses a dynamically loaded shared object library (codec library) to compress and decompress audio streams.
There happens to be several static and global variables in this shared object library. Hence it is not possible to process two interleaved unrelated media streams using this shared object codec library because each stream corrupts/changes the contents of these static/global variables.
Is there a way through which a context save (save contents of data segment of shared object) and a context load (load previously saved contents of data segment of shared object)operation can be performed on the shared object library. This way the context for each media stream can be saved and loaded before and after processing the "other" media stream respectively.
View 3 Replies
View Related
Feb 11, 2009
I am using Centos 5.2, and I installed all of the available gnome and gnome development libraries available via the "add software" menu item. Still, when running some programs, I get the following error message:
"error while loading shared libraries: libzvt.so.2: cannot open shared object file: No such file or directory"
If I understood it correctly, libzvt.so.2 is part of some gnome libs... where to find and how to install them?
View 5 Replies
View Related
Jan 20, 2010
I have a C++ application consisting of several source/header files. As part of the release management procedure, I use a shell script to package all necessary sources/headers in a tar file for a successful compilation on end-user site.However, for example, each time a new directory is created within application's source tree, I need to edit the shell script to implement necessary changes, which is error-prone.What is the best practice to package the source/header files of an application into a tar file ? Is there any tool that I can use for packaging purposes rather than writing my own shell scripts ? For example, how is Linux kernel itself packaged into a tar file ?
View 2 Replies
View Related
Feb 3, 2011
I'm working on a program that will allow non-privileged users the ability to substitute passwords that are read in from a 600-root:root file.
A user might call it like this:
/bin/securepasswrapper "/path/to/check_ping -u Admin -p ?webserver1?"
The file (defined now as /tmp/securefile) will be searched for the identifier "webserver1", and it's corresponding password will be returned to securepasswrapper. Now, I know you could just call /bin/echo, and get the output, but that's in scope at this point.
File format of securefile is:
<identifierassword>
ex: webserver1:asdf123
Once the password is properly substituted in, securepasswrapper should then execute it as the UID/EUID of the calling user (not root)...that part I've not got to yet.
Code:
/* program: securepasswrapper
author: R.Briggs + Google
date: 02/02/11
purpose: C wrapper that replaces placeholders in a string with secure passwords retrieved from a file
*/ .....
View 5 Replies
View Related
Oct 8, 2014
Suppose I have the library code in library.cpp. I found that to include the version information in the .so library, I had to use these command forms:
Code: Select allg++ -Wall -fPIC -c library.cpp
g++ -shared -Wl,-soname,library.so.0 -o liblibrary.so.0.1
The howto then continued to recommend creating symbolic links pointing at the newly compiled library. [URL] ....
The result is, during the booting sequence, I am receiving this error:
Code: Select alllibsystemd-login.so.1: no version information available (required by /usr/bin/dbus-daemon).
The library is the one I am working on.
View 5 Replies
View Related
Mar 2, 2015
I would like to use the collision detection routine from the OPCODE library, newest version 1.3 ... There exist documentations, e.g. Opcode.pdf and OpcodeUserManual.pdf, but they do not agree with the source code, neither the current nor the previous version 1.2.
Any working example to check if to meshes collide? I only would like to define the meshes using triangles and connectivities (no callback function). I started with a code like the following, but not successfully.
#include <Opcode.h>
using namespace Opcode;
int main(void) {
IceMaths::IndexedTriangle *Tri0 = new IceMaths::IndexedTriangle[10];
IceMaths::Point *Pnt0 = new IceMaths::Point[10];
MeshInterface Mesh0;
[Code] ....
View 0 Replies
View Related
Jul 13, 2011
How can I see if a shared library is currently loaded? (i.e. system-wide, process agnostic)How can I see all shared libraries loaded by a process?
View 2 Replies
View Related
May 2, 2011
I built a shared library for some API functions (C files) and compiled them with gcc. Now I'm writing a c++ application (compiling with g++) and want to link my C API shared library and be able to use it from my application. Is this possible? At first instance, it's not quite working for me. I was able to link my shared lib just fine with a C application but got an "undefined reference to `apiFunction()'" error when attempting to do it with g++. Just want to see if anyone has any insight on this subject and make sure this mix is even is allowed.
View 1 Replies
View Related
Feb 18, 2010
I am trying to install the WebSphere MQ Client on a Red Hat Version 5 server with OS x86_64bit.. When I try the first step of there process it fails trying to find shared libraries:ERROR: Installation will not succeed unless the license agreement can be accepted. The MQ Client is 32 bit, but I am told it should work on 64 bit server...
View 2 Replies
View Related
Nov 19, 2010
I need a design which requires complete modularity and speed. I have a huge monolithic process that i'm seperating now with individual modules as libraries.I'm just worried how to go about the no of shared libraries? for example can i have 10 shared libraries in place of 1? what will be the advantage in that case?
View 2 Replies
View Related
Oct 10, 2014
This python script works , but not from crontab.Here is my python script:
#more datetimedir.py
import os, datetime;
datestring = datetime.datetime.now().strftime("%Y%m%d_%H%M%S");
print (datestring);
os.mkdir(datestring);
Here is how I call it from crontab
*/30 * * * * /usr/bin/python3 /home/cwc/logs/datetimedir.py
View 2 Replies
View Related
Mar 22, 2009
I want to be able to do
sudo ./program.py
instead of always having to do
sudo python program.py
What do I need to change?
View 5 Replies
View Related
Nov 30, 2009
I've already used line split stuff to transform my data into something like this in a text file:
Code:
['1', '1', '3', '20.7505207']
['2', '1', '3', '23.0488319']
['3', '1', '3', '-1.5768747']
['4', '1', '3', '-26.4772491']
[code]....
How can I get this on a python program so I can manipulate it as an array?
View 3 Replies
View Related
Apr 4, 2011
I have an upstream source tarball which, by coincidence, already contains a directory named "debian", but which has nothing to do with the "debian" directory for packaging. Assume also that renaming this directory would be difficult, for example because many other parts of the code would need to be modified. On an rpm based system, this poses no problem to the packager, since the rpm build process is driven by an external spec file and never has to modify the original source. What would be the best way to package this on a debian system? Is it absolutely necessary to rename the original "debian" directory? Or can I make the dpkg build tools operate out of a different directory?
View 5 Replies
View Related
Feb 17, 2011
I installed alsaequal URL....l and dependencies ladspa-sdk and caps, all via sbopkg.I'm getting this 'cannot open shared library' error even though that file does in fact exist at the indicated location.Has anyone run into this or successfully installed alsaequal? I also tried on a 13.1 install and got the same result.
View 4 Replies
View Related
Jan 12, 2010
I am trying to add some functions to a Postgresql database. The functions use a shared library which they think is: /usr/lib/pgsql/postgis-1.4.so They say: "ERROR: could not load library "/usr/lib/pgsql/postgis-1.4.so": libgeos_c.so.1: cannot open shared object file: No such file or directory"
I cd to /usr/lib/pgsql/ and do an ls. postgis-1.4.so is there. libgeos_c.so.1 is as well (and it's in /usr/lib/ )
Both the files seem to exist. I cannot copy either of them (cp says "cannot stat '[file]': No such file or directory".
View 6 Replies
View Related
Sep 12, 2013
I run Wheezy Xfce 64-bit. I went through the Synaptic listings and added Python 3.3.2 and Tkinter for it, and that works fine; but for some reason PyGtk is available only for Python 2.7, not for Python 3.3, unless I'm just using the wrong way to try to find it. Is there a PyGtk available for Python 3.3 in Wheezy, and, if so, how do I install it and then import it once it's installed?
View 1 Replies
View Related
Apr 3, 2014
I have a code that uses the Firefox webdriver with Selenium to execute a couple javascript commands and fetch me some info. Since Debian doesn't use Firefox by default, and Selenium doesn't recognize Iceweasel as the equivalent of Firefox (which may be reasonable, but still kinda dumb), I downloaded and extracted the firefox-28.0 bz2 folder to my desktop. Next, I used the top answer suggested here to point Selenium to the binary:
Code: Select allfrom selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
[...]
binary = FirefoxBinary('~/firefox/firefox-bin')
driver = webdriver.Firefox(firefox_binary=binary)
However, it results in this error message:
Code: Select allTraceback (most recent call last):
File "./seltest.py", line 19, in <module>
driver = webdriver.Firefox(firefox_binary=binary)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 59, in __init__
self.binary, timeout),
[Code] ....
Did I set the binary path incorrectly or something?
View 9 Replies
View Related
Jul 16, 2015
I am unable to install matplotlib. I already have installed latest libfreetype and libfreetype-dev.But it still errors out on freetype, I am running Debian testing on my machine. Python is latest 3.5.b3 compiled from source and in virtual env , running the command :
pip install matplotlib
...... freetype: no [Requires freetype2 2.3 or later. Found ...] png: yes [version 1.2.50] ..... .....
* The following required packages can not be built: * freetype ....
Full error log here: [URL]....
I do not understand why requirement is not marked for compilation even though found.
View 5 Replies
View Related
Jan 22, 2011
The whole day was more or less spent reinstalling a basic Gnome Ubuntu system. Everything went swimmingly until I started with the XBMC part of the installation. After wrestling with PPAs and apt-get for hours I finally got it installed, but then it all turned awkward in a hurry. It simply refused to start up. I clicked the icon and nothing happened for a good few seconds. The screen then flickered black for an instant, but after that nothing. I started from a terminal and it showed an error message saying it couldn't import Python's os and shutil modules. I found that mighty strange since both modules are part of the Python Standard Library.
Finally, in a bizarre twist, it turns out this doesn't seem to be a XBMC problem, suddenly apt-get started complaining too. TL,DR: I (nor the system) can't import any Standard Library modules in Python in Ubuntu! Is this a path problem? Or have I actually managed to uninstall some vital python packages, if so which ones? I am running Ubuntu 10.10, but I don't think this is necessarily a Ubuntu specific problem. Here are some dumps to show the error messages: (I forgot to copy the XBMC error message, but it looked exactly the same as these below, i.e., it couldn't import the os module) First from apt-get:
Code:
tv@tv:/usr/lib$ sudo apt-get autoremove
[sudo] password for tv:
Reading package lists... Done
Building dependency tree
[code]....
View 1 Replies
View Related
Oct 10, 2010
I'd like to know if it is possible to play shared music library of iTunes on Ubuntu.
View 2 Replies
View Related
Apr 8, 2010
I've been looking awhile now, but no patch for this is yet to be found. Does anyone have more info, or better, a fix? Last version from GNU's ftp server is also vuln as of this writing.
View 3 Replies
View Related