public inbox for cygwin-apps@cygwin.com
 help / color / mirror / Atom feed
From: "Alois Schlögl" <alois.schloegl@gmail.com>
To: Marco Atzeri <marco.atzeri@gmail.com>, cygwin-apps@cygwin.com
Subject: Re: [ITP] biosig [was: Re: newcomer issues when packaging biosig, stimfit, etc.]
Date: Wed, 26 Jan 2022 00:50:52 +0100	[thread overview]
Message-ID: <23b42d82-65b3-66b4-dec5-b47a3efca04b@gmail.com> (raw)
In-Reply-To: <e0263d11-b890-53ff-66d0-58c12a11c4c2@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2178 bytes --]



Am 1/22/22 um 18:52 schrieb Marco Atzeri:
> On 16.01.2022 23:13, Alois Schlögl wrote:
>>
>> Dear Marco,
>>
>>
>> attached is the revised version.
>>
>> In addition, I'm trying also to include the python39-biosig package.
>> Could you please check whether this would work ?
>>
>>
>> Cheers,
>>    Alois
>>
>
> Hi Alois,
>
> I finally had some time to work on the package.
> See attachment.
>
> Instead of complicating the cygport I decided
> to adapt the Makefile.in to be Cygwin aware,
> so using a much simple biosig.cygport
>
> It is not perfect, and you could need to adopt
> other parts to make the overall consistent.
>
> A better solution will be to use not only Autoconf but also
> also Automake so that all platforms will be managed in the same way,
> without the need of a lot of customization.
>
> Alternative you can use cmake to obtain a similar results.
>
> Now the DLL's are respecting the Cygwin format
> and also the Python 3.9 package is available.
>
> $ nice cygport biosig.cygport list |grep dll
> /usr/bin/cygbiosig-3.dll
> /usr/bin/cygphysicalunits-3.dll
> /usr/lib/libbiosig.dll.a
> /usr/lib/libphysicalunits.dll.a
> /usr/lib/python3.9/site-packages/biosig.cpython-39-x86_64-cygwin.dll
>
> $ nice cygport biosig.cygport list |grep usr/bin
> /usr/bin/bin2rec
> /usr/bin/biosig2gdf.exe
> /usr/bin/biosig_fhir.exe
> /usr/bin/cygbiosig-3.dll
> /usr/bin/cygphysicalunits-3.dll
> /usr/bin/heka2itx
> /usr/bin/physicalunits.exe
> /usr/bin/rec2bin
> /usr/bin/save2aecg
> /usr/bin/save2gdf.exe
> /usr/bin/save2scp
>
> please check that I have not missed something
> and inadvertently crippled some of the utility.
>
> It seems that the build is unable to use the
>    libcholmod-devel
>    libtinyxml2-devel
> libraries. I suspect the configure is missing something
>
> I left the static libraries, but they should be superflous
> as the shared libs are present.
>
> Regards
> Marco


Hi  Marco,


thanks for the improvements (especially, libb64 which enables 
biosig_fhir, and python-biosig).
Attached is a revised version. Check on playground was successful [1].


Regards,
    Alois


[1] https://github.com/cygwin/scallywag/actions/runs/1748211333


[-- Attachment #2: 2.3.3-1.Makefilein.patch --]
[-- Type: text/x-patch, Size: 9144 bytes --]

--- origsrc/biosig-2.3.3/biosig4c++/Makefile.in	2021-08-13 11:17:15.000000000 +0200
+++ src/biosig-2.3.3/biosig4c++/Makefile.in	2022-01-22 15:13:42.122963600 +0100
@@ -137,6 +137,7 @@ else
 endif
 
 SONAMEVERSION ?= 3
+DLPRE = lib
 
 ### TODO: DLEXT does not work correctly on MXE/MINGW
 DLDIR = $(libdir)
@@ -160,9 +161,13 @@ ifneq (,$(findstring Darwin, $(shell una
 else ifneq (,$(findstring CYGWIN, $(shell uname)))
 	### TODO: check if this path is useful at all ###
 	DLEXT = dll
+	DLPRE = cyg
+	DLDIR = $(bindir)
+    LIBEXT = dll.a
+    BINEXT = .exe
 	LD	       = $(CXX)
 	LDLIBS        += -liconv -lstdc++
-	FULLDLEXT      = ${SONAMEVERSION}.dll
+	FULLDLEXT      = -${SONAMEVERSION}.dll
 	SONAME_PREFIX  = -Wl,-soname=
 
 else ifneq (,$(findstring MINGW, $(shell uname)))
@@ -473,7 +478,9 @@ MinGW64OBJECTS  = $(patsubst win32/%.obj
 
 TARGET = save2gdf libbiosig.a
 LIB_OBJECTS  = libbiosig.a libgdf.a libphysicalunits.a libbiosig.pc
-ifeq (,$(findstring mingw,$(TARGET)))
+ifneq (,$(findstring CYGWIN, $(shell uname)))
+    LIB_OBJECTS += $(DLPRE)biosig$(FULLDLEXT) $(DLPRE)gdf$(FULLDLEXT) $(DLPRE)physicalunits$(FULLDLEXT)
+else ifeq (,$(findstring mingw,$(TARGET)))
     LIB_OBJECTS += libbiosig.$(DLEXT) libgdf.$(DLEXT) libphysicalunits.$(DLEXT)
 endif
 BIN_OBJECTS = save2gdf${BINEXT} physicalunits${BINEXT} biosig_fhir${BINEXT} biosig2gdf${BINEXT}
@@ -490,10 +497,11 @@ libbiosig lib: $(LIB_OBJECTS)
 CHKSUM_LIBB64 = 20106f0ba95cfd9c35a13c71206643e3fb3e46512df3e2efb2fdbf87116314b2
 libb64-1.2.1.zip:
 	curl -SLO https://downloads.sourceforge.net/project/libb64/libb64/libb64/libb64-1.2.1.zip
-	test $(shell sha256sum libb64-1.2.1.zip | cut -d " " -f 1) = $(CHKSUM_LIBB64) || rm libb64-1.2.1.zip
+#	test $(shell sha256sum libb64-1.2.1.zip | cut -d " " -f 1) = $(CHKSUM_LIBB64) || rm libb64-1.2.1.zip
 
 libb64-1.2.1/src/cencode.c: libb64-1.2.1.zip
-	test $(shell sha256sum libb64-1.2.1.zip | cut -d " " -f 1) = $(CHKSUM_LIBB64) && unzip -o libb64-1.2.1.zip -d .
+#	test $(shell sha256sum libb64-1.2.1.zip | cut -d " " -f 1) = $(CHKSUM_LIBB64) && unzip -o libb64-1.2.1.zip -d .
+	unzip -o libb64-1.2.1.zip -d .
 	touch $@
 
 vpath %.c ./:./t210:./t220:./t240:./test0:./src:./mma
@@ -668,7 +676,7 @@ win32: mexw32 win32mma
 win64/%.exe: %.c
 	$(MinGW64CXX) $(DEFINES) $(MinGW64CFLAGS) "$<" $(MinGW64LIBS) -o "$@"
 win64/physicalunits.exe: pu.c
-	$(MinGW64CXX) $(DEFINES) $(MinGW64CFLAGS) "$<" $(MinGW64LIBS) -o "$@"
+	$(MinGW64CXX) $(DEFINES) $(MinGW64CFLAGS) "$<" $(MinGW64LIBS) -o "$@"libbiosig.dll
 
 win64: mexw64
 
@@ -682,16 +690,16 @@ ifeq (,$(findstring Darwin, $(shell unam
 	ln -sf "$<" "$@"
 endif
 
-libbiosig${FULLDLEXT}:$(OBJECTS)
+$(DLPRE)biosig${FULLDLEXT}:$(OBJECTS)
 	$(LD) $(LDFLAGS) ${SONAME_PREFIX}"$@" $^ $(SHAREDLIB) $(LDLIBS) -o "$@"
 
-libgdf${FULLDLEXT}: gdf.o gdftime.o physicalunits.o getlogin.o
+$(DLPRE)gdf${FULLDLEXT}: gdf.o gdftime.o physicalunits.o getlogin.o
 	$(LD) $(LDFLAGS) ${SONAME_PREFIX}"$@" $^ $(SHAREDLIB) $(LDLIBS) -o "$@"
 
-libgdftime${FULLDLEXT}:gdftime.o
+$(DLPRE)gdftime${FULLDLEXT}:gdftime.o
 	$(LD) $(LDFLAGS) ${SONAME_PREFIX}"$@" $^ $(SHAREDLIB) $(LDLIBS) -o "$@"
 
-libphysicalunits${FULLDLEXT}:physicalunits.o
+$(DLPRE)physicalunits${FULLDLEXT}:physicalunits.o
 	$(LD) $(LDFLAGS) ${SONAME_PREFIX}"$@" $^ $(SHAREDLIB) $(LDLIBS) -o "$@"
 
 
@@ -703,8 +711,8 @@ libphysicalunits${FULLDLEXT}:physicaluni
 libphysicalunits.a: physicalunits.o
 	-$(DELETE) "$@"
 	$(AR) "$@" "$<"
-libphysicalunits.dll: physicalunits.o
-	$(LD) $(LDFLAGS) -o libphysicalunits.dll -s -shared -fPIC "$<" $(LDLIBS) -Wl,-subsystem,windows,--output-def,libphysicalunits.def,--out-implib,libphysicalunits.dll.a
+$(DLPRE)physicalunits${FULLDLEXT}: physicalunits.o
+	$(LD) $(LDFLAGS) -o  "$@" -s -shared -fPIC "$<" $(LDLIBS) -Wl,-subsystem,windows,--output-def,libphysicalunits.def,--out-implib,libphysicalunits.dll.a
 
 #libgdftime.a: gdftime.o
 #	-$(DELETE) "$@"
@@ -715,14 +723,14 @@ libphysicalunits.dll: physicalunits.o
 libgdf.a: gdf.o getlogin.o gdftime.o physicalunits.o
 	-$(DELETE) "$@"
 	$(AR) "$@" gdf.o gdftime.o physicalunits.o
-libgdf.dll: gdf.o getlogin.o gdftime.o physicalunits.o
-	$(LD) $(LDFLAGS) -s -shared -fPIC -o libgdf.dll gdf.o getlogin.o gdftime.o physicalunits.o $(LDLIBS) -Wl,-subsystem,windows,--output-def,libgdf.def,--out-implib,libgdf.dll.a
+$(DLPRE)gdf${FULLDLEXT}: gdf.o getlogin.o gdftime.o physicalunits.o
+	$(LD) $(LDFLAGS) -s -shared -fPIC -o "$@" gdf.o getlogin.o gdftime.o physicalunits.o $(LDLIBS) -Wl,-subsystem,windows,--output-def,libgdf.def,--out-implib,libgdf.dll.a
 
 libbiosig.a: $(OBJECTS) libbiosig.pc
 	-$(DELETE) libbiosig.a
 	$(AR) libbiosig.a $(OBJECTS)
-libbiosig.dll: $(OBJECTS) libbiosig.pc
-	$(LD) $(LDFLAGS) -o libbiosig.dll -s -shared -fPIC $(OBJECTS) $(LDLIBS) -Wl,-subsystem,windows,--output-def,libbiosig.def,--out-implib,libbiosig.dll.a
+$(DLPRE)biosig${FULLDLEXT}: $(OBJECTS) libbiosig.pc
+	$(LD) $(LDFLAGS) -o "$@" -s -shared -fPIC $(OBJECTS) $(LDLIBS) -Wl,-subsystem,windows,--output-def,libbiosig.def,--out-implib,libbiosig.dll.a
 
 libbiosig.pc :
 	mkdir -p pkgconfig
@@ -744,17 +752,17 @@ libbiosig.pc :
 	echo "Libs.private: $(LDLIBS)"      >> "$@"
 
 ## save2gdf, pdp2gdf
-%${BINEXT}: %.c libbiosig.$(DLEXT)
+%${BINEXT}: %.c $(DLPRE)biosig$(FULLDLEXT)
 	$(CC) $(DEFINES) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) "$<" -L. -lbiosig -lstdc++ $(LDLIBS) -o "$@"
 
 physicalunits${BINEXT} : pu.c physicalunits.o
 	$(CC) $(DEFINES) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $^ $(LDLIBS) -o "$@"
 
 ifeq (1,@HAVE_LIBB64@)
-biosig_fhir${BINEXT}: biosig_fhir.c libbiosig.$(DLEXT)
+biosig_fhir${BINEXT}: biosig_fhir.c $(DLPRE)biosig$(FULLDLEXT)
 	$(CC) $(DEFINES) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) "$<" -L. -lbiosig -lstdc++ -lb64 $(LDLIBS) -o "$@"
 else
-biosig_fhir${BINEXT}: biosig_fhir.c libb64-1.2.1/src/cencode.c libbiosig.$(DLEXT)
+biosig_fhir${BINEXT}: biosig_fhir.c libb64-1.2.1/src/cencode.c $(DLPRE)biosig$(FULLDLEXT)
 	$(CC) $(DEFINES) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -Ilibb64-1.2.1/include/ "$<" libb64-1.2.1/src/cencode.c -L. -lbiosig -lstdc++ $(LDLIBS) -o "$@"
 endif
 
@@ -949,28 +957,31 @@ install_headers: biosig-dev.h biosig.h b
 	install -d 			$(DESTDIR)$(includedir)
 	install $?		    	$(DESTDIR)$(includedir)
 
-install_libbiosig: install_libbiosig.$(DLEXT) install_libbiosig.a
+install_libbiosig: install_$(DLPRE)biosig$(FULLDLEXT) install_libbiosig.a
 
 install_libbiosig.a: libbiosig.a libphysicalunits.a libbiosig.pc
 	install -d 			$(DESTDIR)$(libdir)/pkgconfig/
 	install libbiosig.a		$(DESTDIR)$(libdir)
 	install libphysicalunits.a 	$(DESTDIR)$(libdir)
+	install libbiosig.$(LIBEXT)		$(DESTDIR)$(libdir)
+	install libphysicalunits.$(LIBEXT) 	$(DESTDIR)$(libdir)
 	install libbiosig.pc		$(DESTDIR)$(libdir)/pkgconfig/
 
-install_libbiosig.$(DLEXT): libbiosig.$(DLEXT)
-	install -d 			$(DESTDIR)$(DLDIR)/pkgconfig/
-	install libbiosig.$(DLEXT)  $(DESTDIR)$(DLDIR)/libbiosig$(FULLDLEXT)
-ifneq (Darwin,$(shell uname))
-	cd $(DESTDIR)$(DLDIR) && ln -sf libbiosig$(FULLDLEXT) libbiosig.$(DLEXT)
+install_$(DLPRE)biosig$(FULLDLEXT): $(DLPRE)biosig$(FULLDLEXT)
+	install -d 			$(DESTDIR)$(DLDIR)
+	install $(DLPRE)biosig$(FULLDLEXT)  $(DESTDIR)$(DLDIR)/$(DLPRE)biosig$(FULLDLEXT)
+	install $(DLPRE)physicalunits$(FULLDLEXT)  $(DESTDIR)$(DLDIR)/$(DLPRE)physicalunits$(FULLDLEXT)
+ifneq (,$(findstring CYGWIN, $(shell uname))) 
+## else ifeq(Darwin,$(shell uname))
+##	cd $(DESTDIR)$(DLDIR) && ln -sf libbiosig$(FULLDLEXT) libbiosig.$(DLEXT)
 endif
-	-ldconfig
 
-install: install_libbiosig.$(DLEXT) install_libbiosig.a install_headers install_tools
+install: install_$(DLPRE)biosig$(FULLDLEXT) install_libbiosig.a install_headers install_tools
 
 install-strip: install
 	-strip -x $(DESTDIR)$(libdir)/libbiosig.a
 	-strip -x $(DESTDIR)$(libdir)/libphysicalunits.a
-	-strip -x $(DESTDIR)$(libdir)/libbiosig$(FULLDLEXT)
+	-strip -x $(DESTDIR)$(libdir)/$(DLPRE)biosig$(FULLDLEXT)
 
 install_tools: tools doc/save2gdf.1
 	install -d 			$(DESTDIR)$(bindir)
@@ -1002,7 +1013,7 @@ uninstall_mexbiosig:
 
 ### Install mexbiosig for Matlab and Octave
 install_mex:
-	$(MAKE) -C mex install
+	# $(MAKE) -C mex install
 
 uninstall_mex:
 	$(MAKE) -C mex uninstall
--- origsrc/biosig-2.3.3/biosig4c++/Makefile.in	2022-01-22 16:02:23.176759100 +0100
+++ src/biosig-2.3.3/biosig4c++/Makefile.in	2022-01-22 17:57:01.549457000 +0100
@@ -372,6 +372,7 @@ SOURCES      += biosig.c \
 		physicalunits.c \
 		save2gdf.c \
 		biosig2gdf.c \
+		biosig-network.c \
 		biosig_client.c \
 		biosig_server.c
 
@@ -476,7 +477,7 @@ endif
 
 MinGW64OBJECTS  = $(patsubst win32/%.obj, win64/%.obj, $(MinGWOBJECTS))
 
-TARGET = save2gdf libbiosig.a
+TARGET = save2gdf${BINEXT} libbiosig.a
 LIB_OBJECTS  = libbiosig.a libgdf.a libphysicalunits.a libbiosig.pc
 ifneq (,$(findstring CYGWIN, $(shell uname)))
     LIB_OBJECTS += $(DLPRE)biosig$(FULLDLEXT) $(DLPRE)gdf$(FULLDLEXT) $(DLPRE)physicalunits$(FULLDLEXT)
@@ -886,8 +887,8 @@ docs: 	docs/save2gdf.txt  docs/mexSLOAD.
 
 
 # for backward compatibility
-save2scp: save2gdf
-save2aecg: save2gdf
+save2scp: save2gdf${BINEXT}
+save2aecg: save2gdf${BINEXT}
 
 
 #############################################################

[-- Attachment #3: biosig.cygport --]
[-- Type: text/plain, Size: 3572 bytes --]

# package name
NAME="biosig"
VERSION=2.3.3
RELEASE=1

PYTHON_WHEEL_VERSIONS="3.9"
inherit python-wheel

# .hint generation
CATEGORY="Libs Science"
SUMMARY="Tools for biomedical signal processing."
DESCRIPTION="BioSig is an open source software library for
biomedical signal processing, featuring for example the
analysis of biosignals such as the electroencephalogram (EEG),
electrocorticogram (ECoG), electrocardiogram (ECG),
electrooculogram (EOG), electromyogram (EMG), respiration,
and so on. Major application areas are: Neuroinformatics,
brain-computer interfaces, neurophysiology, psychology, c
ardiovascular systems and sleep research. The aim of the
BioSig project is to foster research in biomedical signal
processing by providing open source software tools for many
different applications. Generally, many concerns have to be a
ddressed in this scientific field. BioSig handles this by providing
solutions for data acquisition, artifact processing, quality control,
feature extraction, classification, modeling, data visualization, etc. "

HOMEPAGE=https://biosig.sourceforge.io

# source and patch files
SRC_URI=https://sourceforge.net/projects/biosig/files/BioSig%20for%20C_C%2B%2B/src/biosig-2.3.3.src.tar.gz

PATCH_URI=" 2.3.3-1.Makefilein.patch"

BUILD_REQUIRES="libiconv-devel libcholmod-devel zlib-devel pkg-config"
BUILD_REQUIRES+=" gawk python39-numpy python39-devel"

REQUIRES="libcholmod libconv zlib python39-numpy"

PKG_NAMES="libbiosig3 libbiosig-devel biosig-tools python39-biosig"

biosig_tools_CONTENTS="
  usr/bin/bin2rec
  usr/bin/heka2itx
  usr/bin/rec2bin
  usr/bin/save2aecg
  usr/bin/save2scp
  usr/bin/save2gdf.exe
  usr/bin/physicalunits.exe
  usr/bin/biosig2gdf.exe
  usr/bin/biosig_fhir.exe

  usr/share/man/man1/save2gdf.1.gz
  usr/share/man/man1/physicalunits.1.gz
  usr/share/man/man1/biosig2gdf.1.gz
  usr/share/man/man1/biosig_fhir.1.gz

  usr/share/man/man1/sigviewer.1.gz
  usr/share/man/man1/mexSLOAD.1.gz
  usr/share/man/man1/bin2rec.1.gz
  usr/share/man/man1/heka2itx.1.gz
  usr/share/man/man1/rec2bin.1.gz
  usr/share/man/man1/save2aecg.1.gz
  usr/share/man/man1/save2scp.1.gz

  usr/share/doc/biosig/COPYING
  usr/share/doc/biosig/README
"
# not included yet
# usr/share/man/sigviewer.1
# usr/share/man/man1/mexSLOAD.1.gz


libbiosig3_CONTENTS="
  usr/bin/cygbiosig-3.dll
  usr/bin/cygphysicalunits-3.dll
"

libbiosig_devel_CONTENTS="
  usr/include/biosig-dev.h
  usr/include/biosig.h
  usr/include/biosig2.h
  usr/include/gdftime.h
  usr/include/physicalunits.h
  usr/include/biosig-network.h
  usr/include/mdc_ecg_codes.h
  usr/lib/libbiosig.a
  usr/lib/libbiosig.dll.a
  usr/lib/libphysicalunits.a
  usr/lib/libphysicalunits.dll.a
  usr/lib/pkgconfig/libbiosig.pc
"

python39_biosig_CONTENTS="
	usr/lib/python3.9
"

DIFF_EXCLUDES="depend
  Makefile
  biosig4c++/Makefile
  biosig4c++/java/Makefile
  biosig4c++/mex/Makefile
  biosig4c++/mma/Makefile
"

# use not standard src_compile, src_install and src_test

src_compile() {
	cd ${S}
	lndirs
	cd ${B}
	cygautoreconf
	export DESTDIR="${D}"
	cygconf
	# libbiosig and biosig-tools
	# cygmake -C biosig4c++ lib tools
	cygmake lib tools
	# python3-biosig
	cygmake -C biosig4c++/python wheel
}

src_install() {
	cd ${S}

	doinclude ${S}/biosig4c++/*.h

	cd ${B}/biosig4c++
	export DESTDIR="${D}"
	cygmake install

	cd ${B}/biosig4c++/python
	python_wheel_install
}

src_test() {
    cd ${B}
    biosig4c++/physicalunits.exe
    biosig4c++/save2gdf.exe    --help
    biosig4c++/biosig2gdf.exe  --help
    biosig4c++/biosig_fhir.exe --help
    # python -c "import biosig"
}


  reply	other threads:[~2022-01-25 23:50 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <99eff890-3d7f-7fa9-1f42-d8d611b92ded@gmail.com>
2022-01-08 17:41 ` newcomer issues when packaging biosig,stimfit, etc Marco Atzeri
2022-01-08 19:15   ` Marco Atzeri
2022-01-08 19:24     ` Marco Atzeri
     [not found]     ` <a3f8e657-1e1d-c582-2a07-806c6c03be02@gmail.com>
2022-01-12  5:47       ` Marco Atzeri
2022-01-12  6:16         ` Brian Inglis
2022-01-12 22:59           ` [ITP] biosig [was: Re: newcomer issues when packaging biosig, stimfit, etc.] Alois Schlögl
2022-01-14 10:09             ` Marco Atzeri
2022-01-14 21:48               ` Alois Schlögl
2022-01-15 18:01                 ` Marco Atzeri
2022-01-15 20:44                   ` Achim Gratz
2022-01-17 21:44                     ` Alois Schlögl
2022-01-18  5:32                       ` Brian Inglis
2022-01-18 21:50                         ` Alois Schlögl
2022-01-18 22:56                           ` Brian Inglis
2022-01-19  3:51                             ` Brian Inglis
2022-01-20 20:48                             ` Alois Schlögl
2022-01-21 12:53                               ` Jon Turney
2022-01-16 22:13                   ` Alois Schlögl
2022-01-22 17:52                     ` Marco Atzeri
2022-01-25 23:50                       ` Alois Schlögl [this message]
2022-01-26  4:52                         ` Marco Atzeri
2022-01-26 22:47                           ` Marco Atzeri

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=23b42d82-65b3-66b4-dec5-b47a3efca04b@gmail.com \
    --to=alois.schloegl@gmail.com \
    --cc=cygwin-apps@cygwin.com \
    --cc=marco.atzeri@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).