mu icon indicating copy to clipboard operation
mu copied to clipboard

Added windows(MSYS2) support

Open damon-kwok opened this issue 3 years ago • 5 comments

Hi, @djcb. The latest MU (1.9.1) works fine on windows. See:

图片 图片 图片 图片

damon.guo@Damon001 MSYS ~/MSYS2-packages/mu
$ makepkg -sf
==> Making package: mu-git 20221003-1 (Thu Oct  6 16:21:10 2022)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Cloning mu git repo...
Cloning into bare repository '/home/damon.guo/MSYS2-packages/mu/mu'...
remote: Enumerating objects: 33619, done.
remote: Counting objects: 100% (5325/5325), done.
remote: Compressing objects: 100% (1543/1543), done.
remote: Total 33619 (delta 3953), reused 5094 (delta 3772), pack-reused 28294
Receiving objects: 100% (33619/33619), 20.41 MiB | 5.92 MiB/s, done.
Resolving deltas: 100% (22333/22333), done.
==> Validating source files with sha256sums...
    mu ... Skipped
==> Extracting sources...
  -> Creating working copy of mu git repo...
Cloning into 'mu'...
done.
==> Starting pkgver()...
==> Starting build()...
*** meson build setup
/usr/bin/meson
The Meson build system
Version: 0.63.1
Source dir: /home/damon.guo/MSYS2-packages/mu/src/mu
Build dir: /home/damon.guo/MSYS2-packages/mu/src/mu/build
Build type: native build
Project name: mu
Project version: 1.9.1
C compiler for the host machine: gcc (gcc 11.3.0 "gcc (GCC) 11.3.0")
C linker for the host machine: gcc ld.bfd 2.37
C++ compiler for the host machine: g++ (gcc 11.3.0 "g++ (GCC) 11.3.0")
C++ linker for the host machine: g++ ld.bfd 2.37
Host machine cpu family: x86_64
Host machine cpu: x86_64
Compiler for C supports arguments -Wno-unused-parameter: YES
Compiler for C++ supports arguments -Wno-unused-parameter: YES
Compiler for C supports arguments -Wno-cast-function-type: YES
Compiler for C++ supports arguments -Wno-cast-function-type: YES
Compiler for C supports arguments -Wformat-security: YES
Compiler for C++ supports arguments -Wformat-security: YES
Compiler for C supports arguments -Wformat=2: YES
Compiler for C++ supports arguments -Wformat=2: YES
Compiler for C supports arguments -Wstack-protector: YES
Compiler for C++ supports arguments -Wstack-protector: YES
Compiler for C supports arguments -Wno-switch-enum: YES
Compiler for C++ supports arguments -Wno-switch-enum: YES
Compiler for C supports arguments -Wno-keyword-macro: NO
Compiler for C++ supports arguments -Wno-keyword-macro: NO
Compiler for C supports arguments -D_GNU_SOURCE: YES
Compiler for C++ supports arguments -D_GNU_SOURCE: YES
Checking for function "setsid" : YES
Checking for function "wordexp" : YES
Found pkg-config: /usr/bin/pkg-config (1.8.0)
Run-time dependency glib-2.0 found: YES 2.72.2
Run-time dependency gobject-2.0 found: YES 2.72.2
Run-time dependency gio-2.0 found: YES 2.72.2
Run-time dependency gmime-3.0 found: YES 3.2.7
Run-time dependency xapian-core found: YES 1.4.21
Run-time dependency threads found: YES
Program gawk found: YES (/usr/bin/gawk)
Program gzip found: YES (/usr/bin/gzip)
Found CMake: /usr/bin/cmake (3.23.2)
Run-time dependency guile-3.0 found: NO (tried pkgconfig and cmake)
Program emacs found: YES 27.2 (/usr/bin/emacs)
Program makeinfo found: YES (/usr/bin/makeinfo)
Program install-info found: YES (/usr/bin/install-info)
Configuring version.texi using configuration
Configuring mu4e-config.el using configuration
Configuring version.texi using configuration
Configuring config.h using configuration
Build targets in project: 58
NOTICE: Future-deprecated features used:
 * 0.56.0: {'dependency.get_pkgconfig_variable'}

Found ninja-1.11.0 at /usr/bin/ninja
*** Now run 'ninja -C build' to build mu
*** Or check the Makefile for some useful targets
ninja -C /home/damon.guo/MSYS2-packages/mu/src/mu/build
ninja: Entering directory `/home/damon.guo/MSYS2-packages/mu/src/mu/build'
[110/128] Generating mu4e/mu4e_helpers_el_el with a custom command

In end of data:
../mu4e/mu4e-helpers.el:575:1:Warning: the function ‘string-trim’ might not be
    defined at runtime.
[111/128] Generating mu4e/mu4e_lists_el_el with a custom command

In end of data:
../mu4e/mu4e-lists.el:132:1:Warning: the function ‘seq-drop-while’ is not
    known to be defined.
[112/128] Generating mu4e/mu4e_contrib_el_el with a custom command

In eshell/mu4e-attach:
../mu4e/mu4e-contrib.el:147:22:Warning: ‘eshell-flatten-list’ is an obsolete
    function (as of 27.1); use ‘flatten-tree’ instead.
[122/128] Generating mu4e/mu4e_search_el_el with a custom command

In end of data:
../mu4e/mu4e-search.el:433:1:Warning: the function ‘mailcap-mime-types’ is not
    known to be defined.
[127/128] Generating mu4e/mu4e_org_el_el with a custom command

In mu4e--org-store-link-query:
../mu4e/mu4e-org.el:67:4:Warning: ‘org-store-link-props’ is an obsolete
    function (as of Org 9.3); use ‘org-link-store-props’ instead.

In mu4e--org-store-link-message:
../mu4e/mu4e-org.el:98:14:Warning: ‘org-store-link-props’ is an obsolete
    function (as of Org 9.3); use ‘org-link-store-props’ instead.
[128/128] Generating mu4e/mu4e_view_el_el with a custom command
==> Starting package()...
ninja: Entering directory `/home/damon.guo/MSYS2-packages/mu/src/mu/build'
ninja: no work to do.
Installing mu/mu.exe to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/bin
Installing mu4e/mu4e-actions.elc to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing mu4e/mu4e-bookmarks.elc to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing mu4e/mu4e-compose.elc to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing mu4e/mu4e-contacts.elc to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing mu4e/mu4e-context.elc to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing mu4e/mu4e-contrib.elc to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing mu4e/mu4e-draft.elc to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing mu4e/mu4e-folders.elc to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing mu4e/mu4e.elc to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing mu4e/mu4e-headers.elc to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing mu4e/mu4e-helpers.elc to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing mu4e/mu4e-icalendar.elc to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing mu4e/mu4e-lists.elc to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing mu4e/mu4e-main.elc to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing mu4e/mu4e-mark.elc to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing mu4e/mu4e-message.elc to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing mu4e/mu4e-obsolete.elc to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing mu4e/mu4e-org.elc to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing mu4e/mu4e-search.elc to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing mu4e/mu4e-server.elc to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing mu4e/mu4e-speedbar.elc to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing mu4e/mu4e-update.elc to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing mu4e/mu4e-vars.elc to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing mu4e/mu4e-view.elc to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing mu4e/mu4e.info to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/info
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/man/mu.1 to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/man/man1
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/man/mu-add.1 to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/man/man1
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/man/mu-bookmarks.5 to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/man/man5
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/man/mu-cfind.1 to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/man/man1
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/man/mu-easy.1 to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/man/man1
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/man/mu-extract.1 to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/man/man1
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/man/mu-fields.1 to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/man/man1
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/man/mu-find.1 to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/man/man1
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/man/mu-help.1 to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/man/man1
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/man/mu-index.1 to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/man/man1
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/man/mu-info.1 to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/man/man1
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/man/mu-init.1 to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/man/man1
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/man/mu-mkdir.1 to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/man/man1
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/man/mu-query.7 to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/man/man7
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/man/mu-remove.1 to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/man/man1
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/man/mu-script.1 to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/man/man1
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/man/mu-server.1 to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/man/man1
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/man/mu-verify.1 to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/man/man1
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/man/mu-view.1 to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/man/man1
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/NEWS.org to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/doc/mu
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/build/mu4e/mu4e-config.el to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/mu4e/mu4e-actions.el to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/mu4e/mu4e-bookmarks.el to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/mu4e/mu4e-compose.el to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/mu4e/mu4e-contacts.el to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/mu4e/mu4e-context.el to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/mu4e/mu4e-contrib.el to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/mu4e/mu4e-draft.el to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/mu4e/mu4e-folders.el to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/mu4e/mu4e.el to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/mu4e/mu4e-headers.el to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/mu4e/mu4e-helpers.el to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/mu4e/mu4e-icalendar.el to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/mu4e/mu4e-lists.el to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/mu4e/mu4e-main.el to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/mu4e/mu4e-mark.el to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/mu4e/mu4e-message.el to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/mu4e/mu4e-obsolete.el to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/mu4e/mu4e-org.el to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/mu4e/mu4e-search.el to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/mu4e/mu4e-server.el to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/mu4e/mu4e-speedbar.el to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/mu4e/mu4e-update.el to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/mu4e/mu4e-vars.el to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/mu4e/mu4e-view.el to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/emacs/site-lisp/mu4e
Installing /home/damon.guo/MSYS2-packages/mu/src/mu/mu4e/mu4e-about.org to /home/damon.guo/MSYS2-packages/mu/pkg/mu-git/usr/local/share/doc/mu
Running custom install script '/home/damon.guo/MSYS2-packages/mu/src/mu/build-aux/meson-install-info.sh share/info mu4e.info'
==> Tidying install...
  -> Removing libtool files...
  -> Purging unwanted files...
  -> Stripping unneeded symbols from binaries and libraries...
  -> Compressing man and info pages...
==> Checking for packaging issues...
==> WARNING: Package contains reference to $srcdir
usr/local/share/emacs/site-lisp/mu4e/mu4e-config.el
usr/local/share/emacs/site-lisp/mu4e/mu4e-icalendar.elc
usr/local/share/emacs/site-lisp/mu4e/mu4e-org.elc
usr/local/share/emacs/site-lisp/mu4e/mu4e-view.elc
==> Creating package "mu-git"...
  -> Generating .PKGINFO file...
  -> Generating .BUILDINFO file...
  -> Generating .MTREE file...
  -> Compressing package...
==> Finished making: mu-git 20221003-1 (Thu Oct  6 16:26:31 2022)

damon.guo@Damon001 MSYS ~/MSYS2-packages/mu
$ pacman -U ./mu-git-20221003-1-x86_64.pkg.tar.zst
loading packages...
warning: mu-git-20221003-1 is up to date -- reinstalling
resolving dependencies...
looking for conflicting packages...

Packages (1) mu-git-20221003-1

Total Installed Size:  1.79 MiB
Net Upgrade Size:      0.00 MiB

:: Proceed with installation? [Y/n]
(1/1) checking keys in keyring                                                                                                                                     [####################################################################################################] 100%
(1/1) checking package integrity                                                                                                                                   [####################################################################################################] 100%
(1/1) loading package files                                                                                                                                        [####################################################################################################] 100%
(1/1) checking for file conflicts                                                                                                                                  [####################################################################################################] 100%
(1/1) checking available disk space                                                                                                                                [####################################################################################################] 100%
:: Processing package changes...
(1/1) reinstalling mu-git   

damon.guo@Damon001 MSYS ~/MSYS2-packages/mu
$ mu --version
mu (mail indexer/searcher) version 1.9.1
Copyright (C) 2008-2022 Dirk-Jan C. Binnema
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
                                                                                                                   

https://github.com/msys2-unofficial/MSYS2-packages/blame/21d331fb0db1c2b6c3e0bef53bdd07658466cbfd/mu/PKGBUILD#L29-L30

damon-kwok avatar Oct 06 '22 08:10 damon-kwok

It's nice that it compiles, and it may work for some people, but there are various problems https://github.com/djcb/mu/issues?q=is%3Aissue+label%3Amsys which I closed as WONTFIX. I don't want to mislead people that we support that setup.

As NEWS.org says:

   - Windows/MSYS support is deprecated; it doesn't work well (if at all) and
     there's currently not sufficient developer interest/expertise to change
     this.

djcb avatar Oct 06 '22 09:10 djcb

I have been using it for many years without too many problems. Some seemingly strange problems may just be that the users themselves do not understand MSYS2. I'll take a moment to look at the problems people have with MSYS2.

damon-kwok avatar Oct 06 '22 09:10 damon-kwok

Hi,@djcb. I think "deprecated" can be changed to "experimental" and added a reminder: "We assume that the user has enough experience with MSYS2".

damon-kwok avatar Oct 06 '22 10:10 damon-kwok

Thanks, I'll take a look once I have some time (not now!).

djcb avatar Oct 07 '22 08:10 djcb

MSYS2 is the Emacs installation method officially recommended by gnu, See: https://www.gnu.org/software/emacs/download.html#windows 图片

damon-kwok avatar Oct 09 '22 08:10 damon-kwok

Okay, I'll merge this and add a note to NEWS.org.

djcb avatar Dec 28 '22 09:12 djcb