#949344 ITP: cbang -- C! supports cross-platform networking, debugging, crypto, embedded JavaScript and event driven C++ development.

Package:
wnpp
Source:
wnpp
Submitter:
Joseph Coffland
Date:
2025-11-29 16:45:47 UTC
Severity:
wishlist
#949344#5
Date:
2020-01-20 01:19:36 UTC
From:
To:
* Package name    : cbang
  Version         : 1.3.3
  Upstream Author : Joseph Coffland <joseph@cauldrondevelopment.com>
* URL             : https://github.com/CauldronDevelopmentLLC/cbang
* License         : GPL-2+
  Programming Lang: C++
  Description     : C! supports cross-platform networking, debugging, crypto, embedded JavaScript and event driven C++ development.

C! is a collection of C++ utility libraries developed over the course
of +15 years and several major C++ application development
projects including much of the software behind Folding@home,
the CAMotics CNC simulator.  It should compile and run on Windows, Linux
and OSX using a modern C++ compiler C++11 suppport.

Many of the facilities of C! are geared towards cross-platform
application development and providing basic services that most
applications need such as a configuration system, run-time build
information, logging facilities, threads, smart pointers, simple
embedded scripting, etc.

C!'s philosophy is to create clean, simple, readable, modular and
reusable code.  C! also encourages exception based error handling,
and light use of C++ templates and C preprocesor macros.

C! leans on the venerable boost library but also reimplements
several boost APIs which are considered by the author to be too
template heavy, less readable or overly complicated in boost.

The code was developed on an as needed basis and was never intended to
be any sort of grand unifying system for C++ application development.
However, I hope others find many parts of the library useful in C++
development projects.

The initial goal of packaging C! for Debian is to make it possible
to package the CNC simulator CAMotics.  In addition, an Open-Source
Folding@home client is being developed which I would also like to
package for Debian.  CAMotics has been actively maintained since 2011
and Folding@home since 1999.  Once included in Debian, the cbang package
will be maintained by its author.

#949344#12
Date:
2024-11-04 09:31:18 UTC
From:
To:
Dear Joseph,

I am interested in helping out.  I noticed your intention to package
cbang for Debian.  Did anything happen with your effort to get it into
Debian since 2020?  I am interested in having CAMotics in Debian, and
cbang is as you mention, a dependency.

#949344#17
Date:
2024-11-07 11:59:51 UTC
From:
To:
Petter,

I've not been able to move forward on this.  Mainly due to lack of
knowledge in how to best package for Debian and lack of time.

Your help would be much appreciated.  I'm going through your PRs now.

Thanks,

Joseph

#949344#22
Date:
2024-11-07 12:19:32 UTC
From:
To:
[Joseph Coffland]

This sound indeed like something I might be able to assist in.  Perhaps
we could meet on IRC, #cam on irc.libera.chat, to coordinate the
details?

#949344#27
Date:
2024-11-08 14:04:36 UTC
From:
To:
Based on dicussion with Joseph about the API and ABI stability of cbang,
which as I understand it is regularly changed in ways that break API and
ABI compatibility, and a given version of camotics (and any other of his
projects using it) will only work with a specific version of cbang that
were used when he built that version of camotics, and the cbang SONAME
is not changed upstream when it changes in a way that break the ABI.  As
such, I suspect it will be a lot of work to try to maintain it as a
shared library in Debian before its API and ABI stabilizes and the
SONAME is maintained in a way to ensure incompatible versions have
distinct SONAME values.

Most of this was discussed on IRC, but
<URL: https://github.com/CauldronDevelopmentLLC/cbang/issues/105 > also
got some background information.

This make me in doubt how to best package camotics for Debian.  Perhaps
only providing a static library and requiring all reverse build
dependencies to be rebuilt when cbang changes?  This of course would
require all packages using cbang to be updated together in Debian, to
avoid making any of these packages to no longer build.