Deleted Added
full compact
dist.c (8677) dist.c (8702)
1/*
2 * The new sysinstall program.
3 *
4 * This is probably the last program in the `sysinstall' line - the next
5 * generation being essentially a complete rewrite.
6 *
1/*
2 * The new sysinstall program.
3 *
4 * This is probably the last program in the `sysinstall' line - the next
5 * generation being essentially a complete rewrite.
6 *
7 * $Id: dist.c,v 1.14 1995/05/21 10:05:17 jkh Exp $
7 * $Id: dist.c,v 1.15 1995/05/21 15:40:47 jkh Exp $
8 *
9 * Copyright (c) 1995
10 * Jordan Hubbard. All rights reserved.
11 *
12 * Redistribution and use in source and binary forms, with or without
13 * modification, are permitted provided that the following conditions
14 * are met:
15 * 1. Redistributions of source code must retain the above copyright

--- 110 unchanged lines hidden (view full) ---

126extern Distribution SrcDistTable[];
127extern Distribution XF86DistTable[];
128extern Distribution XF86FontDistTable[];
129extern Distribution XF86ServerDistTable[];
130
131
132/* The top-level distribution categories */
133static Distribution DistTable[] = {
8 *
9 * Copyright (c) 1995
10 * Jordan Hubbard. All rights reserved.
11 *
12 * Redistribution and use in source and binary forms, with or without
13 * modification, are permitted provided that the following conditions
14 * are met:
15 * 1. Redistributions of source code must retain the above copyright

--- 110 unchanged lines hidden (view full) ---

126extern Distribution SrcDistTable[];
127extern Distribution XF86DistTable[];
128extern Distribution XF86FontDistTable[];
129extern Distribution XF86ServerDistTable[];
130
131
132/* The top-level distribution categories */
133static Distribution DistTable[] = {
134{ "bin", "/", &Dists, DIST_BIN, NULL },
135{ "games", "/", &Dists, DIST_GAMES, NULL },
136{ "manpages", "/", &Dists, DIST_MANPAGES, NULL },
137{ "proflibs", "/", &Dists, DIST_PROFLIBS, NULL },
138{ "dict", "/", &Dists, DIST_DICT, NULL },
139{ "src/", "/", &Dists, DIST_SRC, SrcDistTable },
140{ "des", "/", &Dists, DIST_DES, NULL },
141{ "compat1x", "/", &Dists, DIST_COMPAT1X, NULL },
142{ "compat20", "/", &Dists, DIST_COMPAT20, NULL },
143{ "xf86311/", "/usr", &Dists, DIST_XF86, XF86DistTable },
134{ "bin", "/", &Dists, DIST_BIN, NULL },
135{ "games", "/", &Dists, DIST_GAMES, NULL },
136{ "manpages", "/", &Dists, DIST_MANPAGES, NULL },
137{ "proflibs", "/", &Dists, DIST_PROFLIBS, NULL },
138{ "dict", "/", &Dists, DIST_DICT, NULL },
139{ "src/", "/", &Dists, DIST_SRC, SrcDistTable },
140{ "des", "/", &Dists, DIST_DES, NULL },
141{ "compat1x", "/", &Dists, DIST_COMPAT1X, NULL },
142{ "compat20", "/", &Dists, DIST_COMPAT20, NULL },
143{ "xf86311/", "/usr", &Dists, DIST_XF86, XF86DistTable },
144{ NULL },
145};
146
147/* The /usr/src distribution */
148static Distribution SrcDistTable[] = {
144{ NULL },
145};
146
147/* The /usr/src distribution */
148static Distribution SrcDistTable[] = {
149{ "base", "/", &SrcDists, DIST_SRC_BASE, NULL },
150{ "gnu", "/", &SrcDists, DIST_SRC_GNU, NULL },
151{ "etc", "/", &SrcDists, DIST_SRC_ETC, NULL },
152{ "games", "/", &SrcDists, DIST_SRC_GAMES, NULL },
153{ "include", "/", &SrcDists, DIST_SRC_INCLUDE, NULL },
154{ "lib", "/", &SrcDists, DIST_SRC_LIB, NULL },
155{ "libexec", "/", &SrcDists, DIST_SRC_LIBEXEC, NULL },
156{ "lkm", "/", &SrcDists, DIST_SRC_LKM, NULL },
157{ "release", "/", &SrcDists, DIST_SRC_RELEASE, NULL },
158{ "sbin", "/", &SrcDists, DIST_SRC_SBIN, NULL },
159{ "share", "/", &SrcDists, DIST_SRC_SHARE, NULL },
160{ "sys", "/", &SrcDists, DIST_SRC_SYS, NULL },
161{ "ubin", "/", &SrcDists, DIST_SRC_UBIN, NULL },
162{ "usbin", "/", &SrcDists, DIST_SRC_USBIN, NULL },
163{ "xf86", "/usr", &SrcDists, DIST_SRC_XF86, NULL },
149{ "sbase", "/usr/src", &SrcDists, DIST_SRC_BASE, NULL },
150{ "sgnu", "/usr/src", &SrcDists, DIST_SRC_GNU, NULL },
151{ "setc", "/usr/src", &SrcDists, DIST_SRC_ETC, NULL },
152{ "sgames", "/usr/src", &SrcDists, DIST_SRC_GAMES, NULL },
153{ "sinclude", "/usr/src", &SrcDists, DIST_SRC_INCLUDE, NULL },
154{ "slib", "/usr/src", &SrcDists, DIST_SRC_LIB, NULL },
155{ "slibexec", "/usr/src", &SrcDists, DIST_SRC_LIBEXEC, NULL },
156{ "slkm", "/usr/src", &SrcDists, DIST_SRC_LKM, NULL },
157{ "srelease", "/usr/src", &SrcDists, DIST_SRC_RELEASE, NULL },
158{ "ssbin", "/usr/src", &SrcDists, DIST_SRC_SBIN, NULL },
159{ "sshare", "/usr/src", &SrcDists, DIST_SRC_SHARE, NULL },
160{ "ssys", "/usr/src", &SrcDists, DIST_SRC_SYS, NULL },
161{ "subin", "/usr/src", &SrcDists, DIST_SRC_UBIN, NULL },
162{ "susbin", "/usr/src", &SrcDists, DIST_SRC_USBIN, NULL },
163{ "xf86", "/usr/X11R6/src", &SrcDists, DIST_SRC_XF86, NULL },
164{ NULL },
165};
166
167/* The XFree86 distribution */
168static Distribution XF86DistTable[] = {
164{ NULL },
165};
166
167/* The XFree86 distribution */
168static Distribution XF86DistTable[] = {
169{ "bin", "/usr", &XF86Dists, DIST_XF86_BIN, NULL },
170{ "lib", "/usr", &XF86Dists, DIST_XF86_LIB, NULL },
171{ "doc", "/usr", &XF86Dists, DIST_XF86_DOC, NULL },
172{ "xf86311/", "/usr", &XF86Dists, DIST_XF86_FONTS, XF86FontDistTable },
173{ "man", "/usr", &XF86Dists, DIST_XF86_MAN, NULL },
174{ "prog", "/usr", &XF86Dists, DIST_XF86_PROG, NULL },
175{ "link", "/usr", &XF86Dists, DIST_XF86_LINK, NULL },
176{ "pex", "/usr", &XF86Dists, DIST_XF86_PEX, NULL },
177{ "lbx", "/usr", &XF86Dists, DIST_XF86_LBX, NULL },
178{ "xicf", "/usr", &XF86Dists, DIST_XF86_XINIT, NULL },
179{ "xdmcf", "/usr", &XF86Dists, DIST_XF86_XDMCF, NULL },
180{ "xf86311/", "/usr", &XF86Dists, DIST_XF86_SERVER, XF86ServerDistTable },
169{ "bin", "/usr", &XF86Dists, DIST_XF86_BIN, NULL },
170{ "lib", "/usr", &XF86Dists, DIST_XF86_LIB, NULL },
171{ "doc", "/usr", &XF86Dists, DIST_XF86_DOC, NULL },
172{ "xf86311/", "/usr", &XF86Dists, DIST_XF86_FONTS, XF86FontDistTable },
173{ "man", "/usr", &XF86Dists, DIST_XF86_MAN, NULL },
174{ "prog", "/usr", &XF86Dists, DIST_XF86_PROG, NULL },
175{ "link", "/usr", &XF86Dists, DIST_XF86_LINK, NULL },
176{ "pex", "/usr", &XF86Dists, DIST_XF86_PEX, NULL },
177{ "lbx", "/usr", &XF86Dists, DIST_XF86_LBX, NULL },
178{ "xicf", "/usr", &XF86Dists, DIST_XF86_XINIT, NULL },
179{ "xdmcf", "/usr", &XF86Dists, DIST_XF86_XDMCF, NULL },
180{ "xf86311/", "/usr", &XF86Dists, DIST_XF86_SERVER, XF86ServerDistTable },
181{ NULL },
182};
183
184/* The XFree86 server distribution */
185static Distribution XF86ServerDistTable[] = {
181{ NULL },
182};
183
184/* The XFree86 server distribution */
185static Distribution XF86ServerDistTable[] = {
186{ "X3118514", "/usr", &XF86ServerDists, DIST_XF86_SERVER_8514, NULL },
187{ "X311AGX", "/usr", &XF86ServerDists, DIST_XF86_SERVER_AGX, NULL },
188{ "X311Mch3", "/usr", &XF86ServerDists, DIST_XF86_SERVER_MACH32,NULL },
189{ "X311Mch8", "/usr", &XF86ServerDists, DIST_XF86_SERVER_MACH8, NULL },
190{ "X311Mono", "/usr", &XF86ServerDists, DIST_XF86_SERVER_MONO, NULL },
191{ "X311P9K", "/usr", &XF86ServerDists, DIST_XF86_SERVER_P9000, NULL },
192{ "X311S3", "/usr", &XF86ServerDists, DIST_XF86_SERVER_S3, NULL },
193{ "X311SVGA", "/usr", &XF86ServerDists, DIST_XF86_SERVER_SVGA, NULL },
194{ "X311VG16", "/usr", &XF86ServerDists, DIST_XF86_SERVER_VGA16, NULL },
195{ "X311W32", "/usr", &XF86ServerDists, DIST_XF86_SERVER_W32, NULL },
196{ "X311nest", "/usr", &XF86ServerDists, DIST_XF86_SERVER_NEST, NULL },
186{ "X3118514", "/usr", &XF86ServerDists, DIST_XF86_SERVER_8514, NULL },
187{ "X311AGX", "/usr", &XF86ServerDists, DIST_XF86_SERVER_AGX, NULL },
188{ "X311Mch3", "/usr", &XF86ServerDists, DIST_XF86_SERVER_MACH32,NULL },
189{ "X311Mch8", "/usr", &XF86ServerDists, DIST_XF86_SERVER_MACH8, NULL },
190{ "X311Mono", "/usr", &XF86ServerDists, DIST_XF86_SERVER_MONO, NULL },
191{ "X311P9K", "/usr", &XF86ServerDists, DIST_XF86_SERVER_P9000, NULL },
192{ "X311S3", "/usr", &XF86ServerDists, DIST_XF86_SERVER_S3, NULL },
193{ "X311SVGA", "/usr", &XF86ServerDists, DIST_XF86_SERVER_SVGA, NULL },
194{ "X311VG16", "/usr", &XF86ServerDists, DIST_XF86_SERVER_VGA16, NULL },
195{ "X311W32", "/usr", &XF86ServerDists, DIST_XF86_SERVER_W32, NULL },
196{ "X311nest", "/usr", &XF86ServerDists, DIST_XF86_SERVER_NEST, NULL },
197{ NULL },
198};
199
200/* The XFree86 font distribution */
201static Distribution XF86FontDistTable[] = {
197{ NULL },
198};
199
200/* The XFree86 font distribution */
201static Distribution XF86FontDistTable[] = {
202{ "X311fnts", "/usr", &XF86FontDists, DIST_XF86_FONTS_MISC, NULL },
203{ "X311f100", "/usr", &XF86FontDists, DIST_XF86_FONTS_100, NULL },
204{ "X311fscl", "/usr", &XF86FontDists, DIST_XF86_FONTS_SCALE, NULL },
205{ "X311fnon", "/usr", &XF86FontDists, DIST_XF86_FONTS_NON, NULL },
206{ "X311fsrv", "/usr", &XF86FontDists, DIST_XF86_FONTS_SERVER, NULL },
202{ "X311fnts", "/usr", &XF86FontDists, DIST_XF86_FONTS_MISC, NULL },
203{ "X311f100", "/usr", &XF86FontDists, DIST_XF86_FONTS_100, NULL },
204{ "X311fscl", "/usr", &XF86FontDists, DIST_XF86_FONTS_SCALE, NULL },
205{ "X311fnon", "/usr", &XF86FontDists, DIST_XF86_FONTS_NON, NULL },
206{ "X311fsrv", "/usr", &XF86FontDists, DIST_XF86_FONTS_SERVER, NULL },
207{ NULL },
208};
209
210static int
211distExtract(char *parent, Distribution *me)
212{
213 int i, status;
214 int fd;
215
216 status = 0;
207{ NULL },
208};
209
210static int
211distExtract(char *parent, Distribution *me)
212{
213 int i, status;
214 int fd;
215
216 status = 0;
217 if (mediaDevice->init)
218 if ((*mediaDevice->init)(mediaDevice) == FALSE)
219 return 0;
217 for (i = 0; me[i].my_name; i++) {
218 if (me[i].my_bit & *(me[i].my_mask)) {
219 if (me[i].my_dist)
220 status = distExtract(me[i].my_name, me[i].my_dist);
221 else {
220 for (i = 0; me[i].my_name; i++) {
221 if (me[i].my_bit & *(me[i].my_mask)) {
222 if (me[i].my_dist)
223 status = distExtract(me[i].my_name, me[i].my_dist);
224 else {
222 msgNotify("Attempting to open %s%s distribution", parent ? parent : "", me[i].my_name);
223 fd = mediaOpen(parent, me[i].my_name);
224 if (fd != -1) {
225 fd = mediaOpen(parent, me[i].my_name);
226 if (fd != -1) {
225 msgNotify("Extracting %s%s distribution", parent ? parent : "", me[i].my_name);
226 status = mediaExtractDist(me[i].my_dir, fd);
227 close(fd);
228 }
229 else {
230 if (getenv(NO_CONFIRMATION))
231 status = 0;
232 else
233 status = !msgYesNo("Unable to transfer the %s%s distribution from %s.\nDo you want to retry this distribution later?", parent ? parent :

--- 21 unchanged lines hidden ---
227 status = mediaExtractDist(me[i].my_dir, fd);
228 close(fd);
229 }
230 else {
231 if (getenv(NO_CONFIRMATION))
232 status = 0;
233 else
234 status = !msgYesNo("Unable to transfer the %s%s distribution from %s.\nDo you want to retry this distribution later?", parent ? parent :

--- 21 unchanged lines hidden ---