comparison man/lispref/packaging.texi @ 694:561ad704dc70

[xemacs-hg @ 2001-12-15 09:16:20 by stephent] hazmat recycling
author stephent
date Sat, 15 Dec 2001 09:16:21 +0000
parents b05e2a249757
children 9cea8fcd2e61
comparison
equal deleted inserted replaced
693:b05e2a249757 694:561ad704dc70
123 subdirectory is for use by the @xpms{} administration tools, and 123 subdirectory is for use by the @xpms{} administration tools, and
124 currently contains a @file{MANIFEST.@var{package-name}} file for each 124 currently contains a @file{MANIFEST.@var{package-name}} file for each
125 package to ensure that no cruft remains when a package is removed or 125 package to ensure that no cruft remains when a package is removed or
126 updated. The @file{lisp}, @file{etc}, and @file{lib-src} subdirectories 126 updated. The @file{lisp}, @file{etc}, and @file{lib-src} subdirectories
127 are further subdivided, with a subdirectory for each package. The 127 are further subdivided, with a subdirectory for each package. The
128 @file{info} and @file{man} directories obey the respective documentation 128 @file{info} directory obeys the usual conventions.
129 systems' conventions. @emph{I.e.}, the @file{info} directory is flat 129 @emph{I.e.}, the @file{info} directory is flat
130 with a(n) (optional) @file{dir} file and one (set of) info file(s) per 130 with a(n) (optional) @file{dir} file and one (set of) info file(s) per
131 package. The @file{man} subdirectory is divided into sections. As 131 package. The @file{man} subdirectory typically contains documentation
132 mentioned, this structure is used for historical reasions, and it is 132 sources, separated by package. (It does not contain @file{man(1)}
133 likely to change in the future. 133 pages, as Emacs provides very few of them.)
134 134
135 There are several standard package hierarchies, and administrators can 135 There are several standard package hierarchies, and administrators can
136 configure others at build time, while users can configure others at run 136 configure others at build time, while users can configure others at run
137 time. The standard system hierarchies are all subdirectories of an 137 time. The standard system hierarchies are all subdirectories of an
138 @c #### This is possibly incorrect usage of "installation root." 138 @c #### This is possibly incorrect usage of "installation root."
174 @samp{--package-path} option to @file{configure}, or at run-time by 174 @samp{--package-path} option to @file{configure}, or at run-time by
175 specifying the @code{EMACSPACKAGEPATH} environment variable. 175 specifying the @code{EMACSPACKAGEPATH} environment variable.
176 @xref{Packages,,,xemacs}. 176 @xref{Packages,,,xemacs}.
177 177
178 @c #### The following description is quite possibly inaccurate. 178 @c #### The following description is quite possibly inaccurate.
179 @c Arrgh, Michael! 179 @c Please, Michael, write some specs up!
180 The default order of search is hierarchically determined. First, the 180 The default order of search is hierarchically determined. First, the
181 roots are ordered. The @dfn{early} roots are the user-specific roots, 181 roots are ordered. The @dfn{early} roots are the user-specific roots,
182 typically @file{~/.xemacs}. The @dfn{late} roots are the system roots, 182 typically @file{~/.xemacs}. The @dfn{late} roots are the system roots,
183 typically @file{/usr/local/lib/xemacs-21.4.6} and 183 typically @file{/usr/local/lib/xemacs-21.4.6} and
184 @file{/usr/local/lib/xemacs}, in that order. All hierarchies for a 184 @file{/usr/local/lib/xemacs}, in that order. All hierarchies for a
417 417
418 418
419 @node The Package Release Engineer's View, , The Library Maintainer's View, Package Overview 419 @node The Package Release Engineer's View, , The Library Maintainer's View, Package Overview
420 @subsection The Package Release Engineer's View 420 @subsection The Package Release Engineer's View
421 421
422 Bu-wha-ha-ha-ha-ha! If you aren't the package release engineer, you 422 The XEmacs Package Release Engineer is responsible for keeping the
423 @emph{don't want to know}. If you @emph{are} the package release 423 system coherent. The changes to @file{packages/package-compile.el} and
424 engineer, you have my condolences. Rest (if you can get any rest) 424 @file{packages/xemacs-packages/Makefile} required to make the package
425 assured you are in my prayers. 425 available to others, and for building SUMO tarballs, @emph{etc}, are
426 426 done by the Package Release Engineer, not individual library
427 To be completed. 427 maintainers.
428
429 The Package Release Engineer also maintains assorted infrastructure for
430 actually making releases. These are generally available for inspection
431 in the @code{xemacs-builds} module in the CVS repository.
432
433 @c #### To be completed.
428 434
429 435
430 @c #### The following section is lifted verbatim from the XEmacs User's 436 @c #### The following section is lifted verbatim from the XEmacs User's
431 @c Manual, file packages.texi. 437 @c Manual, file packages.texi.
432 @node Package Terminology, Building Packages, Package Overview, Packaging 438 @node Package Terminology, Building Packages, Package Overview, Packaging
838 requires any of your files, it must be explicitly added to the compile 844 requires any of your files, it must be explicitly added to the compile
839 environment or loads/requires that search load-path will fail. The 845 environment or loads/requires that search load-path will fail. The
840 changes that need to be made are 846 changes that need to be made are
841 847
842 @table @strong 848 @table @strong
843 @item an entry in package-directory-map 849 @item an entry in @code{package-directory-map}
844 This tells the @xpms{} which distribution (currently 850 This tells the @xpms{} which distribution (currently
845 @samp{xemacs-packages} or @samp{mule-packages}) your package is found 851 @samp{xemacs-packages} or @samp{mule-packages}) your package is found
846 in. It then looks in the distribution subdirectory whose name is the 852 in. It then looks in the distribution subdirectory whose name is the
847 same as the package's. 853 same as the package's.
848 854
856 @xpms{}. (Well, when you randomly change the subdirectory layout, too.) 862 @xpms{}. (Well, when you randomly change the subdirectory layout, too.)
857 Your changes to @file{package-compile.el} must be cleared and checked in 863 Your changes to @file{package-compile.el} must be cleared and checked in
858 by the XEmacs Package Release Engineer before your package will build 864 by the XEmacs Package Release Engineer before your package will build
859 correctly from a fresh checkout. 865 correctly from a fresh checkout.
860 866
861 Obviously all of this is really horrible, and would be totally 867 This is unfortunate; it works pretty well once set up, but can cause
862 inexcusable if I wasn't afraid the XEmacs Package Release Engineer would 868 confusion when first building a package in the @xpms{} context. In
863 kill me if I complained loud enough for him to hear. Maybe it will 869 particular, if the @code{package-directory-map} entry for a required
864 change some day.... 870 package
871 @c #### including the package itself?
872 is not found, the necessary requires will not be executed by
873 @file{package-compile.el}. If required functions are executed (under
874 @code{eval-when-compile}), they won't be found and the compile will
875 fail. If required function is actually a macro, the byte compiler will
876 not recognize that, compile a function call to the macro. This will
877 cause a run-time error because the byte-code interpreter does not know
878 how to execute macros. (Macros can always be expanded at compile-time,
879 and this is more efficient.)
880
881 If your package keeps some or all Lisp code somewhere other than the top
882 directory, then an entry in @code{package-name-to-directory} is also
883 necessary, or requires will fail, leading to the problems just described.
865 884
866 885
867 @node package-info.in Fields, Makefile Variables, package-compile.el, Creating Packages 886 @node package-info.in Fields, Makefile Variables, package-compile.el, Creating Packages
868 887
869 The @file{package-info.in} structure is simply Lisp data, to be read by 888 The @file{package-info.in} structure is simply Lisp data, to be read by
1220 1239
1221 1240
1222 @node Issues, , Creating Packages, Packaging 1241 @node Issues, , Creating Packages, Packaging
1223 @section Issues 1242 @section Issues
1224 1243
1225 ``Issues''? Mu-wha-ha-ha! Ha-ha-ha! Honeychile, they ain't nuthin' 1244 To be completed.
1226 @emph{but} ``issues'' at this point. @xref{The Package Release 1245
1227 Engineer's View}.
1228