annotate lisp/package-net.el @ 5724:ede80ef92a74

Make soft links in src for module source files, if built in to the executable. This ensures that those files are built with the same compiler flags as all other source files. See these xemacs-beta messages: <CAHCOHQn+q=Xuwq+y68dvqi7afAP9f-TdB7=8YiZ8VYO816sjHg@mail.gmail.com> <f5by5ejqiyk.fsf@calexico.inf.ed.ac.uk>
author Jerry James <james@xemacs.org>
date Sat, 02 Mar 2013 14:32:37 -0700
parents 308d34e9f07d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
1 ;;; package-net.el --- Installation and Maintenance of XEmacs packages
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
2
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
3 ;; Copyright (C) 2000 Andy Piper.
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
4
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
5 ;; Keywords: internal
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
6
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
7 ;; This file is part of XEmacs.
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
8
5402
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 1410
diff changeset
9 ;; XEmacs is free software: you can redistribute it and/or modify it
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 1410
diff changeset
10 ;; under the terms of the GNU General Public License as published by the
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 1410
diff changeset
11 ;; Free Software Foundation, either version 3 of the License, or (at your
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 1410
diff changeset
12 ;; option) any later version.
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
13
5402
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 1410
diff changeset
14 ;; XEmacs is distributed in the hope that it will be useful, but WITHOUT
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 1410
diff changeset
15 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 1410
diff changeset
16 ;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 1410
diff changeset
17 ;; for more details.
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
18
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
19 ;; You should have received a copy of the GNU General Public License
5402
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 1410
diff changeset
20 ;; along with XEmacs. If not, see <http://www.gnu.org/licenses/>.
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
21
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
22 ;;; Synched up with: Not in FSF
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
23
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
24 ;;; Commentary:
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
25
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
26 ;; Manipulate packages for the netinstall setup utility
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
27
452
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
28 ;; The process should be so:
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
29
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
30 ;; 1. The package maintainer or release manager makes a release
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
31 ;; announcement.
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
32 ;;
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
33 ;; 2. For a new package releases the netinstall maintainer simply
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
34 ;; needs to update `ftp://ftp.xemacs.org/pub/xemacs/setup.ini'. This is
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
35 ;; harder than it sounds because the file also includes information
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
36 ;; about the binary releases. At the moment going to the netinstall
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
37 ;; directory and typing:
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
38 ;;
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
39 ;; `make XEMACS=<current executable location> setup.ini'
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
40 ;;
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
41 ;; will do the right thing provided that:
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
42 ;;
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
43 ;; (a) `package-net-cygwin32-binary-size' and
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
44 ;; `package-net-win32-binary-size' are set correctly.
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
45 ;;
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
46 ;; (b) The binary pointed to by `XEMACS' has a current
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
47 ;; `package-index.LATEST.pgp' file. If you don't specify the XEMACS=
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
48 ;; part then you will get whatever is current for your build tree -
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
49 ;; which is probably not what you want.
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
50 ;;
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
51 ;; You can run `package-net-convert-index-to-ini' manually and specify
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
52 ;; REMOTE but I generally found that to be inconvenient and error-prone.
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
53 ;;
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
54 ;; 3. For package releases that's all you need to do. For binary
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
55 ;; releases you need to build both cygwin and win32 binaries and put
673
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
56 ;; them in appropriate tarballs: This can be achieved by running
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
57 ;; build-msw-release.sh
452
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
58 ;;
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
59
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
60 (require 'package-admin)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
61 (require 'package-get)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
62
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
63 ;; What path should we use from the myriad available?
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
64 ;; For netinstall we just want something simple, and anyway this is only to
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
65 ;; bootstrap the process. This will be:
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
66 ;; <root>/setup/ for native windows
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
67 ;; <root>/lib/xemacs/setup for cygwin.
452
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
68 ;;
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
69 ;;; To Do:
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
70 ;;
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
71 ;; 1. Package update functions should also update the installed
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
72 ;; database so that running setup.exe again does not reinstall
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
73 ;; packages.
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
74 ;;
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
75 ;; 2. Generating setup.ini should be more automatic.
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
76
673
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
77 (defvar package-net-cygwin32-binary-size 0
452
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
78 "The size in bytes of the cygwin32 binary distribution.")
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
79
673
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
80 (defvar package-net-win32-binary-size 0
452
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
81 "The size in bytes of the win32 binary distribution.")
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
82
707
a307f9a2021d [xemacs-hg @ 2001-12-20 05:49:28 by andyp]
andyp
parents: 673
diff changeset
83 (defvar package-net-kit-version ""
a307f9a2021d [xemacs-hg @ 2001-12-20 05:49:28 by andyp]
andyp
parents: 673
diff changeset
84 "XEmacs kitting revision, usually empty.")
a307f9a2021d [xemacs-hg @ 2001-12-20 05:49:28 by andyp]
andyp
parents: 673
diff changeset
85
673
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
86 (defvar package-net-setup-version "1.0"
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
87 "The version string of setup.")
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
88
452
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
89 ;;;###autoload
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
90 (defun package-net-setup-directory ()
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
91 (file-truename (concat data-directory "../../" (if (eq system-type 'cygwin32)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
92 "xemacs/setup/" "setup/"))))
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
93
673
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
94 (defun package-net-generate-bin-ini (&optional version)
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
95 "Convert the package index to ini file format in the current directory."
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
96 (let ((buf (get-buffer-create "*setup-bin.ini*")))
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
97 (unwind-protect
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
98 (save-excursion
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
99 (set-buffer buf)
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
100 (erase-buffer buf)
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
101 (goto-char (point-min))
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
102 (insert "# This file is automatically generated. If you edit it, your\n")
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
103 (insert "# edits will be discarded next time the file is generated.\n")
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
104 (insert "#\n\n")
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
105 (insert (format "setup-timestamp: %d\n"
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
106 (+ (* (car (current-time)) 65536) (car (cdr (current-time))))))
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
107 (insert (format "setup-version: %s\n\n" (or version "1.0")))
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
108 ;; Native version
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
109 (insert (format "@ %s\n" "xemacs-i586-pc-win32"))
707
a307f9a2021d [xemacs-hg @ 2001-12-20 05:49:28 by andyp]
andyp
parents: 673
diff changeset
110 (insert (format "version: %s%s\n" emacs-program-version
a307f9a2021d [xemacs-hg @ 2001-12-20 05:49:28 by andyp]
andyp
parents: 673
diff changeset
111 package-net-kit-version))
673
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
112 (insert "type: native\n")
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
113 (insert (format "install: win32/%s %d\n\n"
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
114 (concat emacs-program-name
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
115 "-i586-pc-win32-"
707
a307f9a2021d [xemacs-hg @ 2001-12-20 05:49:28 by andyp]
andyp
parents: 673
diff changeset
116 emacs-program-version package-net-kit-version
a307f9a2021d [xemacs-hg @ 2001-12-20 05:49:28 by andyp]
andyp
parents: 673
diff changeset
117 ".tar.gz")
673
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
118 package-net-win32-binary-size))
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
119 ;; Cygwin version
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
120 (insert (format "@ %s\n" "xemacs-i686-pc-cygwin"))
707
a307f9a2021d [xemacs-hg @ 2001-12-20 05:49:28 by andyp]
andyp
parents: 673
diff changeset
121 (insert (format "version: %s%s\n" emacs-program-version
a307f9a2021d [xemacs-hg @ 2001-12-20 05:49:28 by andyp]
andyp
parents: 673
diff changeset
122 package-net-kit-version))
673
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
123 (insert "type: cygwin\n")
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
124 (insert (format "install: cygwin32/%s %d\n\n"
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
125 (concat emacs-program-name
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
126 "-i686-pc-cygwin-"
707
a307f9a2021d [xemacs-hg @ 2001-12-20 05:49:28 by andyp]
andyp
parents: 673
diff changeset
127 emacs-program-version package-net-kit-version
a307f9a2021d [xemacs-hg @ 2001-12-20 05:49:28 by andyp]
andyp
parents: 673
diff changeset
128 ".tar.gz")
673
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
129 package-net-cygwin32-binary-size))
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
130 (insert "# setup.ini file ends here\n")
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
131 (write-region (point-min) (point-max) "setup-bin.ini")))
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
132 (kill-buffer buf)))
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
133
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
134 (defun package-net-batch-generate-bin-ini ()
452
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
135 "Convert the package index to ini file format."
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
136 (unless noninteractive
1410
44de306310b8 [xemacs-hg @ 2003-04-14 03:40:26 by youngs]
youngs
parents: 707
diff changeset
137 (error 'invalid-operation
44de306310b8 [xemacs-hg @ 2003-04-14 03:40:26 by youngs]
youngs
parents: 707
diff changeset
138 "`package-net-batch-generate-bin-ini' is to be used only with -batch"))
673
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 454
diff changeset
139 (package-net-generate-bin-ini package-net-setup-version))
452
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
140
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
141 ;;;###autoload
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
142 (defun package-net-update-installed-db (&optional destdir)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
143 "Write out the installed package index in a net install suitable format.
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
144 If DESTDIR is non-nil then use that as the destination directory.
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
145 DESTDIR defaults to the value of `package-net-setup-directory'."
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
146
454
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 452
diff changeset
147 (when (or (eq system-type 'cygwin32)
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 452
diff changeset
148 (eq system-type 'window-nt))
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 452
diff changeset
149 (setq destdir (file-name-as-directory
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 452
diff changeset
150 (or destdir (package-net-setup-directory))))
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 452
diff changeset
151 (let ((buf (get-buffer-create "*installed.db*")))
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 452
diff changeset
152 (unwind-protect
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 452
diff changeset
153 (save-excursion
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 452
diff changeset
154 (set-buffer buf)
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 452
diff changeset
155 (erase-buffer buf)
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 452
diff changeset
156 (goto-char (point-min))
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 452
diff changeset
157 ;; we use packages-package-list here as we actually want to
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 452
diff changeset
158 ;; update relative to the installed reality
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 452
diff changeset
159 (let ((entries packages-package-list) entry version)
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 452
diff changeset
160 (while entries
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 452
diff changeset
161 (setq entry (car entries))
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 452
diff changeset
162 (setq version (plist-get (cdr entry) :version))
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 452
diff changeset
163 ;; Unfortunately we can't read the size from this
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 452
diff changeset
164 (insert (format "%s %s-%3.2f-pkg.tar.gz 0\n" (symbol-name (car entry))
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 452
diff changeset
165 (symbol-name (car entry))
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 452
diff changeset
166 version))
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 452
diff changeset
167 (setq entries (cdr entries))))
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 452
diff changeset
168 (make-directory-path destdir)
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 452
diff changeset
169 (write-region (point-min) (point-max) (concat destdir "installed.db")))
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 452
diff changeset
170 (kill-buffer buf)))))
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
171
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
172 (defun package-net-convert-download-sites-to-mirrors (&optional destdir)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
173 "Write out the download site list in a net install suitable format.
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
174 If DESTDIR is non-nil then use that as the destination directory.
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
175 DESTDIR defaults to the value of `data-directory'."
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
176
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
177 (setq destdir (file-name-as-directory (or destdir data-directory)))
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
178 (let ((buf (get-buffer-create "*mirrors.lst*")))
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
179 (unwind-protect
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
180 (save-excursion
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
181 (set-buffer buf)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
182 (erase-buffer buf)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
183 (goto-char (point-min))
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
184 (let ((entries package-get-download-sites) entry)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
185 (while entries
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
186 (setq entry (car entries))
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
187 (insert (format "ftp://%s/%s;%s;%s\n"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
188 (nth 1 entry) (substring (nth 2 entry) 0 -9)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
189 (nth 0 entry) (nth 0 entry)))
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
190 (setq entries (cdr entries))))
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
191 (write-region (point-min) (point-max) (concat destdir "mirrors.lst")))
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
192 (kill-buffer buf))))