Jump to content
vipermaul

CBA - Community Base Addons - ARMA 3

Recommended Posts

No, you don't - court does. You merely give the definition - the rest is done by legal interpretation.

What the GPL police are going to come? LOL. You have no idea how courts work.

The CBA team enforces their license. The GPL isn't a law. It's a voluntary contract license that would voluntarily have to be enforced by the license holders. If we say "using CBA in this way is acceptable", under our interpretation of the GPL, and we are not inheriting the license from other content in the project then, yea we can say things totally in disregard for the entirety of the GPL. Good luck if we wanted to defend it, but on this issue we can clearly say that we do not consider the GPL to be viral in any form or fashion when it is used with other projects. Your code does not have to be licensed under the GPL to use CBA as an external library.

Wanna know why I know this? ACRE requires CBA for Arma, ACRE is not GPL. It is covered under a totally separate proprietary license. Not an issue.

Quit trying to tell us how our mod is licensed or how our license affects other mods. Our license is meant to cover contributions to CBA and it's distribution, not its integration with other mods.

Share this post


Link to post
Share on other sites
What the GPL police are going to come? LOL. You have no idea how courts work.

The CBA team enforces their license. The GPL isn't a law. It's a voluntary contract license that would voluntarily have to be enforced by the license holders. If we say "using CBA in this way is acceptable", under our interpretation of the GPL, and we are not inheriting the license from other content in the project then, yea we can say things totally in disregard for the entirety of the GPL. Good luck if we wanted to defend it, but on this issue we can clearly say that we do not consider the GPL to be viral in any form or fashion when it is used with other projects. Your code does not have to be licensed under the GPL to use CBA as an external library.

Wanna know why I know this? ACRE requires CBA for Arma, ACRE is not GPL. It is covered under a totally separate proprietary license. Not an issue.

Quit trying to tell us how our mod is licensed or how our license affects other mods. Our license is meant to cover contributions to CBA and it's distribution, not its integration with other mods.

What you mean and what you say are two different things - and what really does mean is what ultimately goes into license. You may not enforce something, but then other people like this HJ guy might come and (from moral view point) steal your work, but their position would be defended by law - all because you thought your opinion overrides what's in the license.

You don't have a slightest idea on how licenses work. Discussion over.

Edited by DarkWanderer

Share this post


Link to post
Share on other sites
We had to revert to an earlier version through PWS(1.0.6 212). 1.0.7 clients could not see or join 1.07 servers ?

Edit:A quick test that rectifies the above, shows 1.0.7 clients can join a 1.0.6 server

we have the same problem with the new version can not connect to the server.

Share this post


Link to post
Share on other sites
What you mean and what you say are two different things - and what really does mean is what ultimately goes into license. You may not enforce something, but then other people like this HJ guy might come and (from moral view point) steal your work, but their position would be defended by law - all because you thought your opinion overrides what's in the license.

You don't have a slightest idea on how licenses work. Discussion over.

Except with a license you can choose to NOT enforce certain parts of it. You can make an existing license weaker and still defend the rest in court. You can not make the license stronger than it is on a whim and then try and extort that in court. You seem to lack a fundamental understanding of basic legal concepts and I am not sure why you are trying to argue this.

We are making the GPL less strict, not more strict. Again I agree the GPL is not a good license, for any SQF project, but it is what we use for CBA, and how we choose to enforce the license means it is not viral.

Share this post


Link to post
Share on other sites
You don't have a slightest idea on how licenses work. Discussion over.

The discussion is not over, because your implication that using CBA forces projects to be licensed under the GPL is both false and dangerous to the Arma modding community.

First, and fundamentally, Nou is correct. The CBA Team and the authors of its components control the licensing of CBA and the initial enforcement of those licenses, which are given legal weight via copyright and contract law. The author of a work -- the copyright owner -- gives you, the user/modder, a set of rights to use that work under a license (a contract). If you violate that contract, the author could choose to pursue legal action or have your work taken down if it is publically distributed. The right to do that rests entirely with the copyright holder. Furthermore, if the CBA team or a representative of it states that you can call CBA's functions and use CBA's features such as XEH without licensing your work under the GPL, then we are granting that right together with the rights granted by the GPL, regardless of what the GPL says or how you choose to interpret it.

Second, if we take a look at the GPLv2, we find that not only is it a perfectly appropriate license for Arma mods, your interpretation is incorrect even in the absence of our clear statements about the permissibility of using CBA-added features/functions in non-GPL addons.

The GPLv2 has only 11 terms and conditions.

Term 0 states: "The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language." This is the crux of the so-called viral nature of the GPL.

A modification that uses CBA by making calls to its functions, which are globally defined by the CBA addon in the Arma 3 scripting namespace, does not include CBA or any portion of it. No code from CBA is distributed together with such a mod. In fact, the only things which can be associated with CBA are the function names themselves, such as "CBA_fnc_registerKeybind". Therefore, such a mod is clearly not a derivative work of CBA itself.

This is not at all analogous to static linking. During compilation, a statically linked library is copied into the executable image of the program being built. This means that the resultant program "contains the Program or a portion of it" and would have to be licensed under the GPL. Static linking does not occur in Arma modding in any form whatsoever.

This is also not dynamic linking. "Linking" has a meaning in computer science, and you are not free to reinterpret that willy-nilly as you like. The process of 'binarizing' an Arma addon does not specifically map the CBA functions to it, and the addon can run with or without CBA. In fact, an author can simply write his own functions with the same names and SQF will use them if CBA is not loaded, since it's just looking for a variable with that name in the namespace. This is not at all how dynamic linking functions.

In interpreting the GPL, the FSF specifically states in their FAQ:

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

"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."

I hope my technical descriptions above have made clear that the communication between CBA and addons which call its functions certainly satisfies the requirement that it be "at arms length" and that any addon which calls CBA-defined functions need not be free software. Only if you are directly including GPLed CBA code in your addon's binarized PBO or redistributing a modified version of CBA itself would your work be considered derivative and therefore be legally required to be released under the terms of the GPL. (And there's no reason to ever do either of these.)

Because SQF does not include any form of 'linking' or anything which could be considered analogous to static or dynamic linking, there is effectively no difference between the GPL and LGPL for SQF scripts. Using the LGPL simply adds technical confusion.

Consequently, anyone attempting to argue that a mod which uses CBA functions/features is virally forced to be licensed under the GPL is wrong. Period. That is Nou's stance as a CBA dev, my stance as a CBA dev, and that is the proper interpretation of the GNU GPL v2 when applied to Arma SQF and config.cpp files.

More importantly, on topic, and tl;dr: there are no grounds for arguing that a mod which calls CBA functions is virally covered under the GPL, period.

Share this post


Link to post
Share on other sites
We had to revert to an earlier version through PWS(1.0.6 212). 1.0.7 clients could not see or join 1.07 servers ?

Edit:A quick test that rectifies the above, shows 1.0.7 clients can join a 1.0.6 server

Our server is running 1.07, And NONE of our members are having this issue. And Also, if your peeps know the IP use remote connect, and it will show up via remote connect. maybe another mod is causing the issue.. ??

Share this post


Link to post
Share on other sites

We had that issue and after several hours of debugging, it turns out that the Blastcore .bikey was causing users to not be able to connect, for whatever reason.

After removing that key, everything worked fine. This was on a linux dedi.

Share this post


Link to post
Share on other sites
More importantly, on topic, and tl;dr: there are no grounds for arguing that a mod which calls CBA functions is virally covered under the GPL, period.

Maybe it would be a good idea to include something along these lines in the OP of the CBA thread, so that misinformed people don't make this mistake in the future?

Share this post


Link to post
Share on other sites

the problem is solved by renaming the folder @ CBA_A3 in @ CBA_A3_RC2.

Share this post


Link to post
Share on other sites
More importantly, on topic, and tl;dr: there are no grounds for arguing that a mod which calls CBA functions is virally covered under the GPL, period.

very nice explanation. Kudos

Share this post


Link to post
Share on other sites

Hi, just got some questions regarding the new keybinding, currently in TFAR we have quite a few keybindings through the manual method.

We'd like to switch over to the new method however, it currently doesn't support a couple of the things we use:

  • Code parameter instead of a single function (due to passing parameters to an actual function)
  • Keydown and keyup keybinding

Are these potentially going to be included at a later stage?

Regards,

L-H

Share this post


Link to post
Share on other sites

question, would using cba_cashe_disable_xeh_logging.pbo (in the optional folder)

be usefull on a server.

just reading the name, looks like it disables event logging.. if this is the case would it help performance on a server if i put it in the Addons folder?? in CBA_A3

Share this post


Link to post
Share on other sites

Hi. I have problem with CBA. I can run dedicate server with CBA version 1.0.7. Server doesn't run good. If you connect server you see screen stratis map. Can't load any island any map.

But if i use cba version 1.0.6.212! everything run. Where is problem and how can fix ?

Share this post


Link to post
Share on other sites
Hi, just got some questions regarding the new keybinding, currently in TFAR we have quite a few keybindings through the manual method.

We'd like to switch over to the new method however, it currently doesn't support a couple of the things we use:

  • Code parameter instead of a single function (due to passing parameters to an actual function)
  • Keydown and keyup keybinding

Are these potentially going to be included at a later stage?

Regards,

L-H

THe absence of the possibility to bind separate KeyUp/KeyDown handlers was definitely an oversight on my part. Should be a straightforward addition, though, as an extra optional parameter.

It should also be possible to make the necessary internal changes to allow myfnc_fnc_functionName, "myfnc_fnc_functionName" and a { [0] call myfnc_fnc_ } parameters to be passed and executed. In fact, it should have been implemented that way from the very start. The current implementation is a result of this code's legacy in an older (unreleased) TMR system that used a DLL to save stuff to a text file, rather than using saveProfileNamespace to pickle it and save it in the game profile.

I will aim to resolve both issues by the next release.

https://dev.withsix.com/issues/74856

https://dev.withsix.com/issues/74855

Edited by Taosenai

Share this post


Link to post
Share on other sites
THe absence of the possibility to bind separate KeyUp/KeyDown handlers was definitely an oversight on my part. Should be a straightforward addition, though, as an extra optional parameter.

It should also be possible to make the necessary internal changes to allow myfnc_fnc_functionName, "myfnc_fnc_functionName" and a { [0] call myfnc_fnc_ } parameters to be passed and executed. In fact, it should have been implemented that way from the very start. The current implementation is a result of this code's legacy in an older (unreleased) TMR system that used a DLL to save stuff to a text file, rather than using saveProfileNamespace to pickle it and save it in the game profile.

I will aim to resolve both issues by the next release.

https://dev.withsix.com/issues/74856

https://dev.withsix.com/issues/74855

Thanks for this, a centralized keybinding menu in an addon that majority of people have installed one way or another is a great feature.

Although I have a question. Would it be possible support for mouse buttons, mouse wheel and keyboard+mouse combos?

This is a godsend for my addons (at least until BI graces us with their own solution) which would allow me to implement certain additional features without worrying about taking up a large amount of "Use Action XX" binds.

That said, I wouldn't be too happy with removing the option of using mouse keys for the actions in my addons, and one outright doesn't work too well without the mouse wheel.

Are there plans to implement this? Is it even possible/practical to implement with the current state of the game?

Edited by Sniperwolf572

Share this post


Link to post
Share on other sites
Are there plans to implement this? Is it even possible/practical to implement with the current state of the game?

It's currently impossible or at least impractical, because added mouse click or wheel event handlers cannot prevent the game from executing whatever behavior is bound at an engine level. For example, if you do:

(findDisplay 46) displayAddEventHandler ["onMouseButtonDown", {hint 'Override'; true}]

and then click your left or right mouse button, you will find that your gun still fires and your sights still come up. According to https://community.bistudio.com/wiki/displayAddEventHandler, "Returning true in EH code will override default engine handling for keyboard events." This isn't true for mouse buttons, though, and has been a long requested feature since more than 4 years ago: https://dev.withsix.com/issues/8212

This doesn't apply when you use the "Use Action XX" binds, since they are handled at the engine level.

In other news, I've just committed code to make it possible to specify "KeyDown" or "KeyUp". The function definition has also been changed to a { code } block, just like cba_fnc_addKeyHandler. (The old behavior of passing a string "yourmod_fnc_functionName" will still work but is considered deprecated.) It'll be like this once released: ["your_mod", "your_action", {_this call your_mod_fnc_openMenu}, [15, true, true, true], false, "KeyUp"] call cba_fnc_registerKeybind;

I hope this will fit your needs L-H. I should have implemented it this way to begin with.

Share this post


Link to post
Share on other sites
It's currently impossible or at least impractical, because added mouse click or wheel event handlers cannot prevent the game from executing whatever behavior is bound at an engine level. For example, if you do:

(findDisplay 46) displayAddEventHandler ["onMouseButtonDown", {hint 'Override'; true}]

and then click your left or right mouse button, you will find that your gun still fires and your sights still come up. According to https://community.bistudio.com/wiki/displayAddEventHandler, "Returning true in EH code will override default engine handling for keyboard events." This isn't true for mouse buttons, though, and has been a long requested feature since more than 4 years ago: https://dev.withsix.com/issues/8212

This doesn't apply when you use the "Use Action XX" binds, since they are handled at the engine level.

Yep, I'm aware of that issue, wrote the FT ticket myself while the game was in Beta and I wasn't aware of the dev-heaven tickets. :(

Hopefully they'll deal with it soon enough.

Thanks anyway and keep up the good work. :)

Share this post


Link to post
Share on other sites
question, would using cba_cashe_disable_xeh_logging.pbo (in the optional folder)

be usefull on a server.

just reading the name, looks like it disables event logging.. if this is the case would it help performance on a server if i put it in the Addons folder?? in CBA_A3

Most likely, it will not help performance very much. The addon "cba_diagnostic_disable_xeh_logging.pbo" will, if it is placed in the @CBA_A3\addons folder, disable some of the logging that the extended event handler system does when a mission starts. (These log messages are not generated more than once for a mission run)

Try it, and see if it makes a difference.

Share this post


Link to post
Share on other sites

Thanks killswitch, the diagnostic one is the one i was talking about. Thanks for the intel , well see how it goes

Share this post


Link to post
Share on other sites

the CBA keep requires Kaelies' South Zagorian Army Mod when try to join in dedicated server,

the server made by using TADST and i found this by myself (also turn the Zeus + Kart DLC on)

because of this i can't get in to my own dedicated server. it keep message

No entry 'config.bin/CfgVehicles/kae_SZ_infantry'.

To get in to my own dedicated server i should install this mod

http://forums.bistudio.com/showthread.php?172176-Kaelies-South-Zagorian-Army-Mod

unless i can't join it, but our group don't want this mod yet

it happen even i turn only CBA on

Never mind i just wipe out my arma3 vanila addon and recover it now it dosen't spam that things,

Edited by kgino1045

Share this post


Link to post
Share on other sites

Version: 1.0.8.140723 RC3

This release improves the isTurnedOut function significantly.

It fixes some minor bugs in the new CBA Keybinding System as well as adding some new support for KeyDown and KeyUp detection.

The CBA Keybinding system allows developers and mission makers to register default keybindings for their addons and missions. And allows users to dynamically change their them from within the games Options Controls.

ScreenShot: http://dev.withsix.com/attachments/22002/cba_keybinding_gui.png

For documentation of the new CBA Keybinding System see https://dev.withsix.com/projects/cca/wiki/Keybinding.

Change Log

RC3

  • IMPROVED: Improve isTurnedOut function to support methods used by Arma's core engine. (74888) - Nou
  • FIXED: Error if no mods are registered keybinds when you click the delete or default button - Taosenai
  • ADDED: Keybinding should allow selection of KeyDown and KeyUp - Taosenai
  • ADDED: RegisterKeybind should take {code}, functionNames, and "functionNames" - Taosenai

__________________________________

RC2

  • FIXED: CBA_fnc_taskPatrol not showing properly in the BIS_fnc_help viewer - killswitch
  • FIXED: CBA_A3 RC1: XEH no longer works for Ammo boxes - killswitch
  • IMPROVED: Optimize all dynamic code from Call Compile Format to the missionNamespace setVariable method - ViperMaul
  • ADDED: New event handlers supported: InventoryClosed, InventoryOpened and SoundPlayed. - killswitch
  • ADDED: New Keybinding System (74765) - Taosenai

__________________________________

RC1

  • FIXED: CBA_A3 interferes with Arma3's weather sync values - ViperMaul
  • FIXED: CBA_fnc_isTurnedOut relies on animation name ending in out (74432) - killswitch - thanks LordHeart
  • FIXED: Fixed Parachute Explosion when landing too fast. As well as other EH fixes (74393) - killswitch
  • IMPROVED: Slight improvements in EventHandlers - killswitch
  • IMPROVED: Per-Frame Handler (PFH) is now based off the BIS stacked event handler system - killswitch
  • IMPROVED: CBA_fnc_getFov function (74230) - Thanks ceeeb
  • IMPROVED: Revert hack for HashSet designed for Arma 3 Alpha - no longer needed for Arma 3 Final - ViperMaul

Change Log for Release Candidate 3 - https://dev.withsix.com/versions/1620

ROADMAP for Final Release - http://dev.withsix.com/versions/1632

Hosted at the following:

Signatures are included.

Submit Bugs at https://dev-heaven.net/projects/cba-a3/issues/new

Licensed Under GPLv2

Any addon which calls CBA-defined functions need not be licensed under the GPLv2

or released under a free software license. Only if you are directly including CBA code

in your addon's binarized PBO or redistributing a modified version of CBA itself would

your work be considered derivative and therefore be legally required to be released under

the terms of the GPL. (And there's no reason to ever do either of these.)

Thanks in advance for your continued feedback!

Edited by ViperMaul
Changed title from 'Current Version' to 'Version'

Share this post


Link to post
Share on other sites
Guest

New version frontpaged on the Armaholic homepage.

================================================

We have also "connected" these pages to your account on Armaholic.

This means in the future you will be able to maintain these pages yourself if you wish to do so. Once this new feature is ready we will contact you about it and explain how things work and what options you have.

When you have any questions already feel free to PM or email me!

Share this post


Link to post
Share on other sites

Thanks Viper. I have just updated the keybinding documentation to reflect the new ability to specify { code } rather than "functionName". Note that the old behavior is still supported but is considered deprecated (you will receive a warning in your rpt file.)

Share this post


Link to post
Share on other sites

I know i already asked about the CBA_disable_xeh_logging...

but what about the other files in the optional folder...

what does cba_Cashe_disable? what cashe is it disableing.. and where would it be usefull?? on a client or a server??

Share this post


Link to post
Share on other sites

CBA implements a cache for all compile preProcessFile'd scripts (incl CfgFunctions, BIS functions module etc), and for all XEH events

on CfgVehicle classes. This cache is stored in the uiNamespace and is therefore available throughout the whole lifetime of the running

game (game start, till terminate game). Each class is only cached once, while mission and campaignConfigfile events are obviously

evaluated every mission, but also only once per CfgVehicle class.

The performance gains are seen in feature heavy mods like ACE or AGM which release on scripting to make their features possible.

Some of these functions need a long time to initialize the game, switching missions, islands, going from editor back to the game,

and so forth. 2nd-nth mission (re)starts go faster, but it is still nowhere near as fast as playing the Vanilla game.

cba_cache_disable.pbo is an addon that disables this if you need it. However it makes mods slower by disabling CBA's function and

script compilation cache, and xeh cache. It is useful during development so that edits will take effect without having to restart

the game.

References:

* http://wiki.ace-mod.net/Performance_Revolution

* http://forums.bistudio.com/showthread.php?103871-CBA-Community-Base-Addons-for-A2-OA-and-CO&p=2065505&viewfull=1#post2065505

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×