Mailinglist Archive: opensuse-commit (875 mails)

< Previous Next >
commit linuxrc
  • From: root@xxxxxxxxxxxxxxx (h_root)
  • Date: Fri, 25 Jul 2008 02:19:00 +0200
  • Message-id: <20080725001901.50A5867817B@xxxxxxxxxxxxxxx>

Hello community,

here is the log from the commit of package linuxrc
checked in at Fri Jul 25 02:19:00 CEST 2008.


--------
--- linuxrc/linuxrc.changes 2008-07-21 17:54:33.000000000 +0200
+++ linuxrc/linuxrc.changes 2008-07-24 15:52:15.000000000 +0200
@@ -1,0 +2,6 @@
+Thu Jul 24 15:52:12 CEST 2008 - snwint@xxxxxxx
+
+- 'extend' can now add and remove inst-sys parts
+- added 'sax2' option: use sax2 for inst-sys X11 config
+
+-------------------------------------------------------------------



Old:
----
linuxrc-3.2.1.tar.bz2

New:
----
linuxrc-3.2.2.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ linuxrc.spec ++++++
--- /var/tmp/diff_new_pack.v32171/_old 2008-07-25 02:17:03.000000000 +0200
+++ /var/tmp/diff_new_pack.v32171/_new 2008-07-25 02:17:03.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package linuxrc (Version 3.2.1)
+# spec file for package linuxrc (Version 3.2.2)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -17,9 +17,9 @@
Group: System/Boot
AutoReqProv: on
Summary: SUSE Installation Program
-Version: 3.2.1
+Version: 3.2.2
Release: 1
-Source: linuxrc-3.2.1.tar.bz2
+Source: linuxrc-3.2.2.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build

%description
@@ -54,6 +54,9 @@
%doc linuxrc.html

%changelog
+* Thu Jul 24 2008 snwint@xxxxxxx
+- 'extend' can now add and remove inst-sys parts
+- added 'sax2' option: use sax2 for inst-sys X11 config
* Mon Jul 21 2008 snwint@xxxxxxx
- there is a real ppc64 now
* Tue Jul 08 2008 snwint@xxxxxxx

++++++ linuxrc-3.2.1.tar.bz2 -> linuxrc-3.2.2.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/linuxrc-3.2.1/auto2.c new/linuxrc-3.2.2/auto2.c
--- old/linuxrc-3.2.1/auto2.c 2008-07-03 18:59:43.000000000 +0200
+++ new/linuxrc-3.2.2/auto2.c 2008-07-23 16:06:17.000000000 +0200
@@ -1,3 +1,5 @@
+#define _GNU_SOURCE /* getline */
+
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
@@ -1044,14 +1046,14 @@
}


-int auto2_extend_root(char *file)
+int auto2_add_extension(char *extension)
{
int err = 0;
char *argv[3] = { };
char *s;
slist_t *sl;

- fprintf(stderr, "instsys extend: %s\n", file);
+ fprintf(stderr, "instsys add extension: %s\n", extension);

str_copy(&config.mountpoint.instdata, new_mountpoint());
str_copy(&config.mountpoint.instsys, new_mountpoint());
@@ -1079,7 +1081,7 @@
s = url_instsys_base(config.url.instsys->path);
if(!s) return 3;

- strprintf(&config.url.instsys->path, "%s/%s", s, file);
+ strprintf(&config.url.instsys->path, "%s/%s", s, extension);

if(config.url.instsys->scheme == inst_rel) {
err = url_find_repo(config.url.install, config.mountpoint.instdata);
@@ -1113,3 +1115,48 @@
}


+int auto2_remove_extension(char *extension)
+{
+ int err = 0;
+ char *s, *prefix, *path = NULL, *lbuf = NULL;
+ size_t lbuf_size = 0;
+ FILE *f, *w;
+ slist_t *sl0 = NULL, *sl;
+
+ fprintf(stderr, "instsys remove extension: %s\n", extension);
+
+ s = url_instsys_base(config.url.instsys->path);
+ if(!s) return 3;
+
+ strprintf(&path, "%s/%s", s, extension);
+
+ url_build_instsys_list(path, 0);
+
+ if((f = fopen("/etc/instsys.parts", "r"))) {
+ if((w = fopen("/etc/instsys.parts.tmp", "w"))) {
+ while(getline(&lbuf, &lbuf_size, f) > 0) {
+ sl0 = slist_split(' ', lbuf);
+ prefix = "";
+ if(*sl0->key != '#') {
+ if(slist_getentry(config.url.instsys_list, sl0->key)) {
+ prefix = "# ";
+ for(sl = sl0->next; sl; sl = sl->next) {
+ util_umount(sl->key);
+ }
+ }
+ }
+ fprintf(w, "%s%s", prefix, lbuf);
+ }
+ fclose(w);
+ rename("/etc/instsys.parts.tmp", "/etc/instsys.parts");
+ }
+ fclose(f);
+ }
+
+ slist_free(sl0);
+ free(path);
+
+ return err;
+}
+
+
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/linuxrc-3.2.1/auto2.h new/linuxrc-3.2.2/auto2.h
--- old/linuxrc-3.2.1/auto2.h 2008-07-03 18:59:43.000000000 +0200
+++ new/linuxrc-3.2.2/auto2.h 2008-07-23 15:40:21.000000000 +0200
@@ -6,5 +6,6 @@
char *auto2_serial_console(void);
void pcmcia_socket_startup(void);
void auto2_driverupdate(url_t *url);
-int auto2_extend_root(char *file);
+int auto2_add_extension(char *extension);
+int auto2_remove_extension(char *extension);
void load_drivers(hd_data_t *hd_data, hd_hw_item_t hw_item);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/linuxrc-3.2.1/Changelog new/linuxrc-3.2.2/Changelog
--- old/linuxrc-3.2.1/Changelog 2008-07-21 17:54:16.000000000 +0200
+++ new/linuxrc-3.2.2/Changelog 2008-07-24 15:51:48.000000000 +0200
@@ -1,3 +1,7 @@
+23/7/2008: v3.2.2
+ - 'extend' can now add and remove inst-sys parts
+ - added 'sax2' option: use sax2 for inst-sys X11 config
+
21/7/2008: v3.2.1
- there is a real ppc64 now

diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/linuxrc-3.2.1/file.c new/linuxrc-3.2.2/file.c
--- old/linuxrc-3.2.1/file.c 2008-07-08 10:43:06.000000000 +0200
+++ new/linuxrc-3.2.2/file.c 2008-07-24 12:26:14.000000000 +0200
@@ -294,6 +294,8 @@
{ key_ipv4only, "ipv4only", kf_cfg + kf_cmd + kf_cmd_early },
{ key_ipv6, "ipv6", kf_cfg + kf_cmd + kf_cmd_early },
{ key_ipv6only, "ipv6only", kf_cfg + kf_cmd + kf_cmd_early },
+ { key_usesax2, "UseSax2", kf_cfg + kf_cmd },
+ { key_usesax2, "Sax2", kf_cfg + kf_cmd },
};

static struct {
@@ -1501,6 +1503,10 @@
}
break;

+ case key_usesax2:
+ if(f->is.numeric) config.usesax2 = f->nvalue;
+ break;
+
default:
break;
}
@@ -1806,6 +1812,7 @@
file_write_num(f, key_startshell, config.startshell);
file_write_num(f, key_y2gdb, config.y2gdb);
file_write_num(f, key_kexec_reboot, config.kexec_reboot);
+ file_write_num(f, key_usesax2, config.usesax2);

if(
config.rootpassword &&
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/linuxrc-3.2.1/file.h new/linuxrc-3.2.2/file.h
--- old/linuxrc-3.2.1/file.h 2008-07-03 18:59:43.000000000 +0200
+++ new/linuxrc-3.2.2/file.h 2008-07-24 12:24:03.000000000 +0200
@@ -49,7 +49,7 @@
key_sha1, key_insecure, key_kexec, key_nisdomain, key_nomodprobe, key_device,
key_nomdns, key_yepurl, key_yepcert, key_mediacheck, key_y2gdb, key_squash,
key_kexec_reboot, key_devbyid, key_braille, key_nfsopts, key_ipv4,
key_ipv4only,
- key_ipv6, key_ipv6only
+ key_ipv6, key_ipv6only, key_usesax2
} file_key_t;

typedef enum {
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/linuxrc-3.2.1/global.h new/linuxrc-3.2.2/global.h
--- old/linuxrc-3.2.1/global.h 2008-07-08 10:43:36.000000000 +0200
+++ new/linuxrc-3.2.2/global.h 2008-07-24 12:26:50.000000000 +0200
@@ -337,6 +337,7 @@
unsigned squash:1; /* convert cpio/rpm to squashfs after download
*/
unsigned keepinstsysconfig:1; /* don't reload instsys config data */
unsigned device_by_id:1; /* use /dev/disk/by-id device names */
+ unsigned usesax2:1; /* just passed to yast */
unsigned withiscsi; /* iSCSI parameter */
unsigned restart_method; /* 0: start new root fs, 1: reboot, 2: halt, 3:
kexec */
struct {
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/linuxrc-3.2.1/linuxrc.c new/linuxrc-3.2.2/linuxrc.c
--- old/linuxrc-3.2.1/linuxrc.c 2008-07-03 18:59:43.000000000 +0200
+++ new/linuxrc-3.2.2/linuxrc.c 2008-07-23 16:19:04.000000000 +0200
@@ -1302,10 +1302,11 @@
void lxrc_usr1(int signum)
{
static unsigned extend_cnt = 0;
- int i, err;
- char *s, *t, buf[1024];
+ int i, err = 0;
+ char *s, buf[1024];
FILE *f;
- slist_t *sl;
+ slist_t *sl = NULL, *sl_task = NULL;
+ char task = 0, *ext = NULL;

if(!rename("/tmp/extend.job", s = new_download())) {
*buf = 0;
@@ -1313,15 +1314,21 @@
if(f) {
if(!fgets(buf, sizeof buf, f)) *buf = 0;
if(*buf) {
- t = buf + strlen(buf) - 1;
- while(t > buf && isspace(*t)) *t-- = 0;
+ sl_task = slist_split(' ', buf);
+ task = *sl_task->key;
+ if(sl_task->next) ext = sl_task->next->key;
}
fclose(f);
}
unlink(s);
- if(*buf) {
- sl = slist_getentry(config.extend_list, buf);
- if(!sl) slist_append_str(&config.extend_list, buf);
+ if((task == 'a' || task == 'r') && ext) {
+ sl = slist_getentry(config.extend_list, ext);
+ if(task == 'a' && !sl) {
+ slist_append_str(&config.extend_list, ext);
+ }
+ else if(task == 'r' && sl) {
+ str_copy(&sl->key, NULL);
+ }
if(!fork()) {
for(i = 0; i < 256; i++) close(i);
open("/tmp/extend.log", O_RDWR | O_CREAT | O_TRUNC, 0644);
@@ -1334,12 +1341,19 @@

config.keepinstsysconfig = 1;

- if(sl) {
- fprintf(stderr, "instsys extend: %s\n%s: already integrated\n", buf,
buf);
+ if(task == 'a' && sl) {
+ fprintf(stderr, "instsys extend: add %s\n%s: already added\n", ext,
ext);
+ err = 0;
+ }
+ else if(task == 'r' && !sl) {
+ fprintf(stderr, "instsys extend: remove %s\n%s: not there\n", ext,
ext);
err = 0;
}
- else {
- err = auto2_extend_root(buf);
+ else if(task == 'a') {
+ err = auto2_add_extension(ext);
+ }
+ else if(task == 'r') {
+ err = auto2_remove_extension(ext);
}
f = fopen("/tmp/extend.result", "w");
if(f) fprintf(f, "%d\n", err);
@@ -1349,6 +1363,8 @@
}
}

+ slist_free(sl_task);
+
extend_cnt += 10;

signal(SIGUSR1, lxrc_usr1);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/linuxrc-3.2.1/url.c new/linuxrc-3.2.2/url.c
--- old/linuxrc-3.2.1/url.c 2008-07-08 10:30:24.000000000 +0200
+++ new/linuxrc-3.2.2/url.c 2008-07-23 15:38:39.000000000 +0200
@@ -1,4 +1,4 @@
-#define _GNU_SOURCE /* strnlen */
+#define _GNU_SOURCE /* strnlen, getline */

/*

@@ -57,7 +57,6 @@
static int url_setup_interface(url_t *url);
static void url_parse_instsys_config(char *file);
static slist_t *url_instsys_lookup(char *key, slist_t **sl_ll);
-static void url_build_instsys_list(char *instsys);
static char *url_instsys_config(char *path);
static char *url_config_get_path(char *entry);
static slist_t *url_config_get_file_list(char *entry);
@@ -1649,7 +1648,7 @@
free(file_name);
}

- url_build_instsys_list(config.url.instsys->path);
+ url_build_instsys_list(config.url.instsys->path, 1);

if(url->is.mountable) {
for(sl = config.url.instsys_list; sl; sl = sl->next) {
@@ -1677,11 +1676,6 @@
t = url_config_get_path(s);
file_list = url_config_get_file_list(s);

- if((f = fopen("/etc/instsys.parts", "a"))) {
- fprintf(f, "%s\n", s);
- fclose(f);
- }
-
old_file_list = url->file_list;
url->file_list = file_list;

@@ -1690,6 +1684,11 @@
// sl->value = strdup(parts > 1 ? new_mountpoint() :
config.mountpoint.instsys);
sl->value = strdup(new_mountpoint());

+ if((f = fopen("/etc/instsys.parts", "a"))) {
+ fprintf(f, "%s %s\n", s, sl->value);
+ fclose(f);
+ }
+
if(
url->is.mountable &&
(util_is_mountable(buf) || !util_check_exist(buf)) &&
@@ -1824,7 +1823,7 @@

s = url_path + strlen(url->path);
if(*s == '/') s++;
- url_build_instsys_list(s);
+ url_build_instsys_list(s, 1);

ok = 1;

@@ -1857,11 +1856,6 @@
t = url_config_get_path(s);
file_list = url_config_get_file_list(s);

- if((f = fopen("/etc/instsys.parts", "a"))) {
- fprintf(f, "%s\n", s);
- fclose(f);
- }
-
old_file_list = url->file_list;
url->file_list = file_list;

@@ -1870,6 +1864,11 @@
// sl->value = strdup(parts > 1 ? new_mountpoint() :
config.mountpoint.instsys);
sl->value = strdup(new_mountpoint());

+ if((f = fopen("/etc/instsys.parts", "a"))) {
+ fprintf(f, "%s %s\n", s, sl->value);
+ fclose(f);
+ }
+
if(
url->is.mountable &&
(util_is_mountable(buf) || !util_check_exist(buf)) &&
@@ -2201,11 +2200,11 @@
}


-void url_build_instsys_list(char *image)
+void url_build_instsys_list(char *image, int read_list)
{
- char *s, *base = NULL, *name = NULL, *buf = NULL, parts_buf[0x1000];
+ char *s, *base = NULL, *name = NULL, *buf = NULL, *lbuf = NULL;
slist_t *sl, *sl1, *sl2, *sl_ll = NULL, *list = NULL, *parts = NULL;
- int i;
+ size_t lbuf_size = 0;
FILE *f;

if(!image) return;
@@ -2248,11 +2247,14 @@
strprintf(&sl->key, "%s%s%s", s == sl->key ? "" : "?", base, s);
}

- if((f = fopen("/etc/instsys.parts", "r"))) {
- i = fread(parts_buf, 1, sizeof parts_buf - 1, f);
- parts_buf[i > 0 ? i : 0] = 0;
+ if(read_list && (f = fopen("/etc/instsys.parts", "r"))) {
+ while(getline(&lbuf, &lbuf_size, f) > 0) {
+ sl = slist_split(' ', lbuf);
+ // fprintf(stderr, ">%s< >%s<\n", sl->key, lbuf);
+ if(*sl->key != '#') slist_append_str(&parts, sl->key);
+ sl = slist_free(sl);
+ }
fclose(f);
- parts = slist_split('\n', parts_buf);
}

list = slist_free(list);
@@ -2274,6 +2276,7 @@
}
}

+ free(lbuf);
free(base);
free(name);
free(buf);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/linuxrc-3.2.1/url.h new/linuxrc-3.2.2/url.h
--- old/linuxrc-3.2.1/url.h 2008-07-03 18:59:43.000000000 +0200
+++ new/linuxrc-3.2.2/url.h 2008-07-23 15:38:12.000000000 +0200
@@ -54,4 +54,4 @@
int url_find_instsys(url_t *url, char *dir);
char *url_print(url_t *url, int format);
char *url_instsys_base(char *path);
-
+void url_build_instsys_list(char *instsys, int read_list);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/linuxrc-3.2.1/util.c new/linuxrc-3.2.2/util.c
--- old/linuxrc-3.2.1/util.c 2008-07-17 12:57:03.000000000 +0200
+++ new/linuxrc-3.2.2/util.c 2008-07-24 10:15:39.000000000 +0200
@@ -3104,18 +3104,38 @@

int util_extend_main(int argc, char **argv)
{
- FILE *f;
+ FILE *f, *w;
int ready, err = 0;
char buf[1024];
+ char task = 'a';
+ struct { unsigned verbose:1; unsigned help:1; } opt = {};

argv++; argc--;

- if(!argc) return fprintf(stderr, "usage: extend extension_name\n"), 1;
+ while(argc) {
+ if(!strcmp(*argv, "-r")) {
+ task = 'r';
+ }
+ else if(!strcmp(*argv, "-h") || !strcmp(*argv, "--help")) {
+ opt.help = 1;
+ }
+ else if(!strcmp(*argv, "-v")) {
+ opt.verbose = 1;
+ }
+ else {
+ break;
+ }
+ argv++; argc--;
+ }
+
+ if(!argc || opt.help) {
+ return fprintf(stderr, "Usage: extend [-v] [-r] extension\nAdd or remove
inst-sys extension.\n"), 1;
+ }

unlink("/tmp/extend.result");
f = fopen("/tmp/extend.job", "w");
if(f) {
- fprintf(f, "%s\n", *argv);
+ fprintf(f, "%c %s\n", task, *argv);
fclose(f);

if(util_check_exist("/usr/src/packages") || getuid()) config.test = 1;
@@ -3142,7 +3162,12 @@

f = fopen("/tmp/extend.log", "r");
if(f) {
- while(fgets(buf, sizeof buf, f)) printf("%s", buf);
+ w = fopen("/var/log/extend", "a");
+ while(fgets(buf, sizeof buf, f)) {
+ if(opt.verbose) printf("%s", buf);
+ if(w) fprintf(w, "%s", buf);
+ }
+ if(w) fclose(w);
fclose(f);
}

@@ -3295,7 +3320,7 @@
tmp_dev = dev;
}
fprintf(stderr, "%s -> %s: converting to squashfs\n", dev, tmp_dev);
- strprintf(&buf, "mksquashfs %s %s -noappend >%s", dir, tmp_dev,
config.debug ? "&2" : "/dev/null");
+ strprintf(&buf, "mksquashfs %s %s -noappend -no-progress >%s", dir,
tmp_dev, config.debug ? "&2" : "/dev/null");
err = system(buf);
if(err && config.run_as_linuxrc) fprintf(stderr, "mount: mksquashfs
failed\n");
if(!err) {
@@ -3320,6 +3345,10 @@
return -1;
}
if(config.run_as_linuxrc) fprintf(stderr, "mount: using %s\n", loop_dev);
+
+ // remove downloaded files immediately (so we don't have to cleanup after
umount)
+ if(!strncmp(dev, config.download.base, strlen(config.download.base)))
unlink(dev);
+
dev = loop_dev;
}

diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/linuxrc-3.2.1/VERSION new/linuxrc-3.2.2/VERSION
--- old/linuxrc-3.2.1/VERSION 2008-07-17 12:57:41.000000000 +0200
+++ new/linuxrc-3.2.2/VERSION 2008-07-23 12:09:32.000000000 +0200
@@ -1 +1 @@
-3.2.1
+3.2.2


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-commit+help@xxxxxxxxxxxx

< Previous Next >
This Thread