--- Begin Message ---
Package: cdebootstrap
Version: 0.3.15
Severity: wishlist
Tags: patch
Subject: cdebootstrap: [PATCH] - Optional Release.gpg & Alternate main catagory.
Package: cdebootstrap
Version: 0.3.15
Severity: wishlist
Please integrate the attached patch to enable the use of cdebootstrap
with a 'non-standard' company archive that does not have a 'Release.gpg'
file and just two catagories, 'debian' and 'non-debian'.
The patch provides two new features:
- A new comand line switch, --gpg-optional, that makes the 'Release.gpg'
file optional. If it is not present, there will be a warning, no
fatal exit.
- A new commandline switch, --main-catagory=NAME, which makes the name
'main' just the default and use NAME if provided.
Thanks,
Matthijs Melchior.
-- System Information:
Debian Release: 4.0
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (1,
'experimental')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.17-2-686
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Versions of packages cdebootstrap depends on:
ii libc6 2.3.6.ds1-7 GNU C Library: Shared libraries
ii libdebian-installer-extra4 0.45 Library of some extra debian-insta
ii libdebian-installer4 0.45 Library of common debian-installer
ii wget 1.10.2-2 retrieves files from the web
cdebootstrap recommends no packages.
-- no debconf information
-- System Information:
Debian Release: 4.0
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (1,
'experimental')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.17-2-686
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Versions of packages cdebootstrap depends on:
ii libc6 2.3.6.ds1-7 GNU C Library: Shared libraries
ii libdebian-installer-extra4 0.45 Library of some extra debian-insta
ii libdebian-installer4 0.45 Library of common debian-installer
ii wget 1.10.2-2 retrieves files from the web
cdebootstrap recommends no packages.
-- no debconf information
diff -r -u ../cdebootstrap-0.3.15/src/check.c src/check.c
--- ../cdebootstrap-0.3.15/src/check.c 2006-08-24 23:32:21.000000000 +0200
+++ src/check.c 2006-11-05 20:01:46.000000000 +0100
@@ -35,6 +35,8 @@
#include "frontend.h"
#include "suite.h"
+extern char *main_catagory;
+
int check_deb (const char *target, di_package *p, const char *message)
{
return check_md5 (target, p->md5sum, message);
@@ -70,7 +72,7 @@
di_rstring key;
snprintf (buf_name, sizeof (buf_name), "Packages%s", ext);
- snprintf (buf_file, sizeof (buf_file), "main/binary-%s/Packages%s", arch, ext);
+ snprintf (buf_file, sizeof (buf_file), "%s/binary-%s/Packages%s", main_catagory, arch, ext);
key.string = (char *) buf_file;
key.size = strlen (buf_file);
item = di_hash_table_lookup (rel->md5sum, &key);
diff -r -u ../cdebootstrap-0.3.15/src/download.c src/download.c
--- ../cdebootstrap-0.3.15/src/download.c 2006-10-20 17:26:44.000000000 +0200
+++ src/download.c 2006-11-05 19:40:36.000000000 +0100
@@ -38,6 +38,8 @@
#include "packages.h"
#include "prepare.h"
+extern bool gpg_optional;
+
int decompress_file (const char *file, const char *extension)
{
char buf[1024];
@@ -61,8 +63,12 @@
build_indices_root ("Release.gpg", source, sizeof (source), target, sizeof (target));
if (download_file (source, target, "Release.gpg"))
- log_message (LOG_MESSAGE_ERROR_DOWNLOAD, "Release.gpg");
-
+ {
+ if (gpg_optional)
+ log_message (LOG_MESSAGE_WARNING_DOWNLOAD, "Release.gpg");
+ else
+ log_message (LOG_MESSAGE_ERROR_DOWNLOAD, "Release.gpg");
+ }
build_indices_root ("Release", source, sizeof (source), target, sizeof (target));
if (download_file (source, target, "Release"))
diff -r -u ../cdebootstrap-0.3.15/src/frontend/debian-installer/main.c src/frontend/debian-installer/main.c
--- ../cdebootstrap-0.3.15/src/frontend/debian-installer/main.c 2006-10-20 17:26:44.000000000 +0200
+++ src/frontend/debian-installer/main.c 2006-11-05 20:04:57.000000000 +0100
@@ -35,6 +35,10 @@
#include <libgen.h>
#include <stdio.h>
+bool gpg_optional = false;
+char *main_catagory = "main";
+
+
struct debconfclient *client;
int frontend_download (const char *source, const char *target)
diff -r -u ../cdebootstrap-0.3.15/src/frontend/standalone/main.c src/frontend/standalone/main.c
--- ../cdebootstrap-0.3.15/src/frontend/standalone/main.c 2006-10-20 17:39:21.000000000 +0200
+++ src/frontend/standalone/main.c 2006-11-05 20:00:39.000000000 +0100
@@ -50,6 +50,9 @@
int quiet = 0;
int verbose = 0;
+bool gpg_optional = false;
+char *main_catagory = "main";
+
#ifdef DEB_ARCH
char *const default_arch = DEB_ARCH;
#endif
@@ -73,8 +76,10 @@
{"download-only", no_argument, 0, 'd'},
{"flavour", required_argument, 0, 'f'},
{"variant", required_argument, 0, GETOPT_COMPAT_VARIANT},
+ {"gpg-optional", no_argument, 0, 'g'},
{"helperdir", required_argument, 0, 'H'},
{"include", required_argument, 0, 'i'},
+ {"main-catagory", required_argument, 0, 'm'},
{"quiet", no_argument, 0, 'q'},
{"suite-config", required_argument, 0, 's'},
{"verbose", no_argument, 0, 'v'},
@@ -133,7 +138,7 @@
if (!out)
return 1;
- if (!fprintf (out, "deb %s %s main\n", mirror, suite_name))
+ if (!fprintf (out, "deb %s %s %s\n", mirror, suite_name, main_catagory))
return 1;
if (fclose (out))
@@ -161,8 +166,12 @@
--debug enable debug\n\
-d, --download-only download packages, but don't perform installation\n\
-f, --flavour=FLAVOUR select the flavour to use\n\
+ -g, --gpg-optional 'Release.gpg' file is optional\n\
-H, --helperdir=DIR set the helper directory\n\
+ -i, --include=PKG include this package\n\
+ -m, --main-catagory=NAME use thia name as the main catagory name\n\
-q, --quiet be quiet\n\
+ -s, --suite-config=NAME use this suite's config info\n\
-v, --verbose be verbose\n\
-h, --help display this help and exit\n\
--version output version information and exit\n\
@@ -200,7 +209,7 @@
program_name = argv[0];
- while ((c = getopt_long (argc, argv, "a:c:df:hH:i:s:qv", long_opts, NULL)) != -1)
+ while ((c = getopt_long (argc, argv, "a:c:df:ghH:i:m:s:qv", long_opts, NULL)) != -1)
{
switch (c)
{
@@ -218,6 +227,9 @@
case 'f':
flavour = optarg;
break;
+ case 'g':
+ gpg_optional = true;
+ break;
case 'h':
usage (EXIT_SUCCESS);
break;
@@ -242,6 +254,9 @@
include[include_len++] = strdup (optarg);
}
break;
+ case 'm':
+ main_catagory = optarg;
+ break;
case 's':
suite_config = optarg;
break;
diff -r -u ../cdebootstrap-0.3.15/src/install.c src/install.c
--- ../cdebootstrap-0.3.15/src/install.c 2006-08-24 21:40:20.000000000 +0200
+++ src/install.c 2006-11-05 19:56:05.000000000 +0100
@@ -240,7 +240,7 @@
if (!out)
return 1;
- if (!fputs ("deb bootstrap: . main\n", out))
+ if (fprintf (out, "deb bootstrap: . %s\n", main_catagory) < 0)
return 1;
if (fclose (out))
diff -r -u ../cdebootstrap-0.3.15/src/log.c src/log.c
--- ../cdebootstrap-0.3.15/src/log.c 2005-01-14 22:34:27.000000000 +0100
+++ src/log.c 2006-11-05 19:09:29.000000000 +0100
@@ -62,6 +62,11 @@
"Couldn't parse %s!",
DI_LOG_LEVEL_ERROR,
},
+ [LOG_MESSAGE_WARNING_DOWNLOAD] =
+ {
+ "Couldn't download %s!",
+ DI_LOG_LEVEL_WARNING,
+ },
[LOG_MESSAGE_INFO_DOWNLOAD_RETRIEVE] =
{
"Retrieving %s",
--- End Message ---