[SLUG] Re: LD_PRELOAD

2010-06-12 Thread james
On Sunday 13 June 2010 10:00:04 slug-requ...@slug.org.au wrote:
  I can't find any info on this, so it's prodly so obvious that only
  dumbkorfs  ask :-)
  
  I have a program using a web cam. All is perfect except that I need to
  
  export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so
  
  before running it.
  
  How can I compile the links into the code, rather than a PRELOAD env
  setting?
 
 You can't.
 
 Instead, create a wrapper script containing:
 
 #!/bin/bash
 export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so
 exec your-webcam-program

I do have a wrapper, that does work, so thanks
What I was trying to learn is how skype did do exactly that.
2.0 had to be wrapped, but 2.1 (beta) uses the cam without preload.

I accept 'You can't' I certainly cant despite trying lots :-)

James
-- 
SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/
Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html


Re: [SLUG] Re: LD_PRELOAD

2010-06-12 Thread Adrian Chadd
It can be done in code.

You can use dlopen() / dlsym() to load in shared objects and their
symbols at runtime.



Adrian

On Sun, Jun 13, 2010, james wrote:
 On Sunday 13 June 2010 10:00:04 slug-requ...@slug.org.au wrote:
   I can't find any info on this, so it's prodly so obvious that only
   dumbkorfs  ask :-)
   
   I have a program using a web cam. All is perfect except that I need to
   
   export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so
   
   before running it.
   
   How can I compile the links into the code, rather than a PRELOAD env
   setting?
  
  You can't.
  
  Instead, create a wrapper script containing:
  
  #!/bin/bash
  export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so
  exec your-webcam-program
 
 I do have a wrapper, that does work, so thanks
 What I was trying to learn is how skype did do exactly that.
 2.0 had to be wrapped, but 2.1 (beta) uses the cam without preload.
 
 I accept 'You can't' I certainly cant despite trying lots :-)
 
 James
 -- 
 SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/
 Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html

-- 
- Xenion - http://www.xenion.com.au/ - VPS Hosting - Commercial Squid Support -
- $24/pm+GST entry-level VPSes w/ capped bandwidth charges available in WA -
-- 
SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/
Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html


Re: [SLUG] Re: LD_PRELOAD

2010-06-12 Thread Daniel Pittman
james j...@tigger.ws writes:
 On Sunday 13 June 2010 10:00:04 slug-requ...@slug.org.au wrote:

  I can't find any info on this, so it's prodly so obvious that only
  dumbkorfs ask :-)
  
  I have a program using a web cam. All is perfect except that I need to
  export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so
  before running it.
  
  How can I compile the links into the code, rather than a PRELOAD env
  setting?

[...]

 I do have a wrapper, that does work, so thanks
 What I was trying to learn is how skype did do exactly that.
 2.0 had to be wrapped, but 2.1 (beta) uses the cam without preload.

Oh.  The answer is probably pretty simple: I bet that Skype built their new
version with support for the V4L 2 API rather than the long-deprecated version
one API.

Alternately, they could have implemented the same work-around internally, or
even linked in the compatibility code[1], or written dynamic detection for the
two API versions, or

So, lots of ways.  This being a closed application you can't really know.

Regards,
Daniel

Footnotes: 
[1]  ...because that is, y'know, open source.  Except they can't actually link
 that without breaking the license, so the situation is less clear.
-- 
✣ Daniel Pittman✉ dan...@rimspace.net☎ +61 401 155 707
   ♽ made with 100 percent post-consumer electrons
--
SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/
Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html