From: Jan Nijtmans <jan.nijtmans@gmail.com>
To: Yaakov Selkowitz <yselkowitz@cygwin.com>
Cc: cygapps <cygwin-apps@cygwin.com>
Subject: Re: Putting packages up for adoption
Date: Mon, 23 Mar 2020 13:07:41 +0100 [thread overview]
Message-ID: <CAO1jNwupvB6xvMJ+Pvqz5qSqEPHGa7QQTtd7+K=n=kKo=QxBJQ@mail.gmail.com> (raw)
In-Reply-To: <eac3430442530f073d7de52545d486212ea98b66.camel@cygwin.com>
[-- Attachment #1: Type: text/plain, Size: 2247 bytes --]
Op zo 22 mrt. 2020 om 23:34 schreef Yaakov Selkowitz:
> A word of caution wrt Tcl/Tk for Cygwin: upstream incorrectly treats
> Cygwin as a Win32 platform, necessitating extensive patches to make it
> comply with *NIX/X11 standards. These patches CANNOT be dropped
> without breaking compatibility, since Win32 and X11 APIs do not
> interact. Fortunately, Tcl/Tk moves rather slowly, so the existing
> patches should serve you well for some time.
Yes, I'm aware of that. Of course, I'll be very careful to guarantee
100% binary compatibility.
Still, I have some questions. At first, I noted that the current Tcl
version is 8.6.8, which is two patchlevels behind (released
December 22, 2017, more than 3 years old, while 8.6.10
is released November 21, 2019, 4 months ago). Work to do!
So, I tried starting with x86_64-w64-mingw32. Here are my remarks.
- There are 7 patches included. Only one of them applies cleanly,
the others are not really necessary (Please correct me if I'm wrong.
Let's go through them.
- tcl-8.5.6-mingw.patch
This one is wrong. Changing tools for cross-compilations should
be done by "configure ... --host=x86_64-w64-mingw32"
- tcl-8.6.1-nativezlib.patch
OK. Tcl provides its own zlib.dll, in case it's not available externally.
In Cygwin it is available (as "mingw64-x86_64-zlib"), which is prefered.
(I added "cygautoreconf", so this patch would be part of "configure")
- tcl-8.6.3-autopath.patch
Not necessary for building, Only needed when we want to run
Tcl in a non-standard installed directory.
- tcl-8.6.5-hidden.patch
Wrong. This exports some internal symbols, which are not
supposed to be exported at all.
- tcl-8-6-5-paralle-make-fix.patch
Already fixed upstream. Besides, it's for unix/Makefile.in, not for mingw.
- tcl-mingw-w64-compatibility.patch
Already fixed upstream:
<https://core.tcl-lang.org/tcl/info/8fbf108ea77e5351>
- tcl-nativetclsh.patch
Only needed when running Tcl, not for building the libraries
Further on, I noted the the resulting hints file contains:
requires: tcl
while I would expect:
requires: mingw64-x86_64-zlib
Here is my cygport file so far.
Thanks for your feedback!
Regards,
Jan Nijtmans
[-- Attachment #2: mingw64-x86_64-tcl.cygport --]
[-- Type: application/octet-stream, Size: 2085 bytes --]
CROSS_HOST="x86_64-w64-mingw32"
inherit cross
NAME="mingw64-x86_64-tcl"
VERSION=8.6.10
RELEASE=1
CATEGORY="Devel"
SUMMARY="Tcl interpreter for Win64 toolchain"
DEPEND="mingw64-x86_64-zlib"
DESCRIPTION="This package does NOT contain cygwin binaries. Instead, it
contains msvcrt-linked binaries (aka 'mingw'). It is for use with the
mingw64-x86_64-gcc cross compiler, and installs into the
/usr/x86_64-w64-mingw32/sys-root/mingw/{lib,include} directories."
HOMEPAGE="https://www.tcl.tk/"
SRC_URI="mirror://sourceforge/tcl/tcl-core${VERSION}-src.tar.gz"
SRC_DIR="tcl${VERSION}"
#http://pkgs.fedoraproject.org/cgit/rpms/mingw-tcl.git/plain/tcl-8.6.3-autopath.patch
# http://pkgs.fedoraproject.org/cgit/rpms/mingw-tcl.git/plain/tcl-8.6.5-hidden.patch
# http://pkgs.fedoraproject.org/cgit/rpms/mingw-tcl.git/plain/tcl-8.6.5-parallel-make-fix.patch
# http://pkgs.fedoraproject.org/cgit/rpms/mingw-tcl.git/plain/tcl-8.5.6-mingw.patch
# http://pkgs.fedoraproject.org/cgit/rpms/mingw-tcl.git/plain/tcl-nativetclsh.patch
# http://pkgs.fedoraproject.org/cgit/rpms/mingw-tcl.git/plain/tcl-mingw-w64-compatibility.patch
PATCH_URI="
http://pkgs.fedoraproject.org/cgit/rpms/mingw-tcl.git/plain/tcl-8.6.1-nativezlib.patch
"
DIFF_EXCLUDES="Makefile tcl.hpj tclConfig.sh"
slot=${PV_MAJ_MIN}
src_compile() {
lndirs
cd ${B}/win
cygautoreconf
cygconf --enable-64bit --host=x86_64-w64-mingw32
cygmake -j1 CYGPATH=echo
}
src_install() {
cd ${B}/win
USE_DESTDIR=0
cyginstall
rm -f ${D}${CROSS_BINDIR}/zlib1.dll
sed -i \
-e "s|^\(TCL_BUILD_LIB_SPEC\)='.*|\1='-Wl,${CROSS_LIBDIR}/libtcl${slot//.}.a'|" \
-e "s|^\(TCL_SRC_DIR\)='.*'|\1='${CROSS_INCLUDEDIR}/tcl${slot}'|" \
-e "s|^\(TCL_BUILD_STUB_LIB_SPEC\)='.*|\1='-Wl,${CROSS_LIBDIR}/libtclstub${slot//.}.a'|" \
-e "s|^\(TCL_BUILD_STUB_LIB_PATH\)='.*/win|\1='${CROSS_LIBDIR}|" \
-e "s|^\(TCL_STUB_LIB_SPEC\)='.*|\1='-Wl,-ltclstub${slot//.}'|" \
${D}${CROSS_LIBDIR}/tclConfig.sh || error
# install private headers
includeinto tcl${slot}/win
doinclude ${S}/win/*.h
includeinto tcl${slot}/generic
doinclude ${S}/generic/*.h
}
next prev parent reply other threads:[~2020-03-23 12:07 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-20 3:47 Yaakov Selkowitz
2020-03-20 5:04 ` Marco Atzeri
2020-03-20 6:05 ` ASSI
2020-03-20 10:19 ` Corinna Vinschen
2020-03-20 10:23 ` Corinna Vinschen
2020-03-20 8:13 ` Hamish McIntyre-Bhatty
2020-03-20 8:28 ` Marco Atzeri
2020-03-20 9:29 ` Jan Nijtmans
2020-03-20 10:22 ` Corinna Vinschen
2020-03-22 22:34 ` Yaakov Selkowitz
2020-03-23 12:07 ` Jan Nijtmans [this message]
2020-03-23 15:45 ` Yaakov Selkowitz
2020-03-23 21:04 ` Jan Nijtmans
2020-03-23 23:37 ` Yaakov Selkowitz
2020-03-24 11:41 ` Jan Nijtmans
2020-03-24 13:51 ` Yaakov Selkowitz
2020-03-24 14:11 ` Jan Nijtmans
2020-03-24 14:24 ` Yaakov Selkowitz
2020-03-24 19:27 ` Jan Nijtmans
2020-04-01 9:10 ` Jan Nijtmans
2020-03-20 10:19 ` Corinna Vinschen
2020-03-20 12:11 ` Jon Turney
2020-03-24 20:19 ` Andrew Schulman
2020-04-01 20:58 ` Yaakov Selkowitz
2020-04-02 7:35 ` Corinna Vinschen
2020-07-21 0:33 ` Andrew Schulman
2020-03-20 12:09 ` Jon Turney
2020-03-21 12:47 ` Thomas Wolff
2020-03-21 14:10 ` Jon Turney
2020-03-20 12:31 ` Marco Atzeri
2020-03-20 17:32 ` Achim Gratz
2020-03-20 19:16 ` Hamish McIntyre-Bhatty
2020-03-20 19:22 ` Yaakov Selkowitz
2020-03-20 20:30 ` Marco Atzeri
2020-03-22 15:34 ` ASSI
2020-03-22 16:36 ` ASSI
2020-03-22 19:49 ` Yaakov Selkowitz
2020-03-22 20:39 ` Achim Gratz
2020-03-22 19:03 ` Achim Gratz
2020-03-23 17:14 ` ASSI
2020-03-23 23:06 ` Marco Atzeri
2020-03-20 16:17 ` Doug Henderson
2020-03-21 14:12 ` Jon Turney
2020-03-26 5:54 ` Marco Atzeri
2020-03-26 7:19 ` Yaakov Selkowitz
2020-03-27 17:52 ` Marco Atzeri
2020-03-27 20:52 ` Yaakov Selkowitz
2020-03-28 3:33 ` Marco Atzeri
2020-03-30 6:01 ` Yaakov Selkowitz
2020-03-27 17:53 ` Marco Atzeri
2020-03-27 18:32 ` Hamish McIntyre-Bhatty
2020-03-27 19:10 ` Yaakov Selkowitz
2020-03-27 20:02 ` Hamish McIntyre-Bhatty
2020-04-10 12:52 ` Python - plan & execution Marco Atzeri
2020-04-23 21:54 ` Yaakov Selkowitz
2020-04-27 14:34 ` Jon Turney
2020-05-25 4:52 ` Marco Atzeri
2020-05-25 13:43 ` Jon Turney
2020-05-25 23:45 ` Yaakov Selkowitz
2020-05-26 4:31 ` Marco Atzeri
2020-06-08 19:20 ` Jon Turney
2020-06-08 20:02 ` Marco Atzeri
2020-06-09 13:20 ` Jon Turney
2020-06-09 19:16 ` Marco Atzeri
2020-06-12 14:44 ` Jon Turney
2020-05-25 5:02 ` Marco Atzeri
2020-07-07 18:40 ` Marco Atzeri
2020-07-09 23:52 ` airplanemath
2020-07-10 5:34 ` Marco Atzeri
2020-04-04 3:17 ` Putting packages up for adoption 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='CAO1jNwupvB6xvMJ+Pvqz5qSqEPHGa7QQTtd7+K=n=kKo=QxBJQ@mail.gmail.com' \
--to=jan.nijtmans@gmail.com \
--cc=cygwin-apps@cygwin.com \
--cc=yselkowitz@cygwin.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).