How to protect/license a static library? Multiple instances?

J

johnfofawn

Hi,

I am deliverying an algorithm to a customer as a static library. I know
how to put a time limit (make the library functions only run for 60
days, for example), or lock the library to a MAC address.

However, what I need, in this case, is to limit the number of instances
of the library that can run on the computer. The algorithm processes
data and I charge my customer based on the number of instances of my
algorithm that they run.

Does any one know of a very simple way to do this? I want to be
absolutely sure that I don't cause my customer unnecessary difficulty.

Thanks,
John
 
A

Alexei A. Frounze

....
However, what I need, in this case, is to limit the number of instances
of the library that can run on the computer. The algorithm processes
data and I charge my customer based on the number of instances of my
algorithm that they run.

Wrong group. But generally you need to guard access to the library by means
of a mutex/lock/semaphore/whatever is supported by the OS.

Alex
 
G

Gordon Burditt

I am deliverying an algorithm to a customer as a static library. I know
how to put a time limit (make the library functions only run for 60
days, for example), or lock the library to a MAC address.

You really like to piss off customers, don't you? In my experience,
network card failures are not that uncommon (because we use a lot
of them).
However, what I need, in this case, is to limit the number of instances
of the library that can run on the computer. The algorithm processes
data and I charge my customer based on the number of instances of my
algorithm that they run.

Does any one know of a very simple way to do this? I want to be
absolutely sure that I don't cause my customer unnecessary difficulty.

All of the things you mention above WILL eventually cause your
customer unnecessary difficulty. If you don't want to sell it,
don't sell it. You may do the world a favor by not writing such
crippled software in the first place.

Gordon L. Burditt
 
A

Alexei A. Frounze

Gordon Burditt said:
You really like to piss off customers, don't you? In my experience,
network card failures are not that uncommon (because we use a lot
of them).

Seems like licensing becomes more important than the quality of the code in
question. ;)

Alex
 
A

akarl

Hi,

I am deliverying an algorithm to a customer as a static library. I know
how to put a time limit (make the library functions only run for 60
days, for example), or lock the library to a MAC address.

However, what I need, in this case, is to limit the number of instances
of the library that can run on the computer. The algorithm processes
data and I charge my customer based on the number of instances of my
algorithm that they run.

Does any one know of a very simple way to do this?

Yes, but you are only allowed to look at my solution for 3 seconds...
....sorry, time's up.
 
M

Mark McIntyre

On 16 Aug 2005 11:22:50 -0700, in comp.lang.c , (e-mail address removed)
wrote:

(of distributing software with a runtime license allowing X concurrent
users)
Does any one know of a very simple way to do this?

Yes, but you need to buy a license for the required s/w. Seriously,
there are plenty of solutions out there, but you'll need to buy them.
 
D

Daniele Benegiamo

Hi,

However, what I need, in this case, is to limit the number of instances
of the library that can run on the computer. The algorithm processes
data and I charge my customer based on the number of instances of my
algorithm that they run.

Does any one know of a very simple way to do this? I want to be
absolutely sure that I don't cause my customer unnecessary difficulty.

Some hardware dongles supports this feature.

Daniele.
 
J

johnfofawn

Alex,

Thanks for your reply. How do I get a common handle to the
mutex/lock/semaphore/whatever across all the running instances?

Thanks,
John
 
J

johnfofawn

Should I trust my customers to pay for every instance of my software
that they use?

Give me another suggestion. Are you against all copyright protection?
 
C

CBFalconer

Thanks for your reply. How do I get a common handle to the
mutex/lock/semaphore/whatever across all the running instances?

This is off-topic. Go somewhere that deals with your system. And
include context.
 
R

Richard Heathfield

Should I trust my customers to pay for every instance of my software
that they use?

That's one possibility, and in some contexts it works well.
Give me another suggestion.

If you can't trust your customers, consider moving your program server-side,
and making them connect to it over the Net. This reduces your packaging,
shipping, and manual-printing costs to zero, and means they never get to
see either your source or your binary. And server-side programming can be
done in ISO C, of course.
Are you against all copyright protection?

I'm all in favour of copyright protection where the author wants that, but
copyright violations are a job for the courts. You were asking about
anti-copying mechanisms, which are a complete waste of time. It only takes
one person to be able to crack your software - and this is always possible
if they have access to the source or the binary - to render all your
expensive copy protection mechanisms inoperable, since from now on everyone
will get their copy from the guy who cracked it (directly or indirectly).
 
K

Keith Thompson

Should I trust my customers to pay for every instance of my software
that they use?

Give me another suggestion. Are you against all copyright protection?

Here are two suggestions.

First, learn to post. Don't assume we all have easy access to the
article to which you're replying. Search for "context, dammit" in
this newgroup for details.

Second, ask somewhere else. There is no way in standard C to do what
you're trying to do. Try a newsgroup that's specific to your system.
I'm afraid we can't help you here.
 
K

Krishanu Debnath

Gordon said:
You really like to piss off customers, don't you? In my experience,
network card failures are not that uncommon (because we use a lot
of them).


All of the things you mention above WILL eventually cause your
customer unnecessary difficulty. If you don't want to sell it,
don't sell it. You may do the world a favor by not writing such

Nonsense. Every other software in EDA/Chip design area have this
'instance'
base licensing.
crippled software in the first place.

Gordon L. Burditt
<OT>

Ever heard of flexlm based licensing? But it costs $ and it is
expensive.
Otherwise it is very easy to plug flexlm APIs into your software and it

provides lots of features too.
<OT>

Krishanu
 
R

Richard Bos

Krishanu Debnath said:
Nonsense. Every other software in EDA/Chip design area have this
'instance' base licensing.

So have other packages in niche markets. In niche markets, you know
exactly who your customers are, often by name, and you have no problem
controlling who gets who. For software intended for the general market,
the above will, not may, will, lose you customers.

(If you can afford to irritate and distrust customers who are locked
into your market anyway, a dongle is often the best solution, btw.)
<OT>

Ever heard of flexlm based licensing? But it costs $ and it is
expensive.

*Shrug* So get a cracked version.

Richard
 
K

Krishanu Debnath

Richard said:
So have other packages in niche markets. In niche markets, you know
exactly who your customers are, often by name, and you have no problem
controlling who gets who. For software intended for the general market,
the above will, not may, will, lose you customers.

(If you can afford to irritate and distrust customers who are locked
into your market anyway, a dongle is often the best solution, btw.)

That's exactly what happens in EDA industry. It is a very small
business
area and most of the tools are *very* expensive.

By the way, flexlm is a software base license management tool.
*Shrug* So get a cracked version.

*Cough* fortunately it is not that easy.

Krishanu
 
S

Suman

Krishanu said:
That's exactly what happens in EDA industry. It is a very small
business
area and most of the tools are *very* expensive.

By the way, flexlm is a software base license management tool.


*Cough* fortunately it is not that easy.
 
G

Gordon Burditt

Should I trust my customers to pay for every instance of my software
that they use?

If you don't trust your customers, maybe you shouldn't sell to them,
or maybe you should find another method of billing, such as a
one-time-fee, which is harder to cheat on.
Give me another suggestion. Are you against all copyright protection?

Copyright has nothing to do with node-locking or other use limits
in code. Copyright is enforced in courts.

I am against code which breaks and makes a bad situation worse for
legitimate, paying customers, particularly when their hardware
breaks. Such code also tends to defeat backups. It either enforces
something which is *NOT* the same as what the license says, or what
the license says is just plain inconvenient for the customer to
deal with. And although some vendors might allow the customer to
get new license keys if he changes his hardware, that procedure is
rarely free, available 24x7, and only takes a couple of minutes.

Gordon L. Burditt
 
B

Baxter

A dongle is about the only way to do that - and users don't like dongles.

Unless your software is hosted on -your- server, there's no way to tell if a
particular software is running on two different (and probably unconnected)
machines.

Microsoft made -billions- by not being too concerned about end-user
"piracy".
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,535
Members
45,007
Latest member
obedient dusk

Latest Threads

Top