Hello community,
here is the log from the commit of package loki_setup
checked in at Fri Feb 22 01:38:22 CET 2008.
--------
--- loki_setup/loki_setup.changes 2007-06-07 15:35:03.000000000 +0200
+++ /mounts/work_src_done/STABLE/loki_setup/loki_setup.changes 2008-02-21 10:03:29.000000000 +0100
@@ -1,0 +2,9 @@
+Thu Feb 21 09:25:02 CET 2008 - lnussel@suse.de
+
+- use %fdupes
+- fix desktop files to validate correctly
+- BuildRequire xdelta-devel
+- add symlinks like loki_update -> loki-update
+- update loki_setup to current cvs
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ loki_setup.spec ++++++
--- /var/tmp/diff_new_pack.Y21017/_old 2008-02-22 01:37:52.000000000 +0100
+++ /var/tmp/diff_new_pack.Y21017/_new 2008-02-22 01:37:52.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package loki_setup (Version 1.6.5_20070404)
#
-# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
@@ -10,14 +10,23 @@
# norootforbuild
+
Name: loki_setup
-BuildRequires: gpm gtk1-compat-devel gtk2-devel libglade2-devel ncurses-devel pkgconfig python python-xml update-desktop-files xdelta zlib-devel
+BuildRequires: gpm gtk1-compat-devel gtk2-devel libglade2-devel ncurses-devel pkgconfig python python-xml update-desktop-files zlib-devel
+%if %suse_version > 1020
+BuildRequires: fdupes
+%endif
+%if %suse_version > 1030
+BuildRequires: xdelta-devel
+%else
+BuildRequires: xdelta
+%endif
%define do_brandelf 1
-License: GNU General Public License (GPL)
-URL: http://icculus.org/loki_setup/
+License: GPL v2 or later
+Url: http://icculus.org/loki_setup/
Group: Development/Tools/Other
Version: 1.6.5_20070404
-Release: 23
+Release: 98
Summary: Installer Program Mainly for Games
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source0: loki_setup-current.tar.bz2
@@ -69,7 +78,7 @@
%package -n loki_uninstall
Version: 1.0.3_20051201
-Release: 81
+Release: 156
Summary: Uninstall program for games
Group: Amusements/Games/Other
@@ -86,7 +95,7 @@
%package -n loki_update
Version: 1.0.13_20040208
-Release: 116
+Release: 191
Summary: Updater program for games
Group: Amusements/Games/Other
@@ -301,6 +310,7 @@
install -d -m 755 %{buildroot}%{_datadir}/loki_update/detect
install -d -m 755 %{buildroot}%{_datadir}/loki_update/pixmaps
install -m 755 loki_update %{buildroot}%{_bindir}/loki-update
+ln -s loki-update %{buildroot}%{_bindir}/loki_update
# no static gtk ui. wastes only space
install -m 755 tty_ui.so %{buildroot}%{_libdir}/loki_update
install -m 755 gtk_sh_ui.so %{buildroot}%{_libdir}/loki_update
@@ -337,7 +347,9 @@
install -m 644 uninstall.glade %{buildroot}%{_datadir}/loki_uninstall
install -m 644 uninstall.gtk2.glade %{buildroot}%{_datadir}/loki_uninstall
install -m 755 loki-setup %{buildroot}%{_bindir}/loki-setup
+ln -s loki-setup %{buildroot}%{_bindir}/loki_setup
install -m 755 loki-uninstall %{buildroot}%{_bindir}/loki-uninstall
+ln -s loki-uninstall %{buildroot}%{_bindir}/loki_uninstall
install -m 755 %{SOURCE3} %{buildroot}%{_bindir}/stripmakeself
#
install -d -m 755 %{buildroot}%{_datadir}/loki-setup
@@ -359,16 +371,20 @@
install -m 644 %{SOURCE7} %{buildroot}/usr/share/applications
%suse_update_desktop_file loki-update
%suse_update_desktop_file loki-uninstall
+%if %suse_version > 1020
+%fdupes %{buildroot}
+%endif
%clean
rm -rf %{buildroot}
%files
%defattr(-,root,root)
-%doc COPYING README README.carbon README.locale README.plugins README.xml README.xsu
+%doc COPYING README README.locale README.plugins README.xml README.xsu
%doc *.loki_setupdb
%{_bindir}/brandelf
%{_bindir}/loki-setup
+%{_bindir}/loki_setup
%{_bindir}/loki-setup.curses
%{_bindir}/loki-setup.gtk2
%{_bindir}/stripmakeself
@@ -380,6 +396,7 @@
%doc COPYING README.loki_uninstall
%dir %{_datadir}/loki_uninstall
%{_bindir}/loki-uninstall*
+%{_bindir}/loki_uninstall*
%{_datadir}/loki_uninstall/*
%{_datadir}/locale/*/*/loki-uninstall.mo
/usr/share/applications/loki-uninstall.desktop
@@ -391,6 +408,7 @@
%dir %{_libdir}/loki_update
%dir %{_datadir}/loki_update
%{_bindir}/loki-update
+%{_bindir}/loki_update
%{_libdir}/loki_update/*
%{_datadir}/loki_update/*
%{_datadir}/locale/*/*/loki_update.mo
@@ -400,59 +418,65 @@
%{_datadir}/loki_patch
%changelog
-* Thu Jun 07 2007 - sbrabec@suse.cz
+* Thu Feb 21 2008 lnussel@suse.de
+- use %%fdupes
+- fix desktop files to validate correctly
+- BuildRequire xdelta-devel
+- add symlinks like loki_update -> loki-update
+- update loki_setup to current cvs
+* Thu Jun 07 2007 sbrabec@suse.cz
- Removed invalid desktop Category "Application" (#254654).
-* Wed Apr 04 2007 - lnussel@suse.de
+* Wed Apr 04 2007 lnussel@suse.de
- update loki-setup and loki-setupdb to current cvs
- add zlib-devel and ncurses-devel to build requires
-* Tue Dec 12 2006 - lnussel@suse.de
+* Tue Dec 12 2006 lnussel@suse.de
- fix some wrong uses of strncat()
-* Tue Nov 07 2006 - ro@suse.de
+* Tue Nov 07 2006 ro@suse.de
- fix text file permissions (products.txt)
-* Thu Jun 08 2006 - lnussel@suse.de
+* Thu Jun 08 2006 lnussel@suse.de
- Use --no-upgrade for loki_update glade2 file as the C code cannot
deal with the new widgets.
- don't link libxml statically into loki_update
- fix exit code check in loki-setup script
- fix path to locale files
-* Thu Jun 01 2006 - sbrabec@suse.cz
+* Thu Jun 01 2006 sbrabec@suse.cz
- Updated to latest CVS version:
* GTK2 support
* Minor fixes.
- Fixed GTK2 support and switched from GTK1 to GTK2.
- Enabled GPM.
-* Wed May 17 2006 - schwab@suse.de
+* Wed May 17 2006 schwab@suse.de
- Don't strip binaries.
-* Wed Jan 25 2006 - mls@suse.de
+* Wed Jan 25 2006 mls@suse.de
- converted neededforbuild to BuildRequires
-* Thu Dec 01 2005 - lnussel@suse.de
+* Thu Dec 01 2005 lnussel@suse.de
- fix more amd64/x86_64 confusion
-* Wed Nov 09 2005 - lnussel@suse.de
+* Wed Nov 09 2005 lnussel@suse.de
- fix build on x86_64
-* Tue Nov 08 2005 - lnussel@suse.de
+* Tue Nov 08 2005 lnussel@suse.de
- update to current cvs
-* Mon Jul 04 2005 - lnussel@suse.de
+* Mon Jul 04 2005 lnussel@suse.de
- update to current cvs
* includes unrar code but it's not compiled for now
- remove -fsigned-char (#93880)
-* Tue Apr 19 2005 - lnussel@suse.de
+* Tue Apr 19 2005 lnussel@suse.de
- fix extern/static mismatch in loki_xdelta
-* Wed Dec 22 2004 - lnussel@suse.de
+* Wed Dec 22 2004 lnussel@suse.de
- update to current cvs
- additional patches:
* don't link libz, libgpm, gtk static
* fix for one byte files
* overwrite files prompt patch
-* Wed Dec 15 2004 - lnussel@suse.de
+* Wed Dec 15 2004 lnussel@suse.de
- update to current cvs
- include binaries statically linked against libglade and libxml for use in
makeself archives
- use some random categories in the desktop file to make it build
-* Fri Sep 24 2004 - mskibbe@suse.de
+* Fri Sep 24 2004 mskibbe@suse.de
- change desktopfile
-* Mon Sep 13 2004 - lnussel@suse.de
+* Mon Sep 13 2004 lnussel@suse.de
- replace prompt overwrite patch with upstream accepted version
-* Mon Sep 06 2004 - lnussel@suse.de
+* Mon Sep 06 2004 lnussel@suse.de
- update to current cvs
- additional patches:
* prompt overwrite patch
@@ -460,14 +484,14 @@
* makeself tmp race fix
- include loki_patch in loki_update
- add -f parameter to loki-setup script for specifying an xml file
-* Mon Apr 19 2004 - lnussel@suse.de
+* Mon Apr 19 2004 lnussel@suse.de
- update to current cvs which has subfs support
- don't close product in generate_uninstall but later
- grep for Makeself in the first three lines to make q3 demo installer work
-* Sat Mar 20 2004 - lnussel@suse.de
+* Sat Mar 20 2004 lnussel@suse.de
- compile with large file support
- use update-desktop-files in neededforbuild
-* Mon Mar 08 2004 - meissner@suse.de
+* Mon Mar 08 2004 meissner@suse.de
- ported to ppc64.
-* Mon Mar 08 2004 - lnussel@suse.de
+* Mon Mar 08 2004 lnussel@suse.de
- new package based on current cvs
++++++ loki_setup-current.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/loki_setup/configure.in new/loki_setup/configure.in
--- old/loki_setup/configure.in 2007-01-23 17:11:46.000000000 +0100
+++ new/loki_setup/configure.in 2008-02-21 09:57:55.000000000 +0100
@@ -201,12 +201,12 @@
CFLAGS="$CFLAGS $REENTRANT"
AC_CHECK_FUNCS(getopt)
-AC_CHECK_LIB(gnugetopt, getopt_long, LIBS="$LIBS $BSTATIC -lgnugetopt")
+AC_CHECK_LIB(gnugetopt, getopt_long, LIBS="$LIBS $BSTATIC -lgnugetopt $BDYNAMIC")
AC_CHECK_FUNCS(getopt_long)
AC_CHECK_LIB(util, forkpty, LIBUTIL="-lutil"; LIBS="$LIBS -lutil")
AC_CHECK_FUNCS(openpty)
-AC_CHECK_LIB(selinux, is_selinux_enabled, LIBS="$LIBS $BSTATIC -lselinux")
+AC_CHECK_LIB(selinux, is_selinux_enabled, LIBS="$LIBS $BSTATIC -lselinux $BDYNAMIC")
SETUPDB_NAME=loki_setupdb
SETUPDB="`pwd`/../loki_setupdb-$PACKAGE_VERSION"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/loki_setup/install.c new/loki_setup/install.c
--- old/loki_setup/install.c 2007-04-04 16:23:33.000000000 +0200
+++ new/loki_setup/install.c 2008-02-21 09:57:58.000000000 +0100
@@ -1,4 +1,4 @@
-/* $Id: install.c,v 1.177 2007/02/20 18:34:53 megastep Exp $ */
+/* $Id: install.c,v 1.178 2008/02/13 00:34:03 megastep Exp $ */
/* Modifications by Borland/Inprise Corp.:
04/10/2000: Added code to expand ~ in a default path immediately after
@@ -141,6 +141,7 @@
{
{ "inline-scripts", 1 },
{ "booleans", 1 },
+ { "require-warn", 1 },
{ NULL, 0 }
};
@@ -1479,9 +1480,14 @@
match_arch(info, arch) &&
match_libc(info, libc) &&
match_distro(info, distro) ) {
+ int warning = 0;
char *commandprop = (char *)xmlGetProp(node, BAD_CAST "command");
char *featureprop = (char *)xmlGetProp(node, BAD_CAST "feature");
char *cond = (char *)xmlGetProp(node, BAD_CAST "condition");
+ char *warn = (char *)xmlGetProp(node, BAD_CAST "warn");
+ if (warn && !strcmp(warn, "yes"))
+ warning = 1;
+ xmlFree(warn);
xmlFree(lang); xmlFree(arch); xmlFree(libc); xmlFree(distro);
if ( !commandprop && !featureprop && !cond ) {
log_fatal(_("XML: 'require' tag doesn't have a mandatory 'command', 'condition' or 'feature' attribute"));
@@ -1500,7 +1506,8 @@
UI.prompt(convert_encoding(buf), RESPONSE_OK);
}
xmlFree(cond);
- return 0;
+ if (!warning)
+ return 0;
}
} else if ( commandprop ) {
/* Launch the command */
@@ -1517,7 +1524,8 @@
UI.prompt(convert_encoding(buf), RESPONSE_OK);
}
xmlFree(commandprop);
- return 0;
+ if (!warning)
+ return 0;
}
} else if (featureprop) {
char *verprop = (char *)xmlGetProp(node, BAD_CAST "version");
@@ -1534,7 +1542,8 @@
"(missing feature '%s' version '%u')"), featureprop, version);
UI.prompt(buf, RESPONSE_OK);
xmlFree(featureprop);
- return 0;
+ if (!warning)
+ return 0;
}
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/loki_setup/loki_launchurl.c new/loki_setup/loki_launchurl.c
--- old/loki_setup/loki_launchurl.c 2007-01-23 17:11:46.000000000 +0100
+++ new/loki_setup/loki_launchurl.c 2008-02-21 09:57:58.000000000 +0100
@@ -107,6 +107,9 @@
"open %s" },
#endif
{ RUNNING_X11,
+ "xdg-open",
+ "xdg-open %s &" },
+ { RUNNING_X11,
"gnome-moz-remote",
"gnome-moz-remote --newwin %s &" },
{ RUNNING_X11,
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/loki_setup/loki_setup-locale.diff new/loki_setup/loki_setup-locale.diff
--- old/loki_setup/loki_setup-locale.diff 2006-06-08 15:40:36.000000000 +0200
+++ new/loki_setup/loki_setup-locale.diff 1970-01-01 01:00:00.000000000 +0100
@@ -1,58 +0,0 @@
-? loki_setup-locale.diff
-Index: install.c
-===================================================================
-RCS file: /cvs/cvsroot/loki_setup/install.c,v
-retrieving revision 1.176
-diff -u -r1.176 install.c
---- install.c 18 May 2006 19:49:46 -0000 1.176
-+++ install.c 8 Jun 2006 13:40:13 -0000
-@@ -2388,7 +2388,7 @@
- }
-
- snprintf(buf, sizeof(buf), "setup.data/bin/%s/%s/uninstall", detect_os(), detect_arch());
-- loki_upgrade_uninstall(product, buf, "setup.data/" LOCALEDIR);
-+ loki_upgrade_uninstall(product, buf, LOCALEDIR);
- /* We must call the following in all cases - component installs even, as we have to save the changes */
- loki_closeproduct(product);
- /* product might have pointed to info->product. Reopen it so
-Index: main.c
-===================================================================
-RCS file: /cvs/cvsroot/loki_setup/main.c,v
-retrieving revision 1.87
-diff -u -r1.87 main.c
---- main.c 18 May 2006 12:25:06 -0000 1.87
-+++ main.c 8 Jun 2006 13:40:13 -0000
-@@ -164,7 +164,7 @@
-
- static void init_locale()
- {
-- char locale[PATH_MAX] = "setup.data/" LOCALEDIR;
-+ char locale[PATH_MAX] = LOCALEDIR;
-
- setlocale (LC_ALL, "");
-
-Index: uninstall.c
-===================================================================
-RCS file: /cvs/cvsroot/loki_setup/uninstall.c,v
-retrieving revision 1.61
-diff -u -r1.61 uninstall.c
---- uninstall.c 8 Feb 2005 20:41:56 -0000 1.61
-+++ uninstall.c 8 Jun 2006 13:40:13 -0000
-@@ -306,7 +306,7 @@
- if ( prod ) {
- product_info_t *info = loki_getinfo_product(prod);
-
-- snprintf(locale, sizeof(locale), "%s/" LOCALEDIR, info->root);
-+ snprintf(locale, sizeof(locale), "%s/locale", info->root);
- if ( access(locale, R_OK) < 0 ) { /* If not existing, revert to copy in the home directory */
- locale[0] = '\0';
- }
-@@ -314,7 +314,7 @@
- }
-
- if(!locale[0]) {
-- snprintf(locale, sizeof(locale), "%s/" LOKI_DIRNAME "/installed/" LOCALEDIR, detect_home());
-+ snprintf(locale, sizeof(locale), "%s/" LOKI_DIRNAME "/installed/locale", detect_home());
- }
-
- bindtextdomain (PACKAGE, locale);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/loki_setup/.#main.c.1.87 new/loki_setup/.#main.c.1.87
--- old/loki_setup/.#main.c.1.87 2006-05-23 10:10:13.000000000 +0200
+++ new/loki_setup/.#main.c.1.87 1970-01-01 01:00:00.000000000 +0100
@@ -1,510 +0,0 @@
-/* $Id: main.c,v 1.87 2006/05/18 12:25:06 icculus Exp $ */
-
-/*
-Modifications by Borland/Inprise Corp.:
- 05/17/2000: Added support for two new command-line arguments:
- -i path: used to specify the install directory.
- -b path: used to specify the binary directory.
- If either of these parameters are specified on the command
- line, the user will not be asked for them. Two global flags
- were added for this purpose: disable_install_path and
- disable_binary_path. Additional changes were made to install.c
- gtk_ui.c and console_ui.c were made to support this change.
-
- 06/02/2000: Added support for a new command-line parameter:
- -m: used to force RPM packages to be manually extracted and to
- prevent the RPM database from being updated.
- Some distributions (Corel) include RPM support, but the RPM
- database is empty. This causes almost every attempt to install
- an RPM to fail because of missing dependencies. Using the -m
- parameter allows users to get around this by forcing setup to
- work as if RPM was not present.
-
- */
-#if defined(darwin)
-#include "carbon/carbonres.h"
-#endif
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include "install_log.h"
-#include "install_ui.h"
-#include "log.h"
-#include "file.h"
-#include "detect.h"
-#include "plugins.h"
-#include "bools.h"
-
-#ifdef HAVE_GETOPT_H
-#include
-#endif
-
-#ifdef HAVE_SELINUX_SELINUX_H
-#include
-#endif
-
-/* Global options */
-
-int force_console = 0;
-extern int disable_install_path;
-extern int disable_binary_path;
-int express_setup = 0;
-#ifdef RPM_SUPPORT
-extern char *rpm_root;
-extern int force_manual;
-#endif
-const char *argv0 = NULL;
-
-#ifdef __linux
-int have_selinux = 0;
-#endif
-
-static install_info *info = NULL;
-extern Install_UI UI;
-
-/* List of options enabled on the command line */
-static struct enabled_option {
- char *option;
- struct enabled_option *next;
-} *enabled_options = NULL;
-
-void exit_setup(int ret)
-{
- /* Cleanup afterwards */
- if ( info )
- delete_install(info);
- setup_exit_bools();
- FreePlugins();
- free_corrupt_files();
- unmount_filesystems();
- dir_cleantmp();
- log_exit();
- exit(ret);
-}
-
-void signal_abort(int sig)
-{
- signal(SIGINT, SIG_IGN);
- if ( UI.abort )
- UI.abort(info);
- if ( info && ! info->install_complete )
- uninstall(info);
- exit_setup(2);
-}
-
-/* Abort a running installation (to be called from the update function) */
-void abort_install(void)
-{
- if ( UI.abort )
- UI.abort(info);
- if ( info && ! info->install_complete )
- uninstall(info);
- exit_setup(2);
-}
-
-/* List of UI drivers */
-static int (*GUI_okay[])(Install_UI *UI, int *argc, char ***argv) = {
- gtkui_okay,
- carbonui_okay,
-#ifdef ENABLE_DIALOG
- dialog_okay,
-#endif
- console_okay,
- NULL
-};
-
-/* List the valid command-line options */
-
-static void print_usage(const char *argv0)
-{
- printf(
-#ifdef RPM_SUPPORT
-_("Usage: %s [options]\n\n"
-"Options can be one or more of the following:\n"
-" -b path Set the binary path to <path>\n"
-" -h Display this help message\n"
-" -i path Set the install path to <path>\n"
-" -c cwd Use an alternate current directory for the install\n"
-" -f file Use an alternative XML file (default %s)\n"
-" -m Force manual extraction of RPM packages, do not update RPM database\n"
-" -n Force the text-only user interface\n"
-" -o opt Enable the option named \"opt\" from the XML file. Also enables non\n"
-" interactive operation. Can be used multiple times.\n"
-" -p pref Specify a path prefix in the installation media.\n"
-" -r root Set the root directory for extracting RPM files (default is /)\n"
-" -v n Set verbosity level to n. Available values :\n"
-" 0: Debug 1: Quiet 2: Normal 3: Warnings 4: Fatal\n"
-" -V Print the version of the setup program and exit\n"),
-#else
-_("Usage: %s [options]\n\n"
-"Options can be one or more of the following:\n"
-" -b path Set the binary path to <path>\n"
-" -h Display this help message\n"
-" -i path Set the install path to <path>\n"
-" -c cwd Use an alternate current directory for the install\n"
-" -f file Use an alternative XML file (default %s)\n"
-" -n Force the text-only user interface\n"
-" -o opt Enable the option named \"opt\" from the XML file. Also enables non\n"
-" interactive operation. Can be used multiple times.\n"
-" -p pref Specify a path prefix in the installation media.\n"
-" -v n Set verbosity level to n. Available values :\n"
-" 0: Debug 1: Quiet 2: Normal 3: Warnings 4: Fatal\n"
-" -V Print the version of the setup program and exit\n"),
-#endif
- argv0, SETUP_CONFIG);
-}
-
-static void init_locale()
-{
- char locale[PATH_MAX] = LOCALEDIR;
-
- setlocale (LC_ALL, "");
-
- if(getenv("SETUP_LOCALEDIR")) {
- strncpy(locale, getenv("SETUP_LOCALEDIR"), sizeof(locale));
- locale[sizeof(locale)-1]='\0';
- }
-
- bindtextdomain (PACKAGE, locale);
- textdomain (PACKAGE);
- DetectLocale();
-}
-
-/* The main installer code */
-int main(int argc, char **argv)
-{
- int exit_status, get_out = 0;
- int i, c;
- int noninteractive = 0;
- install_state state;
- char *xml_file = SETUP_CONFIG;
- log_level verbosity = LOG_NORMAL;
- char install_path[PATH_MAX];
- char binary_path[PATH_MAX];
- const char *product_prefix = NULL, *str;
- struct enabled_option *enabled_opt;
-#if defined(darwin)
- // If we're on Mac OS, we need to make sure the current working directoy
- // is the same directoy as the .APP is in. With Mac OS X, running from
- // the finder and most other places makes the current directory to root.
-#define CARBON_MAX_PATH 1024
- char carbon_app_path[CARBON_MAX_PATH];
- carbon_GetAppPath(carbon_app_path, CARBON_MAX_PATH);
- chdir(carbon_app_path);
-#endif
- install_path[0] = '\0';
- binary_path[0] = '\0';
- argv0 = argv[0];
-
- /* Set a good default umask value (022) */
- umask(DEFAULT_UMASK);
-
- /* Set the locale */
- init_locale();
-
- /* Parse the command-line options */
- while ( (c=getopt(argc, argv,
-#ifdef RPM_SUPPORT
- "hnc:f:r:v:Vi:b:mo:p:"
-#else
- "hnc:f:v:Vi:b:o:p:"
-#endif
- )) != EOF ) {
- switch (c) {
- case 'c':
- if ( chdir(optarg) < 0 ) {
- perror(optarg);
- exit(3);
- }
- break;
- case 'f':
- xml_file = optarg;
- break;
- case 'n':
- force_console = 1;
- break;
-#ifdef RPM_SUPPORT
- case 'r':
- rpm_root = optarg;
- break;
-#endif
- case 'v':
- if ( optarg ) {
- verbosity = atoi(optarg);
- if ( (verbosity < LOG_DEBUG) || (verbosity > LOG_FATAL) ){
- fprintf(stderr,
- _("Out of range value, setting verbosity level to normal.\n"));
- verbosity = LOG_NORMAL;
- }
- } else {
- verbosity = LOG_DEBUG;
- }
- break;
- case 'V':
- printf("Loki Setup version " SETUP_VERSION ", built on "__DATE__"\n");
- exit(0);
- case 'i':
- strncpy(install_path, optarg, sizeof(install_path));
- disable_install_path = 1;
- break;
- case 'b':
- strncpy(binary_path, optarg, sizeof(binary_path));
- disable_binary_path = 1;
- break;
- case 'p':
- product_prefix = optarg;
- break;
- case 'o': /* Store the enabled options for later processing */
- enabled_opt = (struct enabled_option *)malloc(sizeof(struct enabled_option));
- enabled_opt->option = strdup(optarg);
- enabled_opt->next = enabled_options;
- enabled_options = enabled_opt;
- break;
-#ifdef RPM_SUPPORT
- case 'm':
- force_manual = 1;
- break;
-#endif
- default:
- print_usage(argv[0]);
- exit(0);
- }
- }
-
- InitPlugins();
- if ( verbosity == LOG_DEBUG ) {
- DumpPlugins(stderr);
- }
-
- log_init(verbosity);
-
- file_init();
-
- /* Initialize the XML setup configuration */
- info = create_install(xml_file, install_path, binary_path, product_prefix);
- if ( info == NULL ) {
- fprintf(stderr, _("Couldn't load '%s'\n"), xml_file);
- exit(3);
- }
-
- /* Get the appropriate setup UI */
- for ( i=0; GUI_okay[i]; ++i ) {
- if ( GUI_okay[i](&UI, &argc, &argv) ) {
- break;
- }
- }
- if ( ! GUI_okay[i] ) {
- log_debug(_("No UI drivers available\n"));
- exit(4); /* Must use different error code than 2 */
- }
-
- /* Setup the interrupt handlers */
- state = SETUP_INIT;
- signal(SIGINT, signal_abort);
- signal(SIGQUIT, signal_abort);
- signal(SIGHUP, signal_abort);
- signal(SIGTERM, signal_abort);
-
-#ifdef __linux
- /* See if we have a SELinux environment */
-# ifdef HAVE_SELINUX_SELINUX_H
- have_selinux = is_selinux_enabled();
-# else
- if ( !access("/usr/bin/chcon", X_OK) && !access("/usr/sbin/getenforce", X_OK) ) {
- have_selinux = 1;
- }
-# endif
-#endif
-
- /* Run the little state machine */
- exit_status = 0;
- while ( ! get_out ) {
- char buf[1024];
- int num_cds = 0;
-
- switch (state) {
- case SETUP_INIT:
- num_cds = GetProductCDROMDescriptions(info);
- /* Check for the presence of a CDROM if required */
- if ( GetProductCDROMRequired(info) ) {
- if ( ! GetProductCDROMFile(info) ) {
- log_fatal(_("The 'cdromfile' attribute is now mandatory when using the 'cdrom' attribute."));
- }
- add_cdrom_entry(info, info->name, info->desc, GetProductCDROMFile(info));
- ++ num_cds;
- }
- if (GetProductReinstallFast(info))
- express_setup = 1;
- noninteractive = ( (enabled_options != NULL) || (GetProductReinstallFast(info)) );
- state = UI.init(info, argc, argv, noninteractive);
- if ( state == SETUP_ABORT ) {
- exit_status = 3;
- continue;
- }
- /* Check if getcwd() works now */
- if ( getcwd(buf, sizeof(buf)) == NULL ) {
- UI.prompt(_("Unable to determine the current directory.\n"
- "Please check the permissions of the parent directories.\n"), RESPONSE_OK);
- state = SETUP_EXIT;
- continue;
- }
-
- /* Check if we should be root. Under the Mac, we'll do the standard authorization
- stuff that most installers do at startup. */
- if ( GetProductRequireRoot(info) && geteuid()!=0 ) {
-#if defined(darwin)
- carbon_AuthorizeUser();
- state = SETUP_EXIT;
- break;
-#else
- UI.prompt(_("You need to run this installer as the super-user.\n"), RESPONSE_OK);
- state = SETUP_EXIT;
- continue;
-#endif
- }
-
- if ( info->product && GetProductInstallOnce(info) ) {
- UI.prompt(_("\nThis product is already installed.\nUninstall it before running this program again.\n"), RESPONSE_OK);
- state = SETUP_EXIT;
- continue;
- }
- if ( info->options.reinstalling ) {
- if ( GetProductReinstallNoWarning(info) || UI.prompt(_("Warning: You are about to reinstall\non top of an existing installation. Continue?\n"),
- RESPONSE_YES) == RESPONSE_YES ) {
- /* Restore the initial environment */
- loki_put_envvars(info->product);
- } else {
- state = SETUP_EXIT;
- continue;
- }
- }
- /* Check for the presence of the product if we install a component */
- if ( GetProductComponent(info) ) {
- if ( GetProductNumComponents(info) > 0 ) {
- UI.prompt(_("\nIllegal installation: do not mix components with a component installation.\n"), RESPONSE_OK);
- state = SETUP_EXIT;
- continue;
- } else if ( info->product ) {
- if ( ! info->component ) {
- snprintf(buf, sizeof(buf), _("\nThe %s component is already installed.\n"
- "Please uninstall it beforehand.\n"),
- GetProductComponent(info));
- UI.prompt(buf, RESPONSE_OK);
- state = SETUP_EXIT;
- continue;
- }
- } else {
- snprintf(buf, sizeof(buf), _("\nYou must install %s before running this\n"
- "installation program.\n"),
- info->desc);
- UI.prompt(buf, RESPONSE_OK);
- state = SETUP_EXIT;
- continue;
- }
- }
-
- /* Check for the presence of a CDROM if required */
- if ( num_cds > 0) {
- detect_cdrom(info);
- }
- if ( GetProductCDROMRequired(info) && ! get_cdrom(info, info->name) ) {
- state = SETUP_EXIT;
- break;
- }
-
- /* Initialize user-specified booleans */
- GetProductBooleans(info);
-
- if ( ! CheckRequirements(info) ) {
- state = SETUP_ABORT;
- break;
- }
-
- if ( !restoring_corrupt() ) {
- /* Now run any auto-detection commands */
- mark_cmd_options(info, XML_ROOT(info->config), 0);
- }
-
- if ( enabled_options ) {
- enabled_opt = enabled_options;
- while ( enabled_opt ) {
- if ( enable_option(info, enabled_opt->option) == 0 ) {
- log_warning(_("Could not enable option: %s"), enabled_opt->option);
- }
- enabled_opt = enabled_opt->next;
- }
- state = SETUP_INSTALL;
- }
- break;
- case SETUP_CLASS:
- state = UI.pick_class(info);
- break;
- case SETUP_LICENSE:
- state = UI.license(info);
- break;
- case SETUP_README:
- state = UI.readme(info);
- break;
- case SETUP_OPTIONS:
- state = UI.setup(info);
- break;
- case SETUP_INSTALL:
- if ( info->install_path[0] ) {
- install_preinstall(info);
- state = install(info, UI.update);
- install_postinstall(info);
- } else {
- UI.prompt(_("No installation path was specified. Aborting."), RESPONSE_OK);
- state = SETUP_ABORT;
- }
- break;
- case SETUP_WEBSITE:
- state = UI.website(info);
- break;
- case SETUP_COMPLETE:
- state = UI.complete(info);
- /* Check for a post-install message */
- str = GetProductPostInstallMsg(info);
- if ( str ) {
- UI.prompt(str, RESPONSE_OK);
- }
- break;
- case SETUP_PLAY:
- if ( UI.shutdown )
- UI.shutdown(info);
- state = launch_game(info);
- break;
- case SETUP_ABORT:
- abort_install();
- break;
- case SETUP_EXIT:
- /* Optional cleanup */
- if ( UI.exit ) {
- UI.exit(info);
- }
- get_out = 1;
- break;
- default:
- break;
- }
- }
-
- /* Free enabled_options */
- while ( enabled_options ) {
- enabled_opt = enabled_options;
- enabled_options = enabled_options->next;
- free(enabled_opt->option);
- free(enabled_opt);
- }
-
- exit_setup(exit_status);
- return 0;
-}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/loki_setup/makeself/makeself-header.sh new/loki_setup/makeself/makeself-header.sh
--- old/loki_setup/makeself/makeself-header.sh 2007-04-04 16:23:35.000000000 +0200
+++ new/loki_setup/makeself/makeself-header.sh 2007-07-16 13:20:37.000000000 +0200
@@ -86,9 +86,9 @@
OLD_PATH="\$PATH"
PATH=\${GUESS_MD5_PATH:-"\$OLD_PATH:/bin:/usr/bin:/sbin:/usr/local/ssl/bin:/usr/local/bin:/opt/openssl/bin"}
MD5_ARG=""
- MD5_PATH=\`exec 2>&-; which md5sum || type md5sum\`
- test -x "\$MD5_PATH" || MD5_PATH=\`exec 2>&-; which md5 || type md5\`
- test -x "\$MD5_PATH" || MD5_PATH=\`exec 2>&-; which digest || type digest\`
+ MD5_PATH=\`exec <&- 2>&-; which md5sum || type md5sum\`
+ test -x "\$MD5_PATH" || MD5_PATH=\`exec <&- 2>&-; which md5 || type md5\`
+ test -x "\$MD5_PATH" || MD5_PATH=\`exec <&- 2>&-; which digest || type digest\`
PATH="\$OLD_PATH"
MS_Printf "Verifying archive integrity..."
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/loki_setup/makeself/makeself.sh new/loki_setup/makeself/makeself.sh
--- old/loki_setup/makeself/makeself.sh 2006-09-27 09:13:40.000000000 +0200
+++ new/loki_setup/makeself/makeself.sh 2008-02-21 09:58:12.000000000 +0100
@@ -3,7 +3,7 @@
# Makeself version 2.1.x
# by Stephane Peter
#
-# $Id: makeself.sh,v 1.62 2006/07/26 00:37:02 megastep Exp $
+# $Id: makeself.sh,v 1.64 2008/01/04 23:52:14 megastep Exp $
#
# Utility to create self-extracting tar.gz archives.
# The resulting archive is a file holding the tar.gz archive with
@@ -62,8 +62,10 @@
# Added --encrypt for symmetric encryption through gpg (Eric Windisch)
# Added support for the digest command on Solaris 10 for MD5 checksums
# Check for available disk space before extracting to the target directory (Andreas Schweitzer)
+# Allow extraction to run asynchronously (patch by Peter Hatch)
+# Use file descriptors internally to avoid error messages (patch by Kay Tiong Khoo)
#
-# (C) 1998-2006 by St�phane Peter
+# (C) 1998-2008 by St�phane Peter
#
# This software is released under the terms of the GNU GPL version 2 and above
# Please read the license at http://www.gnu.org/copyleft/gpl.html
@@ -330,8 +332,9 @@
test -d "$archdir" || { echo "Error: $archdir does not exist."; rm -f "$tmpfile"; exit 1; }
echo About to compress $USIZE KB of data...
echo Adding files to archive named \"$archname\"...
-(cd "$archdir" && ( tar $TAR_ARGS - . | eval "$GZIP_CMD" ) >> "$tmpfile") || { echo Aborting: Archive directory not found or temporary file: "$tmpfile" could not be created.; rm -f "$tmpfile"; exit 1; }
-echo >> "$tmpfile" >&- # try to close the archive
+exec 3<> "$tmpfile"
+(cd "$archdir" && ( tar $TAR_ARGS - . | eval "$GZIP_CMD" >&3 ) ) || { echo Aborting: Archive directory not found or temporary file: "$tmpfile" could not be created.; exec 3>&-; rm -f "$tmpfile"; exit 1; }
+exec 3>&- # try to close the archive
fsize=`cat "$tmpfile" | wc -c | tr -d " "`
@@ -354,9 +357,9 @@
OLD_PATH=$PATH
PATH=${GUESS_MD5_PATH:-"$OLD_PATH:/bin:/usr/bin:/sbin:/usr/local/ssl/bin:/usr/local/bin:/opt/openssl/bin"}
MD5_ARG=""
- MD5_PATH=`exec 2>&-; which md5sum || type md5sum`
- test -x $MD5_PATH || MD5_PATH=`exec 2>&-; which md5 || type md5`
- test -x $MD5_PATH || MD5_PATH=`exec 2>&-; which digest || type digest`
+ MD5_PATH=`exec <&- 2>&-; which md5sum || type md5sum`
+ test -x $MD5_PATH || MD5_PATH=`exec <&- 2>&-; which md5 || type md5`
+ test -x $MD5_PATH || MD5_PATH=`exec <&- 2>&-; which digest || type digest`
PATH=$OLD_PATH
if test `basename $MD5_PATH` = digest; then
MD5_ARG="-a md5"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/loki_setup/makeself/README new/loki_setup/makeself/README
--- old/loki_setup/makeself/README 2005-11-08 10:26:14.000000000 +0100
+++ new/loki_setup/makeself/README 2008-02-21 09:58:11.000000000 +0100
@@ -2,9 +2,11 @@
-----------------------
+ #[1]Mobile/PDA
+
makeself - Make self-extractable archives on Unix
- [1]makeself.sh is a small shell script that generates a self-extractable
+ [2]makeself.sh is a small shell script that generates a self-extractable
tar.gz archive from a directory. The resulting file appears as a shell
script (many of those have a .run suffix), and can be launched as is. The
archive will then uncompress itself to a temporary directory and an optional
@@ -45,15 +47,16 @@
* UnicOS / Cray
If you successfully run Makeself and/or archives created with it on another
- system, then [2]let me know!
+ system, then [3]let me know!
Examples of publicly available archives made using makeself are :
- * Game patches and installers for [3]Id Software games like Quake 3 for
+ * Game patches and installers for [4]Id Software games like Quake 3 for
Linux or Return To Castle Wolfenstien ;
- * All game patches released by [4]Loki Software for the Linux version of
+ * All game patches released by [5]Loki Software for the Linux version of
popular games ;
- * The [5]nVidia drivers for Linux
- * The [6]Makeself distribution itself ;-)
+ * The [6]nVidia drivers for Linux
+ * The installer for the Linux version of [7]Google Earth
+ * The [8]Makeself distribution itself ;-)
* and countless others...
Important note for Apache users: By default, most Web servers will think
@@ -144,7 +147,7 @@
/home/joe/mysoft :
makeself.sh /home/joe/mysoft mysoft.sh "Joe's Nice Software Package" ./setup
- Here is also how I created the [7]makeself.run archive which contains the
+ Here is also how I created the [9]makeself.run archive which contains the
Makeself distribution :
makeself.sh --notemp makeself makeself.run "Makeself by Stephane Peter" echo
@@ -183,17 +186,17 @@
License
- Makeself is covered by the [8]GNU General Public License (GPL) version 2 and
- above. Archives generated by Makeself don't have to be placed under this
+ Makeself is covered by the [10]GNU General Public License (GPL) version 2
+ and above. Archives generated by Makeself don't have to be placed under this
license (although I encourage it ;-)), since the archive itself is merely
data for Makeself.
Download
- Get the latest official distribution [9]here (version 2.1.4).
+ Get the latest official distribution [11]here (version 2.1.4).
The latest development version can be grabbed from the Loki Setup CVS
- module, at [10]cvs.icculus.org.
+ module, at [12]cvs.icculus.org.
Version history
@@ -212,7 +215,7 @@
* v1.5.x: A lot of bugfixes, and many other patches, including automatic
verification through the usage of checksums. Version 1.5.5 was the
stable release for a long time, even though the Web page didn't get
- updated ;-). Makeself was also officially made a part of the [11]Loki
+ updated ;-). Makeself was also officially made a part of the [13]Loki
Setup installer, and its source is being maintained as part of this
package.
* v2.0: Complete internal rewrite of Makeself. The command-line parsing
@@ -221,7 +224,7 @@
ported and tested to a variety of Unix platforms.
* v2.0.1: First public release of the new 2.0 branch. Prior versions are
officially obsoleted. This release introduced the '--copy' argument that
- was introduced in response to a need for the [12]UT2K3 Linux installer.
+ was introduced in response to a need for the [14]UT2K3 Linux installer.
* v2.1.0: Big change : Makeself can now support multiple embedded
tarballs, each stored separately with their own checksums. An existing
archive can be updated with the --append flag. Checksums are also better
@@ -242,53 +245,63 @@
wrong permissions for the directory containing the files. Avoid some
race conditions, Unset the $CDPATH variable to avoid problems if it is
set. Better handling of dot files in the archive directory.
+ * v2.1.5: Made the md5sum detection consistent with the header code. Check
+ for the presence of the archive directory. Added --encrypt for symmetric
+ encryption through gpg (Eric Windisch). Added support for the digest
+ command on Solaris 10 for MD5 checksums. Check for available disk space
+ before extracting to the target directory (Andreas Schweitzer). Allow
+ extraction to run asynchronously (patch by Peter Hatch). Use file
+ descriptors internally to avoid error messages (patch by Kay Tiong
+ Khoo).
Links
- * Check out the [13]"Loki setup" installer, used to install many Linux
+ * Check out the [15]"Loki setup" installer, used to install many Linux
games and other applications, and of which I am the co-author. Since the
demise of Loki, I am now the official maintainer of the project, and it
- is now being hosted on [14]icculus.org, as well as a bunch of other
+ is now being hosted on [16]icculus.org, as well as a bunch of other
ex-Loki projects (and a lot of other good stuff!).
* Bjarni R. Einarsson also wrote the setup.sh installer script, inspired
- by Makeself. [15]Check it out !
+ by Makeself. [17]Check it out !
Contact
- This script was written by [16]Stéphane Peter (megastep at megastep.org) I
+ This script was written by [18]Stéphane Peter (megastep at megastep.org) I
welcome any enhancements and suggestions.
Contributions were included from John C. Quillan, Bjarni R. Einarsson,
Francois Petitjean, and Ryan C. Gordon, thanks to them! If you think I
forgot your name, don't hesitate to contact me.
- icculus.org also has a [17]Bugzilla server available that allows bug reports
+ icculus.org also has a [19]Bugzilla server available that allows bug reports
to be submitted for Loki setup, and since Makeself is a part of Loki setup,
you can submit bug reports from there!
_________________________________________________________________
- [18]Stéphane Peter
+ [20]Stéphane Peter
- Last modified: Thu Jun 2 15:32:28 PDT 2005
+ Last modified: Fri Jan 4 15:51:05 PST 2008
References
- 1. http://www.megastep.org/makeself/makeself.run
- 2. mailto:megastep@REMOVEME.megastep.org
- 3. http://www.idsoftware.com/
- 4. http://www.lokigames.com/products/myth2/updates.php3
- 5. http://www.nvidia.com/
- 6. http://www.megastep.org/makeself/makeself.run
- 7. http://www.megastep.org/makeself/makeself.run
- 8. http://www.gnu.org/copyleft/gpl.html
- 9. http://www.megastep.org/makeself/makeself-2.1.4.run
- 10. http://cvs.icculus.org/
- 11. http://www.icculus.org/loki_setup/
- 12. http://www.unrealtournament2003.com/
+ 1. http://mowser.com/web/megastep.org/makeself/
+ 2. http://www.megastep.org/makeself/makeself.run
+ 3. mailto:megastep@REMOVEME.megastep.org
+ 4. http://www.idsoftware.com/
+ 5. http://www.lokigames.com/products/myth2/updates.php3
+ 6. http://www.nvidia.com/
+ 7. http://earth.google.com/
+ 8. http://www.megastep.org/makeself/makeself.run
+ 9. http://www.megastep.org/makeself/makeself.run
+ 10. http://www.gnu.org/copyleft/gpl.html
+ 11. http://www.megastep.org/makeself/makeself-2.1.4.run
+ 12. http://cvs.icculus.org/
13. http://www.icculus.org/loki_setup/
- 14. http://www.icculus.org/
- 15. http://www.mmedia.is/~bre/programs/setup.sh/
- 16. mailto:megastep@@megastep.org
- 17. https://bugzilla.icculus.org/
- 18. mailto:megastep@megastep.org
+ 14. http://www.unrealtournament2003.com/
+ 15. http://www.icculus.org/loki_setup/
+ 16. http://www.icculus.org/
+ 17. http://www.mmedia.is/~bre/programs/setup.sh/
+ 18. mailto:megastep@@megastep.org
+ 19. https://bugzilla.icculus.org/
+ 20. mailto:megastep@@megastep.org
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/loki_setup/README.xml new/loki_setup/README.xml
--- old/loki_setup/README.xml 2007-04-04 16:23:33.000000000 +0200
+++ new/loki_setup/README.xml 2008-02-21 09:57:53.000000000 +0100
@@ -436,7 +436,7 @@
'require' elements have to be at the top level (right under the root 'install' element), and
are parsed in sequential order. Installation will abort if any of the specified commands return
-a non-nil value.
+a non-nil value, unless the 'warn' attribute is set.
This element takes either of the following mandatory attributes :
@@ -465,6 +465,9 @@
version [only for feature attribute] the minimum integer version number
required for the specified feature.
+ warn If set to 'yes', then the user will only be displayed the message as a warning and the
+ installation may continue regardless.
+
The text specified in the element will be displayed to the user if the
condition of the command attribute fails. It has no meaning for the feature
attribute.
++++++ loki-uninstall.desktop ++++++
--- loki_setup/loki-uninstall.desktop 2004-12-15 13:08:59.000000000 +0100
+++ /mounts/work_src_done/STABLE/loki_setup/loki-uninstall.desktop 2008-02-21 09:45:59.000000000 +0100
@@ -5,4 +5,4 @@
Name=Loki Uninstall
Comment=An uninstall program for games that were installed using Loki Setup
Exec=loki-uninstall
-Categories=System;SystemSetup;
+Categories=System;PackageManager;
++++++ loki-update.desktop ++++++
--- loki_setup/loki-update.desktop 2004-12-15 13:09:04.000000000 +0100
+++ /mounts/work_src_done/STABLE/loki_setup/loki-update.desktop 2008-02-21 09:46:04.000000000 +0100
@@ -5,4 +5,4 @@
Name=Loki Update
Comment=An updater program for games that were installed using Loki Setup
Exec=loki-update
-Categories=System;SystemSetup;
+Categories=System;PackageManager;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org