Bug#1029342: Fwd: [request-tracker-maintainers] Bug#1026669: request-tracker5: FTBFS: can't locate java: No such file or directory

2023-01-25 Thread bert schulze
Hi Lucas, Niko,

Niko Tyni (Sat, Jan 21, 2023 at 02:41:28PM +):
> Control: clone -1 -2
> Control: retitle -2 jexec: can't locate java: No such file or directory
> Control: reassign -2 openjdk-17-jre-headless 17.0.5+8-2
>
> On Wed, Jan 18, 2023 at 04:10:02AM +0100, Ángel wrote:
> > The error here is that ./debian/build-final-ckeditor.sh fails with
> > « can't locate java: No such file or directory »
> >
> > This script is actually calling ckbuilder ( jexec /usr/bin/ckbuilder --
> > build ... )


  please just use "java -jar /usr/bin/ckbuilder" instead, details below.


> >
> > However, the package correctly lists ckbuilder as a build-dep, and
> > ckbuilder itself depends on java ( default-jre | java{7..11}-runtime)
>
> > > update-alternatives: using /usr/lib/jvm/java-17-openjdk-
> > > amd64/lib/jexec to provide /usr/bin/jexec (jexec) in auto mode
>
> Yeah, it looks to me like jexec from openjdk-17-jre-headless
> is just broken on sid?

Yes and it somewhat has ever been broken with regard to the way it is
being shipped within Debian.

The sole purpose for jexec is to use readlink(3) to find the correct
path of bin/java and execute a jar with a certian version of java.
(and to enable double click executions of jar files by binfmt magic).

This of course only works by invoking jexec with an absolute path,
e.g. running "/usr/bin/jexec /usr/bin/ckbuilder" should fix this.


All JDK source packages ship with patches to jexec to somehow
"emulate" this behaviour, which looks less than ideal to me. ;)

  openjdk-8-8u352-ga/debian/patches/jexec.diff.in
  openjdk-11-11.0.17+8/debian/patches/jexec.diff
  openjdk-17-17.0.5+8/debian/patches/jexec.diff


Open JDK 8 (pass)
---
readlink -sf /etc/alternatives/jexec
 => /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jexec

$ strace -e execve jexec 2>&1 |grep -E '(jexec|java)'

execve("/usr/bin/jexec", ["jexec"], 0x7ffd7c115b50 /* 59 vars */) = 0
execve("/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java",
  ["/usr/lib/jvm/java-8-openjdk-amd6"..., "-jar"], 0x7ffd657e2a18 /* 59
vars */) = 0

Open JDK 11 (pass)
---
readlink -sf /etc/alternatives/jexec
 => /usr/lib/jvm/java-11-openjdk-amd64/lib/jexec

$ strace -e execve jexec 2>&1 |grep -E '(jexec|java)'

execve("/usr/bin/jexec", ["jexec"], 0x7ffed43a0f20 /* 59 vars */) = 0
execve("/usr/lib/jvm/java-11-openjdk-amd64/bin/java",
  ["/usr/lib/jvm/java-11-openjdk-amd"..., "-jar"], 0x7ffdc7e44058 /* 59
vars */) = 0

Open JDK 17 (fail)
---
readlink -f /bin/jexec
 => /usr/lib/jvm/java-17-openjdk-amd64/lib/jexec

$ strace -e execve jexec 2>&1 |grep -E '(jexec|java)'

execve("/usr/bin/jexec", ["jexec"], 0x7fffb95f2cc0 /* 59 vars */) = 0
can't locate java: No such file or directory


To make things complicated further: what about users deciding to use
antoher JDK e.g. the (former Adoptium) Eclipse Temurin builds?
(everyone has to remember the "portability" joke right here:)


Temurin JDK 8 (fail)
---
readlink -sf /etc/alternatives/jexec
 => /usr/lib/jvm/temurin-8-jdk-amd64/lib/jexec

$ strace -e execve jexec 2>&1 |grep -E '(jexec|java)'

execve("/usr/bin/jexec", ["jexec"], 0x7ffe6c1b9320 /* 59 vars */) = 0
can't locate java: No such file or directory

Temurin JDK 11 (fail)
---
readlink -sf /etc/alternatives/jexec
 => /usr/lib/jvm/temurin-11-jdk-amd64/lib/jexec

$ strace -e execve jexec 2>&1 |grep -E '(jexec|java)'

execve("/usr/bin/jexec", ["jexec"], 0x7fff1d218450 /* 59 vars */) = 0
can't locate java: No such file or directory

Temurin JDK 17 (fail)
---
readlink -sf /etc/alternatives/jexec
 => /usr/lib/jvm/temurin-17-jdk-amd64/lib/jexec

$ strace -e execve jexec 2>&1 |grep -E '(jexec|java)'

execve("/usr/bin/jexec", ["jexec"], 0x7ffd110128b0 /* 59 vars */) = 0
can't locate java: No such file or directory


> I'm cloning a separate bug about this.

Yes, to be discussed further in #1029342

> Not sure why jexec is used here though. Just running /usr/bin/ckbuilder
> works for me (but the request-tracker5 build fails later, presumably
> due to a different bug.)

see my TLDR above

> --
> Niko Tyni   nt...@debian.org

BR
bert schulze


Bug#854327: pulseaudio: default configuration depends on consolekit

2017-07-08 Thread bert schulze
tag 854327 +patch
thanks

hi,

> The real fix is of course for consolekit module to exit gracefully if
> consolekit is not installed (the logind module does the same). But I
> have no idea how to do that. Would it be enough to check the dbus
> error name? I can't find a canonical list of error names though

I think it's a bad idea to load the module in the first place if it is
not supposed to be loaded at all.

As pulseaudio is *modular* why do we need to deliver the console-kit
module with pulseaudio itself in the first place?

The default.pa configuration uses ifdef style module loading, if the so
file is not present theres nothing to be loaded.

.ifexists module-console-kit.so
load-module module-console-kit
.endif

1. ConsoleKit is not maintained and recommends systemd-logind [1]

2. The majority of Debian users should be using systemd-logind now
where module-console-kit is being ignored.

3. Others like Felipe and me may neither use systemd nor console-kit
and will end up with PA not willing to load at all

4. Only users having ConsoleKit installed need the module.

=> split out the module into a pulseaudio-module-consolekit package
and add a Depends: consolekit

build and use-tested patch splitting out the console-kit module attached

bye

[1] https://www.freedesktop.org/wiki/Software/ConsoleKit/
diff -Nrup a/debian/control b/debian/control
--- a/debian/control	2017-06-15 10:07:30.0 +
+++ b/debian/control	2017-07-08 12:15:06.068749893 +
@@ -122,6 +122,19 @@ Description: PulseAudio ESD compatibilit
  many useful applications. It enables a PulseAudio sound server to
  fully replace ESD.
 
+Package: pulseaudio-module-consolekit
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, consolekit (>= 0.4.6)
+Description: ConsoleKit module for PulseAudio sound server
+ PulseAudio, previously known as Polypaudio, is a sound server for POSIX and
+ WIN32 systems. It is a drop in replacement for the ESD sound server with
+ much better latency, mixing/re-sampling quality and overall architecture.
+ .
+ This module enables PulseAudio to dynamically give the current user access
+ to the soundcard(s) when using ConsoleKit user session switching.
+ .
+ The module is called module-console-kit.
+
 Package: pulseaudio-module-zeroconf
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}, avahi-daemon
diff -Nrup a/debian/pulseaudio-module-consolekit.install b/debian/pulseaudio-module-consolekit.install
--- a/debian/pulseaudio-module-consolekit.install	1970-01-01 00:00:00.0 +
+++ b/debian/pulseaudio-module-consolekit.install	2017-07-08 12:04:37.436752291 +
@@ -0,0 +1 @@
+usr/lib/pulse-*/modules/module-console-kit.so
diff -Nrup a/debian/pulseaudio.install b/debian/pulseaudio.install
--- a/debian/pulseaudio.install	2017-06-15 10:07:30.0 +
+++ b/debian/pulseaudio.install	2017-07-08 12:04:20.916752354 +
@@ -20,7 +20,6 @@ usr/lib/pulse-*/modules/librtp.so
 [linux-any] usr/lib/pulse-*/modules/module-alsa-sink.so
 [linux-any] usr/lib/pulse-*/modules/module-alsa-source.so
 usr/lib/pulse-*/modules/module-always-sink.so
-usr/lib/pulse-*/modules/module-console-kit.so
 usr/lib/pulse-*/modules/module-device-restore.so
 usr/lib/pulse-*/modules/module-echo-cancel.so
 usr/lib/pulse-*/modules/module-stream-restore.so


signature.asc
Description: PGP signature


Bug#864565: chromium-shell: Couldn't mmap v8 natives data file, status code is 1

2017-07-07 Thread bert schulze
tag 864565 +patch
thanks

hi,

the chromium-shell binary is not supposed to be installed in /usr/bin
but rather /usr/lib/chromium. debian/chromium-shell.install pushes it
into /usr/bin at the moment.

The v8 natives file referred to is /usr/lib/chromium/natives_blob.bin,
other than that /usr/lib/chromium/snapshot_blob.bin is mandatory.

Moving the binary and running with strace shows:

open("/usr/lib/chromium/natives_blob.bin", O_RDONLY) = -1 ENOENT
open("/usr/lib/chromium/snapshot_blob.bin", O_RDONLY) = -1 ENOENT

Also the chromium package includes content_shell.pak which is not needed
for chromium itself and should be moved into the shell package itself.

open("/usr/lib/chromium/content_shell.pak", O_RDONLY) = -1 ENOENT

As the blobs are needed by both chromium and chromium-shell I'd suggest
to add a new chromium-blobs package and let chromium and chromium-shell
use Depends: chromium-blobs. That way we don't need to waste disk space
by installing chromium if only the shell is needed.


Further the chromium-shell binary wants to open a log within its path.

open("/usr/lib/chromium/content_shell.log", O_WRONLY|O_CREAT|O_APPEND, 0666) = 
-1

This will fail for unprivileged users but does not seem to be fatal.
I've got no idea if theres a build flag to move the logfile somewhere
else e.g. ~/.config/chromium.


build _and_ use-tested patch splitting the V8 blobs and fixing
chromium-shell attached.

bye
diff -Nrup a/debian/chromium-blobs.install b/debian/chromium-blobs.install
--- a/debian/chromium-blobs.install	1970-01-01 01:00:00.0 +0100
+++ b/debian/chromium-blobs.install	2017-07-08 00:25:15.117939830 +0200
@@ -0,0 +1 @@
+out/Release/*_blob.bin usr/lib/chromium
diff -Nrup a/debian/chromium.install b/debian/chromium.install
--- a/debian/chromium.install	2017-04-14 22:47:40.0 +0200
+++ b/debian/chromium.install	2017-07-08 00:25:15.117939830 +0200
@@ -1,8 +1,11 @@
 out/Release/chromium usr/lib/chromium
 out/Release/chrome-sandbox usr/lib/chromium
 
-out/Release/*.bin usr/lib/chromium
-out/Release/*.pak usr/lib/chromium
+out/Release/chrome_*.pak usr/lib/chromium
+out/Release/headless_*.pak usr/lib/chromium
+out/Release/mus_*.pak usr/lib/chromium
+out/Release/*resources.pak usr/lib/chromium
+out/Release/ui_*.pak
 
 out/Release/resources/en-US.pak usr/lib/chromium/locales
 
diff -Nrup a/debian/chromium-shell.install b/debian/chromium-shell.install
--- a/debian/chromium-shell.install	2017-01-02 03:14:00.0 +0100
+++ b/debian/chromium-shell.install	2017-07-08 00:25:15.117939830 +0200
@@ -1 +1,2 @@
-out/Release/chromium-shell usr/bin
+out/Release/chromium-shell usr/lib/chromium
+out/Release/content_shell.pak usr/lib/chromium
diff -Nrup a/debian/control b/debian/control
--- a/debian/control	2017-06-17 22:03:49.0 +0200
+++ b/debian/control	2017-07-08 00:25:15.118939830 +0200
@@ -87,12 +87,24 @@ Build-Depends:
  fonts-ipafont-mincho,
 Standards-Version: 3.9.8
 
+Package: chromium-blobs
+Architecture: i386 amd64 arm64 armhf
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+Description: web browser - minimal shell
+ Web browser that aims to build a safer, faster, and more stable internet
+ browsing experience.
+ .
+ This package provides the V8 JavaScript engine natives/snapshot blobs.
+
 Package: chromium
 Architecture: i386 amd64 arm64 armhf
 Built-Using: ${Built-Using}
 Depends:
  ${misc:Depends},
  ${shlibs:Depends},
+ chromium-blobs (= ${binary:Version}),
  x11-utils,
  xdg-utils,
 Recommends:
@@ -135,6 +147,7 @@ Architecture: i386 amd64 arm64 armhf
 Depends:
  ${misc:Depends},
  ${shlibs:Depends},
+ chromium-blobs (= ${binary:Version}),
 Description: web browser - minimal shell
  Web browser that aims to build a safer, faster, and more stable internet
  browsing experience.
diff -Nrup a/debian/rules b/debian/rules
--- a/debian/rules	2017-06-17 22:03:49.0 +0200
+++ b/debian/rules	2017-07-08 00:49:11.628934350 +0200
@@ -118,6 +118,9 @@ override_dh_auto_install-arch:
 	mkdir -p $$dst; \
 	cp $$file $$dst/chromium.$$ext; \
 	done
+	# create chromium-shell symlink
+	mkdir -p debian/chromium-shell/usr/bin
+	ln -sf ../lib/chromium/chromium-shell debian/chromium-shell/usr/bin
 
 override_dh_fixperms:
 	dh_fixperms --exclude chrome-sandbox


signature.asc
Description: PGP signature


Bug#576429: initramfs-tools: mkinitramfs - compression support / commandline override

2010-04-04 Thread Bert Schulze
Package: initramfs-tools
Version: 0.93.4
Severity: normal
Tags: patch

hello maximilian,

fixed the commandline argument to select the compressor. also your test
with command needed to be negated otherwise the fallback to gzip would
take place everytime. patch attached

--
frohe ostern
Bert Schulze
diff -rup a/hook-functions b/hook-functions
--- a/hook-functions	2010-04-04 16:54:03.0 +0200
+++ b/hook-functions	2010-04-04 17:23:00.0 +0200
@@ -472,10 +472,11 @@ usage()
 Usage: ${0} [OPTION]... -o outfile [version]
 
 Options:
-  -d confdir  Specify an alternative configuration directory.
-  -k  Keep temporary directory used to make the image.
-  -o outfile  Write to outfile.
-  -r root Override ROOT setting in initramfs.conf.
+  -c compress  Override COMPRESS setting in initramfs.conf.
+  -d confdir   Specify an alternative configuration directory.
+  -k   Keep temporary directory used to make the image.
+  -o outfile   Write to outfile.
+  -r root  Override ROOT setting in initramfs.conf.
 
 See mkinitramfs(8) for further details.
 EOF
diff -rup a/mkinitramfs b/mkinitramfs
--- a/mkinitramfs	2010-04-04 16:54:03.0 +0200
+++ b/mkinitramfs	2010-04-04 17:29:40.0 +0200
@@ -11,7 +11,7 @@ errors_to=2/dev/null
 # BUSYBOXDIR=/usr/lib/initramfs-tools/bin/
 export BUSYBOXDIR=/bin
 
-OPTIONS=`getopt -o d:ko:r:v -n $0 -- $@`
+OPTIONS=`getopt -o c:d:ko:r:v -n $0 -- $@`
 
 # Check for non-GNU getopt
 if [ $? != 0 ] ; then echo Terminating... 2 ; exit 1 ; fi
@@ -20,6 +20,10 @@ eval set -- $OPTIONS
 
 while true; do
 	case $1 in
+	-c)
+		compress=$2
+		shift 2
+		;; 
 	-d)
 		CONFDIR=$2
 		shift 2
@@ -124,8 +128,13 @@ case ${version} in
 esac
 
 # Check userspace and kernel support for compressed initramfs images
-compress=${COMPRESS}
-if command -v ${compress} /dev/null 21; then
+if [ -z ${compress} ]; then
+	compress=${COMPRESS}
+else
+	COMPRESS=${compress}
+fi
+
+if ! command -v ${compress} /dev/null 21; then
 	compress=gzip
 	[ ${verbose} = y ]  \
 		echo No ${COMPRESS} in ${PATH}, using gzip
diff -rup a/mkinitramfs.8 b/mkinitramfs.8
--- a/mkinitramfs.8	2010-04-04 16:54:03.0 +0200
+++ b/mkinitramfs.8	2010-04-04 17:23:00.0 +0200
@@ -5,6 +5,8 @@ mkinitramfs \- low-level tool for genera
 
 .SH SYNOPSIS
 .B mkinitramfs
+.RB [ \-c
+.IR compress ]
 .RB [ \-d
 .IR confdir ]
 .RB [ \-k ]
@@ -45,6 +47,13 @@ happens in this early userspace.
 
 .SH OPTIONS
 .TP
+\fB \-c \fI compress
+Override the
+.B COMPRESS
+setting in
+.IR initramfs.conf .
+
+.TP
 \fB \-d \fI confdir
 Set an alternate configuration directory.
 


Bug#533903: initramfs-tools: support different compression tools in mkinitramfs

2010-02-28 Thread bert schulze
Hello Maximilian,

this version uses /etc/initramfs-tools/initramfs.conf to determine
the compression method, checks kernel and userspace support with
fallback to gzip. Since LZO didnt work for me at all with 2.6.33 
I left that out for now.

unified diff against git attached

regards
Bert Schulze
diff -rup a/conf/initramfs.conf b/conf/initramfs.conf
--- a/conf/initramfs.conf	2010-02-28 19:05:48.0 +0100
+++ b/conf/initramfs.conf	2010-02-28 19:14:53.0 +0100
@@ -36,6 +36,12 @@ BUSYBOX=y
 KEYMAP=n
 
 #
+# COMPRESS: [ gzip | bzip2 | lzma ]
+#
+
+COMPRESS=gzip
+
+#
 # NFS Section of the config.
 #
 
diff -rup a/initramfs.conf.5 b/initramfs.conf.5
--- a/initramfs.conf.5	2010-02-28 19:05:48.0 +0100
+++ b/initramfs.conf.5	2010-02-28 19:18:40.0 +0100
@@ -48,6 +48,13 @@ The keymap will anyway be loaded by the
 that might need input will normally set this variable automatically, so there
 should normally be no need to set this.
 
+.TP
+\fB COMPRESS
+Specifies the compression method used for the initramfs image.
+.B mkinitramfs
+will default to gzip if the kernel lacks support (CONFIG_RD) or the
+corresponding userspace utility is not present.
+
 .SH NFS VARIABLES
 .TP
 \fB BOOT
diff -rup a/mkinitramfs b/mkinitramfs
--- a/mkinitramfs	2010-02-28 19:05:48.0 +0100
+++ b/mkinitramfs	2010-02-28 19:04:08.0 +0100
@@ -123,6 +123,20 @@ case ${version} in
 	;;
 esac
 
+# Check userspace and kernel support for compressed initramfs images
+compress=${COMPRESS}
+if [ -z `which ${COMPRESS}` ]; then
+	compress=gzip
+	[ ${verbose} = y ]  \
+		echo Userspace does not support ${COMPRESS}, defaulting to gzip
+fi
+
+if ! `grep -q -i config_rd_${COMPRESS}=y /boot/config-${version}` ; then
+	compress=gzip
+	[ ${verbose} = y ]  \
+		echo Kernel does not support ${COMPRESS}, defaulting to gzip
+fi
+
 if [ -d ${outfile} ]; then
 	echo ${outfile} is a directory
 	exit 1
@@ -265,7 +279,7 @@ eval `
 find . 4-; echo ec1=$?; 4
 } | {
 cpio --quiet --dereference -o -H newc 4-; echo ec2=$?; 4
-} | gzip ${outfile}
+} | ${compress} ${outfile}
 echo ec3=$?; 4
 `
 if [ $ec1 -ne 0 ]; then exit $ec1; fi
diff -rup a/mkinitramfs.8 b/mkinitramfs.8
--- a/mkinitramfs.8	2010-02-28 19:05:48.0 +0100
+++ b/mkinitramfs.8	2010-02-28 19:07:54.0 +0100
@@ -27,7 +27,7 @@ mkinitramfs \- low-level tool for genera
 The
 .B mkinitramfs
 script generates an initramfs image.
-The initramfs is a gzipped cpio archive. The archive can be used on a
+The initramfs is a compressed cpio archive. The archive can be used on a
 different box of the same arch with the corresponding Linux kernel.
 .B mkinitramfs
 is meant for advanced usage. On your local box


Bug#571797: encfs: Input/Output Error accessing decrypted files with libssl0.9.8m-1

2010-02-27 Thread Bert Schulze
Package: encfs
Version: 1.5.2-2
Severity: important

Hello,

Todays upgrade of libssl version 0.9.8m-1 breaks decryption of directories
encrypted with an earlier version of libssl.

Accessing a decrypted directory using encfs/encfssh ends up showing the
decrypted filenames with correct filesize but any attempt to cat/edit a file
shows cat: foo: Input/output error.

Creating a new encrypted directory using libssl0.9.8m-1 directory works as
expected and does not show the behaviour mentioned above.

Reverting libssl0.9.8 and openssl from version 0.9.8m-1 to 0.9.8k-8 makes the
files accessible again.


-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (600, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.33-kms (SMP w/2 CPU cores; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages encfs depends on:
ii  fuse-utils  2.8.1-1.2Filesystem in USErspace (utilities
ii  libboost-filesystem1.40 1.40.0-6+b1  filesystem operations (portable pa
ii  libboost-serialization1 1.40.0-6+b1  serialization library for C++
ii  libc6   2.10.2-6 Embedded GNU C Library: Shared lib
ii  libfuse22.8.1-1.2Filesystem in USErspace library
ii  libgcc1 1:4.5-20091226-1 GCC support library
ii  librlog51.4-1flexible message logging library
ii  libssl0.9.8 0.9.8k-8 SSL shared libraries
ii  libstdc++6  4.5-20091226-1   The GNU Standard C++ Library v3

encfs recommends no packages.

encfs suggests no packages.

-- no debconf information



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#533903: initramfs-tools: support different compression tools in mkinitramfs

2010-02-25 Thread bert schulze
Hello Maximilian,


maximilian attems (Tue, Feb 23, 2010 at 12:00:14AM +0100):

[..]
 
 hmm there i'm not sure that it is update-initramfs job.
 
 I'd prefer to have it in /etc/initramfs-tools/initramfs.conf
 and have mkinitramfs deal directly with it.
 then you also don't have to take care about the arg passing.
 
 
 update-initramfs has not many arguments and thus tries to stay user
 friendly. mkinitramfs is the low level interface.
  
[..]

 would you care to rediff that according to aboves comment,
 to deal with it in mkinitramfs?
 
 also just fall back on current default if the input is undefined or
 strange of tha config option.
  
[..]

yeah thats no problem at all, I just grabbed the 2.6.33 sources and
theres LZO support as well. Will rediff it ths weekend and let
mkinitramfs do the job instead.


best regards
Bert Schulze



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#533903: initramfs-tools: support different compression tools in mkinitramfs

2010-02-02 Thread Bert Schulze
Package: initramfs-tools
Version: 0.93.4
Severity: normal
Tags: patch

Dear initramfs-tools Maintainers,


since I've recently did some experiments regarding lzma compressed initramfs
images I stumbled upon this quite old bugreport.

As mentioned before the stock kernel has support for lzma/bzip2 compressed
images built in nowadays and it works great. Instead of having to recompress
the initramfs image by hand over and over again i did a patch against
initramfs-tools-0.93.4 which enables mkinitramfs to build gzip/bzip2/lzma
compressed images.


Therefor I've set a new variable in /etc/initramfs-tools/update-initramfs.conf

  #
  # compress_initramfs [ gzip | bzip2 | lzma ]
  #
  compress_initramfs=gzip


added the new function verify_compression() to the update-initramfs script which

  - checks the availability of the compression utility in userspace
  - matches the kernel's config file against the selected compression method
  - falls back to gzip compression if either or both are missing and prints
verbose messages if that has happened.


The method gets passed to mkinitramfs via a new optional argument -c COMP
and mkinitramfs itself verifies that lzma or bzip2 has been passed as 
argument,
or defaults to gzip. (as well if the -c argument has been omitted)
Given the fact that gzip, bzip2 and lzma read input from stdin and pass the
compressed output to stdout theres no need to change a lot of code here.


unified diff attached


best regards
Bert Schulze
diff -rup a/conf/update-initramfs.conf b/conf/update-initramfs.conf
--- a/conf/update-initramfs.conf	2009-03-19 21:16:14.0 +0100
+++ b/conf/update-initramfs.conf	2010-02-03 00:41:03.0 +0100
@@ -18,3 +18,10 @@ update_initramfs=yes
 # If set to no leaves no .bak backup files.
 
 backup_initramfs=yes
+
+#
+# compress_initramfs [ gzip | bzip2 | lzma ]
+#
+# Default is gzip
+
+compress_initramfs=gzip
diff -rup a/hook-functions b/hook-functions
--- a/hook-functions	2009-06-25 20:28:51.0 +0200
+++ b/hook-functions	2010-02-03 01:15:33.0 +0100
@@ -465,10 +465,11 @@ usage()
 Usage: ${0} [OPTION]... -o outfile [version]
 
 Options:
-  -d confdir  Specify an alternative configuration directory.
-  -k  Keep temporary directory used to make the image.
-  -o outfile  Write to outfile.
-  -r root Override ROOT setting in initramfs.conf.
+  -c compress  Utility used to compress the initramfs image.
+  -d confdir   Specify an alternative configuration directory.
+  -k   Keep temporary directory used to make the image.
+  -o outfile   Write to outfile.
+  -r root  Override ROOT setting in initramfs.conf.
 
 See mkinitramfs(8) for further details.
 EOF
diff -rup a/mkinitramfs b/mkinitramfs
--- a/mkinitramfs	2009-05-18 13:58:41.0 +0200
+++ b/mkinitramfs	2010-02-03 01:31:40.0 +0100
@@ -11,7 +11,7 @@ errors_to=2/dev/null
 # BUSYBOXDIR=/usr/lib/initramfs-tools/bin/
 BUSYBOXDIR=/bin
 
-OPTIONS=`getopt -o d:ko:r:v -n $0 -- $@`
+OPTIONS=`getopt -o d:ko:r:c:v -n $0 -- $@`
 
 # Check for non-GNU getopt
 if [ $? != 0 ] ; then echo Terminating... 2 ; exit 1 ; fi
@@ -40,6 +40,10 @@ while true; do
 		ROOT=$2
 		shift 2
 		;;
+  -c)
+compress=$2
+shift 2
+;;
 	-v)
 		verbose=y
 		shift
@@ -86,6 +90,10 @@ if [ -n ${UMASK} ]; then
 	umask ${UMASK}
 fi
 
+if [ bzip2 != ${compress} ]  [ lzma != ${compress} ]; then
+	compress=gzip
+fi
+
 if [ -z ${outfile} ]; then
 	usage
 fi
@@ -284,7 +292,7 @@ eval `
 find . 4-; echo ec1=$?; 4
 } | {
 cpio --quiet --dereference -o -H newc 4-; echo ec2=$?; 4
-} | gzip ${outfile}
+} | ${compress} ${outfile}
 echo ec3=$?; 4
 `
 if [ $ec1 -ne 0 ]; then exit $ec1; fi
diff -rup a/mkinitramfs.8 b/mkinitramfs.8
--- a/mkinitramfs.8	2009-03-19 21:16:14.0 +0100
+++ b/mkinitramfs.8	2010-02-03 00:41:03.0 +0100
@@ -5,6 +5,8 @@ mkinitramfs \- low-level tool for genera
 
 .SH SYNOPSIS
 .B mkinitramfs
+.RB [ \-c
+.IR compress ]
 .RB [ \-d
 .IR confdir ]
 .RB [ \-k ]
@@ -27,7 +29,7 @@ mkinitramfs \- low-level tool for genera
 The
 .B mkinitramfs
 script generates an initramfs image.
-The initramfs is a gzipped cpio archive. The archive can be used on a
+The initramfs is a compressed cpio archive. The archive can be used on a
 different box of the same arch with the corresponding Linux kernel.
 .B mkinitramfs
 is meant for advanced usage. On your local box
@@ -45,6 +47,10 @@ happens in this early userspace.
 
 .SH OPTIONS
 .TP
+\fB \-c \fI compress
+Use either gzip, bzip2 or lzma to compress the initramfs image
+(defaults to gzip).
+.TP
 \fB \-d \fI confdir
 Set an alternate configuration directory.
 
diff -rup a/update-initramfs b/update-initramfs
--- a/update-initramfs	2009-06-10 15:58:58.0 +0200
+++ b/update-initramfs	2010-02-03 01:33:34.0 +0100
@@ -88,6 +88,23 @@ version_exists()
 	return $?
 }
 
+# fallback to gzip if userspace/kernelsupport is missing
+verify_compression()
+{
+	COMP=${compress_initramfs}
+	[ -z ${COMP

Bug#563590: Fails to upgrade/install

2010-01-04 Thread Bert Schulze
Package: console-tools
Version: 1:0.2.3dbs-67
Severity: normal
Tags: patch

Hello,

same here, seems to be related to bash-4.1 which has a more strict
handling of set -e

output of aptitude:

Setting up console-tools (1:0.2.3dbs-67) ...  
Setting console screen modes and fonts.   
Setting console screen modes and fonts.   
invoke-rc.d: initscript console-screen.sh, action start failed.  
dpkg: error processing console-tools (--configure):   
 subprocess installed post-installation script returned error exit status 1 
   
Errors were encountered while processing: 
 console-tools
[..]

problem:

readlink /proc/self/fd/0 | grep -q -e /dev/vc -e '/dev/tty[^p]' -e /dev/console

grep returns 1 when readlink ends up at something like /dev/pts/5 which
happens when dpkg does its job on a non vt and due to the use of set -e
the initscript exits and hence dpkg yields a failed --configure

so dont rely on the return value but use another test like

if [ x != x`readlink /proc/self/fd/0 | grep -e /dev/vc \
  -e '/dev/tty[^p]' -e /dev/console` ] ; then

patch attached, have a nice day


-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.32.2-xy (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages console-tools depends on:
ii  debconf [debconf-2.0]  1.5.28Debian configuration management sy
ii  libc6  2.10.2-3  Embedded GNU C Library: Shared lib
ii  libconsole 1:0.2.3dbs-67 Shared libraries for Linux console
ii  lsb-base   3.2-23Linux Standard Base 3.2 init scrip

Versions of packages console-tools recommends:
ii  console-common0.7.85 basic infrastructure for text cons
ii  console-data  2:1.10-2   keymaps, fonts, charset maps, fall

Versions of packages console-tools suggests:
pn  kbd-compatnone (no description available)

-- no debconf information
--- a/console-screen.sh 2009-12-19 20:27:27.0 +0100
+++ b/console-screen.sh 2010-01-04 15:04:03.0 +0100
@@ -82,10 +82,10 @@ setup_fonts ()
 CONSOLE_TYPE=`fgconsole 2/dev/null` || return 0
 
 if [ ! $CONSOLE_TYPE = serial ]  ; then
-   readlink /proc/self/fd/0 | grep -q -e /dev/vc -e '/dev/tty[^p]' -e 
/dev/console
-   if [ $? -eq 0 ] ; then
-   VT=yes
-   reset_vga_palette
+   if [ x != x`readlink /proc/self/fd/0 | grep -e /dev/vc \
+-e '/dev/tty[^p]' -e /dev/console` ] ; then
+ VT=yes
+ reset_vga_palette
fi
 fi
 


Bug#563426: localepurge: Incompatible with bash 4.1

2010-01-02 Thread Bert Schulze
Package: localepurge
Version: 0.6.1
Severity: normal
Tags: patch

Hello,

The problem merely is declaring variables in arithmetic mode here, just
try it yourself with a little script like that

---
#!/bin/bash
 
set -e
echo 123
((3  2))  echo 3  2

((false = 0))
((true = 1))
echo not going to appear
((3  2))  echo 3  2   

---

The output will stop after having asigned false and true and thats
exactly what is beeing done in /usr/sbin/localepurge.

Variables should be declared the regular why using something like
foo=bar and things will work again.

Attaching a patch to fix this problem.



-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.32.2-xy (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages localepurge depends on:
ii  debconf [debconf-2.0] 1.5.28 Debian configuration management sy
ii  locales   2.10.2-2   GNU C Library: National Language (
ii  procps1:3.2.8-2  /proc file system utilities
ii  ucf   3.0025 Update Configuration File: preserv

localepurge recommends no packages.

Versions of packages localepurge suggests:
pn  bleachbit none (no description available)
pn  debfoster none (no description available)
pn  deborphan none (no description available)

-- debconf information:
  localepurge/remove_no:
  localepurge/none_selected: false
* localepurge/nopurge: de_DE.UTF-8, en_US.UTF-8
* localepurge/mandelete: true
* localepurge/dontbothernew: false
* localepurge/showfreedspace: true
* localepurge/verbose: true
* localepurge/quickndirtycalc: true
--- a/localepurge   2010-01-03 00:00:47.0 +0100
+++ b/localepurge   2010-01-03 00:02:28.0 +0100
@@ -52,30 +52,28 @@ if [ $1 = --help ] || [ $1 = -h 
 fi
 
 # Initialise local variables
-((true = 1))
-((false = 0))
-((VERBOSE = false))
-((DONTBOTHERNEWLOCALE = false))
-((SHOWFREEDSPACE = false))
-((MANDELETE = false))
-((globaltot = 0))
+VERBOSE=0
+DONTBOTHERNEWLOCALE=0
+SHOWFREEDSPACE=0
+MANDELETE=0
+globaltot=0
 
 if fgrep --quiet --line-regexp DONTBOTHERNEWLOCALE $NOPURGECONF; then
-((DONTBOTHERNEWLOCALE = true))
+DONTBOTHERNEWLOCALE=1
 fi
 
 if fgrep --quiet --line-regexp SHOWFREEDSPACE $NOPURGECONF; then
-((SHOWFREEDSPACE = true))
+SHOWFREEDSPACE=1
 fi
 
 if fgrep --quiet --line-regexp MANDELETE $NOPURGECONF; then
-((MANDELETE = true))
+MANDELETE=1
 fi
 
 if fgrep --quiet --line-regexp VERBOSE $NOPURGECONF \
 || [ $1 = -verbose ] || [ $1 = -v ] \
 || [ $2 = -verbose ] || [ $2 = -v ]; then
-((VERBOSE = true))
+VERBOSE=1
 fi
 
 


Bug#563426: Incompatible with bash 4.1

2010-01-02 Thread Bert Schulze
Package: localepurge
Version: 0.6.1
Severity: normal
Tags: patch

I'm sorry the previously posted patch didn't solve the whole Problem and
i ran into another one.

Initially you set globaltot=0 and in the spaceafter function you add the
tot of each dir you process by using ((globaltot += tot)).
Now if the actual dir didn't hold any files which got purged tot remains
0 (and if that happens while globaltot is 0) the expression becomes 0
which in case returns a status of 1 and the whole script exits for the
sakes of set -e.

So the solution is to only add tot to globaltot if tot is greater than 0.
I also forgot the ternary operator ((tot = before  after ? 0 : before -
after)) which indeed declares tot but turns the expression to 0 again.
--- a/localepurge   2010-01-03 02:27:54.0 +0100
+++ b/localepurge   2010-01-03 03:37:06.0 +0100
@@ -52,30 +52,28 @@ if [ $1 = --help ] || [ $1 = -h 
 fi
 
 # Initialise local variables
-((true = 1))
-((false = 0))
-((VERBOSE = false))
-((DONTBOTHERNEWLOCALE = false))
-((SHOWFREEDSPACE = false))
-((MANDELETE = false))
-((globaltot = 0))
+VERBOSE=0
+DONTBOTHERNEWLOCALE=0
+SHOWFREEDSPACE=0
+MANDELETE=0
+globaltot=0
 
 if fgrep --quiet --line-regexp DONTBOTHERNEWLOCALE $NOPURGECONF; then
-((DONTBOTHERNEWLOCALE = true))
+DONTBOTHERNEWLOCALE=1
 fi
 
 if fgrep --quiet --line-regexp SHOWFREEDSPACE $NOPURGECONF; then
-((SHOWFREEDSPACE = true))
+SHOWFREEDSPACE=1
 fi
 
 if fgrep --quiet --line-regexp MANDELETE $NOPURGECONF; then
-((MANDELETE = true))
+MANDELETE=1
 fi
 
 if fgrep --quiet --line-regexp VERBOSE $NOPURGECONF \
 || [ $1 = -verbose ] || [ $1 = -v ] \
 || [ $2 = -verbose ] || [ $2 = -v ]; then
-((VERBOSE = true))
+VERBOSE=1
 fi
 
 
@@ -217,8 +215,8 @@ function spaceafter ()
 if ((SHOWFREEDSPACE)); then
local dir=$1
after=$(get_used_space $dir)
-   ((tot = before  after ? 0 : before - after))
-   ((globaltot += tot))
+   tot=$((before  after ? 0 : before - after))
+   ((tot  0))  ((globaltot += tot))
echo localepurge: Disk space freed in $dir: ${tot} KiB
 fi
 }


Bug#547708: java.lang.NoClassDefFoundError: org/apache/commons/compress/archivers/tar/TarInputStream

2009-09-24 Thread Bert Schulze
The libcommons-compress-java renamed the tar classes as follows:

  TarEntry.class - TarArchiveEntry.class
  TarInputStream.class - TarArchiveInputStream.class
  TarOutputStream.class - TarArchiveOutputStream.class

The appended patch (bootchart_renamedtar.patch) for
bootchart-0.10~svn407 and renaming the following files fixed the
reported bug for me:

  mv lib/org/apache/commons/compress/tar/Tar{,Archive}Entry.java
  mv lib/org/apache/commons/compress/tar/Tar{,Archive}InputStream.java
  mv lib/org/apache/commons/compress/tar/Tar{,Archive}OutputStream.java

diff -rup bootchart-0.10~svn407-orig/lib/org/apache/commons/compress/tar/TarEntry.java bootchart-0.10~svn407/lib/org/apache/commons/compress/tar/TarEntry.java
--- bootchart-0.10~svn407-orig/lib/org/apache/commons/compress/tar/TarEntry.java	2007-12-23 01:08:52.0 +0100
+++ bootchart-0.10~svn407/lib/org/apache/commons/compress/tar/TarEntry.java	2009-09-24 11:32:49.0 +0200
@@ -24,18 +24,18 @@ import java.util.Locale;
  * header, as well as the entry's File. Entries can be instantiated in one of
  * three ways, depending on how they are to be used. p
  *
- * TarEntries that are created from the header bytes read from an archive are
- * instantiated with the TarEntry( byte[] ) constructor. These entries will be
+ * TarArchiveEntries that are created from the header bytes read from an archive are
+ * instantiated with the TarArchiveEntry( byte[] ) constructor. These entries will be
  * used when extracting from or listing the contents of an archive. These
  * entries have their header filled in using the header bytes. They also set the
  * File to null, since they reference an archive entry not a file. p
  *
- * TarEntries that are created from Files that are to be written into an archive
- * are instantiated with the TarEntry( File ) constructor. These entries have
+ * TarArchiveEntries that are created from Files that are to be written into an archive
+ * are instantiated with the TarArchiveEntry( File ) constructor. These entries have
  * their header filled in using the File's information. They also keep a
  * reference to the File for convenience when writing entries. p
  *
- * Finally, TarEntries can be constructed from nothing but a name. This allows
+ * Finally, TarArchiveEntries can be constructed from nothing but a name. This allows
  * the programmer to construct the entry by hand, for instance when only an
  * InputStream is available for writing to the archive, and the header
  * information is constructed from other information. In this case the header
@@ -64,10 +64,10 @@ import java.util.Locale;
  * @author a href=mailto:stef...@apache.orgStefano Mazzocchi/a
  * @author a href=mailto:pe...@apache.orgPeter Donald/a
  * @version $Revision$ $Date$
- * @see TarInputStream
- * @see TarOutputStream
+ * @see TarArchiveInputStream
+ * @see TarArchiveOutputStream
  */
-public class TarEntry
+public class TarArchiveEntry
 {
 /**
  * The length of the name field in a header buffer.
@@ -152,7 +152,7 @@ public class TarEntry
  *
  * @param name the name of the entry
  */
-public TarEntry( final String name )
+public TarArchiveEntry( final String name )
 {
 this();
 
@@ -173,7 +173,7 @@ public class TarEntry
  * @param name Description of Parameter
  * @param linkFlag Description of Parameter
  */
-public TarEntry( final String name, final byte linkFlag )
+public TarArchiveEntry( final String name, final byte linkFlag )
 {
 this( name );
 m_linkFlag = linkFlag;
@@ -185,7 +185,7 @@ public class TarEntry
  *
  * @param file The file that the entry represents.
  */
-public TarEntry( final File file )
+public TarArchiveEntry( final File file )
 {
 this();
 
@@ -261,7 +261,7 @@ public class TarEntry
  *
  * @param header The header bytes from a tar archive entry.
  */
-public TarEntry( final byte[] header )
+public TarArchiveEntry( final byte[] header )
 {
 this();
 parseTarHeader( header );
@@ -270,7 +270,7 @@ public class TarEntry
 /**
  * Construct an empty entry and prepares the header values.
  */
-private TarEntry()
+private TarArchiveEntry()
 {
 m_magic = new StringBuffer( TarConstants.TMAGIC );
 m_name = new StringBuffer();
@@ -403,23 +403,23 @@ public class TarEntry
 
 /**
  * If this entry represents a file, and the file is a directory, return an
- * array of TarEntries for this entry's children.
+ * array of TarArchiveEntries for this entry's children.
  *
- * @return An array of TarEntry's for this entry's children.
+ * @return An array of TarArchiveEntry's for this entry's children.
  */
-public TarEntry[] getDirectoryEntries()
+public TarArchiveEntry[] getDirectoryEntries()
 {
 if( null == m_file || !m_file.isDirectory() )
 {
-return new TarEntry[ 0 ];
+return