Welcome the Siril Project!

You could look at setting up a CircleCI, Travis-CI or AppVeyor build process all offer free personal accounts & with a little digging you can get a FOSS account with more credits/time.

With such an account you can build for Linux & Windows (and Mac on AppVeyor “coming soon” on CircleCI).

If you are using GitHub or one of several other hosting services you can have builds triggered automatically on commits to the project or to specific branches of the project. It is also possible to have your GitHub/other project display a build status flag automatically.

2 Likes

Hello.
Thanks for your message. Yes I know circleCI. I even have an account. I also have a macos script that provides a dmg automatically. However for Mac I need (at least for now) to purshase a paid account.
Also, now our code are on gitlab and circleCI is only compatible with github. So it is easier to do everything linked to the main repo IMO.

@heckflosse I think you have Mingw64 in your path. I think there is something in /mingw64/bin that is required, but what?

@argonothe libtiff-5.dll is copied in /mingw64/bin when installing mingw-w64-x86_64-libtiff 4.1.0-1. So it should be in the same directory!

For libx264, you have to downgrade the package: see post above

I think that in the next future we need to use meson instead of autotools. I’ve seen we can use meson in Visual studio, that could be great.

I found the missing dll: libcroco-0.6-3.dll
It is surely called at run time and not at start time.

I am going to generate a complete build to test.

2 Likes

Thank you :slight_smile:

Hello. Quick question: is there a PPA with nightly builds?

The latest release from Nov barely fits my 2560x1440 display without running with GDK_SCALE=1.9. I never got to filing a bug report, but now I see you redesigned the UI and I’m interested to try. The amount of deps is a tad too much for me to build from git.

Hello.
There are PPAs, but not of nightly build. I manually update when there are some interesting changes :slight_smile:

This is my first Siril build for Windows. Please test as I am not able to do.
siril_master_0.9.12-292-g87acce9c_200122_W64_release.7z
uploaded at
SirilNightlyBuilds/ – Keybase.pub

edit:
siril_master_0.9.12-317-gfb66dc7d_200126_W64_generic
uploaded at same place

2 Likes

I wonder if it could be interesting to have G’MIC filters in Siril.
In G’MIC, we have pretty decent deconvolution and denoising filters among other things (also a few things for image registration and stacking). Just a wild guess !

Every ideas like this are interesting :).

I tried to build float branch. It failed on libRTprocess as there is no makefile generated.

I think one easy way is to consider librtprocess as an external dependency. (There should be no difficulty on MSYS2 as I build it and install in Mingw64, neither on Linux. )
When building siril, one first step could be to build librtprocess (CMAKE, make, make install in a local siril subdir) .

With the autotools, what is the way to perform an out of source build? (https://gitlab.kitware.com/cmake/community/-/wikis/FAQ#out-of-source-build-trees)

It’s a bit complicated right now because we are trying to make it build both on our machines and in the CI pipeline, indeed because of the out-of-source thing. We have moved to submodule for librtprocess, which should be better than cloning in the autogen.sh. If no makefile is generated it means that getting the sources or running cmake failed, strange.

The librtprocess sources are present.
There is a build subdir deps\librtprocess\build created. But there is no makefile in it. so it seems the cmakefile step is not run.

And while setting up the float branch, why you don’t go the Meson/ninja way on this branch?
And Autotools seems to me a legacy build system that I doubt any SW here use. And also very cryptic

Did you run the ./autogen.sh ?

For many reasons.
1 - we are on so many things in same time that is difficult.
2 - I am pretty bad to this stuffs like autotools, cmake and meson. It would take a long time to me to do something with it and @vinvin is very busy for now. It is always critical to remove something that works by something else


EXCELLENT! One of my biggest concerns with Siril was that it was saving FITS files as signed 16-bit. (EDIT: I wrote 32, but it’s 16. S32 wouldn’t be so bad.)

Fortunately, at the time, I was primarily image stacking to synthesize long shutter speeds for motion smoothing, and not for noise reduction. So 15 bits of dynamic range was more than enough.

Side note: A great feature for workflows that used raw files from a DSLR or mirrorless as input would be to save out a DNG with metadata that matches the input camera, instead of FITS. It’s a bit of a hassle to convert FITS to TIFF with imagemagick, rename to DNG, then tag the DNG manually with appropriate metadata. Biggest challenge might be embedding the appropriate color matrix for inputs that weren’t DNG to begin with


Each time I build, I stash all modifications and all untracked files in the repo.
Then I run autogen.sh

+ aclocal --install
aclocal-1.16: installing 'm4/intltool.m4' from '/usr/share/aclocal/intltool.m4'
aclocal-1.16: installing 'm4/nls.m4' from '/mingw64/share/aclocal/nls.m4'
aclocal-1.16: installing 'm4/pkg.m4' from '/mingw64/share/aclocal/pkg.m4'
+ intltoolize --force --copy --automake
+ autoreconf --verbose --force --install -Wno-portability
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force --warnings=no-portability -I m4
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: running: /usr/bin/autoconf --force --warnings=no-portability
autoreconf: running: /usr/bin/autoheader --force --warnings=no-portability
autoreconf: running: automake --add-missing --copy --force-missing --warnings=no-portability
configure.ac:39: installing './compile'
configure.ac:199: installing './config.guess'
configure.ac:199: installing './config.sub'
configure.ac:23: installing './install-sh'
configure.ac:23: installing './missing'
src/Makefile.am: installing './depcomp'
autoreconf: Leaving directory `.'
+ ./configure --prefix=/d/programmes/siril/install/siril_float_0.9.12-469-g8f64e3f4_200127_W64_generic
configure: loading site script /mingw64/etc/config.site
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether NLS is requested... yes
checking for intltool >= 0.50... 0.51.0 found
checking for intltool-update... /usr/bin/intltool-update
checking for intltool-merge... /usr/bin/intltool-merge
checking for intltool-extract... /usr/bin/intltool-extract
checking for xgettext... /mingw64/bin/xgettext
checking for msgmerge... /mingw64/bin/msgmerge
checking for msgfmt... /mingw64/bin/msgfmt
checking for gmsgfmt... /mingw64/bin/msgfmt
checking for perl... /usr/bin/perl
checking for perl >= 5.8.1... 5.30.1
checking for XML::Parser... ok
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.exe
checking for suffix of executables... .exe
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking whether make supports the include directive... yes (GNU style)
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for gcc option to support OpenMP... -fopenmp
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking how to run the C++ preprocessor... g++ -E
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking execinfo.h usability... no
checking execinfo.h presence... no
checking for execinfo.h... no
checking sys/vfs.h usability... no
checking sys/vfs.h presence... no
checking for sys/vfs.h... no
checking sys/vmount.h usability... no
checking sys/vmount.h presence... no
checking for sys/vmount.h... no
checking sys/statfs.h usability... no
checking sys/statfs.h presence... no
checking for sys/statfs.h... no
checking sys/statvfs.h usability... no
checking sys/statvfs.h presence... no
checking for sys/statvfs.h... no
checking sys/filio.h usability... no
checking sys/filio.h presence... no
checking for sys/filio.h... no
checking for reallocarray... no
checking for timegm... no
checking for gmtime_r... no
checking for backtrace... no
checking for backtrace in -lexecinfo... no
checking for log in -lm... yes
checking for pkg-config... /mingw64/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for glib-2.0 >= 2.56.0... yes
checking for exiv2 >= 0.25... yes
checking for gtk+-3.0 >= 3.17.0... yes
checking for fftw3... yes
checking for gsl < 2... no
checking for gsl >= 2... yes
checking for cfitsio... yes
checking for libconfig >= 1.4... yes
checking whether we are using the GNU C++ compiler... (cached) yes
checking whether g++ accepts -g... (cached) yes
checking dependency style of g++... (cached) gcc3
checking how to run the C++ preprocessor... g++ -E
checking whether g++ supports C++11 features by default... yes
checking for opencv >= 3.0... no
checking for opencv >= 2.0... no
checking for opencv4... yes
checking for libraw >= 0.17... yes
checking for libtiff-4... yes
checking for jpeg_mem_src in -ljpeg... yes
checking for libpng >= 1.6... yes
checking for libheif... yes
checking for ffms2... yes
checking for libavformat libavutil >= 55.20 libavcodec libswscale libswresample... yes
checking for gawk... (cached) gawk
checking for curl-config... /mingw64/bin/curl-config
checking for the version of libcurl... 7.68.0
checking for libcurl >= version 7.10.0... yes
checking whether libcurl is usable... yes
checking for curl_free... yes
checking build system type... x86_64-w64-mingw32
checking host system type... x86_64-w64-mingw32
checking platform and architecture... windows
checking for lib.exe... no
checking for windres... windres
checking for native gdk windows style... win32
checking whether we build a relocatable package... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating pixmaps/Makefile
config.status: creating pixmaps/icons/Makefile
config.status: creating platform-specific/Makefile
config.status: creating platform-specific/linux/Makefile
config.status: creating po/Makefile.in
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing po/stamp-it commands
  git HEAD changed: git-version.h regenerated
make  all-recursive
make[1] : on entre dans le répertoire « /d/programmes/siril/siril »
Making all in deps/kplot
make[2] : on entre dans le répertoire « /d/programmes/siril/siril/deps/kplot »
( cat compat.pre.h ; \
  CC="gcc" CFLAGS="-Werror=unknown-pragmas -Werror=unused-label -mtune=generic -O3 -fopenmp" sh compat.sh reallocarray ; \
  cat compat.post.h ; ) >compat.h
gcc -Werror=unknown-pragmas -Werror=unused-label -mtune=generic -O3 -fopenmp `pkg-config --cflags --silence-errors cairo || echo '-I/opt/X11/include/cairo'` -o array.o -c array.c
gcc -Werror=unknown-pragmas -Werror=unused-label -mtune=generic -O3 -fopenmp `pkg-config --cflags --silence-errors cairo || echo '-I/opt/X11/include/cairo'` -o border.o -c border.c
gcc -Werror=unknown-pragmas -Werror=unused-label -mtune=generic -O3 -fopenmp `pkg-config --cflags --silence-errors cairo || echo '-I/opt/X11/include/cairo'` -o bucket.o -c bucket.c
gcc -Werror=unknown-pragmas -Werror=unused-label -mtune=generic -O3 -fopenmp `pkg-config --cflags --silence-errors cairo || echo '-I/opt/X11/include/cairo'` -o buffer.o -c buffer.c
gcc -Werror=unknown-pragmas -Werror=unused-label -mtune=generic -O3 -fopenmp `pkg-config --cflags --silence-errors cairo || echo '-I/opt/X11/include/cairo'` -o colours.o -c colours.c
gcc -Werror=unknown-pragmas -Werror=unused-label -mtune=generic -O3 -fopenmp `pkg-config --cflags --silence-errors cairo || echo '-I/opt/X11/include/cairo'` -o draw.o -c draw.c
gcc -Werror=unknown-pragmas -Werror=unused-label -mtune=generic -O3 -fopenmp `pkg-config --cflags --silence-errors cairo || echo '-I/opt/X11/include/cairo'` -o grid.o -c grid.c
gcc -Werror=unknown-pragmas -Werror=unused-label -mtune=generic -O3 -fopenmp `pkg-config --cflags --silence-errors cairo || echo '-I/opt/X11/include/cairo'` -o hist.o -c hist.c
gcc -Werror=unknown-pragmas -Werror=unused-label -mtune=generic -O3 -fopenmp `pkg-config --cflags --silence-errors cairo || echo '-I/opt/X11/include/cairo'` -o label.o -c label.c
gcc -Werror=unknown-pragmas -Werror=unused-label -mtune=generic -O3 -fopenmp `pkg-config --cflags --silence-errors cairo || echo '-I/opt/X11/include/cairo'` -o kdata.o -c kdata.c
gcc -Werror=unknown-pragmas -Werror=unused-label -mtune=generic -O3 -fopenmp `pkg-config --cflags --silence-errors cairo || echo '-I/opt/X11/include/cairo'` -o kplot.o -c kplot.c
gcc -Werror=unknown-pragmas -Werror=unused-label -mtune=generic -O3 -fopenmp `pkg-config --cflags --silence-errors cairo || echo '-I/opt/X11/include/cairo'` -o margin.o -c margin.c
gcc -Werror=unknown-pragmas -Werror=unused-label -mtune=generic -O3 -fopenmp `pkg-config --cflags --silence-errors cairo || echo '-I/opt/X11/include/cairo'` -o mean.o -c mean.c
gcc -Werror=unknown-pragmas -Werror=unused-label -mtune=generic -O3 -fopenmp `pkg-config --cflags --silence-errors cairo || echo '-I/opt/X11/include/cairo'` -o plotctx.o -c plotctx.c
gcc -Werror=unknown-pragmas -Werror=unused-label -mtune=generic -O3 -fopenmp `pkg-config --cflags --silence-errors cairo || echo '-I/opt/X11/include/cairo'` -o reallocarray.o -c reallocarray.c
reallocarray.c: In function 'reallocarray':
reallocarray.c:35:30: warning: left shift count >= width of type [-Wshift-count-overflow]
   35 | #define MUL_NO_OVERFLOW (1UL << (sizeof(size_t) * 4))
      |                              ^~
reallocarray.c:42:16: note: in expansion of macro 'MUL_NO_OVERFLOW'
   42 |  if ((nmemb >= MUL_NO_OVERFLOW || size >= MUL_NO_OVERFLOW) &&
      |                ^~~~~~~~~~~~~~~
gcc -Werror=unknown-pragmas -Werror=unused-label -mtune=generic -O3 -fopenmp `pkg-config --cflags --silence-errors cairo || echo '-I/opt/X11/include/cairo'` -o stddev.o -c stddev.c
gcc -Werror=unknown-pragmas -Werror=unused-label -mtune=generic -O3 -fopenmp `pkg-config --cflags --silence-errors cairo || echo '-I/opt/X11/include/cairo'` -o tic.o -c tic.c
gcc -Werror=unknown-pragmas -Werror=unused-label -mtune=generic -O3 -fopenmp `pkg-config --cflags --silence-errors cairo || echo '-I/opt/X11/include/cairo'` -o vector.o -c vector.c
ar rs libkplot.a array.o border.o bucket.o buffer.o colours.o draw.o grid.o hist.o label.o kdata.o kplot.o margin.o mean.o plotctx.o reallocarray.o stddev.o tic.o vector.o
C:\msys64\mingw64\bin\ar.exe: cr▒ation de libkplot.a
make[2] : on quitte le répertoire « /d/programmes/siril/siril/deps/kplot »
Making all in deps/librtprocess/build
make[2] : on entre dans le répertoire « /d/programmes/siril/siril/deps/librtprocess/build »
make[2]: *** Aucune rĂšgle pour fabriquer la cible « all ». ArrĂȘt.
make[2] : on quitte le répertoire « /d/programmes/siril/siril/deps/librtprocess/build »
make[1]: *** [Makefile:587 : all-recursive] Erreur 1
make[1] : on quitte le répertoire « /d/programmes/siril/siril »
make: *** [Makefile:443 : all] Erreur 2
-8 make error

yes, I quite understand

OK. Thanks.
float is always a WIP. So it is normal there are some issues :).
@vinvin is working hard on it.

If you prefer I can post bug reprts on your repo.

Yes you can ;).