473,770 Members | 1,996 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Publish/Subscribe Lib for Python?

Does anyone know of a framework or library that will enable me to use
publish/subscribe comms? I want to create a server (using Python)
running on a Unix box that will accept client connections (from GUIs
built with wxPython) and publish realtime data updates to them. Any
advice on where to start?

Thanks.
A.B.
Jul 18 '05
18 3512

On 29/02/2004, at 4:09 PM, Mike C. Fletcher wrote:
Graham Dumpleton wrote:
...
So, how can one cast the licensing so as to provide an exception that
provided the underlying C/C++ library isn't changed, that the Python
wrappers can be used under a less restrictive license. I have control
of
the licensing on both so can stipulate exceptions, but what is the
best way of doing it?


...

If I understand correctly, the QPL is basically a dual license
encouraging you to either pay Trolltech or GPL your software.


I presume you actually meant to say "QPL" and not "GPL" in this
sentence.

Anyway, have been looking at the QPL again, and as far as I can see, it
doesn't force you to make any code you write which links with the QPL'd
library available explicitly under the QPL. What it says is:

6. You may develop application programs, reusable components and other
software items that link with the original or modified versions of the
Software. These items, when distributed, are subject to the following
requirements:

a. You must ensure that all recipients of machine-executable forms of
these items are also able to receive and use the complete
machine-readable source code to the items without any charge beyond the
costs of data transfer.

b. You must explicitly license all recipients of your items to use and
re-distribute original and modified versions of the items in both
machine-executable and source code forms. The recipients must be able
to do so without any charges whatsoever, and they must be able to
re-distribute to anyone they choose.

c. If the items are not available to the general public, and the
initial developer of the Software requests a copy of the items, then
you must supply one.

Thus, as far as I can tell, it would be quite okay to make the Python
wrappers themselves available under a BSD/MIT type license as opposed
to the QPL license.

Overall though, this probably doesn't make much difference however
as anyone using the Python wrappers still in effect has to wear the
underlying conditions of the QPL licensed code. That is, the end
application still has to be made available under terms in line with
the Open Source model if distributed. The only Open Source license
you definitely wouldn't be able to use is the GPL since it regards
the QPL as incompatible.

If you agree with Open Source, that the QPL license is still used
for the C++ code in the runtime loadable component shouldn't be an
issue. We are therefore back to simply not satisfying those who don't
want to pay money for an alternative license if they want to make
money off there own application by selling it.

To meet other requirements I have, if I wanted to not restrict use
in for sale software, I almost need a LGPLish version of the QPL.
Noting that the reason I couldn't use the LGPL was because I need
the control enforced by the following clauses of the QPL.

3. You may make modifications to the Software and distribute your
modifications, in a form that is separate from the Software, such as
patches.

That is, need to be able to say that the original package must always
be redistributed as is, ie., in the form provided, with any changes
being in a distinct package, such as a patch. I believe this should
also prevent a free for all as far as people taking/stealing just bits
of the package and reusing it in other things, but then in practice
that is almost impossible to enforce. :-(

If one had a LGPLish variant of the QPL which doesn't transfer
conditions on linking, problem may be solved. I don't however now
of any Open Source license which does that. Does anyone else?

IMPORTANT NOTICE: This e-mail and any attachment to it are intended only to be read or used by the named addressee. It is confidential and may contain legally privileged information. No confidentiality or privilege is waived or lost by any mistaken transmission to you. The RTA is not responsible for any unauthorised alterations to this e-mail or attachment to it. Views expressed in this message are those of the individual sender, and are not necessarily the views of the RTA. If you receive this e-mail in error, please immediately delete it from your system and notify the sender. You must not disclose, copy or use any part of this e-mail if you are not the intended recipient.

Jul 18 '05 #11
"Mike C. Fletcher" <mc******@roger s.com> wrote in message
news:ma******** *************** *************@p ython.org...
The FSF peoples seem to have a different interpretation, as, last I
heard, they suggest that software that links to any GPL software, even
at run-time constitutes an infringement (regardless of your not having
distributed the GPL code yourself, and the end-user having a perfectly
valid license to link the two for personal use).


Can you provide evidence to support this claim?
Jul 18 '05 #12
"Andrew Koenig" <ar*@acm.org> writes:
The FSF peoples seem to have a different interpretation, as, last I
heard, they suggest that software that links to any GPL software, even
at run-time constitutes an infringement (regardless of your not having
distributed the GPL code yourself, and the end-user having a perfectly
valid license to link the two for personal use).


Can you provide evidence to support this claim?


http://www.gnu.org/licenses/gpl-faq.html#LinkingWithGPL
Jul 18 '05 #13
"Roger Binns" <ro****@rogerbi nns.com> wrote in message news:<9t******* *****@home.roge rbinns.com>...
The next version of OSE will try to address this issue by allowing use of
the Python wrappers under a BSD or Python style license, provided that
the C++ layer underneath is left as is. Change the C++ layer underneath
and the QPL will apply up through the Python code as well.


I can tell you that I immediately ruled out OSE for my open source project
http://bitpim.sf.net licensed under the Artistic License because of the
license of OSE.


I am surprised you even went as far as looking at the license for OSE as
in looking at "bitpim", not sure that what OSE had to offer in the way
of functionality would even have made it appropriate for what you were
doing.

Anyway, interesting you mention the "Artistic License" as I have been
looking at that as an alternative license to use instead of QPL. On first
glance it may not conflict with the license I have from the company
where I worked when first developing OSE and which allows me to
continue to develop it and redistribute it.

The next version of OSE was in effect going to come in two variants
anyway, a standard version and an extended version. The standard
version is more or less what is out there now, but the extended version
has extra C++ stuff, only usable through C++ and not used in Python
wrappers, which gives additional value add. The standard version
could be switched from QPL to the Artistic License perhaps, especially
since that will pretty well stay static now since all new work being done
in the extended version anyway. The extended version would be strictly
non commercial use only unless a separate paid license was obtained.
I would like to make a bit of money from the 14 years of work that I
have put into all of this. :-)
Jul 18 '05 #14
Andrew Koenig wrote:
"Mike C. Fletcher" <mc******@roger s.com> wrote in message
news:ma******* *************** **************@ python.org...
The FSF peoples seem to have a different interpretation, as, last I
heard, they suggest that software that links to any GPL software, even
at run-time constitutes an infringement (regardless of your not having
distributed the GPL code yourself, and the end-user having a perfectly
valid license to link the two for personal use).


Can you provide evidence to support this claim?

Mmm, evidence, always fun to research...

A quick search didn't turn up any statements which are black and white
on the particular issue of a "scripting language" API. As noted in the
paragraph above, I was going by other people's statements. Closest
thing I could find were these:
What is the difference between "mere aggregation" and
"combining two modules into one program"?
<http://www.fsf.org/licenses/gpl-faq.html#TOCMer eAggregation>

Mere aggregation of two programs means putting them side by side on
the same CD-ROM or hard disk. We use this term in the case where
they are separate programs, not parts of a single program. In this
case, if one of the programs is covered by the GPL, it has no effect
on the other program.

Combining two modules means connecting them together so that they
form a single larger program. If either part is covered by the GPL,
the whole combination must also be released under the GPL--if you
can't, or won't, do that, you may not combine them.

What constitutes combining two parts into one program? This is a
legal question, which ultimately judges will decide. We believe that
a proper criterion depends both on the mechanism of communication
(exec, pipes, rpc, function calls within a shared address space,
etc.) and the semantics of the communication (what kinds of
information are interchanged).

If the modules are included in the same executable file, they are
definitely combined in one program. If modules are designed to run
linked together in a shared address space, that almost surely means
combining them into one program.

By contrast, pipes, sockets and command-line arguments are
communication mechanisms normally used between two separate
programs. So when they are used for communication, the modules
normally are separate programs. But if the semantics of the
communication are intimate enough, exchanging complex internal data
structures, that too could be a basis to consider the two parts as
combined into a larger program.

Also:

However, in many cases you can distribute the GPL-covered software
alongside your proprietary system. To do this validly, you must make
sure that the free and non-free programs communicate at arms length,
that they are not combined in a way that would make them effectively
a single program.

The difference between this and "incorporat ing" the GPL-covered
software is partly a matter of substance and partly form. The
substantive part is this: if the two programs are combined so that
they become effectively two parts of one program, then you can't
treat them as two separate programs. So the GPL has to cover the
whole thing.

And:

If the program dynamically links plug-ins, and they make function
calls to each other and share data structures, we believe they form
a single program, so plug-ins must be treated as extensions to the
main program. This means that linking the GPL-covered plug-in with
the main program would violate the GPL. However, you can resolve
that legal problem by adding an exception to your program's license
which gives permission to link it with the non-free main program.

Which is from the GNU.org FAQ. here:

http://www.fsf.org/licenses/gpl-faq.html

Now, the first two quotes don't explicitly state that, in the event that
you let *someone else* distribute the GPL software, you are okay with
using direct and intimate communication (which the Python module being
discussed would, I think, qualify as). However, that is the image that
arises. That is, if you are not distributing the GPL software you might
be okay, if not for that third paragraph.

The first two quotes suggest that, if your software links "intimately "
with the GPL software and you distribute both pieces of software (even
though only "alongside" one another, (such as two download links from a
web-site?)), though, then your package is a derivative work and thus
GPL-requiring.

The third quote, however, goes much farther. A plug-in, presumably
downloaded entirely separately from an application (hence plug-in) is
somehow able to violate the license of the plug-in merely by being
loaded by the proprietary application, effectively by being "linked in"
by the user. In the situation we are describing, a GPL library with an
arguably more intimate linking (the Pythonic interface) is being loaded
into a proprietary application, we would seem to have met all of the
conditions outlined in that third paragraph (and more).

To make that work, the using application somehow has to be a derivative
work of the plug-in, which, particularly in the case of a plug-in API,
makes no sense, after all, the plug-in API is from the application and
almost certainly has no code specific to the GPL-licensed plug-in. What
would stop a user from using the plug-in with the application?

How this works, (other than wishful thinking) I don't know, as it had
been my impression that the unmodified use of GPL software on your own
computer wasn't affected by the GPL. The strange thing about the third
quote is that, from the GPL section 0 (the FAQ has no legal weight AFAIK):

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the
Program is covered only if its contents constitute a work based on
the Program (independent of having been made by running the
Program). Whether that is true depends on what the Program does.

which seems to allow the *end user* to combine proprietary code with
unmodified GPL-licensed software for their own use.

As mentioned in the earlier message, I don't think there's been too much
case law saying that you can claim copyright on something which doesn't
include any of your code, the LGPL even explicitly states (section 5),
if there's no LGPL code in the given element, then it is not a
derivative work. Still, there must be some logic which makes the
application above somehow a derivative of its plug-in. Though again, I
was under the impression that, for personal use, you could create
derivatives which linked against proprietary code (even intimately)...

Anywho, hope that's sufficient, must be off to write now.
Mike

(In case anyone is silly enough to think I were... "I am not a lawyer")

_______________ _______________ _________
Mike C. Fletcher
Designer, VR Plumber, Coder
http://members.rogers.com/mcfletch/

Jul 18 '05 #15
Graham Dumpleton wrote:

On 29/02/2004, at 4:09 PM, Mike C. Fletcher wrote:
Graham Dumpleton wrote:
...
If I understand correctly, the QPL is basically a dual license
encouraging you to either pay Trolltech or GPL your software.

I presume you actually meant to say "QPL" and not "GPL" in this sentence.


I had, actually, meant GPL, referring to the effect, rather than the
particular license, though it turns out I'd misunderstood the non-viral
nature of the QPL.
Anyway, have been looking at the QPL again, and as far as I can see, it
doesn't force you to make any code you write which links with the QPL'd
library available explicitly under the QPL. What it says is:

6. You may develop application programs, reusable components and other
software items that link with the original or modified versions of the
Software. These items, when distributed, are subject to the following
requirements:
True, it doesn't appear to require QPL licensing of linked works, only
"Open Sourcing" of the works.
Thus, as far as I can tell, it would be quite okay to make the Python
wrappers themselves available under a BSD/MIT type license as opposed
to the QPL license.
Looks that way.
3. You may make modifications to the Software and distribute your
modifications, in a form that is separate from the Software, such as
patches.

That is, need to be able to say that the original package must always
be redistributed as is, ie., in the form provided, with any changes
being in a distinct package, such as a patch. I believe this should
also prevent a free for all as far as people taking/stealing just bits
of the package and reusing it in other things, but then in practice
that is almost impossible to enforce. :-(
Sure, a patch that deletes 99% of the original (leaving just copyright
notices) is pretty easy to create...
If one had a LGPLish variant of the QPL which doesn't transfer
conditions on linking, problem may be solved. I don't however now
of any Open Source license which does that. Does anyone else?


Not me. I stick to BSD licenses as much as is practical. Makes
everything simpler :) . That said, and modulo the annoyance of having
another license to have to read, dropping the 6a and 6b clauses (on the
advice of a lawyer, not me ;) ) would seem to have the desired effect
(no effect on linked code, other than requiring that they be willing to
give the changes back to you). You'd likely want to stipulate "in
source-code form", though.

Anyway, far too much time on this thread tonight. Have fun,
Mike

_______________ _______________ _________
Mike C. Fletcher
Designer, VR Plumber, Coder
http://members.rogers.com/mcfletch/

Jul 18 '05 #16
Paul Rubin <http://ph****@NOSPAM.i nvalid> wrote in message news:<7x******* *****@ruckus.br ouhaha.com>...

[Quoting someone else]
The FSF peoples seem to have a different interpretation, as, last I
heard, they suggest that software that links to any GPL software, even
at run-time constitutes an infringement (regardless of your not having
distributed the GPL code yourself, and the end-user having a perfectly
valid license to link the two for personal use).
"Andrew Koenig" <ar*@acm.org> writes:

Can you provide evidence to support this claim?


http://www.gnu.org/licenses/gpl-faq.html#LinkingWithGPL


The question is pretty vague, though: "Does the fact that I link with
your program mean I have to GPL my program?" What that could mean is
that in situations where such linking is certain to take place (ie.
where you also distribute the GPL'd program with the intent that the
two function together), you would need to provide your own program
under the GPL.

I don't believe that there's anything stopping anyone from releasing
their own program separately under their own choice of licence,
although it would be a decent compromise (if not virtually compulsory)
to mention your offer to license that program under the GPL in the
event that the user combines it with the GPL'd program in their own
environment. I'd certainly like to hear of a more substantial
rationale (plus precedents) which contradicts my interpretation.

Paul
Jul 18 '05 #17
> I am surprised you even went as far as looking at the license for OSE as
in looking at "bitpim", not sure that what OSE had to offer in the way
of functionality would even have made it appropriate for what you were
doing.
I am putting in an XML-RPC over SSL interface to allow the BitPim software
and the cell phone to be on different machines. OSE was attractive
because of the SOAP support as well. (I think it would have later
been ruled out due to lack of SSL anyway).

Note section 7 of the Artistic License:

7. C or perl subroutines supplied by you and linked into this Package
shall not be considered part of this Package.
I would like to make a bit of money from the 14 years of work that I
have put into all of this. :-)


Very understandable :-) If only monetizing open source software was
easy!

Roger
Jul 18 '05 #18
"Roger Binns" <ro****@rogerbi nns.com> wrote in message news:<7u******* *****@home.roge rbinns.com>...
I am surprised you even went as far as looking at the license for OSE as
in looking at "bitpim", not sure that what OSE had to offer in the way
of functionality would even have made it appropriate for what you were
doing.
I am putting in an XML-RPC over SSL interface to allow the BitPim software
and the cell phone to be on different machines. OSE was attractive
because of the SOAP support as well. (I think it would have later
been ruled out due to lack of SSL anyway).


Yep, no SSL support. The SOAP support is pretty basic as well, and is even
a bit broken compared to XML-RPC. This is because the SOAP interface
can't handle empty dictionaries, nor can it handle keys in dictionaries
which aren't valid XML element names. These are problems with the SOAP
XML encoding format, not with the ZSI SOAP toolkit used. The issue of
keys in dictionaries being valid XML names is solved with some encoding
mechanism in later SOAP versions, but am not sure if OSE automatically
picks up the code changes in ZSI for that if present. I know of no solution
to the empty dictionary problem. The basic problem is that at the other
end it will decode as an empty string instead.

Overall, OSE is better if your focus is actually C++ rather than Python and
you want the Python wrappers for gluing stuff together and for add ons. If
only using Python, you do get lumbered with a lot of extra baggage you
don't really need.
Note section 7 of the Artistic License:

7. C or perl subroutines supplied by you and linked into this Package
shall not be considered part of this Package.


You might want to look at the Artistic License 2.0. Its version of this
clause is somewhat better written. Also, the Original Artistic License
does get a lot of criticism because it has loopholes and is not actually
deemed as being GPL compatible nor really a free software license. It
only appears in the list of free software licenses because the criteria
was relaxed in a certain way such that it was acceptable. There was
conjecture that in time the criteria would be tightened and as a result
the Original Artistic License would not longer be classifiable as a free
software license.

People will probably start to wonder what bullshit I am talking here and
I may well be. I can't remember where, but I saw comments to this
effect in my browsing in the last day when trying to find commentaries
on the Artistic License 2.0.

Unfortunately I still don't quite know what the idea of 4 (c) as an option
in clause 4 is mean't to be at:

4 (c) permit and encourage anyone who receives a copy of the Modified
Version permission to make your modifications Freely Available in
some specific way.

I see the Artistic License 2.0 as being possibly a good choice for what I
do, but that one only has to satsify ONE of the parts of each of clause 4
and 6 worries me a bit as I feel that some of the choices really let people
off very easily and may cause me conflict with other licenses I have to
satisfy. I even saw one comment by someone which I am not at all sure
about, which suggest that the Artistic License 2.0 was worded in such
a way that it didn't prevent someone taking what you had done and then
relicensing it under the GPL. If that is possible, that would not be good
for me as you have lost any gaurantees of being able to preserve the
intergrity of the overall package. So damn confusing at times, but then
one shouldn't trust what people on the net say anyway on such things.
I would like to make a bit of money from the 14 years of work that I
have put into all of this. :-)


Very understandable :-) If only monetizing open source software was
easy!


I'd say it is nigh on impossible if what you are providing is nuts and bolts
components. Yes it may be possible if what you have is an end user
application, but if it is just glue .....
Jul 18 '05 #19

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
1109
by: Russ | last post by:
Can anyone tell me if .NET directly supports the publish/subscribe messaging paradigm? If not directly, does anyone know of any .NET add-ons which offer this type of functionality? Thanks in advance, Russ
0
1489
by: Russ | last post by:
Can anyone tell me if .NET directly supports the publish/subscribe messaging paradigm? If not directly, is there an add-on that is available that offers this type of functionality? Thanks in advance, Russ
1
1438
by: SKumar | last post by:
Hello: I am trying to implement a publish/subscribe model for an applications I am working on. I would very greatful if anybody could offer me some suggestions. The application basically is a connectivity applications like dial, VPN and wireless. Ideally I would like to have a service where all these connectivity componenets can send/publish their statuses to...and I would like to
4
1775
by: Veriblue | last post by:
Hello Folks I am working on a applications which needs a publish/subscribe model to handle events. There can be various components involved and some maybe out of process. Ideally I would like to have Windows Service where these different components can publish there status to and a GUI app that can subscribe to these statuses and be notified. What is the best way to go about implementing this ?
2
1227
by: Alvo von Cossel I | last post by:
hi, i have created an application with vs 2005. i would like to publish it to the web but i think i read a post where it said that it wasnt allowed to do that. is that true? -- Alvo von Cossel I of Germany
0
2075
by: Kamilche | last post by:
''' event.py An event manager using publish/subscribe, and weakrefs. Any function can publish any event without registering it first, and any object can register interest in any event, even if it doesn't exist yet. The event manager uses weakrefs, so lists of listeners won't stop them
2
2355
by: gregory_may | last post by:
I am looking for a publish/subscribe mechanism for .Net/Atlas. Does this exist? I need to make web service callbacks to clients when specific events happen. It almost sounds like RSS, but I am not sure if there is a better fit?
3
4365
by: Ludwig Wittgenstein | last post by:
Hello, all. Does anyone know of documentation about implementing a publish- subscribe model between a .NET Web service provide and a Java service consumer? I have this problem I am trying to solve, and would greatly appreciate it if someone can tell me what the best solution would be for it. I have a .NET 2.0 (ASMX) webservice on a server on a dedicated hosting server, and several clients in different cities running linux servers
3
1655
by: Anonymous | last post by:
How do I publish a web site (web application .net 2.0) from the command line in VS2008?
0
9454
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10259
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10101
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10038
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9906
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
5354
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5482
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
4007
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
3
2849
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.