Qucs / gnucsator

This package provides a gnucap based qucsator implementation.
GNU General Public License v3.0
13 stars 4 forks source link

Release binaries for this project #2

Closed danyill closed 1 year ago

danyill commented 4 years ago

I've found the transient analysis of Qucs using gnucsator to be helpful and so far trouble free (following the advice from https://github.com/Qucs/qucs/issues/986). Thanks!

It would be great if we could:

  1. have a release
  2. use CI/CD (e.g. using Github Actions) to provide a release binary (preferably with static binaries for Linux/Windows to avoid a need to install dependencies).

I'm keen to provide gnucsator to colleagues to use for transient analysis with Qucs but building this on Windows is difficult and (for me) unachievable unless I can provide a download link and some binaries.

I guess to not have a Python dependency the Python script for converting to the Qucs format needs to be rewritten in C++ and also support other analyses (at the moment no output is given other than transient analysis).

Given the deficiencies in the Qucs transient analysis perhaps gnucsator should be used for transient analysis instead?

felix-salfelder commented 4 years ago

On Sat, Mar 14, 2020 at 09:35:16PM -0700, danyill wrote:

  1. have a release

with some little more work we could call it 0.0.0.

  1. use CI/CD (e.g. using Github Actions) to provide a release binary (preferably with static binaries for Linux/Windows to avoid a need to install dependencies).

For GNU/Linux, the need for binaries is very little. Gnucap is already packaged or easy to build. Gnucsator will/could be packaged at some point and in the meantime, the manual "make" step is simple. NB: future Gnucap will load plugins from source ("compile-on-demand"), and only the gnucsator executable will be binary. but that executable is borrowed from gnucap-custom, and does not fully belong here. (qucsator = gnucap-custom + qucsator.rc).

I'm keen to provide gnucsator to colleagues to use for transient analysis with Qucs but building this on Windows is difficult and (for me) unachievable unless I can provide a download link and some binaries.

That sounds interesting.

non-POSIX systems are supported. Somebody will have to put together a Gnucap package for this platform. It might have become easier with the autotools support [0], but it's not finished, c.f. "mingw" in [1]. There have also been mentions on gnucap-devel. Please help.

[0] http://gnucap.org/dokuwiki/doku.php/gnucap:manual:autotools [1] http://git.savannah.gnu.org/cgit/gnucap/gnucap-tools.git/tree/README?h=autotools

felix-salfelder commented 4 years ago

On Sat, Mar 14, 2020 at 09:35:16PM -0700, danyill wrote:

I guess to not have a Python dependency the Python script for converting to the Qucs format needs to be rewritten in C++ and also support other analyses (at the moment no output is given other than transient analysis).

Taking this to gnucap-devel (cc).

Background: Dan has written a python script to convert transient output to a format that Qucs can read. This is faster than my ancient shell script in gnucap-qucs (and maybe less broken). With this, Qucs+Gnucap becomes more practical. But it does not fully align with the plan.

The plan is to use (an) output plugin(s) for producing output in the desired format. An output plugin could be implemented in C++ and hooks into the simulation command [1]. Transient output is particularly simple, and it seems to make sense to have a plugin based on the latest output-$n branch. The best outcome will be, it just works with develop, once this is merged (maybe with a minor fix). The worst outcome: we have to wait. Patch s__out.cc in gnucap-qucs, to use the plugin as an intermediate kludge. Still much closer to the plan.

Maybe Al can say something about the status of this.

Given the deficiencies in the Qucs transient analysis perhaps gnucsator should be used for transient analysis instead?

Historically, the focus of qucsator was not transient simulation. We need to focus on how to provide choices for the user (e.g. package gnucsator), and see what happens.

cheers felix

[1] http://gnucap.org/dokuwiki/doku.php/gnucap:manual:tech:plugins:output

danyill commented 4 years ago

Thanks for the feedback, I'd like to help out but my skills in this area are pretty limited. If time allows I'll hope to make it a learning opportunity over the southern hemisphere winter.

felix-salfelder commented 4 years ago

On Sun, Mar 22, 2020 at 02:09:31AM -0700, danyill wrote:

Thanks for the feedback, I'd like to help out but my skills in this area are pretty limited. If time allows I'll hope to make it a learning opportunity over the southern hemisphere winter.

okay, i have polished this. should be enough for a 0.0.0 release, if someone cares to test it.

I have put breadcrumbs into the autotools build [1], all we need is somebody who actually tries this.

Should also add an option to cross compile. Does anybody know how to do it?

[1] https://git.savannah.gnu.org/cgit/gnucap/gnucap-tools.git/log/?h=autotools

crobarcro commented 4 years ago

You can very easily cross-compile with mxe. MXE provides a comprehensive makefile based cross-compilation environment for windows which also cross-compiles many libraries for windows. After installing MXE, for autotools it is as simple as

./configure --host=x86_64-w64-mingw32.static

or

./configure --host=x86_64-w64-mingw32.shared

MXE also builds the entire compilation toolchain necessary, i.e. gcc etc.

felix-salfelder commented 4 years ago

On Wed, Apr 15, 2020 at 02:35:34PM -0700, crobarcro wrote:

./configure --host=x86_64-w64-mingw32.shared

MXE also builds the entire compilation toolchain necessary, i.e. gcc etc.

Thanks. I have added a note to the README file there [0].

Does this work? note that you may need to use the develop branch.

[0] https://git.savannah.gnu.org/cgit/gnucap/gnucap-tools.git/commit/?h=autotools&id=e344a5ee81c189afa0319441cb2521f7cb1ac647

felix-salfelder commented 3 years ago

note that you may need to use the develop branch.

... it's all in the recent release [1].

[1] http://git.savannah.gnu.org/cgit/gnucap.git/tag/?h=20210107

felix-salfelder commented 1 year ago

There is an Arch/AUR package now and it's as close to binaries as it gets. Please create packages for other distros if you can.