unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH] make-dist fixes and clean-ups
@ 2005-04-30  9:55 Jérôme Marant
  0 siblings, 0 replies; 23+ messages in thread
From: Jérôme Marant @ 2005-04-30  9:55 UTC (permalink / raw)



Hi,

I've created a script which automatically builds Debian packages from
a distribution tarball generated from make-dist.
I think it is going further than just bootstraping from a CVS
checkout.

Hence, I had to make the following changes to make-dist.

Cheers,

--- ChangeLog.orig	2005-04-29 22:07:02.000000000 +0200
+++ ChangeLog	2005-04-30 10:37:44.206768056 +0200
@@ -1,3 +1,10 @@
+2005-04-29  Jérôme Marant  <jerome@marant.org>
+
+	* make-dist: Remove any reference to makefile.nt and
+	makefile.def.
+	Properly install etc subdirectories.
+	Do not remove ldefs-boot.el.
+
 2005-04-23  Andreas Schwab  <schwab@suse.de>
 
 	* configure.in: Remove duplicate match for powerpc configuration.
--- make-dist.orig	2005-04-29 21:59:44.000000000 +0200
+++ make-dist	2005-04-30 10:37:52.198553120 +0200
@@ -321,7 +321,9 @@
 	      leim/SKK-DIC leim/ja-dic leim/quail \
 	      src src/m src/s src/bitmaps lib-src oldXMenu lwlib \
 	      nt nt/inc nt/inc/sys nt/inc/arpa nt/inc/netinet nt/icons \
-	      etc etc/e info man msdos vms mac mac/inc mac/inc/sys \
+	      etc etc/e etc/images etc/images/gnus etc/images/smilies \
+	      etc/tree-widget etc/tree-widget/default etc/tree-widget/folder \
+	      info man msdos vms mac mac/inc mac/inc/sys \
 	      mac/src mac/Emacs.app mac/Emacs.app/Contents \
 	      mac/Emacs.app/Contents/MacOS mac/Emacs.app/Contents/Resources \
 	      mac/Emacs.app/Contents/Resources/English.lproj
@@ -349,7 +351,6 @@
  test -f README && ln README ../${tempdir}/lisp
  (cd ../${tempdir}/lisp
   rm -f TAGS =*
-  rm -f ldefs-boot.el
   rm -f site-init site-init.el site-init.elc
   rm -f site-load site-load.el site-load.elc
   rm -f site-start site-start.el site-start.elc
@@ -396,7 +397,7 @@
 echo "Making links to \`leim' and its subdirectories"
 ### Don't distribute TAGS, or =*.el files.
 (cd leim
- ln makefile.nt makefile.w32-in ../${tempdir}/leim
+ ln makefile.w32-in ../${tempdir}/leim
  ln ChangeLog README ../${tempdir}/leim
 
  ln CXTERM-DIC/*.tit ../${tempdir}/leim/CXTERM-DIC
@@ -443,7 +444,7 @@
    fi
  done
  ln README ChangeLog ChangeLog.*[0-9] ../${tempdir}/src
- ln makefile.nt makefile.w32-in ../${tempdir}/src
+ ln makefile.w32-in ../${tempdir}/src
  ln .gdbinit .dbxinit ../${tempdir}/src
  cd ../${tempdir}/src
  rm -f config.h epaths.h Makefile Makefile.c
@@ -466,7 +467,7 @@
 (cd lib-src
  ln [a-zA-Z]*.[chy] ../${tempdir}/lib-src
  ln ChangeLog Makefile.in README testfile vcdiff ../${tempdir}/lib-src
- ln grep-changelog rcs2log rcs-checkin makefile.nt ../${tempdir}/lib-src
+ ln grep-changelog rcs2log rcs-checkin ../${tempdir}/lib-src
  ln makefile.w32-in ../${tempdir}/lib-src
  ## If we ended up with a symlink, or if we did not get anything
  ## due to a cross-device symlink, copy the file.
@@ -492,7 +493,7 @@
 (cd nt
  ln emacs.rc config.nt [a-z]*.c ../${tempdir}/nt
  ln nmake.defs gmake.defs subdirs.el ../${tempdir}/nt
- ln [a-z]*.bat [a-z]*.h makefile.def makefile.nt ../${tempdir}/nt
+ ln [a-z]*.bat [a-z]*.h ../${tempdir}/nt
  ln ChangeLog INSTALL README makefile.w32-in ../${tempdir}/nt)
 
 echo "Making links to \`nt/inc'"
@@ -563,7 +564,8 @@
 ### tex litter.
 ### Don't distribute gfdl.1, since no man page references it.
 (cd etc
- files=`ls -d * | grep -v CVS | grep -v RCS | grep -v 'Old' | grep -v '^e$'`
+ files=`ls -d * | grep -v CVS | grep -v RCS | grep -v 'Old' | grep -v '^e$' \
+        | grep -v '^images$' | grep -v '^tree-widget$'`
  ln $files ../${tempdir}/etc
  ## If we ended up with a symlink, or if we did not get anything
  ## due to a cross-device symlink, copy the file.
@@ -592,6 +594,15 @@
  cd ../../${tempdir}/etc/e
  rm -f *~ \#*\# *,v =* core)
 
+for dir in etc/images/gnus etc/images/smilies \
+           etc/tree-widget/default etc/tree-widget/folder ; do
+    echo "Making links to \`${dir}'"
+    (cd ${dir}
+     ln `ls -d * | grep -v CVS | grep -v RCS` ../../../${tempdir}/${dir}
+     cd ../../../${tempdir}/${dir}
+     rm -f *~ \#*\# *,v =* core)
+done
+
 echo "Making links to \`info'"
 # Don't distribute backups or autosaves.
 (cd info


-- 
Jérôme Marant

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH] make-dist fixes and clean-ups
@ 2005-04-30 11:04 Jérôme Marant
  2005-05-01 12:06 ` Lute Kamstra
  0 siblings, 1 reply; 23+ messages in thread
From: Jérôme Marant @ 2005-04-30 11:04 UTC (permalink / raw)



Hi,

I've created a script which automatically builds Debian packages from
a distribution tarball generated from make-dist.
I think it is going further than just bootstraping from a CVS
checkout.

Hence, I had to make the following changes to make-dist.

Cheers,

--- ChangeLog.orig	2005-04-29 22:07:02.000000000 +0200
+++ ChangeLog	2005-04-30 10:37:44.206768056 +0200
@@ -1,3 +1,10 @@
+2005-04-29  Jérôme Marant  <jerome@marant.org>
+
+	* make-dist: Remove any reference to makefile.nt and
+	makefile.def.
+	Properly install etc subdirectories.
+	Do not remove ldefs-boot.el.
+
 2005-04-23  Andreas Schwab  <schwab@suse.de>
 
 	* configure.in: Remove duplicate match for powerpc configuration.
--- make-dist.orig	2005-04-29 21:59:44.000000000 +0200
+++ make-dist	2005-04-30 10:37:52.198553120 +0200
@@ -321,7 +321,9 @@
 	      leim/SKK-DIC leim/ja-dic leim/quail \
 	      src src/m src/s src/bitmaps lib-src oldXMenu lwlib \
 	      nt nt/inc nt/inc/sys nt/inc/arpa nt/inc/netinet nt/icons \
-	      etc etc/e info man msdos vms mac mac/inc mac/inc/sys \
+	      etc etc/e etc/images etc/images/gnus etc/images/smilies \
+	      etc/tree-widget etc/tree-widget/default etc/tree-widget/folder \
+	      info man msdos vms mac mac/inc mac/inc/sys \
 	      mac/src mac/Emacs.app mac/Emacs.app/Contents \
 	      mac/Emacs.app/Contents/MacOS mac/Emacs.app/Contents/Resources \
 	      mac/Emacs.app/Contents/Resources/English.lproj
@@ -349,7 +351,6 @@
  test -f README && ln README ../${tempdir}/lisp
  (cd ../${tempdir}/lisp
   rm -f TAGS =*
-  rm -f ldefs-boot.el
   rm -f site-init site-init.el site-init.elc
   rm -f site-load site-load.el site-load.elc
   rm -f site-start site-start.el site-start.elc
@@ -396,7 +397,7 @@
 echo "Making links to \`leim' and its subdirectories"
 ### Don't distribute TAGS, or =*.el files.
 (cd leim
- ln makefile.nt makefile.w32-in ../${tempdir}/leim
+ ln makefile.w32-in ../${tempdir}/leim
  ln ChangeLog README ../${tempdir}/leim
 
  ln CXTERM-DIC/*.tit ../${tempdir}/leim/CXTERM-DIC
@@ -443,7 +444,7 @@
    fi
  done
  ln README ChangeLog ChangeLog.*[0-9] ../${tempdir}/src
- ln makefile.nt makefile.w32-in ../${tempdir}/src
+ ln makefile.w32-in ../${tempdir}/src
  ln .gdbinit .dbxinit ../${tempdir}/src
  cd ../${tempdir}/src
  rm -f config.h epaths.h Makefile Makefile.c
@@ -466,7 +467,7 @@
 (cd lib-src
  ln [a-zA-Z]*.[chy] ../${tempdir}/lib-src
  ln ChangeLog Makefile.in README testfile vcdiff ../${tempdir}/lib-src
- ln grep-changelog rcs2log rcs-checkin makefile.nt ../${tempdir}/lib-src
+ ln grep-changelog rcs2log rcs-checkin ../${tempdir}/lib-src
  ln makefile.w32-in ../${tempdir}/lib-src
  ## If we ended up with a symlink, or if we did not get anything
  ## due to a cross-device symlink, copy the file.
@@ -492,7 +493,7 @@
 (cd nt
  ln emacs.rc config.nt [a-z]*.c ../${tempdir}/nt
  ln nmake.defs gmake.defs subdirs.el ../${tempdir}/nt
- ln [a-z]*.bat [a-z]*.h makefile.def makefile.nt ../${tempdir}/nt
+ ln [a-z]*.bat [a-z]*.h ../${tempdir}/nt
  ln ChangeLog INSTALL README makefile.w32-in ../${tempdir}/nt)
 
 echo "Making links to \`nt/inc'"
@@ -563,7 +564,8 @@
 ### tex litter.
 ### Don't distribute gfdl.1, since no man page references it.
 (cd etc
- files=`ls -d * | grep -v CVS | grep -v RCS | grep -v 'Old' | grep -v '^e$'`
+ files=`ls -d * | grep -v CVS | grep -v RCS | grep -v 'Old' | grep -v '^e$' \
+        | grep -v '^images$' | grep -v '^tree-widget$'`
  ln $files ../${tempdir}/etc
  ## If we ended up with a symlink, or if we did not get anything
  ## due to a cross-device symlink, copy the file.
@@ -592,6 +594,15 @@
  cd ../../${tempdir}/etc/e
  rm -f *~ \#*\# *,v =* core)
 
+for dir in etc/images/gnus etc/images/smilies \
+           etc/tree-widget/default etc/tree-widget/folder ; do
+    echo "Making links to \`${dir}'"
+    (cd ${dir}
+     ln `ls -d * | grep -v CVS | grep -v RCS` ../../../${tempdir}/${dir}
+     cd ../../../${tempdir}/${dir}
+     rm -f *~ \#*\# *,v =* core)
+done
+
 echo "Making links to \`info'"
 # Don't distribute backups or autosaves.
 (cd info


-- 
Jérôme Marant

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] make-dist fixes and clean-ups
  2005-04-30 11:04 Jérôme Marant
@ 2005-05-01 12:06 ` Lute Kamstra
  2005-05-01 12:18   ` Jérôme Marant
  0 siblings, 1 reply; 23+ messages in thread
From: Lute Kamstra @ 2005-05-01 12:06 UTC (permalink / raw)
  Cc: emacs-devel

Jérôme Marant <jmarant@free.fr> writes:

[...]

> +	Do not remove ldefs-boot.el.

Why?  make-dist distributes loaddefs.el, so there's no need to
distribute ldefs-boot.el.

The rest of the changes look fine to me.  Thanks for working on this.

Lute.


PS  I'm going on holidays for a week, so I probably won't respond to
    mail quickly.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] make-dist fixes and clean-ups
  2005-05-01 12:06 ` Lute Kamstra
@ 2005-05-01 12:18   ` Jérôme Marant
  2005-05-01 15:12     ` Stefan Monnier
  2005-05-09 12:19     ` Lute Kamstra
  0 siblings, 2 replies; 23+ messages in thread
From: Jérôme Marant @ 2005-05-01 12:18 UTC (permalink / raw)


Lute Kamstra <Lute.Kamstra.lists@xs4all.nl> writes:

> Jérôme Marant <jmarant@free.fr> writes:
>
> [...]
>
>> +	Do not remove ldefs-boot.el.
>
> Why?  make-dist distributes loaddefs.el, so there's no need to
> distribute ldefs-boot.el.

I need to make make-dist work on an non-bootstrapped tree. We, at Debian,
don't include .elc files in the tarball and generate packages from
the bootstrap, for practical reasons.

If you remove ldefs-boot.el, make bootstrap fails.

> The rest of the changes look fine to me.  Thanks for working on this.

You're welcome.

>
> PS  I'm going on holidays for a week, so I probably won't respond to
>     mail quickly.

No problem.

-- 
Jérôme Marant

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] make-dist fixes and clean-ups
  2005-05-01 12:18   ` Jérôme Marant
@ 2005-05-01 15:12     ` Stefan Monnier
  2005-05-01 17:10       ` Jérôme Marant
  2005-05-09 12:19     ` Lute Kamstra
  1 sibling, 1 reply; 23+ messages in thread
From: Stefan Monnier @ 2005-05-01 15:12 UTC (permalink / raw)
  Cc: emacs-devel

> I need to make make-dist work on an non-bootstrapped tree.  We, at Debian,
> don't include .elc files in the tarball and generate packages from
> the bootstrap, for practical reasons.

But even if you don't include the elc files, you do distribute the Emacs
executable.  This executable includes copies of the predumped elc files
and is able to rebuild the other elc files without bootstrapping.

> If you remove ldefs-boot.el, make bootstrap fails.

Use `cd lisp; make (re)compile'.


        Stefan

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] make-dist fixes and clean-ups
  2005-05-01 15:12     ` Stefan Monnier
@ 2005-05-01 17:10       ` Jérôme Marant
  2005-05-01 19:58         ` Kim F. Storm
  2005-05-01 23:39         ` Richard Stallman
  0 siblings, 2 replies; 23+ messages in thread
From: Jérôme Marant @ 2005-05-01 17:10 UTC (permalink / raw)


Stefan Monnier <monnier@iro.umontreal.ca> writes:

>> I need to make make-dist work on an non-bootstrapped tree.  We, at Debian,
>> don't include .elc files in the tarball and generate packages from
>> the bootstrap, for practical reasons.
>
> But even if you don't include the elc files, you do distribute the Emacs
> executable.  This executable includes copies of the predumped elc files
> and is able to rebuild the other elc files without bootstrapping.

I don't get it. I don't have the executable around. I need to build
it in order to build Lisp files. Make tells me I have no choice
but running 'make bootstrap' in order to get this predumped version.

>> If you remove ldefs-boot.el, make bootstrap fails.
>
> Use `cd lisp; make (re)compile'.

Sure, but only once I got the executable compiled.

Anyway, I think it should be possible to bootstrap from source.
I'd propose to leave ldefs-boot.el in the tarball but to prevent
lisp/Makefile to install it.

Cheers,

-- 
Jérôme Marant

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] make-dist fixes and clean-ups
  2005-05-01 17:10       ` Jérôme Marant
@ 2005-05-01 19:58         ` Kim F. Storm
  2005-05-01 20:19           ` Jérôme Marant
  2005-05-01 23:39         ` Richard Stallman
  1 sibling, 1 reply; 23+ messages in thread
From: Kim F. Storm @ 2005-05-01 19:58 UTC (permalink / raw)
  Cc: emacs-devel

Jérôme Marant <jmarant@free.fr> writes:

>>> If you remove ldefs-boot.el, make bootstrap fails.

The tarball contains loaddefs.el, so this would work:

    cp lisp/loaddefs.el lisp/ldefs-boot.el
    make bootstrap


-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] make-dist fixes and clean-ups
  2005-05-01 19:58         ` Kim F. Storm
@ 2005-05-01 20:19           ` Jérôme Marant
  2005-05-01 22:35             ` Thien-Thi Nguyen
  2005-05-02  9:59             ` Kim F. Storm
  0 siblings, 2 replies; 23+ messages in thread
From: Jérôme Marant @ 2005-05-01 20:19 UTC (permalink / raw)


storm@cua.dk (Kim F. Storm) writes:

> Jérôme Marant <jmarant@free.fr> writes:
>
>>>> If you remove ldefs-boot.el, make bootstrap fails.
>
> The tarball contains loaddefs.el, so this would work:
>
>     cp lisp/loaddefs.el lisp/ldefs-boot.el
>     make bootstrap

I wish there were another way. This hack assumes that I know about the
Makefile internals.

I think it would be cleaner to include lisp/ldefs-boot.el in the
tarball but not to include it in installed lisp files.

Cheers,

-- 
Jérôme Marant

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] make-dist fixes and clean-ups
  2005-05-01 20:19           ` Jérôme Marant
@ 2005-05-01 22:35             ` Thien-Thi Nguyen
  2005-05-02  7:32               ` Jérôme Marant
  2005-05-02  9:59             ` Kim F. Storm
  1 sibling, 1 reply; 23+ messages in thread
From: Thien-Thi Nguyen @ 2005-05-01 22:35 UTC (permalink / raw)
  Cc: emacs-devel

Jérôme Marant <jmarant@free.fr> writes:

> storm@cua.dk (Kim F. Storm) writes:
> 
> >     cp lisp/loaddefs.el lisp/ldefs-boot.el
> >     make bootstrap
> 
> I wish there were another way. This hack assumes that I know
> about the Makefile internals.

for packaging work, it helps to know the Makefile internals.  if
the Makefile is confusing in some way, feel free to ask about it.

> I think it would be cleaner to include lisp/ldefs-boot.el in the
> tarball but not to include it in installed lisp files.

it is redundant w/ loaddefs.el, thus a likely source of confusion
for end users.  the cp suggestion sounds reasonable to me.

thi

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] make-dist fixes and clean-ups
  2005-05-01 17:10       ` Jérôme Marant
  2005-05-01 19:58         ` Kim F. Storm
@ 2005-05-01 23:39         ` Richard Stallman
  2005-05-02  6:51           ` Jérôme Marant
  1 sibling, 1 reply; 23+ messages in thread
From: Richard Stallman @ 2005-05-01 23:39 UTC (permalink / raw)
  Cc: emacs-devel

    Anyway, I think it should be possible to bootstrap from source.
    I'd propose to leave ldefs-boot.el in the tarball but to prevent
    lisp/Makefile to install it.

That might be ok, but I have one question.
Suppose lisp/Makefile did install it--would any real harm result?

If not, it would be cleaner not to put anything special for
this file into lisp/Makefile.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] make-dist fixes and clean-ups
  2005-05-01 23:39         ` Richard Stallman
@ 2005-05-02  6:51           ` Jérôme Marant
  0 siblings, 0 replies; 23+ messages in thread
From: Jérôme Marant @ 2005-05-02  6:51 UTC (permalink / raw)
  Cc: emacs-devel

Quoting Richard Stallman <rms@gnu.org>:

>     Anyway, I think it should be possible to bootstrap from source.
>     I'd propose to leave ldefs-boot.el in the tarball but to prevent
>     lisp/Makefile to install it.
>
> That might be ok, but I have one question.
> Suppose lisp/Makefile did install it--would any real harm result?

This is a good question. How can I check this?

> If not, it would be cleaner not to put anything special for
> this file into lisp/Makefile.

I entirely agree with you.

Cheers,

--
Jérôme Marant

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] make-dist fixes and clean-ups
  2005-05-01 22:35             ` Thien-Thi Nguyen
@ 2005-05-02  7:32               ` Jérôme Marant
  2005-05-02 22:33                 ` Thien-Thi Nguyen
  2005-05-02 23:41                 ` Richard Stallman
  0 siblings, 2 replies; 23+ messages in thread
From: Jérôme Marant @ 2005-05-02  7:32 UTC (permalink / raw)
  Cc: emacs-devel

Quoting Thien-Thi Nguyen

> for packaging work, it helps to know the Makefile internals.  if
> the Makefile is confusing in some way, feel free to ask about it.

The only information you should know about with makefiles are
targets and variables.

> > I think it would be cleaner to include lisp/ldefs-boot.el in the
> > tarball but not to include it in installed lisp files.
>
> it is redundant w/ loaddefs.el, thus a likely source of confusion
> for end users.  the cp suggestion sounds reasonable to me.

It'd better be redundant if it does not hurt.

--
Jérôme Marant

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] make-dist fixes and clean-ups
  2005-05-01 20:19           ` Jérôme Marant
  2005-05-01 22:35             ` Thien-Thi Nguyen
@ 2005-05-02  9:59             ` Kim F. Storm
  2005-05-02 11:54               ` Jérôme Marant
  1 sibling, 1 reply; 23+ messages in thread
From: Kim F. Storm @ 2005-05-02  9:59 UTC (permalink / raw)
  Cc: emacs-devel

Jérôme Marant <jmarant@free.fr> writes:

>> The tarball contains loaddefs.el, so this would work:
>>
>>     cp lisp/loaddefs.el lisp/ldefs-boot.el
>>     make bootstrap
>
> I wish there were another way. This hack assumes that I know about the
> Makefile internals.

The makefile could DTRT, e.g.

bootstrap:
        [ -f lisp/ldefs-boot.el ] || cp lisp/loaddefs.el lisp/ldefs.boot.el
        ...

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] make-dist fixes and clean-ups
  2005-05-02  9:59             ` Kim F. Storm
@ 2005-05-02 11:54               ` Jérôme Marant
  0 siblings, 0 replies; 23+ messages in thread
From: Jérôme Marant @ 2005-05-02 11:54 UTC (permalink / raw)


Quoting "Kim F. Storm" <storm@cua.dk>:

> The makefile could DTRT, e.g.
>
> bootstrap:
>         [ -f lisp/ldefs-boot.el ] || cp lisp/loaddefs.el lisp/ldefs.boot.el
>         ...

:-)

So far, make-dist has worked well on a non-pre-built tree (make-dist itself
doesn't bootstrap emacs. I guess it is intended to make this possible).
In such a condition, loaddefs.el is not even around.

Cheers,

--
Jérôme Marant

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] make-dist fixes and clean-ups
  2005-05-02  7:32               ` Jérôme Marant
@ 2005-05-02 22:33                 ` Thien-Thi Nguyen
  2005-05-02 23:41                 ` Richard Stallman
  1 sibling, 0 replies; 23+ messages in thread
From: Thien-Thi Nguyen @ 2005-05-02 22:33 UTC (permalink / raw)
  Cc: emacs-devel

Jérôme Marant <jmarant@free.fr> writes:

> The only information you should know about with makefiles are
> targets and variables.

that's one way to look at it.  sometimes a project's methodology
cannot be described by only these things.  emacs is particularly
hairy when it comes to makefile construction, use and maintenance.

a very important part is the documentation (comments in the file
itself, separate notes in INSTALL.CVS, comments and code for
makefile-specific munging in the configure script, etc).  it's
a good idea to look at all these things, not only the targets
and variables.  if you restrict yourself thusly you miss a lot
of interesting information.

thi

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] make-dist fixes and clean-ups
  2005-05-02  7:32               ` Jérôme Marant
  2005-05-02 22:33                 ` Thien-Thi Nguyen
@ 2005-05-02 23:41                 ` Richard Stallman
  1 sibling, 0 replies; 23+ messages in thread
From: Richard Stallman @ 2005-05-02 23:41 UTC (permalink / raw)
  Cc: ttn, emacs-devel

Let's try this with NOT doing anything special with ldefs-boot.el, and
see if there are any problems.  I can't see why it would hurt anyone.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] make-dist fixes and clean-ups
  2005-05-01 12:18   ` Jérôme Marant
  2005-05-01 15:12     ` Stefan Monnier
@ 2005-05-09 12:19     ` Lute Kamstra
  2005-05-09 22:57       ` Jérôme Marant
  2005-05-10  9:04       ` Richard Stallman
  1 sibling, 2 replies; 23+ messages in thread
From: Lute Kamstra @ 2005-05-09 12:19 UTC (permalink / raw)
  Cc: emacs-devel

Jérôme Marant <jmarant@free.fr> writes:

> Lute Kamstra <Lute.Kamstra.lists@xs4all.nl> writes:
>
>> Jérôme Marant <jmarant@free.fr> writes:
>>
>>> +	Do not remove ldefs-boot.el.
>>
>> Why?  make-dist distributes loaddefs.el, so there's no need to
>> distribute ldefs-boot.el.
>
> I need to make make-dist work on an non-bootstrapped tree. We, at Debian,
> don't include .elc files in the tarball and generate packages from
> the bootstrap, for practical reasons.
>
> If you remove ldefs-boot.el, make bootstrap fails.

So you do the following?

  1. Checkout a clean working copy of Emacs' CSV.
  2. Run "make-dist --snapshot" to get a tarball (without .elc or info
     files). 
  3. Unpack this tarball.
  4. Run ".configure" and "make bootstrap" on that tree.

(I'm pleasantly surprised that works.)

What about the patch below then?  It makes sure that make-dist never
distributes ldefs-boot.el (that way, ldefs-boot.el will never be
installed either) and it ensures that a tarball created by the above
method can bootstrap.

Lute.


Index: make-dist
===================================================================
RCS file: /cvsroot/emacs/emacs/make-dist,v
retrieving revision 1.212
diff -c -r1.212 make-dist
*** make-dist	7 May 2005 15:28:12 -0000	1.212
--- make-dist	9 May 2005 12:08:34 -0000
***************
*** 351,356 ****
--- 351,361 ----
   test -f README && ln README ../${tempdir}/lisp
   (cd ../${tempdir}/lisp
    rm -f TAGS =*
+   if [ -f loaddefs.el ]; then
+     rm -f ldefs-boot.el
+   else
+     mv ldefs-boot.el loaddefs.el
+   fi
    rm -f site-init site-init.el site-init.elc
    rm -f site-load site-load.el site-load.elc
    rm -f site-start site-start.el site-start.elc

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] make-dist fixes and clean-ups
  2005-05-09 12:19     ` Lute Kamstra
@ 2005-05-09 22:57       ` Jérôme Marant
  2005-05-10  8:15         ` Lute Kamstra
  2005-05-10  9:04       ` Richard Stallman
  1 sibling, 1 reply; 23+ messages in thread
From: Jérôme Marant @ 2005-05-09 22:57 UTC (permalink / raw)
  Cc: Jérôme Marant, emacs-devel

Lute Kamstra <Lute.Kamstra.lists@xs4all.nl> writes:

>>
>> If you remove ldefs-boot.el, make bootstrap fails.
>
> So you do the following?
>
>   1. Checkout a clean working copy of Emacs' CSV.
>   2. Run "make-dist --snapshot" to get a tarball (without .elc or info
>      files). 
>   3. Unpack this tarball.
>   4. Run ".configure" and "make bootstrap" on that tree.

Exactly.

> (I'm pleasantly surprised that works.)
>
> What about the patch below then?  It makes sure that make-dist never
> distributes ldefs-boot.el (that way, ldefs-boot.el will never be
> installed either) and it ensures that a tarball created by the above
> method can bootstrap.

Many people already proposed that but this is wrong since 
'make maintainer-clean', which undoes the bootstrap, will remove
loaddefs.el (which is fine since autogenerated files have to be
removed).

Hence, I can't bootstrap more than once with the same tarball.

How about leaving ldefs-boot.el and see if it hurts?

Cheers,

-- 
Jérôme Marant

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] make-dist fixes and clean-ups
  2005-05-09 22:57       ` Jérôme Marant
@ 2005-05-10  8:15         ` Lute Kamstra
  2005-05-10  9:42           ` Jérôme Marant
  0 siblings, 1 reply; 23+ messages in thread
From: Lute Kamstra @ 2005-05-10  8:15 UTC (permalink / raw)
  Cc: emacs-devel

Jérôme Marant <jmarant@free.fr> writes:

> Lute Kamstra <Lute.Kamstra.lists@xs4all.nl> writes:
>
>> So you do the following?
>>
>>   1. Checkout a clean working copy of Emacs' CSV.
>>   2. Run "make-dist --snapshot" to get a tarball (without .elc or info
>>      files). 
>>   3. Unpack this tarball.
>>   4. Run ".configure" and "make bootstrap" on that tree.
>
> Exactly.
>
>> What about the patch below then?  It makes sure that make-dist never
>> distributes ldefs-boot.el (that way, ldefs-boot.el will never be
>> installed either) and it ensures that a tarball created by the above
>> method can bootstrap.
>
> Many people already proposed that

Huh?  I didn't see it in any of the messages posted to emacs-devel.
They all talked about changing Emacs' Makefiles or the Debian script,
not about changing make-dist.

> but this is wrong since 'make maintainer-clean', which undoes the
> bootstrap, will remove loaddefs.el (which is fine since
> autogenerated files have to be removed).
>
> Hence, I can't bootstrap more than once with the same tarball.

Out of curiosity: do you have any special reason to do a "make
maintainer-clean" before a second "make bootstrap"?  Why do a second
bootstrap at all?

> How about leaving ldefs-boot.el and see if it hurts?

Apart from being redundant under normal circumstances, it probably
doesn't hurt in any way.  Come to think of it: it's actually a nice
feature that the distribution tarball allows a "make maintainer-clean"
and then a ".configure" plus "make bootstrap".

You convinced me to distribute ldefs-boot.el.  ;-)

Lute.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] make-dist fixes and clean-ups
  2005-05-09 12:19     ` Lute Kamstra
  2005-05-09 22:57       ` Jérôme Marant
@ 2005-05-10  9:04       ` Richard Stallman
  2005-05-10 15:11         ` Lute Kamstra
  1 sibling, 1 reply; 23+ messages in thread
From: Richard Stallman @ 2005-05-10  9:04 UTC (permalink / raw)
  Cc: jmarant, emacs-devel

    What about the patch below then?  It makes sure that make-dist never
    distributes ldefs-boot.el (that way, ldefs-boot.el will never be
    installed either)

Why adopt that as the goal?  What is wrong with distributing
ldefs-boot.el?  What is wrong with installing ldefs-boot.el?

Unless there is some specific reason it must be excluded,
I would rather include it.  It is not large.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] make-dist fixes and clean-ups
  2005-05-10  8:15         ` Lute Kamstra
@ 2005-05-10  9:42           ` Jérôme Marant
  0 siblings, 0 replies; 23+ messages in thread
From: Jérôme Marant @ 2005-05-10  9:42 UTC (permalink / raw)
  Cc: emacs-devel

Quoting Lute Kamstra <Lute.Kamstra.lists@xs4all.nl>:

> > Many people already proposed that
>
> Huh?  I didn't see it in any of the messages posted to emacs-devel.
> They all talked about changing Emacs' Makefiles or the Debian script,
> not about changing make-dist.

Sorry, you're right, it was proposed to do so out of make-dist,
but it was the same idea.

> > but this is wrong since 'make maintainer-clean', which undoes the
> > bootstrap, will remove loaddefs.el (which is fine since
> > autogenerated files have to be removed).
> >
> > Hence, I can't bootstrap more than once with the same tarball.
>
> Out of curiosity: do you have any special reason to do a "make
> maintainer-clean" before a second "make bootstrap"?  Why do a second
> bootstrap at all?

Yes, I do. I do build a package from within the unpacked tarball,
and when I do many attempts, make bootstrap and make maintainer-clean
are run on the same tree many times: not to have to unpack the same
tree at every attempt is handy.

> > How about leaving ldefs-boot.el and see if it hurts?
>
> Apart from being redundant under normal circumstances, it probably
> doesn't hurt in any way.  Come to think of it: it's actually a nice
> feature that the distribution tarball allows a "make maintainer-clean"
> and then a ".configure" plus "make bootstrap".

Indeed.

> You convinced me to distribute ldefs-boot.el.  ;-)

I'm glad I did :-)

Thanks.

--
Jérôme Marant

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] make-dist fixes and clean-ups
  2005-05-10  9:04       ` Richard Stallman
@ 2005-05-10 15:11         ` Lute Kamstra
  2005-05-11 16:27           ` Richard Stallman
  0 siblings, 1 reply; 23+ messages in thread
From: Lute Kamstra @ 2005-05-10 15:11 UTC (permalink / raw)
  Cc: jmarant, emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     What about the patch below then?  It makes sure that make-dist never
>     distributes ldefs-boot.el (that way, ldefs-boot.el will never be
>     installed either)
>
> Why adopt that as the goal?  What is wrong with distributing
> ldefs-boot.el?  What is wrong with installing ldefs-boot.el?

For installation purposes ldefs-boot.el is redundant.  (In a
distribution tarball it's also exactly the same as loaddefs.el.)  But
that's not really a problem.

> Unless there is some specific reason it must be excluded,
> I would rather include it.  It is not large.

Agreed.  Jérôme Marant pointed out that including ldefs-boot.el allows
a "make maintainer-clean" and then a ".configure" plus "make
bootstrap" on an unpacked distribution tarball.  I think that's a nice
feature.

Lute.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] make-dist fixes and clean-ups
  2005-05-10 15:11         ` Lute Kamstra
@ 2005-05-11 16:27           ` Richard Stallman
  0 siblings, 0 replies; 23+ messages in thread
From: Richard Stallman @ 2005-05-11 16:27 UTC (permalink / raw)
  Cc: jmarant, emacs-devel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 500 bytes --]

    Agreed.  Jérôme Marant pointed out that including ldefs-boot.el allows
    a "make maintainer-clean" and then a ".configure" plus "make
    bootstrap" on an unpacked distribution tarball.  I think that's a nice
    feature.

In general, it is a good thing to distribute *all* the code that we
normally use for working on Emacs.  We should not remove something
from the distribution just because "ordinary users don't use it".
That goal is mistaken, and people shouldn't try to aim for that goal.

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2005-05-11 16:27 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-04-30  9:55 [PATCH] make-dist fixes and clean-ups Jérôme Marant
  -- strict thread matches above, loose matches on Subject: below --
2005-04-30 11:04 Jérôme Marant
2005-05-01 12:06 ` Lute Kamstra
2005-05-01 12:18   ` Jérôme Marant
2005-05-01 15:12     ` Stefan Monnier
2005-05-01 17:10       ` Jérôme Marant
2005-05-01 19:58         ` Kim F. Storm
2005-05-01 20:19           ` Jérôme Marant
2005-05-01 22:35             ` Thien-Thi Nguyen
2005-05-02  7:32               ` Jérôme Marant
2005-05-02 22:33                 ` Thien-Thi Nguyen
2005-05-02 23:41                 ` Richard Stallman
2005-05-02  9:59             ` Kim F. Storm
2005-05-02 11:54               ` Jérôme Marant
2005-05-01 23:39         ` Richard Stallman
2005-05-02  6:51           ` Jérôme Marant
2005-05-09 12:19     ` Lute Kamstra
2005-05-09 22:57       ` Jérôme Marant
2005-05-10  8:15         ` Lute Kamstra
2005-05-10  9:42           ` Jérôme Marant
2005-05-10  9:04       ` Richard Stallman
2005-05-10 15:11         ` Lute Kamstra
2005-05-11 16:27           ` Richard Stallman

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