Bug #63416 en beagle

Linux, Parches, Ubuntu No Comments »

Desde hace algún tiempo venía recibiendo un email cada día como este:

From: Anacron
To: root@tigresa.kedesfase.com
Subject: Anacron job ‘cron.daily’ on tigresa
Date: Sun, 22 Apr 2007 07:39:26 +0200 (CEST)

run-parts: /etc/cron.daily/beagle-crawl-system exited with return code 1

Al parecer esto se debe al bug #63416, presente desde edgy y que ya esta solucionado (aunque no sea mi caso a pesar de usar feisty).

El remedio para evitar ese correo es muy sencillo, solo hay que editar como administrador el archivo:
sudo vi /etc/cron.daily/beagle-crawl-system
y comentar la segunda linea:
#set -e

Con esto el resultado de la ejecución del script es 0 (ejecución sin errores) y se dejará de recibir este correo a diario.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Parcheando Java 6 para que funcione con Beryl

Java, Linux, Parches, Ubuntu 3 Comments »

Estaba este fin de semana intentando ejecutar un programa en java, el cridmanager, para poder utilizar desde el ordenador algunas de las funciones del mi nuevo y flamante PVR. Bien, el caso es que tras ejecutar el programita en cuestion, me aparece una ventana sin ningun tipo de control, solo la ventana vacia.

Despues de comentarlo en los foros de ubuntu, pensando que era un problema con el final de las lineas dentro del codigo, alguien alli me comento que habia un bug en el java 6 cuando se esta ejecutando beryl. Afortunadamente en el wiki de beryl nos comentan como aplicar un pequeño parche para corregirlo.

Aunque en esa pagina esta bastante bien descrito el problema y la solucion, e incluso existe un script para hacerlo automaticamente (en mi caso no funciono bien), en mi caso tuve que modificar algunas de las instrucciones antes de ejecutarlas para poder conseguir que me funcionara. Dicho esto, describo los pasos que yo seguir para parchearlo.

Se crean dos directorios temporales (que podremos borrar una vez terminado el proceso) y se extraen las clases del java.

mkdir -p /tmp/java/src
mkdir -p /tmp/java/rt
cp /usr/lib/jvm/java-6-sun-1.6.0.00/jre/lib/rt.jar /usr/lib/jvm/java-6-sun-1.6.0.00/jre/lib/rt.jar.orig
cp /usr/lib/jvm/java-6-sun-1.6.0.00/jre/lib/rt.jar /tmp/java/rt/rt.zip
cd /tmp/java/rt
unzip rt.zip

Descargamos el codigo fuente de java desde la pagina de sun.

cd ../src
wget http://www.java.net/download/jdk6/6u2/promoted/b01/jdk-6u2-ea-src-b01-jrl-29_mar_2007.jar

Despues descomprimimos este codigo. Notese que si todavia se esta usando beryl, hay que cambiar al metacity para poder aceptar la licencia. En caso contrario en la licencia apareceria una ventana en blanco como la de la aplicacion que queria ejecutar inicialmente.

java -jar jdk-6u2-ea-src-b01-jrl-29_mar_2007.jar

Aceptar la licencia y seleccionar como directorio de destino en el que estamos, es decir /tmp/java/src.

Ahora nos queda crearnos un ficherito con el parche y aplicarlo. Para ello con nuestro editor de texto favorito crearemos un fichero llamado patch y en el copiaremos el siguiente texto:

diff -ur src.orig/j2se/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java src/j2se/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java
--- src.orig/j2se/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java 2007-02-24 08:21:07.000000000 -0500
+++ src/j2se/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java 2007-02-24 08:23:40.000000000 -0500
@@ -692,7 +692,7 @@
// ConfigureNotify, only the one from X with zero
// coordinates. This is the workaround to get real
// location, 6261336
- // Do the same for non-reparenting WMs (Compiz, Looking Glass)
+ // Do the same for non-reparenting WMs (Compiz, Looking Glass, Beryl)
switch (XWM.getWMID()) {
case XWM.CDE_WM:
case XWM.MOTIF_WM:
@@ -700,6 +700,7 @@
case XWM.SAWFISH_WM:
case XWM.COMPIZ_WM:
case XWM.LG3D_WM:
+ case XWM.BERYL_WM:
{
Point xlocation = queryXLocation();
if (log.isLoggable(Level.FINE)) log.log(Level.FINE, "New X location: {0}", new Object[]{xlocation});
diff -ur src.orig/j2se/src/solaris/classes/sun/awt/X11/XWM.java src/j2se/src/solaris/classes/sun/awt/X11/XWM.java
--- src.orig/j2se/src/solaris/classes/sun/awt/X11/XWM.java 2007-02-24 08:21:07.000000000 -0500
+++ src/j2se/src/solaris/classes/sun/awt/X11/XWM.java 2007-02-24 08:22:58.000000000 -0500
@@ -79,7 +79,8 @@
ICE_WM = 10,
METACITY_WM = 11,
COMPIZ_WM = 12,
- LG3D_WM = 13;
+ LG3D_WM = 13,
+ BERYL_WM = 14;
public String toString() {
switch (WMID) {
case NO_WM:
@@ -106,6 +107,8 @@
return "Compiz";
case LG3D_WM:
return "LookingGlass";
+ case BERYL_WM:
+ return "Beryl";
case UNDETERMINED_WM:
default:
return "Undetermined WM";
@@ -534,6 +537,10 @@
return isNetWMName("LG3D");
}
+ static boolean isBeryl() {
+ return isNetWMName("beryl");
+ }
+
/*
* Is Metacity running?
*/
@@ -546,7 +553,7 @@
}
static boolean isNonReparentingWM() {
- return (XWM.getWMID() == XWM.COMPIZ_WM || XWM.getWMID() == XWM.LG3D_WM);
+ return (XWM.getWMID() == XWM.COMPIZ_WM || XWM.getWMID() == XWM.LG3D_WM || XWM.getWMID() == XWM.BERYL_WM);
}
/*
@@ -738,6 +745,8 @@
awt_wmgr = XWM.COMPIZ_WM;
} else if (isLookingGlass()) {
awt_wmgr = LG3D_WM;
+ } else if (isBeryl()) {
+ awt_wmgr = BERYL_WM;
} else if (doIsIceWM && isIceWM()) {
awt_wmgr = XWM.ICE_WM;
}
@@ -1387,6 +1396,7 @@
case XWM.ENLIGHTEN_WM:
return readInsetsArray(window, XA_E_FRAME_SIZE, insets);
case XWM.COMPIZ_WM:
+ case XWM.BERYL_WM:
return readInsetsArray(window, XA_FRAME_EXTENTS, insets);
default:
return false;

Le damos al fichero permisos de ejecucion y aplicamos el parche:

chmod +x patch
patch -p1 < patch

Se eliminan las clases que hemos modificado y las sustituimos por estas mismas modificadas.

cd ../rt
rm sun/awt/X11/XDecoratedPeer*
rm sun/awt/X11/XWM.*
rm sun/awt/X11/XWM\$*
cp ../src/j2se/src/solaris/classes/sun/awt/X11/XWM.java sun/awt/X11
cp ../src/j2se/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java sun/awt/X11

Hecho esto solo queda compilar de nuevo las clases, empaquetarlas y sustituir las antiguas por las nuevas.

javac -d . sun/awt/X11/*.java
zip -f rt.zip sun/awt/X11/*
cp rt.zip /usr/lib/jvm/java-6-sun-1.6.0.00/jre/lib/rt.jar

Ahora ya podemos ejecutar aplicaciones java con toda normalidad.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...
WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Iniciar sesión