Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 554163
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T11:40:51+00:00 2026-05-13T11:40:51+00:00

I’m planning to write a C library which will act as an umbrella wrapper

  • 0

I’m planning to write a C library which will act as an umbrella “wrapper” around several other libs. Some of the libraries will be GPL and some will be proprietary. Moreover, some of the libraries may not be available at compile time, so I plan to have autotools detect them during configure. I’m also wondering if I should build in support for these weak dependencies and then also detect them at run-time — particularly for the proprietary libs. Here’s why:

Without going into specifics, the library is intended to provide an API for talking to various devices, some of which don’t have open source drivers. Currently it’s difficult to program for these devices because there is no standard, easily available API to use. Each vendor provides its own. There are a few other APIs available that attempt to wrap them, but they are by and large

  • C++-only.
  • Designed for a Windows environment, with *nix as an afterthought.
  • Fail to build unless you have dependencies in the right places, i.e., complete lack of a proper configure/build system.
  • Most importantly, designed in such a way that they often link directly to proprietary libs, making me almost 100% sure it would be impossible to get these APIs into Debian.

Therefore my end-goal is to build a very simple and straight-forward C API that has a chance in hell of making it into distros so that people can actually write programs for these devices with a simple apt-get.

My question is, how should I best design the library to be GPL-compatible and Debian-friendly, but still be able to call out to proprietary libs when necessary?

Ideally I’d like the user to be able to apt-get a program using this library, and then as long as the vendor’s user-level driver is installed to the expected place, everything should work out of the box.

My concern is two-fold:

  • having dependencies on optional, proprietary libs means the binary distro of the library can’t be compiled to dynamically link to these libs, since they may or may not be available.
  • the user should not have to install dependencies for devices he does not have, open or proprietary.

How do other packages handle this problem of linking to proprietary libs and having run-time weak dependencies? Is dlopen the right way to go for everything? Should I dlopen only the proprietary stuff? What are reasons why or cases when Debian might reject such a package?

Lastly, I realize this probably isn’t the right forum for this question about Debian policy, so can anyone point to me a better place to ask this question?

Thanks.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-13T11:40:51+00:00Added an answer on May 13, 2026 at 11:40 am

    I have no relationship to Debian and cannot speak about their policies. However, for your framework, this seems a reasonable approach:

    1. Define a simple header file that expresses the functionality you need from these plugins
    2. Create a useful GPL/LGPL/BSD plugin that uses that interface
    3. Have your main program load that using libdl, as you mentioned (if your main program is GPL, you need to have a licence exception to allow linking proprietary plugins)
    4. Submit those for inclusion in Debian, and don’t mention about the proprietary stuff

    The main point is that your plugin system should be useful for free software, and not just be a Trojan horse to allow proprietary code to be loaded.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.