[Qbs] Licensing of my own QBS modules

Карелин Павел hkarel at yandex.ru
Wed Nov 22 10:43:07 CET 2017

22.11.2017 07:58, Jake Petroules пишет:
> I took a quick look and:
> - protobuf module - there's actually an open issue for this (https://bugreports.qt.io/browse/QBS-563) so maybe you could take ownership ;)
I created modules protobuf and cuda for building Caffe-Framework on QBS. 
Since I'm developing only C++/C, I'm not ready to take responsibility 
for the protobuf-generation for Python and Java. But I'm ready to 
provide an example (if of course you are interested) of building 
Caffe-Framework, so your can look at the work of modules protobuf and 
cuda.  It only takes me awhile to do it.

> - cuda, gsoap... potentially useful, but I'm not that familiar with them
Indeed, module cuda needs further work. It is necessary to refine some 
points, for example, replace "args.push ('- std = c ++ 11')" with a more 
general instruction. Nevertheless, the module is quite workable, it can 
probably be used as an example.
The module gsoap - is my first attempt at creating modules for QBS. The 
gsoap generator has a rather complicated situation with the generation 
of namespaces. Therefore, I would not recommend this module for use, it 
needs serious revision

> - libs/... good, but set up in a way that seems fairly specific to your system.
In fact, it's just an agreement of the development team, which will be 
located some of the libraries used in the development process. On my 
previous work we supported about 10 OS (not the most recent versions - 
the billing primarily values stability). Therefore, there was such an 
arrangement: to place the relevant topical libraries in /opt.
This approach proved to be quite viable on Linux and WIndows, for example:

LibModule {
     id: opencv
     version: "3.0.x"
     prefix: "/opt/opencv"
     Properties {
         condition: qbs.targetOS.contains("windows")
                    && qbs.toolchain && qbs.toolchain.contains("mingw")
         prefix: "c:/opt/opencv"
         libSuffix: "/x86/mingw/lib"

But system libraries can also be used. For this, there is the useSystem 

> Could be useful if made more general
I do not really know which way to move here. If you give recommendations 
(ideas how to do it), then I will try to implement them.

> I'm curious about your need for the functions in GccUtl. Why do you need the full path to libstdc++.a?
I do not need a path to the libstdc++.a :) But I need a path to the 
library libstdc++.so.6, provided that used the not system compiler. For 
example, I use /opt/gcc/5.4.0 and the system compiler gcc has version 
4.8. Versions of the library  libstdc++.so.6 are incompatible with them.

> And why gcc-ar instead of ar?
The reason is the same - incompatibility of compilers. This does not 
always manifest itself, but I has already stepped on these rakes.
> It's possible we might want to make this configurable in Qbs, since there's an llvm-ar as well and there's presumably reasons a user might want to use the toolchain archiver vs the system archiver (same with the assembler).
>> On Nov 21, 2017, at 10:26 AM, Карелин Павел <hkarel at yandex.ru> wrote:
>> 21.11.2017 20:03, Jake Petroules пишет:
>>> Hi Pavel,
>>> As the author and copyright holder, you're free to use whatever license you want. MIT is certainly a good choice.
>> Ok, this is great!
>>> However, depending on the kind of functionality your modules provide, you may even like to upstream them to the Qbs project for inclusion in the official release. Perhaps you could upload the modules and we can take a look and see if it's a fit?
>> Xm, I do not think that you will find in my modules that it is really valuable :)  These are just small utilities. I did not intend to publish them, but so were the circumstances.
>> The modules are attached.
>> --
>> Pavel.
>> P.S.
>> I work in the Russian-language segment, so all comments are in Russian. If an incredible thing happens, and you like something, then you are ready to make explanations in English.
>>> Cheers.
>>>> On Nov 21, 2017, at 3:10 AM, Карелин Павел <hkarel at yandex.ru> wrote:
>>>> Hi, guys!
>>>> I wrote several modules that slightly extend the functionality of QBS. I want to place them on GitHub, for using their in both open source and commercial projects. Under what license should I place my modules?
>>>> Can I use a MIT license?
>>>> --
>>>> BR, Pavel Karelin
>>>> _______________________________________________
>>>> Qbs mailing list
>>>> Qbs at qt-project.org
>>>> http://lists.qt-project.org/mailman/listinfo/qbs
>> <QbsExt.tar.gz>

More information about the Qbs mailing list