Saturday, June 08, 2019

Re: new: devel/woboq_codebrowser

On Sat, Jun 01, 2019 at 09:29:25AM +0200, Sebastien Marie wrote:
> Hi,
>
> I would like to import woboq_codebrowser, a HTML generator from C, C++
> source code. It is based on LLVM.

ping.

tarball attached (with light change for unveil use if the output
directory doesn't already exists).

> Homepage: https://woboq.com/codebrowser.html
> Example usage: https://code.woboq.org/ (with Qt, GLibc, LLVM, Boost, GCC, Linux)
>
> From pkg/DESCR:
> The generator generates static HTML pages that can be served by any web
> server. It can be run automatically manually or with a hook on your
> version control or CI system.
>
> It functions as the source code indexer (using libclang). In contrast to
> other solutions (LXR, OpenGrok) it semantically analyzes the code as a
> compile step.
>
> The generation is a two-step process: First is a compile step that
> creates a .h.html and .cpp.html (and some other) files from the syntax
> tree (AST) of the source source. The second step generates an index.html
> for each directory.
>
> A server-side database or CGI script are currently not needed, so it is
> easy to host. Your normal HTML5 web browser is the source code navigator
> (from your local machine or your network).
>
>
>
> First, it is dual licenced: Commercial or CC-BY-NC-SA 3.0. It
> means the licence does not allow to use the code browser
> to assist the development of your commercial software:
> https://github.com/woboq/woboq_codebrowser#licence-information
>
> I mentioned it in pkg/DESCR and in pkg/README to ensure user will be
> aware of it.
>
>
>
> Regarding the port itself:
>
> - does the category "devel" is the right one ? It could be "www" ou
> "textproc" too.
>
> - the programs (code generator and index generator) are C++ and are
> linked against LLVM-7.so. As it is using "MODULES += lang/clang", I do
> not mention any preference in COMPILER. Is it right ?
>
> - for LLVM-7.so dependency, I added devel/llvm explicitly in RUN_DEPENDS.
>
> - the port version is "2.1pl0" : the official 2.1 (from Jul 26, 2017)
> doesn't build against LLVM 7. There are commits in master branch to
> support it, so I targeted the latest commit in master branch (Mar 26, 2019).
>
> It is still versioned as "2.1" in code source, so the port has
> "2.1 patchlevel 0", and we could increment the patchlevel if we target a
> new commit still in 2.1, or switch to 2.2 when released.
>
> - I included in pkg/README the way to use it on OpenBSD kernel as some
> gymnastic is required (the input list of files to consider is JSON as
> required by clang tooling).
>
> - I also added pledge(2) and unveil(2) to the programs. There are restricted
> to basic filesystem operations (readonly), with only write capability on
> output directory.
>
> Comments or OK to import it ?

Thanks.
--
Sebastien Marie

No comments:

Post a Comment