Are Dll's created with purebasic Illegal if used in GM?

Everything else that doesn't fall into one of the other PB categories.
DracoOrion
New User
New User
Posts: 7
Joined: Wed Jul 27, 2005 9:18 pm

Are Dll's created with purebasic Illegal if used in GM?

Post by DracoOrion »

I am thinking of Purchasing PureBasic but i have a problem.
Quoted from the FAQ's page
Is it allowed to use DLLs made with PureBasic in other projects ?

Generally yes. You can make DLLs including PureBasic commands for your own projects without any restrictions. But it's not allowed to release simple "wrapper" Dlls to include PureBasic commands in other programming languages.
Does this mean making dlls for gamemaker is illegal?
I really need a language thats easy to learn, that i learn as i work with gamemaker(the program i know how to use),by intergrating dlls into my applications. But i want the dlls to be legal and the FAQ's page kinda upset me on that.
Please Help if you can.
Pupil
Enthusiast
Enthusiast
Posts: 715
Joined: Fri Apr 25, 2003 3:56 pm

Post by Pupil »

Read these, perhaps it'll clear things up?

viewtopic.php?t=15540
viewtopic.php?t=13111
Killswitch
Enthusiast
Enthusiast
Posts: 731
Joined: Wed Apr 21, 2004 7:12 pm

Post by Killswitch »

And just as I was about to post another thread about the license myself! As this thread is already open I've got a futher question.

Through my language (which is going pretty well, have a look at this thread: viewtopic.php?t=16074) I'd like to provie direct access to the windows API. This does mean I would have to wrap all 4000 odd commands, which I wouldn't b too bothered about doing (I'm sure I could write some code to automate most of it) but I just want to make sure that it IS NOT agaist the licence to wrap WinAPI commands.
~I see one problem with your reasoning: the fact is thats not a chicken~
DracoOrion
New User
New User
Posts: 7
Joined: Wed Jul 27, 2005 9:18 pm

Actually i read the 2 posts put im still not sure

Post by DracoOrion »

Could someone say once and for all that GameMaker dll's created with Purebasic are either allowed or not. because many programmers in GM are deleting thier dlls due to the belief of them bieng illegal. and is it allowed to distribute them for other GameMaker users to use?
Pupil
Enthusiast
Enthusiast
Posts: 715
Joined: Fri Apr 25, 2003 3:56 pm

Post by Pupil »

Killswitch wrote:And just as I was about to post another thread about the license myself! As this thread is already open I've got a futher question.

Through my language (which is going pretty well, have a look at this thread: viewtopic.php?t=16074) I'd like to provie direct access to the windows API. This does mean I would have to wrap all 4000 odd commands, which I wouldn't b too bothered about doing (I'm sure I could write some code to automate most of it) but I just want to make sure that it IS NOT agaist the licence to wrap WinAPI commands.
No it's perfectly OK to use API calls inside a dll.... did you think Fred has taken over Microsoft ;)
Pupil
Enthusiast
Enthusiast
Posts: 715
Joined: Fri Apr 25, 2003 3:56 pm

Re: Actually i read the 2 posts put im still not sure

Post by Pupil »

DracoOrion wrote:Could someone say once and for all that GameMaker dll's created with Purebasic are either allowed or not. because many programmers in GM are deleting thier dlls due to the belief of them bieng illegal. and is it allowed to distribute them for other GameMaker users to use?
Simple wraps of PB commands are not allowed, unless it's for your own project, i.e. you can't spread these dll's to any other party except as bundled and used by your application. That is how i interpret the license, any other interpretations? :)
DracoOrion
New User
New User
Posts: 7
Joined: Wed Jul 27, 2005 9:18 pm

ok

Post by DracoOrion »

based on the posts i read i thought it was allowed if the author gave away the source code like an example program and it was bundled within it. however im probly wrong.
Dare2
Moderator
Moderator
Posts: 3321
Joined: Sat Dec 27, 2003 3:55 am
Location: Great Southern Land

Post by Dare2 »

Only Fred, the owner, can give a definitive answer to that question.

The rest of us can only offer opinions and. We are taking a legal risk if we make a definitive statement that is wrong and misleads someone when, acting on it, then gets clobbered by Fred. ;)

That said:

It seems morally and ethically wrong to use PureBasic to create or enhance a rival to PureBasic, or that creates a situation which then hurts PureBasic in sales or other ways.

For example, were I to create a wrapper function called Alert(header, message, flags) which simply used the MessageRequester(..) and submitted this to the development community of, say, GameMaker or BlitzBasic then I would be stealing from PureBasic for the enrichment of another development environment. That seems wrong.

OTOH, If I wrote a dll that implemented a full on database rivalling SQL and made it available to all (including PureBasic community) I am not stealing from PureBasic - it seems OK - in my opinion.

Note that I am not advising, merely discussing. :)
@}--`--,-- A rose by any other name ..
DracoOrion
New User
New User
Posts: 7
Joined: Wed Jul 27, 2005 9:18 pm

Post by DracoOrion »

True, but then someone would have to have owned purebasic in the first place in order to make the dll, and alot of users lately have been posting "how do i make a dll"which would lead them back to purebasic(no longer though because the admins removed all reference to purebasic because of reading the FAQ's page) then more and more people from GM go to PureBasic. But i see your point though about stealing the functions. and it seems like alot of people in this forum started making dlls that way and distributing them for others to use and learn from. once again it does still use Purebasic Functions and im not positive if its allowed or not though it seams doubtful to me now.
Dare2
Moderator
Moderator
Posts: 3321
Joined: Sat Dec 27, 2003 3:55 am
Location: Great Southern Land

Post by Dare2 »

Hei, A.I

Yeah. Catch-22 for Fred. I think it was a reaction to something hurtful done a while back.

As it now stands, people with integrity end up confused and don't use PureBasic, those without integrity don't care and so it won't stop them - it is just about impossible to police this.

IMO Fred would be better off dropping that from the agreement.
@}--`--,-- A rose by any other name ..
DracoOrion
New User
New User
Posts: 7
Joined: Wed Jul 27, 2005 9:18 pm

yah

Post by DracoOrion »

im starting to wonder if only Fred Can awnser this one, and his anwnser will probly be a no its not allowed.
User avatar
Rescator
Addict
Addict
Posts: 1769
Joined: Sat Feb 19, 2005 5:05 pm
Location: Norway

Post by Rescator »

Though one indeed. Maybe the statement needs to be elaborated a bit more!

But the following should be no issue:

1. Making "wrapper" dll's that you use in your own program/game, even if it's made in another language!
2. Making "complex" dll's that you can release and any 3rd party can use.
3. Releasing the source code of a dll so others may compile it themselfs instead!

What is the difference between a wrapper and a complex/normal dll?

A dll where all functions are nothing more than:

Code: Select all

Procedure GetOSVersion()
ProcedureReturn OSVersion()
EndProcedure
That is a typical wrapper.

A normal/complex dll would be:

Code: Select all

Procedure GetOSVersion()
;lots of code here
;and here
;and here
;and here
;and here
;and here
;and here
;and so on for several lines
;You may even use OSVersion()
;as long as you actualy code something
;and not just "wrap" PB features.
ProcedureReturn result
EndProcedure
To put it another way.
If someone really need to use OSVersion()
they should buy PureBasic and make the dll themselfs instead.
PureBasic is so cheap that I don't see that a issue at all.

To put it in yet another way (perhaps the simplest explanation I can think of):
If over half of the code in a dll is simply wrappers or direct reuse of
PureBasic functions, then do not release that dll to 3rd parties.
If like the majority of the code in a dll is your own code,
there should be no issues.


Note! This is just my own view on this though. Fred's words is the only official word on this!
DracoOrion
New User
New User
Posts: 7
Joined: Wed Jul 27, 2005 9:18 pm

Post by DracoOrion »

yah but if say i make the dll i can port it to gamemaker and use it commercially with my main project? so why not the ones other people make? it seems all about who had the code and compiled it.
Brice Manuel

Post by Brice Manuel »

I love PureBasic, but I could never get a straight answer about the DLL issue either. Since I sometimes need to write customs DLLs for contract work I ended up buying IBasic Pro just for making DLLs. :?
User avatar
Rescator
Addict
Addict
Posts: 1769
Joined: Sat Feb 19, 2005 5:05 pm
Location: Norway

Post by Rescator »

ah but if say i make the dll i can port it to gamemaker and use it commercially with my main project?
That should be no problem!
so why not the ones other people make? it seems all about who had the code and compiled it.
Actualy it's more about what was coded or how it was coded!

Sure you can use the dll's made by others.
As to the dll you are making yourself, if it basicaly just act as a wrapper
for PureBasic functions, then you can use it in your own project,
but you can not give the dll to others.

On the other hand, if you coded a dll that does more than simply wrap functions.
(maybe your own file packer format, or .ini editing dll, or some "tools" dll)
There should be no issue letting others use it.

To put it in yet another way.
Simply renaming PureBasic functions (making wrappers) and releasing a dll would be bad, it would be almost as bad as taking someones source code, renaming stuff and releasing it pretending it was your own work!.
So Fred allows you to use PB functions in dll's that you release,
but only as part of/used by your own code in the dll.

Think of it this way. If you where to take a cigarette lighter, slap a sticker with your own logo on it and tried to pretend it was made by you, would be similar to the issue of wrapping PB functions in a dll and releasing it as your own work.
Now if you took a cigarette lighter, and used it as part of a flamethrower,
now that would be coding a dll that "uses" a PB function.

When it comes to your own projects on the other hand,
you could make as many dll's wrapping PB functions as you wanted,
as long as you don't release them.
(distributing them as part of your game would be ok obviously)

I hope things are a bit more clearer now?
Post Reply