emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Windows Binaries Release: was The emacs-28 release branch


From: Phillip Lord
Subject: Re: Windows Binaries Release: was The emacs-28 release branch
Date: Wed, 27 Oct 2021 22:07:31 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

"H. Dieter Wilhelm" <dieter@duenenhof-wilhelm.de> writes:

>> All of the files needed to build the windows binaries are in the
>> main
>> repository, specifically in admin/nt/dist-build.
>>
>> I use a few other launch scripts which the python or shell
>> script. This
>> is just so that I could build release or snapshot builds from the
>> same
>> git checkout (or rather multiple worktrees of the same git repo)
>> with
>> ease.
>
> Please tell me where are the "other launch scripts" located?


They aren't anywhere accessible, because they are a bit specific to my
use.

But for instance, I use one called "build-emacs27.sh" which essentially
looks like:

rm -rf ~/emacs-build/build
rm -rf ~/emacs-build/install

cd emacs-27/admin/nt/dist-build


./build-zips.sh -g
./build-zips.sh


As you can see, it assumes a fairly rigid directory structure which is
defined in admin/nt/dist-build/README-scripts. I keep this script in the
~/emacs-build/git directory below which is ~/emacs-build/git/master
which is the main checkout.

The first part "./build-zips.sh -g" makes a new worktree with the
current release. The second part actually builds the zips.

In my version, I then use rsync to push them from the windows server on
which they are built to a linux box somewhere else. Then I upload them
to the GNU ftp server from there. You don't need to do that but it means
I don't have to set up GPG signing on the windows machine which was a
bit easier.


Then I have "build-27-deps.sh" which again is just a launch script.


set -o errexit
if test -f emacs-src; then
    rsync -r emacs-src emacs-src-cache
fi
rm -rf i686 x86_64 emacs-src
../git/emacs-27/admin/nt/dist-build/build-dep-zips.py -s 2>&1 | tee 
build-deps.log
cp emacs-27* ~/emacs-upload




> I don't understand, among other things, where variables like $VERSION
> in nt/dist-build/build-zips.sh are defined.


Yeah, this is a little bit hairy I am afraid, because the number of use
cases I wanted to support increased over time. Unless you set it
explicitly (which you don't normally need to do) VERSION is set by
hacking it out of configure.ac in this part of the script.


## ACTUAL_VERSION is the version declared by emacs
if [ -z $ACTUAL_VERSION ];
then
    ACTUAL_VERSION=`
  sed -n 's/^AC_INIT(GNU Emacs,[         ]*\([^  ,)]*\).*/\1/p' < 
../../../configure.ac
`
fi


I can't remember when I used explicit versions. Probably if you want to
build a snapshot from both from the "master" branch and from the release
branch. You might want to do that, or you might not. I don't know how
many people use the snapshot builds, although they were a useful way of
getting testing.

The documentation on build-zips.sh and build-deps.py is poor (sorry!). I
will try and update it, and give some explanation for some of the fairly
obscure variable names (I can't for the life of me remember what the
"OF" in "OF_VERSION" stands for).

Phil




reply via email to

[Prev in Thread] Current Thread [Next in Thread]