David,

I tinkered with cedet-build.el at first, but we may not need it to
create ELPA package of cedet.  Following is a patch of the top level
makefile.  With this applied if you type

    cd bzr_root_of_cedet_trunk
    make elpa

cedet-20120506.tar and cedet-readme.txt files will be created.
I believe these are valid ELPA packge of cedet although there are some
issues to be sorted out.  The thorny issue has to do with eieio and that
it is one of the packages that cedet-remove-builtin.el tries to remove.
If I start emacs24 with -q option, then (featurep 'eieio) evaluates to
nil.  However after executing list-packages command, (featurep 'eieio)
evalautes to t.  Thus attempting to install cedet package fails with
this error message

    eieio is already loaded.  Removing CEDET now would be unwise.

To get around this I simply removed eieio from
cedet-remove-builtin-package-list list before creating the ELPA package.
I put it back after package-install complets successfully.

I could provide much more details on how ELPA itself works as well as
why I did the things I did, and also how to create your own ELPA
repository, etc.  Let me know if that would be helpful.

I'll now be creating ELPA package of cedet once every few days and use it
to see what else needs to be changed.

I am always glad to sign over all my emacs related work to FSF.
However I do not know how to get my employer to sign papers as well.
I am willing to sign papers that say that my emacs work has nothing to do
with my primary job.


--------------------------------------------------------------------------------
=== modified file 'Makefile'
--- Makefile    2012-05-04 10:28:00 +0000
+++ Makefile    2012-05-07 03:51:10 +0000
@@ -36,6 +36,9 @@
 INFO_FILES=$(shell $(FIND) $(CURDIR)/doc/texi -type f -name '*.info')
 INFODIR=$(CURDIR)/doc/info
 
+# Date of today such as "20110731".  This is used as ELPA package version.
+DATE = $(shell date +%Y%m%d)
+
 all: clean-autoloads autoloads touch-makefiles compile info install-info
 
 compile:
@@ -66,6 +69,46 @@
     @mkdir -p $(INFODIR)
     @$(foreach infofile,$(INFO_FILES),cp $(infofile) $(INFODIR);$(INSTALL-INFO) --info-dir=$(INFODIR) $(infofile);)
 
+# Create ELPA package of cedet and use today's date as version.
+elpa: autoloads info cedet-$(DATE).tar cedet-readme.txt
+
+cedet-$(DATE).tar : cedet-$(DATE)
+    tar cf $@ $<
+
+# Because 'autoloads' and 'info' targets were already made, all *.el
+# files such as c-by.el should have been generated.
+# So create a directory and copy all *.el and *.info files along with
+# the 'dir' file to that directory.  Other files are not needed, but
+# may be needed to satisfy GPL requirements.
+# Also create _cedet_autoloads.el just to have one line with autoload
+# cookie.  When `package-install' is executed, this will be used to
+# create cedet-autoloads.el file with the one line.
+# Also create cedet-readme.txt with some blurb about cedet.
+cedet-$(DATE):
+    mkdir -p $@
+    find lisp \( -name '*.el' -o -name '*.wy' -o -name '*.by' \) -exec cp --parents {} $@ \;
+    cp -p *.el $@
+    cp -p doc/info/* $@
+    echo ';;;###autoload' > $@/_cedet_autoloads.el
+    echo '(load-library "cedet-devel-load.el")' >> $@/_cedet_autoloads.el
+    echo "(define-package \"cedet\" \"$(DATE)\" \"CEDET\")" > $@/cedet-pkg.el
+
+cedet-readme.txt:
+    echo "CEDET is a Collection of Emacs Development Environment Tools including"    >> $@
+    echo "core libraries such as EIEIO, and semantic, and user interface tools"    >> $@
+    echo "such as Speedbar, EDE, and COGRE."                    >> $@
+    echo ""                                        >> $@
+    echo "While these tools are independent, and all have their own manuals,"    >> $@
+    echo "they are also all co-dependent within CEDET, and are dependent on the"    >> $@
+    echo "CEDET common libraries such as inversion and ezimage."            >> $@
+    echo ""                                        >> $@
+    echo "This manual describes how to configure the tools as a whole to"        >> $@
+    echo "accomplish some tasks."                            >> $@
+    echo ""                                        >> $@
+    echo "To send bug reports, or participate in discussions about CEDET, use"    >> $@
+    echo "the mailing list cedet-devel.net via the URL:"                >> $@
+    echo "http://lists.sourceforge.net/lists/listinfo/cedet-devel"            >> $@
+
 clean-autoloads:
     @echo Removing loaddefs.el files from subprojects.
     @$(foreach proj,$(PROJECTS_AUTOLOADS),cd $(CURDIR)/$(proj) && if [ -f $(LOADDEFS) ];then $(RM) -f $(LOADDEFS);fi;)
@@ -73,6 +116,7 @@
 clean-all: clean-autoloads
     @echo Calling \"$(MAKE) clean\" in all projects.
     @$(foreach proj,$(PROJECTS),echo "  > $(proj)";cd $(CURDIR)/$(proj) && $(MAKE) clean;)
+    rm -rf cedet-$(DATE) cedet-$(DATE).tar cedet-readme.txt
 
 utest:
     $(EMACS) -Q -l cedet-devel-load.el --eval '$(UTEST)' -f cedet-utest


On 29 April 2012 22:59, David Engster <deng@randomsample.de> wrote:
David Engster writes:
> emacs writes:
>> Is there an alternative to cedet-build.el which I can leverage for
>> creating ELPA pacakge out of bzr snapshot of cedet?  If not, would you
>> consider accepting patches to keep cedet-build.el alive a little bit
>> longer?
>
> I would not only consider it but happily accept them. :-)

BTW, I think it would be great to have CEDET-snapshot in GNU ELPA,
i.e. the ELPA that is built-in. Would cedet-build.el need to be part of
such a package? Because then I think we would need papers...?

-David