Skip to content

Commit

Permalink
Stephane Peter (Codehost) - Tue Feb 11 20:33:32 PST 2003
Browse files Browse the repository at this point in the history
 * Added the 'environment' tag to store the values of
    environment variables.
  • Loading branch information
megastep committed Feb 27, 2003
1 parent 1a3e8d2 commit 0a20f1d
Show file tree
Hide file tree
Showing 17 changed files with 222 additions and 113 deletions.
3 changes: 3 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
Current:
Stephane Peter (Codehost) - Tue Feb 11 20:33:32 PST 2003
* Added the 'environment' tag to store the values of
environment variables.
Stephane Peter (Codehost) - Fri Dec 6 16:31:27 PST 2002
* Do not display the main GTK dialog until we're done with the EULAs.
* Various fixes for menu items
Expand Down
26 changes: 26 additions & 0 deletions README.xml
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,9 @@ Components are used to divide the product in independant entities. Several compo
installed at the same time by setup, and the user interface will reflect that. The installation
options have to be structured as children of this element.

Please note that components can not be nested. Thus COMPONENT elements have to be direct children
of an INSTALL element.

This element takes two mandatory attributes :

name The name of the component.
Expand Down Expand Up @@ -257,6 +260,29 @@ would currently allow the licensing agreements to be bypassed by the user.
There is also no need to have the files designated by those tags explicitly
installed in a FILES section, setup will take care of that for you.

The ENVIRONMENT element :

This element is used to preserve some environment variables between Setup tools
sessions. This is useful if some features of your product can be selected through
such environment variables upon installation, and these need to be set for
uninstallation as well.

You can use this element to inform Setup that their value upon installation must
be saved in the product database. The value will be restored in the environment
before executing any scripts from any of the Setup tools (especially uninstall).

This element should be a direct child of an INSTALL or COMPONENT element.
Hence, there can be component-specific variables. Setup tools will first restore
the global product variables, and then the component-specific variable.

Note: the variable will be saved only if it is set to a non-empty value at the
time of installation.

This element takes one mandatory attribute :

var The name of the environment variable to save.


The REQUIRE element :

This element allows to set prerequisite conditions for the installer, through the
Expand Down
5 changes: 4 additions & 1 deletion check.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
* Check and Rescue Tool for Loki Setup packages. Verifies the consistency of the files,
* and optionally restores them from the original installation medium.
*
* $Id: check.c,v 1.9 2003-01-08 00:10:40 megastep Exp $
* $Id: check.c,v 1.10 2003-02-27 06:16:01 megastep Exp $
*/

#include <stdlib.h>
Expand Down Expand Up @@ -286,6 +286,9 @@ on_media_ok_clicked (GtkButton *button,
current_component = add_component_entry(install, "Default", install->version, 1);
}

/* Restore any environment */
loki_put_envvars_component(loki_find_component(product, current_component->name));

/* Enable the relevant options */
select_corrupt_options(install);
copy_tree(install, install->config->root->childs, install->install_path, NULL);
Expand Down
190 changes: 100 additions & 90 deletions config.h.in
Original file line number Diff line number Diff line change
@@ -1,160 +1,170 @@
/* config.h.in. Generated from configure.in by autoheader. */
/* config.h.in. Generated automatically from configure.in by autoheader. */

/* Dynamic plugin support. */
#undef DYNAMIC_PLUGINS
/* Define if the X Window System is missing or not being used. */
#undef X_DISPLAY_MISSING

/* RPM support. */
#undef ENABLE_RPM
/* Define if you have the _getpty function. */
#undef HAVE__GETPTY

/* ZIP support. */
#undef ENABLE_ZIP
/* Define if you have the openpty function. */
#undef HAVE_OPENPTY

/* libbz2 support. */
#undef HAVE_BZIP2_SUPPORT
/* Define if you have the ptsname_r function. */
#undef HAVE_PTSNAME_R

/* Define if you have the strcasecmp function. */
#undef HAVE_STRCASECMP

/* Define if you have the strlcpy function. */
#undef HAVE_STRLCPY

/* Define to 1 if you have the <dirent.h> header file. */
/* Define if you have the ttyname_r function. */
#undef HAVE_TTYNAME_R

/* Define if you have the vhangup function. */
#undef HAVE_VHANGUP

/* Define if you have the waitpid function. */
#undef HAVE_WAITPID

/* Define if you have the <dirent.h> header file. */
#undef HAVE_DIRENT_H

/* Define to 1 if you have the <dir.h> header file. */
/* Define if you have the <dir.h> header file. */
#undef HAVE_DIR_H

/* Define to 1 if you have the <gtk.h> header file. */
#undef HAVE_GTK_H
/* Define if you have the <fstab.h> header file. */
#undef HAVE_FSTAB_H

/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define if you have the <gtk.h> header file. */
#undef HAVE_GTK_H

/* Define to 1 if you have the <libutil.h> header file. */
/* Define if you have the <libutil.h> header file. */
#undef HAVE_LIBUTIL_H

/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Define if you have the <mntent.h> header file. */
#undef HAVE_MNTENT_H

/* Define to 1 if you have the <ncurses/curses.h> header file. */
/* Define if you have the <ncurses/curses.h> header file. */
#undef HAVE_NCURSES_CURSES_H

/* Define to 1 if you have the <ncurses.h> header file. */
/* Define if you have the <ncurses.h> header file. */
#undef HAVE_NCURSES_H

/* Define to 1 if you have the <ncurses/term.h> header file. */
/* Define if you have the <ncurses/term.h> header file. */
#undef HAVE_NCURSES_TERM_H

/* Define to 1 if you have the <ndir.h> header file. */
/* Define if you have the <ndir.h> header file. */
#undef HAVE_NDIR_H

/* Define to 1 if you have the `openpty' function. */
#undef HAVE_OPENPTY

/* Define to 1 if you have the `ptsname_r' function. */
#undef HAVE_PTSNAME_R

/* Define to 1 if you have the <pty.h> header file. */
/* Define if you have the <pty.h> header file. */
#undef HAVE_PTY_H

/* Define to 1 if you have the <pwd.h> header file. */
/* Define if you have the <pwd.h> header file. */
#undef HAVE_PWD_H

/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H

/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H

/* Define to 1 if you have the `strcasecmp' function. */
#undef HAVE_STRCASECMP

/* Define to 1 if you have the <strings.h> header file. */
/* Define if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H

/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H

/* Define to 1 if you have the `strlcpy' function. */
#undef HAVE_STRLCPY

/* Define to 1 if you have the <sys/dirent.h> header file. */
/* Define if you have the <sys/dirent.h> header file. */
#undef HAVE_SYS_DIRENT_H

/* Define to 1 if you have the <sys/dir.h> header file. */
/* Define if you have the <sys/dir.h> header file. */
#undef HAVE_SYS_DIR_H

/* Define to 1 if you have the <sys/ndir.h> header file. */
/* Define if you have the <sys/mnttab.h> header file. */
#undef HAVE_SYS_MNTTAB_H

/* Define if you have the <sys/mount.h> header file. */
#undef HAVE_SYS_MOUNT_H

/* Define if you have the <sys/ndir.h> header file. */
#undef HAVE_SYS_NDIR_H

/* Define to 1 if you have the <sys/ptms.h> header file. */
/* Define if you have the <sys/ptms.h> header file. */
#undef HAVE_SYS_PTMS_H

/* Define to 1 if you have the <sys/statfs.h> header file. */
/* Define if you have the <sys/statfs.h> header file. */
#undef HAVE_SYS_STATFS_H

/* Define to 1 if you have the <sys/statvfs.h> header file. */
/* Define if you have the <sys/statvfs.h> header file. */
#undef HAVE_SYS_STATVFS_H

/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H

/* Define to 1 if you have the <sys/stropts.h> header file. */
/* Define if you have the <sys/stropts.h> header file. */
#undef HAVE_SYS_STROPTS_H

/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
/* Define if you have the <sys/ucred.h> header file. */
#undef HAVE_SYS_UCRED_H

/* Define to 1 if you have the <sys/vfs.h> header file. */
/* Define if you have the <sys/vfs.h> header file. */
#undef HAVE_SYS_VFS_H

/* Define to 1 if you have the `ttyname_r' function. */
#undef HAVE_TTYNAME_R

/* Define to 1 if you have the <unistd.h> header file. */
/* Define if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H

/* Define to 1 if you have the <util.h> header file. */
/* Define if you have the <util.h> header file. */
#undef HAVE_UTIL_H

/* Define to 1 if you have the `vhangup' function. */
#undef HAVE_VHANGUP
/* Use BSD-style ptys */
#undef USE_BSD_PTY

/* Define to 1 if you have the `waitpid' function. */
#undef HAVE_WAITPID
/* XOPEN source breaks */
#undef NO_XOPEN_SOURCE

/* Define to 1 if you have the file `AC_File'. */
#undef HAVE__DEV_PTC
/* POSIX C source breaks */
#undef NO_POSIX_C_SOURCE

/* Define to 1 if you have the file `AC_File'. */
#undef HAVE__DEV_PTMX
/* POSIX source breaks */
#undef NO_POSIX_SOURCE

/* Define to 1 if you have the file `AC_File'. */
#undef HAVE__DEV_PTS
/* Use BSD-style ptys */
#undef USE_BSD_PTY

/* Define to 1 if you have the `_getpty' function. */
#undef HAVE__GETPTY
/* XOPEN source breaks */
#undef NO_XOPEN_SOURCE

/* libbz2 has "BZ_" prefix. */
#undef LIBBZ2_PREFIX
/* POSIX C source breaks */
#undef NO_POSIX_C_SOURCE

/* POSIX source breaks */
#undef NO_POSIX_SOURCE

/* XOPEN source breaks */
#undef NO_XOPEN_SOURCE

/* POSIX C source breaks */
#undef NO_POSIX_C_SOURCE

/* POSIX source breaks */
#undef NO_POSIX_SOURCE

/* Use BSD-style ptys */
#undef USE_BSD_PTY

/* POSIX source breaks */
#undef NO_POSIX_SOURCE

/* POSIX C source breaks */
#undef NO_POSIX_C_SOURCE

/* XOPEN source breaks */
#undef NO_XOPEN_SOURCE

/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
/* libbz2 support. */
#undef HAVE_BZIP2_SUPPORT

/* Define to the full name of this package. */
#undef PACKAGE_NAME
/* libbz2 has BZ_ prefix. */
#undef LIBBZ2_PREFIX

/* Define to the full name and version of this package. */
#undef PACKAGE_STRING
/* ZIP support. */
#undef ENABLE_ZIP

/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
/* RPM support. */
#undef ENABLE_RPM

/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* RPM support. */
#undef ENABLE_RPM

/* Dynamic plugin support. */
#undef DYNAMIC_PLUGINS

/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
1 change: 0 additions & 1 deletion configure.in
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,6 @@ case "$target" in
CFLAGS="$CFLAGS -I/sw/include -Ddarwin"
ARCH=ppc ;;
*ppc* | *powerpc*)
CFLAGS="$CFLAGS -Wa,-mall"
ARCH=ppc ;;
*)
ARCH=`uname -p 2> /dev/null || uname -m` ;;
Expand Down
12 changes: 10 additions & 2 deletions copy.c
Original file line number Diff line number Diff line change
Expand Up @@ -718,8 +718,8 @@ ssize_t copy_node(install_info *info, xmlNodePtr node, const char *dest,
directory */
snprintf(tmpbuf, sizeof(tmpbuf), "%s/%s", info->install_path, tmppath);
strcpy(tmppath, tmpbuf);
strip_dirs = 1;
}
strip_dirs = 1;
path = tmppath;
}
if (!srcpath)
Expand Down Expand Up @@ -826,8 +826,16 @@ ssize_t copy_tree(install_info *info, xmlNodePtr node, const char *dest,
if ( copied > 0 ) {
size += copied;
}
current_component = NULL; /* Out of the component */
}
}
} else if ( ! strcmp(node->name, "environment") ) {
const char *prop = xmlGetProp(node, "var");
if ( prop ) {
add_envvar_entry(info, current_component, prop);
} else {
log_fatal(_("Malformed 'environment' element in XML file : missing 'var' property"));
}
}
node = node->next;
}
return size;
Expand Down
2 changes: 1 addition & 1 deletion dialog_ui.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
* "dialog"-based UI frontend for setup.
* Dialog was turned into a library, shell commands are not called.
*
* $Id: dialog_ui.c,v 1.7 2002-12-07 00:57:31 megastep Exp $
* $Id: dialog_ui.c,v 1.8 2003-02-27 06:16:01 megastep Exp $
*/

#include <limits.h>
Expand Down
2 changes: 1 addition & 1 deletion file.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* $Id: file.h,v 1.20 2002-12-07 00:57:31 megastep Exp $ */
/* $Id: file.h,v 1.21 2003-02-27 06:16:01 megastep Exp $ */

#ifndef __LOKI_FILE_H__
#define __LOKI_FILE_H__
Expand Down
2 changes: 1 addition & 1 deletion gtk_ui.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* GTK-based UI
$Id: gtk_ui.c,v 1.76 2002-12-12 01:36:44 megastep Exp $
$Id: gtk_ui.c,v 1.77 2003-02-27 06:16:01 megastep Exp $
*/

/* Modifications by Borland/Inprise Corp.
Expand Down
Loading

0 comments on commit 0a20f1d

Please sign in to comment.