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