Bug#1029342: Fwd: [request-tracker-maintainers] Bug#1026669: request-tracker5: FTBFS: can't locate java: No such file or directory
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
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
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
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
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
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
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
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
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
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
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
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