unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Corwin Brust <corwin@bru.st>
To: "H. Dieter Wilhelm" <dieter@duenenhof-wilhelm.de>,
	Eli Zaretskii <eliz@gnu.org>,
	Phillip Lord <phillip.lord@russet.org.uk>,
	Emacs developers <emacs-devel@gnu.org>
Subject: Windows binaries for emacs-28 status and TODOs
Date: Sun, 23 Jan 2022 04:54:05 -0600	[thread overview]
Message-ID: <CAJf-WoSXwVsCzMyC0FM4cGFBBmAnguE_+EwkMSesGFBkzuA_WA@mail.gmail.com> (raw)

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

Hi Eli, Dieter, Phil & Emacs devs,

I have confirmed that my latest binary packages are working.  When the
target system has a working msys64/mingw64 (with bin folder in the
windows path), native compilation is available.  It also works fine
for those without msys (however native compilation won't be available
in that case).  Thanks much to my kids for the use of their gaming
rigs, which I used for testing.

My latest work is in the with-native-compilation folder of this git repository:
  https://git.sr.ht/~mplscorwin/emacs-w64

Note that the builds in the parent directory are a touch older and
don't support native-compilation.  Also, this repo contains two
versions of a complete source dump for Emacs and each (recently
typical) release file:  it will take a lot of disc (~5GB) if you clone
the whole thing.  Consider hitting the repo URL in a web-browser and
using the "tree" tab to browse to and download what you need.

Since there have been several threads about building windows binary
releases for the emacs-28 pre-release, and those threads have gotten
quite long, I thought it would be good to start a new thread.

In addition to a summary of the related open discussion items/tasks, I
am attaching two files:
 - the first is my patch for build-zip.sh and build-dep-zips.sh
 - the second my ASCII armored GPG key

==Priority Tasks==
1. uploading binaries to alpha.gnu.org

I'm happy to do this and have attached my GPG key, providing (what I
hope is) the proper information for Eli to forward to
ftp-upload@gnu.org if that is, indeed, desired.  I'm comfortable
making the directives files and there's an example in the root folder
of the repo linked above.

I'm fine if someone else would like to handle the "last mile", of
course.  More over, it will be best if at least one other person is
fully checked out on this (hi Dieter) and also able to push windows
binaries via FTP.  Getting things fully working involved some trial
and error for me.  That's why I'm considering better documentation of
the process (point #3) as an high priority.

Eli, please weigh in on this point, especially.

2. fix any critical bugs specific to the binaries as I'm building them

In short, I think there are none that should prevent us from
publishing the emacs-28 pre-repease to alpha.gnu.org.  That said,
there may well be things I'm missing. (First rodeo alert.)

I suspect that the patch attached (or as eventually corrected) should
probably be applied before Emacs 28 is released.  I'm not convinced
other code (or process) changes are necessary before release.  (Even
the attached patch is arguably a documentation improvement.)  For
details see the discussion points (4-6), below.

3. better document the process for building windows binary releases

While there are many opportunities whereby we may be able to improve
the process, I think it will be best to start by documenting how the
present process works.  We can then iterate though improvements taking
pains to keep our documentation current (in proper Emacs passion).

I've had a pretty powerful machine (still) running Microsoft Windows
on the "bare metal".  Even still, I'd likely not have succeeded
(certainly not as quickly) without the many emails back and forth,
especially with Dieter, Phillip, and Eli.   If there truly are not
concerns with these packages then as soon as they are uploaded (or
that task is otherwise assigned), I think that coleasing what I've
learned (while it is fresh) should be my priority.  I think that will
get (at least Dieter) to a place of building and perhaps publishing
the builds to the FTP site(s) fairly quickly.

==Open Discussion Points==
4. Should we have separate set with and without native compilation?

This is the easiest of the discussion points, I think.  Eli has
suggested we can simply ship a native-comp enabled set of binary
release files assuming that is demonstrated to work.  I have satisfied
myself this does, in fact, work.  Moreover, no one has objected to
this approach.

FTR: I used three separate Windows machines, so far: one is where I'm
building the packages; the second has msys and native-comp does work
when I install there; the third has no msys (and had never seen Emacs
before) and there Emacs worked fine (but does not use the native
compiled elisp included in the build).

5. Is the -static flag required for windows binary releases?

My present binaries seem to work without -static. If I haven't missed
something then I am satisfied -static isn't needed to create windows
binary release files.

6. What problems exist with the installer and how urgent is each?

I think we are actively discussing several relevant things:
6.1 Is the uninstaller doing the right thing in all cases?
6.2 Should we detected existing Emacs install(s) and vary un/installer
behavior accordingly?
6.3 Should we provide version specific copies of emacsclientw, runemacs, etc.?
6.4 Should we produce an MSI instead of (or in addition to) the installer exe?

I suggest, rather than rush to closure, we should proceed in parallel
with those conversations/decisions and meanwhile focus on items 1-3.
If discussion deems some fixes urgent, I (at least) will be happy to
create and/or push new pre-release versions as we go.

I hope we can "open up" the emacs-28 pre-release to feedback from
windows users who aren't able to build locally in time to do some
good.

Thanks so much for Emacs; HTH.

[-- Attachment #2: corwin_brust_gpg_key.txt --]
[-- Type: text/plain, Size: 2448 bytes --]

-----BEGIN PGP PUBLIC KEY BLOCK-----

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
KPq49blxlfAfAKKiwhNEY4x+LtA=
=vnCj
-----END PGP PUBLIC KEY BLOCK-----

[-- Attachment #3: emacs-28_nt-dist-build-scripts.patch --]
[-- Type: application/octet-stream, Size: 1858 bytes --]

diff --git a/admin/nt/dist-build/build-dep-zips.py b/admin/nt/dist-build/build-dep-zips.py
index c27045a001..974bf456fb 100755
--- a/admin/nt/dist-build/build-dep-zips.py
+++ b/admin/nt/dist-build/build-dep-zips.py
@@ -37,6 +37,7 @@
 mingw-w64-x86_64-librsvg
 mingw-w64-x86_64-libtiff
 mingw-w64-x86_64-libxml2
+mingw-w64-x86_64-gmp
 mingw-w64-x86_64-xpm-nox'''.split()
 
 DLL_REQ='''libgif
@@ -49,6 +50,7 @@
 librsvg
 libtiff
 libxml
+libgmp
 libXpm'''.split()
 
 
@@ -121,7 +123,7 @@ def ntldd_munge(out):
 
 ## Currently no packages seem to require this!
 ARCH_PKGS=[]
-SRC_REPO="https://sourceforge.net/projects/msys2/files/REPOS/MINGW/Sources"
+SRC_REPO="https://repo.msys2.org/mingw/sources"
 
 
 def immediate_deps(pkg):
@@ -167,7 +169,7 @@ def download_source(tarball):
     if not os.path.exists("../emacs-src-cache/{}".format(tarball)):
         print("Downloading {}...".format(tarball))
         check_output_maybe(
-            "wget -a ../download.log -O ../emacs-src-cache/{} {}/{}/download"
+            "wget -a ../download.log -O ../emacs-src-cache/{} {}/{}"
             .format(tarball, SRC_REPO, tarball),
             shell=True
         )
diff --git a/admin/nt/dist-build/build-zips.sh b/admin/nt/dist-build/build-zips.sh
index 77d20a5a7b..6d198c79e8 100755
--- a/admin/nt/dist-build/build-zips.sh
+++ b/admin/nt/dist-build/build-zips.sh
@@ -48,9 +48,10 @@
         echo [build] Configuring Emacs
         $REPO_DIR/$BRANCH/configure \
             --without-dbus \
+            --with-native-compilation \
             --without-compress-install \
             $CACHE \
-            CFLAGS="$CFLAGS"
+            CFLAGS="$CFLAGS" 
     fi
 
     make -j 4 $INSTALL_TARGET \
@@ -96,7 +97,7 @@ BUILD=
 BUILD_64=1
 GIT_UP=0
 CONFIG=1
-CFLAGS="-O2 -static"
+CFLAGS="-O2"
 INSTALL_TARGET="install-strip"
 
 ## The location of the git repo

             reply	other threads:[~2022-01-23 10:54 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-23 10:54 Corwin Brust [this message]
2022-01-23 11:18 ` Windows binaries for emacs-28 status and TODOs Eli Zaretskii
2022-01-23 12:00   ` Corwin Brust
2022-02-14 20:03     ` H. Dieter Wilhelm
2022-02-14 20:19       ` Eli Zaretskii
2022-02-16  9:50         ` H. Dieter Wilhelm
2022-02-16 12:30           ` Eli Zaretskii
2022-02-16 12:52             ` H. Dieter Wilhelm
2022-02-16 13:32               ` Eli Zaretskii
2022-02-16 13:40                 ` Corwin Brust
2022-02-16 13:59                   ` Eli Zaretskii
2022-02-16 14:43                   ` H. Dieter Wilhelm
2022-02-16 16:52                     ` H. Dieter Wilhelm
2022-02-16 16:37                 ` H. Dieter Wilhelm
2022-01-26 19:37 ` H. Dieter Wilhelm
2022-02-06 10:40   ` H. Dieter Wilhelm
2022-02-06 18:35     ` Corwin Brust

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=CAJf-WoSXwVsCzMyC0FM4cGFBBmAnguE_+EwkMSesGFBkzuA_WA@mail.gmail.com \
    --to=corwin@bru.st \
    --cc=dieter@duenenhof-wilhelm.de \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=phillip.lord@russet.org.uk \
    /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.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

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).