Call for testers. (EEmodern)

CALL FOR ALPHA TESTERS

Anyone out there willing to do some alpha testing? There are only two requirements: be able to build your own Kicad from a GIT branch, and be willing to provide feedback (email to dev list, launchpad bugs, replies here, whatever – I’m not picky).

Of course :slight_smile: Is it the eemodern branch?

(If the discussion continues it should be detached to its own thread.)

Yes, it is indeed for eemodern.

Done :wink: (not only to ensure the other thread keeps clean but also to increase visibility of this call for testers.)

Was this specific to the features mentioned in the other thread? Might want to mention them here.

I would assume this is the mailing list discussion referenced by @eelik https://lists.launchpad.net/kicad-developers/msg40317.html

2 Likes

@hermit, no the features in the other thread are in master (and therefore in the nightlies). The eemodern branch is still too incomplete (and buggy) for the nightlies.

Hi @JeffYoung,

Any hints for solving this make error? Thanks!

[ 98%] Building CXX object qa/utils/kicad2step/CMakeFiles/qa_kicad2step.dir/pcb/test_base.cpp.o
/home/pedro/kicad/kicad-source-mirror/qa/utils/kicad2step/pcb/test_base.cpp: In member function ‘void PcbBase::SexprTo2DPosAndRot::test_method()’:
/home/pedro/kicad/kicad-source-mirror/qa/utils/kicad2step/pcb/test_base.cpp:112:5: error: could not convert ‘{{"(at 0 0 0)", true, {0.0, 0.0}, 0.0}, {"(at 3.14 4.12 90.4)", true, {3.1400000000000001e+0, 4.1200000000000001e+0}, DegToRad(9.0400000000000006e+1)}, {"(at 3.14)", false, (), ()}, {"(att 3.14 4.12 90.4)", false, (), ()}}’ from ‘’ to ‘const std::vectorPcbBase::TEST_2D_POS_ROT
};
^
make[2]: *** [qa/utils/kicad2step/CMakeFiles/qa_kicad2step.dir/pcb/test_base.cpp.o] Error 1
make[1]: *** [qa/utils/kicad2step/CMakeFiles/qa_kicad2step.dir/all] Error 2
make: *** [all] Error 2

@pedro, that’s just a qa test. The easiest thing is probably just to exclude it from you build.

(I had trouble with it a while back, but it’s working for me now. Odd.)

@johnbeard

How do I exclude qa from the build?

What platform, and what dev environment?

(I’m using CLion and you can click on the folder and say “Exclude from Build”. However, IIRC I might have had to edit one of the CMakeFiles. I’m no expert at that so I’m tagging some more devs for help…)

@Seth_h, @craftyjon

Sorry, kubuntu 14.04.
I’m making a try right now. Just deleted the paragraph with qa_kicad2step from the makefile…

Edit: command line cmake, make and make install

I would be interested in helping use test,

For others, there is a functional docker image with build dependencies pre-installed (based on Ubuntu 16.04) that I posted, this will allow you to build the software in a virtual environment via a docker container. If other base images are needed, simply post a request.

I quote myself: this solution didn’t work.

Comment out line 951 from CMakeLists.txt

add_subdirectory( qa )

Then re-run cmake.

2 Likes

So what’s different in the eemodern branch? Mostly the eeschema toolset. It’s now based on a selection model. There are some new “features” that fall out of this such as stingy vs greedy selections (like in PCBNew), clipboard-based cut/copy/paste (so you can paste between documents or even between KiCad and a text editor).

1 Like

After disabling qa tests this way, and a small patch, the build completes on branch eemodern using the kicad-builder docker image.

GIT Source: https://github.com/kicad/kicad-source-mirror
Running Environment: Ubuntu 16.0.4.6 LTS
Build Environment: docker image pcbops/kicad-builder:latest based on Ubuntu 16.04
CMakeList: Comment Out Line 951
Build Command: mkdir build && cd build && cmake .. && make -j8 && make install

/workspace/eeschema/tools/sch_selection_tool.cpp: In member function 'int SCH_SELECTION_TOOL::SelectConnection(const TOOL_EVENT&)':
/workspace/eeschema/tools/sch_selection_tool.cpp:516:90: error: taking address of temporary array
     RequestSelection( (KICAD_T[]) { SCH_LINE_LOCATE_WIRE_T, SCH_LINE_LOCATE_BUS_T, EOT } );
                                                                                          ^
eeschema/CMakeFiles/eeschema_kiface.dir/build.make:4829: recipe for target 'eeschema/CMakeFiles/eeschema_kiface.dir/tools/sch_selection_tool.cpp.o' failed
make[2]: *** [eeschema/CMakeFiles/eeschema_kiface.dir/tools/sch_selection_tool.cpp.o] Error 1
CMakeFiles/Makefile2:1129: recipe for target 'eeschema/CMakeFiles/eeschema_kiface.dir/all' failed
make[1]: *** [eeschema/CMakeFiles/eeschema_kiface.dir/all] Error 2

This temporary array is destroyed as soon as it is created so it fails the build

A simple patch lets the build complete (Move argument to temporary variable)

The complete patch is attached eemodern_patch.patch (1.0 KB)

Result:

eeschema runs and there is a modern mode setting under preferences . Cannot take screenshot of this as eeschema capture keyboard input so hard that print screen does not get propogated to the. Version Info Below

Application: eeschema
Version: 5.1.0-unknown, release build
Libraries:
    wxWidgets 3.0.2
    libcurl/7.47.0 OpenSSL/1.0.2g zlib/1.2.8 libidn/1.32 librtmp/2.3
Platform: Linux 4.4.0-142-generic x86_64, 64 bit, Little endian, wxGTK
Build Info:
    wxWidgets: 3.0.2 (wchar_t,wx containers,compatible with 2.8) GTK+ 2.24
    Boost: 1.58.0
    OpenCASCADE Community Edition: 6.8.0
    Curl: 7.47.0
    Compiler: GCC 5.4.0 with C++ ABI 1009

Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=OFF
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_PYTHON3=OFF
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_WXPYTHON_PHOENIX=OFF
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=ON

Thanks for that patch. There are a bunch more of those so I’ll fix them.

(Odd that it works fine on OSX…)

1 Like

It’s compiler specific , since this behavior is actually a c extension in c++ and not actually c++ and thus up to implementation on the lifetime duration of the specified variable. GCC was picky about only one of them,but perhaps the others will show up as crashes. On some, stricter, c++ compilers without extensions it is liable to fail alltogether

1 Like

New bits pushed to eemodern.

2 Likes