noubernou 77 Posted July 15, 2014 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
John Kozak 14 Posted July 15, 2014 (edited) 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 July 15, 2014 by DarkWanderer Share this post Link to post Share on other sites
Ckif 10 Posted July 15, 2014 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
noubernou 77 Posted July 15, 2014 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
Taosenai 11 Posted July 15, 2014 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
lordprimate 159 Posted July 15, 2014 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
cuel 25 Posted July 15, 2014 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
roshnak 41 Posted July 15, 2014 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
Ckif 10 Posted July 16, 2014 the problem is solved by renaming the folder @ CBA_A3 in @ CBA_A3_RC2. Share this post Link to post Share on other sites
PuFu 4600 Posted July 16, 2014 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
lordheart 1 Posted July 17, 2014 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
lordprimate 159 Posted July 17, 2014 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
Avarax 10 Posted July 19, 2014 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
Taosenai 11 Posted July 19, 2014 (edited) 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 July 19, 2014 by Taosenai Share this post Link to post Share on other sites
Sniperwolf572 758 Posted July 19, 2014 (edited) 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 July 19, 2014 by Sniperwolf572 Share this post Link to post Share on other sites
Taosenai 11 Posted July 20, 2014 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
Sniperwolf572 758 Posted July 20, 2014 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
killswitch 19 Posted July 20, 2014 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
lordprimate 159 Posted July 20, 2014 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
kgino1045 12 Posted July 22, 2014 (edited) 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 July 22, 2014 by kgino1045 Share this post Link to post Share on other sites
vipermaul 246 Posted July 24, 2014 (edited) 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: Dev-Heaven - CBA_A3_RC3.7z - http://dev.withsix.com/projects/cba-a3/files MEGA - CBA_A3_RC3.7z - http://bit.ly/UvCKuP Armaholic - Click Here Play withSix(PwS) - Click Here 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 August 18, 2014 by ViperMaul Changed title from 'Current Version' to 'Version' Share this post Link to post Share on other sites
Guest Posted July 24, 2014 New version frontpaged on the Armaholic homepage. Community Base addons A3 RC3 ================================================ 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
Taosenai 11 Posted July 24, 2014 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
lordprimate 159 Posted July 24, 2014 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
vipermaul 246 Posted July 25, 2014 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