From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Phillip Lord Newsgroups: gmane.emacs.devel Subject: Re: [feature/internal-msys] thoughts of a more function windows package Date: Thu, 21 Jan 2021 16:44:02 +0000 Message-ID: <87zh12grzh.fsf@russet.org.uk> References: <87pn2dq3xv.fsf@russet.org.uk> <83ft39hnk1.fsf@gnu.org> <87h7nppzjy.fsf@russet.org.uk> <838s90hhb6.fsf@gnu.org> <87zh1gircl.fsf@russet.org.uk> <83turofw8r.fsf@gnu.org> <87sg6v76fd.fsf_-_@russet.org.uk> <83czxy7530.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="23497"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1.90 (gnu/linux) Cc: emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Jan 21 17:45:53 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l2d5l-00060g-GX for ged-emacs-devel@m.gmane-mx.org; Thu, 21 Jan 2021 17:45:53 +0100 Original-Received: from localhost ([::1]:36260 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l2d5k-0007Su-G2 for ged-emacs-devel@m.gmane-mx.org; Thu, 21 Jan 2021 11:45:52 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:47390) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l2d44-0006um-HI for emacs-devel@gnu.org; Thu, 21 Jan 2021 11:44:08 -0500 Original-Received: from cloud103.planethippo.com ([78.129.138.110]:57858) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l2d42-0008Ux-5B; Thu, 21 Jan 2021 11:44:08 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=russet.org.uk; s=default; h=Content-Type:MIME-Version:Message-ID: In-Reply-To:Date:References:Subject:Cc:To:From:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=xty+ul8ZjnT1xMgXdnBnWoZmRf3dZ710jPjGPf9CB70=; b=r5JkYmW7or4/3dvAgCN+nFV8O DxYABhyf1QcIoGUg6wzBTZfn7qsrmAr+HFX00U2h2RKcrhbMLtZcglTB+C/b94hEI+FOS9HzHuIyr FPEGHYQdeFsS+ru2aqkZH9gNGMOjKDfUM3Cv3fltNmq6FDQs8jyUClZh4ikV6GpDnEpu/SCGVi6Sr a/QfEbjH502ahIRXasNc+YeySHiDCm0fyNfr4CkU/TjoPs3idFnO4Th1qNCdml7TC18mlFN9xIwAJ 5dIJW6m/1Fa8l8HmU1kHKvwo+SqIz8NnUEW+V6392KD5zMUd0vk7A5YZ0ZIfD7CwaIn0EdXwqSa7g IRdHITfLQ==; Original-Received: from cpc142648-benw12-2-0-cust627.16-2.cable.virginm.net ([82.10.74.116]:36254 helo=russet.org.uk) by cloud103.planethippo.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1l2d3z-0003eJ-As; Thu, 21 Jan 2021 16:44:03 +0000 In-Reply-To: <83czxy7530.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 21 Jan 2021 16:11:15 +0200") X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cloud103.planethippo.com X-AntiAbuse: Original Domain - gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - russet.org.uk X-Get-Message-Sender-Via: cloud103.planethippo.com: authenticated_id: phillip.lord@russet.org.uk X-Authenticated-Sender: cloud103.planethippo.com: phillip.lord@russet.org.uk Received-SPF: none client-ip=78.129.138.110; envelope-from=phillip.lord@russet.org.uk; helo=cloud103.planethippo.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:263242 Archived-At: Eli Zaretskii writes: >> From: Phillip Lord >> Date: Wed, 20 Jan 2021 19:29:58 +0000 >> >> The plan would be during the installation run the newly installed >> Emacs. This would download, unpack and configure msys2, as well as >> install a variety of related packages (git, find, gzip, hunspell, >> aspell, what ever). For those using the zip package of Emacs, they would >> achieve the same thing by running a command. > > Could you please elaborate on how will this work for users? E.g., how > about describing the steps a user who installs Emacs should do to > install these additions? I don't think I have a clear picture of what > you intend to do, and the files you committed are just the starting > point, so they don't answer this question. Considering just the .exe installer, at the end of the installation process, we would run Emacs with menu bar, scroll bar and everything switch off and run the command "w32-msys-internal-install-dialog". Emacs would say "do you want do install a handy collection of tools". User says "y", then Emacs downloads the latest msys2-date.xz, then unpacks it with xz. Emacs will run msys2.exe to initialize (hopefully without poping up windows if this will work). Then Emacs will run pacman to update and install. The user will see Emacs saying Would you like to install msys, and a handy set of tools (Y/n) Installing msys...done Updating msys...done Installing git...done When it's finished, the user starts Emacs and does vc-dir and it works, instead of seeing "git not found" errors. For those using the zip file, the user would have to launch "M-x w32-msys-install" manually. At a later date, I might add some cuter things. So, for example we might install: https://github.com/brotzeit/arch-packer or equivalent. We might create "internal-msys" package on ELPA which contains a standard set of packages and Emacs fixes to make it work, so it would be freely updatable. At which point the w32-msys-install command would install the ELPA package before doing anything else. There are also issues that when Emacs is removed msys (and any configuration) would get blitzed, so I'd have to think about how to persist msys configuration between two installs of Emacs. Currently the file organisation looks like this: c:/Program Files/Emacs/emacs-28.1/bin c:/Program Files/Emacs/emacs-28.1/share c:/Program Files/Emacs/emacs-28.1/msys (etc) but c:/Program Files/Emacs/emacs-28.1/bin c:/Program Files/Emacs/emacs-28.1/share c:/Program Files/Emacs/msys would mean that installing Emacs-28.2 would work naturally. There are also some issues about user persmissions; I only ever run Windows as administrator, so there will be some thought given as to how this would work. Neither Emacs or msys require this AFAICT. > Btw, I don't think I understand why you insist on using 'concat' to > generate files names from 2 components: that's what expand-file-name > is for, and it does that better. Because in my own code, I tend to use f.el and I have got used to having a clean, consistent and comprehensive API, so I tend to forget the underlying Emacs primitives. > One other not about the code you committed is that modifying PATH from > within Emacs is not generally a good idea, it has some subtleties. Any alternative that achieves the same thing? Phil