* Emacs pretest 26.1.91 is out @ 2019-01-07 16:10 Nicolas Petton 2019-01-07 21:42 ` John Wiegley ` (3 more replies) 0 siblings, 4 replies; 25+ messages in thread From: Nicolas Petton @ 2019-01-07 16:10 UTC (permalink / raw) To: Emacs Devel [-- Attachment #1: Type: text/plain, Size: 528 bytes --] Hi! The second pretest for what will be the 26.2 release of Emacs (the extensible text editor) is available at ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-26.1.91.tar.xz You can get the PGP signature at ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-26.1.91.tar.xz.sig Please give it as much testing as you can. As always, if you encounter problems building or using Emacs, send a report to bug-gnu-emacs@gnu.org with full details (if possible, use M-x report-emacs-bug). Thanks for helping to test Emacs. Cheers, Nico [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 487 bytes --] ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: Emacs pretest 26.1.91 is out 2019-01-07 16:10 Emacs pretest 26.1.91 is out Nicolas Petton @ 2019-01-07 21:42 ` John Wiegley 2019-01-07 22:11 ` Glenn Morris ` (2 subsequent siblings) 3 siblings, 0 replies; 25+ messages in thread From: John Wiegley @ 2019-01-07 21:42 UTC (permalink / raw) To: Nicolas Petton; +Cc: Emacs Devel [-- Attachment #1: Type: text/plain, Size: 422 bytes --] >>>>> "NP" == Nicolas Petton <nicolas@petton.fr> writes: NP> The second pretest for what will be the 26.2 release of Emacs NP> (the extensible text editor) is available at NP> ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-26.1.91.tar.xz Thanks you, Nicolas! -- John Wiegley GPG fingerprint = 4710 CF98 AF9B 327B B80F http://newartisans.com 60E1 46C4 BD1A 7AC1 4BA2 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 658 bytes --] ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: Emacs pretest 26.1.91 is out 2019-01-07 16:10 Emacs pretest 26.1.91 is out Nicolas Petton 2019-01-07 21:42 ` John Wiegley @ 2019-01-07 22:11 ` Glenn Morris 2019-01-07 23:03 ` Nicolas Petton 2019-01-08 0:59 ` Paul Eggert 2019-01-08 1:25 ` Emacs pretest 26.1.91 is out Paul Eggert 2019-01-09 15:02 ` Phillip Lord 3 siblings, 2 replies; 25+ messages in thread From: Glenn Morris @ 2019-01-07 22:11 UTC (permalink / raw) To: Nicolas Petton; +Cc: Emacs Devel Diffing against the previous pretest tarfile (always useful) reveals an extraneous src/stamp-h.in. This file was deleted two years ago in 2f89350, before the emacs-26 branch was even created. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: Emacs pretest 26.1.91 is out 2019-01-07 22:11 ` Glenn Morris @ 2019-01-07 23:03 ` Nicolas Petton 2019-01-08 3:35 ` Eli Zaretskii 2019-01-08 0:59 ` Paul Eggert 1 sibling, 1 reply; 25+ messages in thread From: Nicolas Petton @ 2019-01-07 23:03 UTC (permalink / raw) To: emacs-devel, Glenn Morris, Nicolas Petton; +Cc: Emacs Devel On January 7, 2019 11:11:27 PM GMT+01:00, Glenn Morris <rgm@gnu.org> wrote: > >Diffing against the previous pretest tarfile (always useful) reveals an >extraneous src/stamp-h.in. This file was deleted two years ago in >2f89350, before the emacs-26 branch was even created. Thanks Glenn for catching this. Indeed this file should not have been in the tarball, I'll diff the tarballs next time. I can also make another pretest now. Cheers, Nico ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: Emacs pretest 26.1.91 is out 2019-01-07 23:03 ` Nicolas Petton @ 2019-01-08 3:35 ` Eli Zaretskii 0 siblings, 0 replies; 25+ messages in thread From: Eli Zaretskii @ 2019-01-08 3:35 UTC (permalink / raw) To: Nicolas Petton; +Cc: rgm, nicolas, emacs-devel > Date: Tue, 08 Jan 2019 00:03:08 +0100 > From: Nicolas Petton <nico@petton.fr> > Cc: Emacs Devel <emacs-devel@gnu.org> > > I can also make another pretest now. I don't think this minor issue warrants another pretest just to fix it. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: Emacs pretest 26.1.91 is out 2019-01-07 22:11 ` Glenn Morris 2019-01-07 23:03 ` Nicolas Petton @ 2019-01-08 0:59 ` Paul Eggert 2019-01-11 1:03 ` Glenn Morris 1 sibling, 1 reply; 25+ messages in thread From: Paul Eggert @ 2019-01-08 0:59 UTC (permalink / raw) To: Glenn Morris, Nicolas Petton; +Cc: Emacs Devel On 1/7/19 2:11 PM, Glenn Morris wrote: > Diffing against the previous pretest tarfile (always useful) reveals an > extraneous src/stamp-h.in. This file was deleted two years ago in > 2f89350, before the emacs-26 branch was even created. > While we're on the subject of what goes into the distribution, several files are under version control but are not in the distribution tarball. They are: .gitattributes .gitignore .gitlab-ci.yml GNUmakefile INSTALL.REPO build-aux/git-hooks/commit-msg build-aux/git-hooks/pre-commit msdos/autogen plus the entire 'test' subdirectory. Shouldn't we be distributing all the actual source that we develop with, even if it's not needed to build the tarball? That would seem to be more the GNU Way. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: Emacs pretest 26.1.91 is out 2019-01-08 0:59 ` Paul Eggert @ 2019-01-11 1:03 ` Glenn Morris 2019-01-11 2:31 ` Paul Eggert 0 siblings, 1 reply; 25+ messages in thread From: Glenn Morris @ 2019-01-11 1:03 UTC (permalink / raw) To: Paul Eggert; +Cc: Nicolas Petton, Emacs Devel Paul Eggert wrote: > While we're on the subject of what goes into the distribution, several > files are under version control but are not in the distribution > tarball. They are: > > > .gitattributes > .gitignore > .gitlab-ci.yml Only relevant to git checkouts. > GNUmakefile I don't know. > INSTALL.REPO > build-aux/git-hooks/commit-msg > build-aux/git-hooks/pre-commit Only relevant to git checkouts. > msdos/autogen Only relevant to the MS-DOS port maintainer. > plus the entire 'test' subdirectory. This has been intentional but it's obviously the most debatable omission. > Shouldn't we be distributing all the actual source that we develop > with, even if it's not needed to build the tarball? That would seem to > be more the GNU Way. The current philosophy is "omit things that aren't relevant". I dunno. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: Emacs pretest 26.1.91 is out 2019-01-11 1:03 ` Glenn Morris @ 2019-01-11 2:31 ` Paul Eggert 2019-01-16 10:30 ` what make-dist should include [was Re: Emacs pretest 26.1.91 is out] Glenn Morris 0 siblings, 1 reply; 25+ messages in thread From: Paul Eggert @ 2019-01-11 2:31 UTC (permalink / raw) To: Glenn Morris; +Cc: Nicolas Petton, Emacs Devel On 1/10/19 5:03 PM, Glenn Morris wrote: > The current philosophy is "omit things that aren't relevant". Sure, but the question is "What's relevant?" and the answer depends on the audience. For example, .gitignore is relevant to anybody who checks a tarball's files into a fresh Git repository, and msdos/autogen is relevant to anybody who does serious development on MS-DOS regardless of whether they're using Git. For each of the nondistributed source files, one can make a case that the file is relevant in some cases. A simple answer to "What's relevant?" is "every source file that's in the repository, plus all files generated by 'make' that are useful on all platforms". This answer would mean that all the files I mentioned should be in the distribution tarball. If the answer to "What's relevant?" is something else, then (a) I'm not sure what the answer is and (b) whatever the answer is, it's likely complicated and that complexity has a maintenance cost. ^ permalink raw reply [flat|nested] 25+ messages in thread
* what make-dist should include [was Re: Emacs pretest 26.1.91 is out] 2019-01-11 2:31 ` Paul Eggert @ 2019-01-16 10:30 ` Glenn Morris 2019-01-17 5:42 ` Mike Kupfer 2019-01-22 21:58 ` Paul Eggert 0 siblings, 2 replies; 25+ messages in thread From: Glenn Morris @ 2019-01-16 10:30 UTC (permalink / raw) To: Paul Eggert; +Cc: Emacs Devel Paul Eggert wrote: > On 1/10/19 5:03 PM, Glenn Morris wrote: >> The current philosophy is "omit things that aren't relevant". > > Sure, but the question is "What's relevant?" and the answer depends on > the audience. For example, .gitignore is relevant to anybody who > checks a tarball's files into a fresh Git repository, (and then builds in place) > and msdos/autogen is relevant to anybody who does serious development > on MS-DOS regardless of whether they're using Git. I doubt such people exist, for either example. I see zero practical advantages to a switch to a "distribute everything" approach (which Emacs has never done, and nor when I check do eg tar, texinfo, coreutils); unless it will drastically simplify make-dist and avoid problems like the one fixed in 021f34b. If it does then I am all for it. :) ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: what make-dist should include [was Re: Emacs pretest 26.1.91 is out] 2019-01-16 10:30 ` what make-dist should include [was Re: Emacs pretest 26.1.91 is out] Glenn Morris @ 2019-01-17 5:42 ` Mike Kupfer 2019-01-17 21:44 ` Stefan Monnier 2019-01-18 18:58 ` Glenn Morris 2019-01-22 21:58 ` Paul Eggert 1 sibling, 2 replies; 25+ messages in thread From: Mike Kupfer @ 2019-01-17 5:42 UTC (permalink / raw) To: Glenn Morris; +Cc: Paul Eggert, Emacs Devel Glenn Morris wrote: > Paul Eggert wrote: > > > For example, .gitignore is relevant to anybody who > > checks a tarball's files into a fresh Git repository, > > (and then builds in place) [...] > I doubt such people exist, for either example. When I unpack an Emacs tarball, I usually check it into a fresh Mercurial repo before building. So I wouldn't be surprised to see someone do that with Git. (Or am I misunderstanding the example?) mike ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: what make-dist should include [was Re: Emacs pretest 26.1.91 is out] 2019-01-17 5:42 ` Mike Kupfer @ 2019-01-17 21:44 ` Stefan Monnier 2019-01-18 0:18 ` Mike Kupfer 2019-01-18 18:58 ` Glenn Morris 1 sibling, 1 reply; 25+ messages in thread From: Stefan Monnier @ 2019-01-17 21:44 UTC (permalink / raw) To: emacs-devel > When I unpack an Emacs tarball, I usually check it into a fresh > Mercurial repo before building. Interesting. I wonder why you do that. To me, if I wanted to have a backing VCS, I'd start from a `git clone` rather than a tarball. Is it because you deal with many packages and it's easier to find their tarballs than to find the repository and the tag that corresponds to a particular release? Still, why bother with a VCS? Stefan ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: what make-dist should include [was Re: Emacs pretest 26.1.91 is out] 2019-01-17 21:44 ` Stefan Monnier @ 2019-01-18 0:18 ` Mike Kupfer 2019-01-18 3:01 ` Stefan Monnier 2019-01-18 8:38 ` Eli Zaretskii 0 siblings, 2 replies; 25+ messages in thread From: Mike Kupfer @ 2019-01-18 0:18 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel Stefan Monnier wrote: > > When I unpack an Emacs tarball, I usually check it into a fresh > > Mercurial repo before building. > > Interesting. I wonder why you do that. It's so I can apply in-progress patches using Mercurial Queues (MQ). > To me, if I wanted to have a backing VCS, I'd start from a `git clone` > rather than a tarball. Maybe there's an easy way to manage this with Git, but I don't see one. First, I want to build, with the patches, on multiple systems. That means rebasing is out, or at least it becomes more of a hassle. Second, the patches are usually independent. So, IIUC, the "correct" approach would be to have a branch for each patch, plus another branch to merge all the per-patch branches, so that I can build with them all. With MQ the workflow is pretty simple: - unpack the tarball - create the repo and commit the unpacked files - pull the patches from their repo - apply the patches ("hg qpush -a") - build mike ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: what make-dist should include [was Re: Emacs pretest 26.1.91 is out] 2019-01-18 0:18 ` Mike Kupfer @ 2019-01-18 3:01 ` Stefan Monnier 2019-01-20 1:08 ` Mike Kupfer 2019-01-18 8:38 ` Eli Zaretskii 1 sibling, 1 reply; 25+ messages in thread From: Stefan Monnier @ 2019-01-18 3:01 UTC (permalink / raw) To: Mike Kupfer; +Cc: emacs-devel > With MQ the workflow is pretty simple: > > 1- unpack the tarball > 2- create the repo and commit the unpacked files > 3- pull the patches from their repo > 4- apply the patches ("hg qpush -a") > 5- build [ The step 0 being "download the tarball". ] Hmm... ignoring the issue of Mercurial -vs- Git, the equivalent using the VCS would be: 0- clone from the remote repository to a local "bare" repository. 1- clone from that local repository 2- do nothing 3- pull the patches from their repo 4- apply the patches 5- build Step 0 is where you'll need/want to convert from the remote VCS format (Git/Mercurial/...) to the one you want to use locally (Mercurial in your case), so that's where the issue of repository format may get in the way (I've used Git to access Mercurial repositories and it works OK, but is significantly slower on large repositories, haven't tried the other direction). Stefan "to me, source code without its VCS repository feels like a computer without connection to the Internet" PS: I should stop here because I'm starting to sound like I'm trying to convince you to change your workflow, whereas I'm only trying to understand your motivation. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: what make-dist should include [was Re: Emacs pretest 26.1.91 is out] 2019-01-18 3:01 ` Stefan Monnier @ 2019-01-20 1:08 ` Mike Kupfer 2019-01-20 14:42 ` Stefan Monnier 0 siblings, 1 reply; 25+ messages in thread From: Mike Kupfer @ 2019-01-20 1:08 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel Stefan Monnier wrote: > > With MQ the workflow is pretty simple: > > > > 1- unpack the tarball > > 2- create the repo and commit the unpacked files > > 3- pull the patches from their repo > > 4- apply the patches ("hg qpush -a") > > 5- build > > [ The step 0 being "download the tarball". ] > > Hmm... ignoring the issue of Mercurial -vs- Git, the equivalent using > the VCS would be: > > 0- clone from the remote repository to a local "bare" repository. > 1- clone from that local repository > 2- do nothing > 3- pull the patches from their repo > 4- apply the patches > 5- build Yeah, if all I were doing was applying static patches, there would be less benefit to using MQ. But MQ helps with the tedium of managing a patch repo as I refine the patches. (And I'm probably biased, since I've been using Mercurial for over 10 years, but I only started using Git when Emacs moved to it.) > (I've used Git to access Mercurial repositories and it works OK, > but is significantly slower on large repositories, haven't tried the > other direction). Sometime a few years ago I used a Mercurial extension to access a Git repo. I had pretty much the same experience: it worked okay but was kinda slow. I don't know if that extension is still available or maintained. cheers, mike ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: what make-dist should include [was Re: Emacs pretest 26.1.91 is out] 2019-01-20 1:08 ` Mike Kupfer @ 2019-01-20 14:42 ` Stefan Monnier 0 siblings, 0 replies; 25+ messages in thread From: Stefan Monnier @ 2019-01-20 14:42 UTC (permalink / raw) To: Mike Kupfer; +Cc: emacs-devel >> > With MQ the workflow is pretty simple: >> > >> > 1- unpack the tarball >> > 2- create the repo and commit the unpacked files >> > 3- pull the patches from their repo >> > 4- apply the patches ("hg qpush -a") >> > 5- build >> >> [ The step 0 being "download the tarball". ] >> >> Hmm... ignoring the issue of Mercurial -vs- Git, the equivalent using >> the VCS would be: >> >> 0- clone from the remote repository to a local "bare" repository. >> 1- clone from that local repository >> 2- do nothing >> 3- pull the patches from their repo >> 4- apply the patches >> 5- build > > Yeah, if all I were doing was applying static patches, there would be > less benefit to using MQ. But MQ helps with the tedium of managing a > patch repo as I refine the patches. (And I'm probably biased, since > I've been using Mercurial for over 10 years, but I only started using > Git when Emacs moved to it.) Note that steps 3-5 are 100% unchanged. > Sometime a few years ago I used a Mercurial extension to access a Git > repo. I had pretty much the same experience: it worked okay but was > kinda slow. I don't know if that extension is still available or > maintained. If the conversion to a different repository format is the problem, then I guess passing through tar is not that bad of a deal, indeed (you can get the same result by "git clone"ing and then committing the result to an Hg repository, but the benefits are not as clear). Stefan ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: what make-dist should include [was Re: Emacs pretest 26.1.91 is out] 2019-01-18 0:18 ` Mike Kupfer 2019-01-18 3:01 ` Stefan Monnier @ 2019-01-18 8:38 ` Eli Zaretskii 2019-01-20 0:54 ` Mike Kupfer 1 sibling, 1 reply; 25+ messages in thread From: Eli Zaretskii @ 2019-01-18 8:38 UTC (permalink / raw) To: Mike Kupfer; +Cc: monnier, emacs-devel > From: Mike Kupfer <mkupfer@alum.berkeley.edu> > Date: Thu, 17 Jan 2019 16:18:03 -0800 > Cc: emacs-devel@gnu.org > > Stefan Monnier wrote: > > > > When I unpack an Emacs tarball, I usually check it into a fresh > > > Mercurial repo before building. > > > > Interesting. I wonder why you do that. > > It's so I can apply in-progress patches using Mercurial Queues (MQ). > > > To me, if I wanted to have a backing VCS, I'd start from a `git clone` > > rather than a tarball. > > Maybe there's an easy way to manage this with Git, but I don't see one. Does the below give any useful ideas? https://stackoverflow.com/questions/952651/git-equivalent-to-hg-mq ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: what make-dist should include [was Re: Emacs pretest 26.1.91 is out] 2019-01-18 8:38 ` Eli Zaretskii @ 2019-01-20 0:54 ` Mike Kupfer 0 siblings, 0 replies; 25+ messages in thread From: Mike Kupfer @ 2019-01-20 0:54 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel Eli Zaretskii wrote: > Does the below give any useful ideas? > > https://stackoverflow.com/questions/952651/git-equivalent-to-hg-mq Yes, there are a couple packages named there that look worth investigating. thanks, mike ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: what make-dist should include [was Re: Emacs pretest 26.1.91 is out] 2019-01-17 5:42 ` Mike Kupfer 2019-01-17 21:44 ` Stefan Monnier @ 2019-01-18 18:58 ` Glenn Morris 1 sibling, 0 replies; 25+ messages in thread From: Glenn Morris @ 2019-01-18 18:58 UTC (permalink / raw) To: Mike Kupfer; +Cc: Paul Eggert, Emacs Devel Mike Kupfer wrote: > When I unpack an Emacs tarball, I usually check it into a fresh > Mercurial repo before building. So I wouldn't be surprised to see > someone do that with Git. (Or am I misunderstanding the example?) Seems strange to me, but if you think it would help such people to have .gitignore in the tarfile, feel free to add it. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: what make-dist should include [was Re: Emacs pretest 26.1.91 is out] 2019-01-16 10:30 ` what make-dist should include [was Re: Emacs pretest 26.1.91 is out] Glenn Morris 2019-01-17 5:42 ` Mike Kupfer @ 2019-01-22 21:58 ` Paul Eggert 2019-01-23 16:14 ` Eli Zaretskii 1 sibling, 1 reply; 25+ messages in thread From: Paul Eggert @ 2019-01-22 21:58 UTC (permalink / raw) To: Glenn Morris; +Cc: Emacs Devel [-- Attachment #1: Type: text/plain, Size: 617 bytes --] On 1/16/19 2:30 AM, Glenn Morris wrote: > I see zero practical advantages to a switch to a "distribute everything" > approach (which Emacs has never done, and nor when I check do eg tar, > texinfo, coreutils); unless it will drastically simplify make-dist and > avoid problems like the one fixed in 021f34b. If it does then I am all > for it. :) OK, proposed make-dist patch attached. This patch drastically simplifies the list of files in make-dist that needs to be maintained manually, by relying on Git to keep track of files under version control. This should help avoid problems like the one you mentioned. [-- Attachment #2: 0001-Make-make-dist-more-automatic.txt --] [-- Type: text/plain, Size: 13847 bytes --] From 2325172f59faa4f3c1d41262ccf1ebd520d5b736 Mon Sep 17 00:00:00 2001 From: Paul Eggert <eggert@cs.ucla.edu> Date: Tue, 22 Jan 2019 13:52:24 -0800 Subject: [PATCH] Make make-dist more automatic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Simplify make-dist maintenance by having it generate its list of files more automatically. Put the list of distributed files into a file MANIFEST that can be used in the unusual situations when you’re making a distribution without having access to a Git repository. * make-dist (top_level_ChangeLog): Now nonempty if the distribution tarball will contain a ChangeLog, instead of being nonempty when a ChangeLog is requested, Git is present and a readable ChangeLog exists. The new interpretation makes the script a bit easier to follow. (possibly_non_vc_files, info_files, mkdir_verbose) (file_to_skip, MANIFEST_subdir_sed, tempsubdirs): New variables. (MANIFEST): Update and use this file, which now records what files are distributed. (top_level, subdir, files, file): Remove. --- make-dist | 346 ++++++++++++------------------------------------------ 1 file changed, 75 insertions(+), 271 deletions(-) diff --git a/make-dist b/make-dist index 20be62da1f..62e47b4d14 100755 --- a/make-dist +++ b/make-dist @@ -358,6 +358,50 @@ tempparent= $EMACS -batch -f batch-byte-recompile-directory lisp fi # $update = yes +if [ "$changelog" = yes ] && [ -r .git ]; then + top_level_ChangeLog=ChangeLog +else + top_level_ChangeLog= +fi + +# Files to distribute that might not be under version control. +# Don't distribute site-init.el, site-load.el, or default.el. +possibly_non_vc_files=" + $top_level_ChangeLog + MANIFEST aclocal.m4 configure + admin/charsets/jisx2131-filter + src/config.in src/dmpstruct.h src/emacs-module.h + src/fingerprint.c src/stamp-h.in +"$( + find admin doc etc lisp \ + \( -name '*.el' -o -name '*.elc' -o -name '*.map' -o -name '*.stamp' \ + -o -name '*.texi' -o -name '*.tex' -o -name '*.txt' \) \ + ! -name 'site-init*' ! -name 'site-load*' ! -name 'default*' +) || exit + +if [ $with_info = yes ]; then + info_files="info/dir $(echo info/*.info)" || exit +else + info_files= +fi + +# If Git is in use update the file MANIFEST, which can substitute for +# 'git ls-files' later (e.g., after extraction from a tarball). +# Otherwise, rely on the existing MANIFEST, which should be maintained some +# other way when adding or deleting a distributed file while not using Git. +if [ $update = yes ] && [ -r .git ]; then + echo "Updating MANIFEST" + if [ $with_tests = yes ]; then + git ls-files >MANIFEST + else + git ls-files | grep -v '^test' >MANIFEST + fi || exit + printf '%s\n' $possibly_non_vc_files $info_files >>MANIFEST || exit + sort -u -o MANIFEST MANIFEST || exit +fi + +<MANIFEST || exit + echo "Creating staging directory: '${tempparent}'" mkdir ${tempparent} || exit @@ -370,290 +414,52 @@ tempdir= fi echo "Creating top directory: '${tempdir}'" -mkdir ${tempdir} || exit +if [ $verbose = yes ] && (mkdir --verbose ${tempdir}) >/dev/null 2>&1; then + mkdir_verbose='mkdir --verbose' +else + mkdir $tempdir || exit + mkdir_verbose=mkdir +fi + +# file_to_skip is normally empty to link every file, +# but it can be 'ChangeLog' if we do not want to link the +# top-level ChangeLog. +file_to_skip= -top_level_ChangeLog= if [ "$changelog" = yes ]; then if test -r .git; then ## When making a release or pretest the ChangeLog should already ## have been created and edited as needed. Don't ignore it. - if test -r ChangeLog; then + if [ -r ChangeLog ] && [ ! -L ChangeLog ]; then echo "Using existing top-level ChangeLog" - top_level_ChangeLog=ChangeLog else echo "Making top-level ChangeLog" make ChangeLog CHANGELOG=${tempdir}/ChangeLog || \ { x=$?; echo "make ChangeLog FAILED (try --no-changelog?)" >&2; exit $x; } + file_to_skip=ChangeLog fi else echo "No repository, so omitting top-level ChangeLog" fi fi -### We copy in the top-level files before creating the subdirectories in -### hopes that this will make the top-level files appear first in the -### tar file; this means that people can start reading the INSTALL and -### README while the rest of the tar file is still unpacking. Whoopee. -echo "Making links to top-level files" -top_level=' - INSTALL README BUGS - ChangeLog.*[0-9] Makefile.in autogen.sh configure configure.ac - config.bat make-dist .dir-locals.el - aclocal.m4 CONTRIBUTE -' -ln $top_level $top_level_ChangeLog $tempdir || exit - echo "Creating subdirectories" -for subdir in site-lisp \ - leim leim/CXTERM-DIC leim/MISC-DIC leim/SKK-DIC \ - build-aux \ - src src/bitmaps lib lib-src oldXMenu lwlib \ - nt nt/inc nt/inc/sys nt/inc/arpa nt/inc/netinet nt/icons \ - `find etc lisp admin test -type d` \ - doc doc/emacs doc/misc doc/man doc/lispref doc/lispintro \ - info m4 modules msdos \ - nextstep nextstep/templates \ - nextstep/Cocoa nextstep/Cocoa/Emacs.base \ - nextstep/Cocoa/Emacs.base/Contents \ - nextstep/Cocoa/Emacs.base/Contents/Resources \ - nextstep/GNUstep \ - nextstep/GNUstep/Emacs.base \ - nextstep/GNUstep/Emacs.base/Resources -do - - if [ "$with_tests" != "yes" ]; then - case $subdir in - test*) continue ;; - esac - fi - - ## site-lisp for in-place installs (?). - [ "$subdir" = "site-lisp" ] || [ -d "$subdir" ] || \ - echo "WARNING: $subdir not found, making anyway" - [ "$verbose" = "yes" ] && echo " ${tempdir}/${subdir}" - mkdir ${tempdir}/${subdir} || exit -done - -echo "Making links to 'lisp' and its subdirectories" -files=`find lisp \( -name '*.el' -o -name '*.elc' -o -name 'ChangeLog*' \ - -o -name 'README' \)` || exit - -### Don't distribute site-init.el, site-load.el, or default.el. -for file in lisp/Makefile.in $files; do - case $file in - */site-init*|*/site-load*|*/default*) continue ;; - esac - ln $file $tempdir/$file || exit -done - -echo "Making links to 'leim' and its subdirectories" -(cd leim && - ln ChangeLog.*[0-9] README ../${tempdir}/leim && - ln CXTERM-DIC/README CXTERM-DIC/*.tit ../${tempdir}/leim/CXTERM-DIC && - ln SKK-DIC/README SKK-DIC/SKK-JISYO.L ../${tempdir}/leim/SKK-DIC && - ln MISC-DIC/README MISC-DIC/*.* ../${tempdir}/leim/MISC-DIC && - ln Makefile.in ../${tempdir}/leim/Makefile.in && - ln leim-ext.el ../${tempdir}/leim/leim-ext.el && -:) || exit - -## FIXME Can we not just use the "find -type f" method for this one? -echo "Making links to 'build-aux'" -(cd build-aux && - ln config.guess config.sub msys-to-w32 ../${tempdir}/build-aux && - ln gitlog-to-changelog gitlog-to-emacslog ../${tempdir}/build-aux && - ln install-sh move-if-change ../${tempdir}/build-aux && - ln update-copyright update-subdirs ../${tempdir}/build-aux && - ln dir_top make-info-dir ../${tempdir}/build-aux && -:) || exit - -echo "Making links to 'src'" -### Don't distribute the configured versions of -### config.in, paths.in, buildobj.h, or Makefile.in. -(cd src && - ln [a-zA-Z]*.[chm] ../${tempdir}/src && - ln [a-zA-Z]*.in ../${tempdir}/src && - ln deps.mk dmpstruct.awk ../${tempdir}/src && - ln README ChangeLog.*[0-9] ../${tempdir}/src && - ln .gdbinit .dbxinit ../${tempdir}/src && - cd ../${tempdir}/src && - rm -f globals.h config.h epaths.h Makefile buildobj.h && -:) || exit - -echo "Making links to 'src/bitmaps'" -(cd src/bitmaps && - ln README *.xbm ../../${tempdir}/src/bitmaps && -:) || exit - -echo "Making links to 'lib'" -(cd lib && - ln [a-zA-Z_]*.[ch] ../${tempdir}/lib && - ln gnulib.mk.in Makefile.in ../${tempdir}/lib && - cd ../${tempdir}/lib && - script='/[*]/d; s/\.in\.h$/.h/' && - rm -f `ls *.in.h | sed "$script"` && -:) || exit - -echo "Making links to 'lib-src'" -(cd lib-src && - ln [a-zA-Z]*.[ch] ../${tempdir}/lib-src && - ln ChangeLog.*[0-9] Makefile.in README ../${tempdir}/lib-src && - ln rcs2log ../${tempdir}/lib-src && -:) || exit - -echo "Making links to 'm4'" -(cd m4 && - ln *.m4 ../${tempdir}/m4 && -:) || exit - -echo "Making links to 'modules'" -(cd modules && - ln *.py ../${tempdir}/modules && -:) || exit - -echo "Making links to 'nt'" -(cd nt && - ln emacs-x86.manifest emacs-x64.manifest ../${tempdir}/nt && - ln [a-z]*.bat [a-z]*.[ch] ../${tempdir}/nt && - ln *.in gnulib-cfg.mk ../${tempdir}/nt && - ln mingw-cfg.site epaths.nt INSTALL.W64 ../${tempdir}/nt && - ln ChangeLog.*[0-9] INSTALL README README.W32 ../${tempdir}/nt && -:) || exit - -echo "Making links to 'nt/inc' and its subdirectories" -for f in `find nt/inc -type f -name '[a-z]*.h'`; do - ln $f $tempdir/$f || exit -done - -echo "Making links to 'nt/icons'" -(cd nt/icons && - ln README [a-z]*.ico ../../${tempdir}/nt/icons && - ln [a-z]*.cur ../../${tempdir}/nt/icons && -:) || exit - -echo "Making links to 'msdos'" -(cd msdos && - ln ChangeLog.*[0-9] INSTALL README emacs.ico emacs.pif ../${tempdir}/msdos && - ln depfiles.bat inttypes.h ../${tempdir}/msdos && - ln mainmake.v2 sed*.inp ../${tempdir}/msdos && -:) || exit - -echo "Making links to 'nextstep'" -(cd nextstep && - ln ChangeLog.*[0-9] README INSTALL Makefile.in ../${tempdir}/nextstep && -:) || exit - -echo "Making links to 'nextstep/templates'" -(cd nextstep/templates && - ln Emacs.desktop.in Info-gnustep.plist.in Info.plist.in InfoPlist.strings.in \ - ../../${tempdir}/nextstep/templates && -:) || exit - -echo "Making links to 'nextstep/Cocoa/Emacs.base/Contents'" -(cd nextstep/Cocoa/Emacs.base/Contents && - ln PkgInfo ../../../../${tempdir}/nextstep/Cocoa/Emacs.base/Contents && -:) || exit - -echo "Making links to 'nextstep/Cocoa/Emacs.base/Contents/Resources'" -(cd nextstep/Cocoa/Emacs.base/Contents/Resources && - ln Credits.html *.icns \ - ../../../../../${tempdir}/nextstep/Cocoa/Emacs.base/Contents/Resources && -:) || exit - -echo "Making links to 'nextstep/GNUstep/Emacs.base/Resources'" -(cd nextstep/GNUstep/Emacs.base/Resources && - ln README emacs.tiff \ - ../../../../${tempdir}/nextstep/GNUstep/Emacs.base/Resources && -:) || exit - -echo "Making links to 'oldXMenu'" -(cd oldXMenu && - ln *.[ch] *.in *.mk ../${tempdir}/oldXMenu && - ln README ChangeLog.*[0-9] ../${tempdir}/oldXMenu && -:) || exit - -echo "Making links to 'lwlib'" -(cd lwlib && - ln *.[ch] *.in *.mk ../${tempdir}/lwlib && - ln README ChangeLog.*[0-9] ../${tempdir}/lwlib && -:) || exit - -## It is important to distribute admin/ because it contains sources -## for generated lisp/international/uni-*.el files. -echo "Making links to 'admin' and its subdirectories" -for f in `find admin -type f`; do - case $f in - */Makefile) [ -f $f.in ] && continue ;; - esac - ln $f $tempdir/$f || exit -done - -if [ "$with_tests" = "yes" ]; then - echo "Making links to 'test' and its subdirectories" - for f in `find test -type f ! -name '*.log' ! -name a.out \ - ! -name '*.so' ! -name '*.dll' ! -name '*.o' - `; do - case $f in - */Makefile) [ -f $f.in ] && continue ;; - esac - ln $f $tempdir/$f || exit - done -fi - -echo "Making links to 'etc' and its subdirectories" -for f in `find etc -type f`; do - case $f in - etc/DOC*|etc/*.pyc) continue ;; - ## Arguably we should not exclude *.ps. - etc/refcards/*.aux|etc/refcards/*.dvi|etc/refcards/*.log|etc/refcards/*.ps) - continue ;; - esac - ln $f $tempdir/$f || exit -done - -if [ "$with_info" = "yes" ]; then - echo "Making links to 'info'" - ln `find info -type f -print` ${tempdir}/info || exit -fi +MANIFEST_subdir_sed=' + $a\ +'$tempdir'/info\ +'$tempdir'/site-lisp + s,[^/]*$,, + s,/$,, + /^$/d + s,^,'$tempdir'/, +' +tempsubdirs=$(sed "$MANIFEST_subdir_sed" MANIFEST | sort -u) +$mkdir_verbose -p $tempsubdirs || exit -echo "Making links to 'doc/emacs'" -(cd doc/emacs && - ln *.texi *.in ChangeLog.*[0-9] ../../${tempdir}/doc/emacs && -:) || exit - -echo "Making links to 'doc/misc'" -(cd doc/misc && - ln *.texi *.tex *.in gnus-news.el ChangeLog.*[0-9] \ - ../../${tempdir}/doc/misc && -:) || exit - -echo "Making links to 'doc/lispref'" -(cd doc/lispref && - ln *.texi *.in README ChangeLog.*[0-9] ../../${tempdir}/doc/lispref && - ln spellfile ../../${tempdir}/doc/lispref && - ln two-volume.make two-volume-cross-refs.txt ../../${tempdir}/doc/lispref && -:) || exit - -echo "Making links to 'doc/lispintro'" -(cd doc/lispintro && - ln *.texi *.in *.eps *.pdf ../../${tempdir}/doc/lispintro && - ln README ChangeLog.*[0-9] ../../${tempdir}/doc/lispintro && - cd ../../${tempdir}/doc/lispintro && -:) || exit - -echo "Making links to 'doc/man'" -(cd doc/man && - ln *.*[0-9] *.in ../../${tempdir}/doc/man && - cd ../../${tempdir}/doc/man && - rm -f emacs.1 && -:) || exit - -### It would be nice if they could all be symlinks to top-level copy, but -### you're not supposed to have any symlinks in distribution tar files. -echo "Making sure copying notices are all copies of 'COPYING'" -for subdir in . etc leim lib lib-src lisp lwlib msdos nt src; do - rm -f ${tempdir}/${subdir}/COPYING || exit - cp COPYING ${tempdir}/${subdir} || exit -done +echo "Making links to files" +while read file; do + [ $file = "$file_to_skip" ] || ln $file $tempdir/$file || exit +done <MANIFEST if [ "${newer}" ]; then printf '%s\n' "Removing files older than $newer" @@ -664,10 +470,6 @@ files= -exec rm -f {} \; || exit fi -## Don't distribute backups, autosaves, etc. -echo "Removing unwanted files" -find ${tempdir} \( -name '*~' -o -name '#*#' -o -name '.*ignore' -o -name '=*' -o -name 'TAGS' \) -exec rm -f {} \; || exit - if [ "${make_tar}" = yes ]; then echo "Looking for $default_gzip" found=0 @@ -715,4 +517,6 @@ files= rm -rf ${tempparent} fi -### make-dist ends here +# Local Variables: +# sh-basic-offset: 2 +# End: -- 2.20.1 ^ permalink raw reply related [flat|nested] 25+ messages in thread
* Re: what make-dist should include [was Re: Emacs pretest 26.1.91 is out] 2019-01-22 21:58 ` Paul Eggert @ 2019-01-23 16:14 ` Eli Zaretskii 2019-01-23 17:52 ` Paul Eggert 0 siblings, 1 reply; 25+ messages in thread From: Eli Zaretskii @ 2019-01-23 16:14 UTC (permalink / raw) To: Paul Eggert; +Cc: rgm, emacs-devel > From: Paul Eggert <eggert@cs.ucla.edu> > Date: Tue, 22 Jan 2019 13:58:49 -0800 > Cc: Emacs Devel <emacs-devel@gnu.org> > > On 1/16/19 2:30 AM, Glenn Morris wrote: > > I see zero practical advantages to a switch to a "distribute everything" > > approach (which Emacs has never done, and nor when I check do eg tar, > > texinfo, coreutils); unless it will drastically simplify make-dist and > > avoid problems like the one fixed in 021f34b. If it does then I am all > > for it. :) > > OK, proposed make-dist patch attached. This patch drastically simplifies > the list of files in make-dist that needs to be maintained manually, by > relying on Git to keep track of files under version control. This should > help avoid problems like the one you mentioned. I think you forgot a few files, like PDF refcards etc., which are produced by the build, but included in the tarball. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: what make-dist should include [was Re: Emacs pretest 26.1.91 is out] 2019-01-23 16:14 ` Eli Zaretskii @ 2019-01-23 17:52 ` Paul Eggert 2019-01-23 18:14 ` Eli Zaretskii 0 siblings, 1 reply; 25+ messages in thread From: Paul Eggert @ 2019-01-23 17:52 UTC (permalink / raw) To: Eli Zaretskii; +Cc: rgm, emacs-devel On 1/23/19 8:14 AM, Eli Zaretskii wrote: > I think you forgot a few files, like PDF refcards etc., which are > produced by the build, but included in the tarball. No problem there, as the PDF refcards are directly version-controlled. I perhaps should have mentioned that I tested the proposed make-dist and the only files that it omits are files that it should omit. In my test, hee is a list of files that current master make-dist includes but the proposed make-dist omits: * admin/CPP-DEFINES.orig - this is a file left over from 'patch' that the current make-dist mistakely includes. * src/t.c - this is a little test file in my src directory that the current make-dist mistakenly includes * src/temacs.in - this is a built executable in my src directory that the current make-dist mistakenly includes (obviously a bug). ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: what make-dist should include [was Re: Emacs pretest 26.1.91 is out] 2019-01-23 17:52 ` Paul Eggert @ 2019-01-23 18:14 ` Eli Zaretskii 0 siblings, 0 replies; 25+ messages in thread From: Eli Zaretskii @ 2019-01-23 18:14 UTC (permalink / raw) To: Paul Eggert; +Cc: rgm, emacs-devel > From: Paul Eggert <eggert@cs.ucla.edu> > Date: Wed, 23 Jan 2019 09:52:54 -0800 > Cc: rgm@gnu.org, emacs-devel@gnu.org > > I perhaps should have mentioned that I tested the proposed make-dist I thought you were asking for a review nonetheless. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: Emacs pretest 26.1.91 is out 2019-01-07 16:10 Emacs pretest 26.1.91 is out Nicolas Petton 2019-01-07 21:42 ` John Wiegley 2019-01-07 22:11 ` Glenn Morris @ 2019-01-08 1:25 ` Paul Eggert 2019-01-08 8:53 ` Nicolas Petton 2019-01-09 15:02 ` Phillip Lord 3 siblings, 1 reply; 25+ messages in thread From: Paul Eggert @ 2019-01-08 1:25 UTC (permalink / raw) To: Nicolas Petton, Emacs Devel On 1/7/19 8:10 AM, Nicolas Petton wrote: > The second pretest for what will be the 26.2 release of Emacs > (the extensible text editor) is available at > > ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-26.1.91.tar.xz > > You can get the PGP signature at > > ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-26.1.91.tar.xz.sig Thanks for doing that. In the future, would you please announce URLs like the following instead? https://alpha.gnu.org/gnu/emacs/pretest/emacs-26.1.91.tar.xz Granted, if one checks the PGP signature then FTP will do, but lots of people don't bother with checking signatures and HTTPS is more secure in that situation. Thanks. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: Emacs pretest 26.1.91 is out 2019-01-08 1:25 ` Emacs pretest 26.1.91 is out Paul Eggert @ 2019-01-08 8:53 ` Nicolas Petton 0 siblings, 0 replies; 25+ messages in thread From: Nicolas Petton @ 2019-01-08 8:53 UTC (permalink / raw) To: Paul Eggert, Emacs Devel [-- Attachment #1: Type: text/plain, Size: 450 bytes --] Paul Eggert <eggert@cs.ucla.edu> writes: Hi Paul, > Thanks for doing that. In the future, would you please announce URLs > like the following instead? > > https://alpha.gnu.org/gnu/emacs/pretest/emacs-26.1.91.tar.xz > > Granted, if one checks the PGP signature then FTP will do, but lots of > people don't bother with checking signatures and HTTPS is more secure in > that situation. Thanks. Sure, I can do that. Cheers, Nico [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 487 bytes --] ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: Emacs pretest 26.1.91 is out 2019-01-07 16:10 Emacs pretest 26.1.91 is out Nicolas Petton ` (2 preceding siblings ...) 2019-01-08 1:25 ` Emacs pretest 26.1.91 is out Paul Eggert @ 2019-01-09 15:02 ` Phillip Lord 3 siblings, 0 replies; 25+ messages in thread From: Phillip Lord @ 2019-01-09 15:02 UTC (permalink / raw) To: Emacs Devel; +Cc: Nicolas Petton Windows binaries for this release are now available at: https://alpha.gnu.org/gnu/emacs/pretest/windows/emacs-26/ Independently, I've also updated the Emacs-27 snapshot binaries. https://alpha.gnu.org/gnu/emacs/pretest/windows/emacs-27/ Phil Nicolas Petton <nicolas@petton.fr> writes: > Hi! > > The second pretest for what will be the 26.2 release of Emacs > (the extensible text editor) is available at > > ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-26.1.91.tar.xz > > You can get the PGP signature at > > ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-26.1.91.tar.xz.sig > > Please give it as much testing as you can. > > As always, if you encounter problems building or using Emacs, > send a report to bug-gnu-emacs@gnu.org with full details > (if possible, use M-x report-emacs-bug). > > Thanks for helping to test Emacs. > > Cheers, > Nico ^ permalink raw reply [flat|nested] 25+ messages in thread
end of thread, other threads:[~2019-01-23 18:14 UTC | newest] Thread overview: 25+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-01-07 16:10 Emacs pretest 26.1.91 is out Nicolas Petton 2019-01-07 21:42 ` John Wiegley 2019-01-07 22:11 ` Glenn Morris 2019-01-07 23:03 ` Nicolas Petton 2019-01-08 3:35 ` Eli Zaretskii 2019-01-08 0:59 ` Paul Eggert 2019-01-11 1:03 ` Glenn Morris 2019-01-11 2:31 ` Paul Eggert 2019-01-16 10:30 ` what make-dist should include [was Re: Emacs pretest 26.1.91 is out] Glenn Morris 2019-01-17 5:42 ` Mike Kupfer 2019-01-17 21:44 ` Stefan Monnier 2019-01-18 0:18 ` Mike Kupfer 2019-01-18 3:01 ` Stefan Monnier 2019-01-20 1:08 ` Mike Kupfer 2019-01-20 14:42 ` Stefan Monnier 2019-01-18 8:38 ` Eli Zaretskii 2019-01-20 0:54 ` Mike Kupfer 2019-01-18 18:58 ` Glenn Morris 2019-01-22 21:58 ` Paul Eggert 2019-01-23 16:14 ` Eli Zaretskii 2019-01-23 17:52 ` Paul Eggert 2019-01-23 18:14 ` Eli Zaretskii 2019-01-08 1:25 ` Emacs pretest 26.1.91 is out Paul Eggert 2019-01-08 8:53 ` Nicolas Petton 2019-01-09 15:02 ` Phillip Lord
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).