REDO BACKUP & RESTORE TRANSLATION

| Christophe LOUVET | Philippe RONFLETTE | Guillaume SIGUI | WinJerome |

Traducteur

Christophe LOUVET

In this topic, you will learn how to translate the Linux distribution Redo Backup which is used to save and restore systems. This tutorial will show you how to do.

Original French version

- Titre : REDO BACKUP & RESTORE TRANSLATION

- Auteurs : Christophe LOUVET, Philippe RONFLETTE, Guillaume SIGUI, WinJerome

- Traducteur : Christophe LOUVET

- Parution : 13 mai 2016

- Public visé :

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2016 Christophe LOUVET. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- 1. Introduction

- 2. Analysis

- 2-1. What is the content of Redo Backup & Recovery ?

- 2-2. How is Redo Backup functioning ?

- 3. Tests on independent system

- 4. Redo Backup application translation

- 5. Live CD modification

- 5-1. What is a Live CD ?

- 5-2. How is a Live CD functioning

- 5-2-1. UnionFS

- 5-2-2. SquashFS

- 5-3. Preparation

- 5-4. Changing keyboard language

- 5-5. Creating a partition via the Gparted tool

- 5-6. Files copy from Redo Backup to our partition

- 5-7. Extracting origin SquashFS content

- 5-8. Source system modification

- 5-8-1. Redo Backup modifications integration

- 5-9. SquashFS regeneration

- 5-10. CD-ROM regeneration

- 5-10-1. SquashFS replacement

- 5-10-2. Isolinux bootloader configuration modification

- 5-10-3. New CD version burning

- 6. Tests

- 7. System and tools translation

- 7-1. Dock menu translation

- 7-1-1. OpenBox

- 7-1-2. AdeskBar

- 7-1-3. System correction for translation

- 7-2. OpenBox contextual menu translation

- 7-3. Power off buttons translation

- 8. Corrections and improvements

- 9. CD cleaning

- 10. Conclusion

- 10-1. For further

- 10-2. Sources

- 10-3. Thanks

1 - Introduction

In this tutorial, you will learn how to translate the Redo Backup & Recovery only available in English.

It was written by Philippe Ronflette and Me.

This tool is similar to CloneZilla, but is easier to use and it gives graphical mode.

Our tests were made in a virtual environment to quickly and easily experiment modifications.

2 - Analysis

2-1 - What is the content of Redo Backup & Recovery ?

This distribution contains the Redo Backup software, starting immediately after the GUI loading. It also contains tools like :

- Gparted - for partitioning edition ;

- a logical volume manager ;

- Photorec for data recovery ;

- Chromium for Internet navigation.

The distribution use the Window Manager OpenBox, based on LXDE environment. It also includes the following tools:

- LXTerminal as terminal emulator ;

- PCManFM as File Manager ;

- LeafPad as text editor.

This tools are available in the OpenBox menu.

2-2 - How is Redo Backup functioning ?

We started to try to understand how is Redo Backup functioning.

Where is the executable file ? We get is with the following command:

ps -aulx

We saw the Redo Backup process in the actives process list.

This command launched in LXTerminal gave us two important informations :

1. The executable file location : /sbin/redobackup ;

2. It's a Perl script which is calling with the following command : /usr/bin/perl -w /sbin/redobackup

3 - Tests on independent system

We copied the RedoBackup Perl script on a ext2 partition, mounted in our VM (see modifications from CD section). We restart the VM and boot on a Debian 7 Live CD, to try it on a completely independent system.

The command launch returned the following error message :

Can't locate XML/Simple.pm

This error was patch with libxml-simple-perl package installation.

apt-get update
apt-get install libxml-simple-perl

Next, a new error :

cat : /usr/share/redo/VERSION : No such file or directory
cat : /usr/share/redo/TITLE : No such file or directory
Failed to open file '/usr/share/redo/redobackup.glade ' : No such file or directory

So we need to reboot the Redo Backup Live CD to retrieve the /usr/share/redo folder. We have another indication, the use of Glade, witch would simplify translation.

After rebooting under Debian Live CD, we have copied the /usr/share/redo folder from Live CD to our partition to the system in use. After libxml-simple-perl reinstalled, Redo Backup starts but without display pictures buttons (just text). We'll see that later.

At this point, we have not modified anything in the source code.

To go a bit further, we've clicked the « backup » button and had the following error :

We have to study the code to find the origin of the problem.

By analysing the /sbin/redocbakup file (which is a Perl script as seen in the section 2.2 ), we find from code line #113 :

##### Backup Logic #####################################################
sub backup_mode {
# Enter Backup mode
our %status;
$status{'action'} = 'backup';
backup_step(1);
}

sub backup_step {
# Advance to the next Backup Step
my $step = $_[0];
….

Lower in the code, we find another interesting element (line #133) :

find_local_drives();

By searching in the code other function, we find this at line #1328 :

my $drivelist = `fsarchiver probe 2>&1`;

Without doing Perl programming, we recognize a system call with the redirect argument " 2>&1 ".l

After a research, we find that fsarchiver is a tool to save a partition content into a compressed file.

Let's try to add fsarchiver :

1. apt-get install fsarchiver

We don't have the error message anymore and can select a volume to save.

We will continue the test until the end.

We will add a second disk into our virtual machine and copy the first one into the second.

We start the backup, but nothing happens. Looking at the console messages where we have launched Redo Backup, we saw the following message :

1. sh : 1 : partclone.exts: not found

So, we install Partclone:

1. apt-get install partclone

After this installation, the backup is working.

Redo Backup & Recovery is a Partclone frontend.

4 - Redo Backup application translation

As seen in the previous section, the main files are the Redo Backup Perl script and the redobackup.glade file.

The glade file is an XML file describing the graphical user interface. Glade is a conception tool for GTK+ (Gimp Tool Kit) GUI.

So, we have translated the messages strings and took care to not modify id's strings as variables.

We also have translated the Perl script himself.

It was necessary to add the following code lines at the beginning of the script to be able to use specific language characters like the character with accent :

use utf8;
use Encode;

Result of the translation with a Debian Live CD :

We have modified the beginning of the script about copyrights :

#!/usr/bin/perl -w
# ----------------------------------------------------------------------
#   Redo Backup
#   A simple GUI interface that allows bare-metal backup and restore.
# ----------------------------------------------------------------------
#   Copyright (C) 2012 RedoBackup.org
#   French translation / traduction française :
#   Philippe RONFLETTE & Christophe LOUVET
#   Original files with / fichiers originaux avec extension .orig
# ----------------------------------------------------------------------

We have kept original files by adding the .orig extension in the same original folder locations.

We also added « _fr » in the /usr/share/redo/VERSION file, which allow the application to start with fr displayed.

We also have translated the « drivereset » script used to erase disks.

This script can be replaced by Wipe or Schred.

5 - Live CD modification

To proceed, we need first of all to understand how a Live CD is functioning.

5-1 - What is a Live CD ?

A Live CD is a CD or DVD-ROM containing a bootable and fully operational operating system. It's possible to add software or modify files inside it. If this system is used on a USB key , it's named a Live USB. If the persistence mode is activated, it will be possible to keep the modifications made in live on a storage support. Otherwise, all modifications are lost when it is rebooted or powered off.

5-2 - How is a Live CD functioning

5-2-1 - UnionFS

A live CD will boot on a special filesystem named unionFS with a read-only part on the boot support, and a read-write part in RAM (this part can also be on a hard disk for example with unionFS used out of live CD). The unionFS name comes from the C union method allowing the storage of two different variables in the same memory space.

union my_union
{
int integer ;
double real ;
}

For this union, the system will reserve the greater variable memory space needed for the two variables, 8 bytes in our case (cause an int takes 4 bytes on a 32 bits machines, and a double takes 8 bytes).

If we call my_union.integer, .the content will be used as an integer, else if we call my_union.real , the content will be used as a double precision real number. To call one then the other is a non sense, the value will be false, the two pseudos vars occupying the same memory space.

If we apply this to an unionFS :

Two different mounted points will be linked to show a unique one. They are superimposed. In Live CD case, one part is in read-only, the other read-write in RAM.

As long as no modification is made, the read-only part is used. If a file is modified, this one will be written in the read-wite mounted point and will be showed.(the origin file always present i the read-only part is hidden and the new version will be presented). If a file is deleted, the unionFS renames it with the .whcc extension. The file with this extension won't be shown.

The live CD's read-write part lives in ramdisk, it is non persistent. It's possible to keep modifications with the persistence functionality.

For more information : https://en.wikipedia.org/wiki/UnionFS.

5-2-2 - SquashFS

SquashFS is a compressed and read-onnly FileSystem. When using it, it's just in time uncompressed.

For more informations : https://en.wikipedia.org/wiki/SquashFS.

The recent Live CD use a SquashFS with AuFS, which is working like UnionFS.

5-3 - Preparation

First of all, we started to create our working environment. We worked in a virtual environment, to be able to make different tests quickly.

5-4 - Changing keyboard language

In our case, we passed the keyboard in French (fr) via the following command ( in other case , it can be different, so use your own codepage) :

setxkbmap fr

We needed to type « setxkb;qp », due to original QWERTY keyoard (french use AZERTY instead of QWERTY)

5-5 - Creating a partition via the Gparted tool

We created a partition on the VM virtual hard disk via the Gparted tool, named « Partition Editor » in the Redo Backup i « Disk Tools » menu.

From Gparted :

- Creating a partition table (because blank disk) via device menu -?create partition table ;

- creating a partition via the mouse right button in the not allocated area and new ;

- operations validation via click on the icon. This operation created a ext2 partition.

Next, we mount the partition in the /mnt folder using the command :

mount /dev/sda1 /mnt

5-6 - Files copy from Redo Backup to our partition

Next, we copy the CD-ROM content available from /cdrom via the following commands :

mkdir /mnt/cd
cp -R -v /cdrom/* /mnt/cd

The -R and -v options are used to make a recursive (-R) and a verbose (-v) copy.

5-7 - Extracting origin SquashFS content

Watching the CD content, we saw a compressed filesystem in /cdrom/casper/filesystem.squashfs.

to be able to access it's content, we've mounted it in loopback mode, and then copied its content in a a folder to modify it.

mkdir /mnt2
mount -t squashfs -o loop /mnt/cd/casper/filesystem.squashfs /mnt2

We've got a message telling us the filesystem is in read-only mode.

Next, we copy the content in a folder :

mkdir /mnt/contenu
cp -R -v /mnt2/* /mnt/contenu

The unsquashfs command would gave us the same result.

The squashFS takes 225 MB, the uncompressed content takes 798 MB.

5-8 - Source system modification

5-8-1 - Redo Backup modifications integration

We have renamed the Redo Backup original files :

mv /mnt/contenu/sbin/redobackup /mnt/contenu/sbin/redobackup.orig
mv /mnt/usr/share/redo/redobackup.glade /mnt/usr/share/redo/redobackup.glade.orig

In our mounted /mnt point , we have the translated redobackup files in the fr folder. We copy it to their right locations  :

cp /mnt/fr/redobackup /mnt/contenu/sbin
cp /mnt/fr/redobackup.glade /mnt/contenu/usr/share/redo

5-9 - SquashFS regeneration

We will now regenerate the new squashFS. We need first the squashfs-tools package

It's possible to install this package temporarily in the chroot to get it available.

cd /mnt/contenu
chroot .

We put the proc, sys and devpts in the chroot :

mount -bind proc proc
mount -bind sys sys
mount -t devpts none dev/pts

Then, install the squashfs-tools (if desired) :

export LANG=C # to avoid locales errors messages
apt-get update
apt-get install squashfs-tools

Next, we unmount the mounted volumes and leave the chroot :

umount /dev/pts sys proc
exit

New squashfs generation :

mksquashfs /mnt/contenu /mnt/filesystem.squashfs

5-10 - CD-ROM regeneration

5-10-1 - SquashFS replacement

After squashFS generation, we replace the old one in the CD copy :

mv /mnt/fileseystem.squashfs /mnt/cd/casper/

We don't regenerate the filesystem.manifest file in the md5sum.txt fingerprint.

The manifest file contains the list of the Live CD installed package. The md5 file is used to check the CD integrity. To not regenerate it, will not block the running. You can regenerate it if you want, but you need to do it at the end of modifications.

5-10-2 - Isolinux bootloader configuration modification

Isolinux is the dedicated CD version of syslinux bootloader. It's equivalent to Grub or Lilo. It's easy to modify it's configuration which is located in the isolinux/isolinux.cfg file.

You can modify it to force the keyboard layout. In our case, we added «locale=fr_FRconsole-setup/layoutcode=fr» on the APPEND line (before « -- » at end of line) to put the keyboard in French.

In the same time, we have translated the text in French.

We simply edited the file in our CD copy with the integrated RedoBackup text editor : LeafPad.

5-10-3 - New CD version burning

We will use genisoimage, already present in the CD, to generate the ISO image. We will use it many times, so we created a script in our partition :

#!/bin/sh
cd /mnt/cd
genisoimage -o /mnt/redobackup_fr.iso -b isolinux/isolinux.bin -c isolinux/boot.cat --no-emul-boot --boot-load-size 4 --boot-info-table -r -J ./

After CD generation, we copy it from our partition to the host of our VM with SCP, after SSH package installation.

You need to set a root password, otherwise SSH will refuse the connection.

We noticed a malfunction with SSH in case of Live system modification, problem being adjustable by including ssh before next squashFS.generation, or by rebooting and reinstalling ssh package.

6 - Tests

After boot of our new CD, we saw a problem with the French accented characters on the IsoLinux screen.

But, the Redo Backup translated application works well. And the keyboard is in French as expected.

The accent problem was fixed recording again the isolinux.cfg file with CP850 charset DOS West Europe encoding. (you need to use the charset needed by your language).

The CP850 is not resent in the LeafPad's defaults encoding, So you need to select "others encoding" and type CP850.

Once CD is regenerated, the display begins correct :

7 - System and tools translation

In this section, we will show you two differents approach allowing the complete system and tools translation.

In this section, we will discuss about of these points :

- menu ;

- system and tools.

OpenBox is the Window Manager used by Redo Backup live. It is known for it's lightness.

7-1 - Dock menu translation

7-1-1 - OpenBox

The Wikipedia's OpenBox page tells us there is three configuration files :

- ~/.config/openbox/menu.xml

- ~/.config/openbox/rc.xml

- ~/.config/openbox/autostart.sh

We don't find the following menu entries in these files :

- Accessories

- System tools

- Settings

If we click the right mouse button on the bar at the bottom, (which for the menu Access and the time display), and then if we select "Preferences", The window title is "AdeskBar", we will look at this side.

7-1-2 - AdeskBar

AdeskBar is an application launcher for OpenBox, written in Python language.

The ~/.config/adeskbar folder contains a default.cfg file. So the content doesn't match with menubar entries.

On the other distributions the launchers are .desktop files, stored in ~/.local/share

In looking this folder, we find un folder containing files matching with our applications. Editing the "File Manager" file (file-manager.Desktop), we modified the line "Name=..." and replaced the text with the french translation, we can see, after killing the AdeskBar process, the modification are in the menu. So we modify the others entries.

For some icons, several files versions are present : *.desktop and *gtk.desktop files . In this case, we have modified the two versions.

Next, we take care of menus titles.

In the ~/.local/share folder, we find a desktop-directories one containing « Settings » and « System Tools » but not « Accessories ». After modifying the two founded entries and AdeskBar reboot, the modifications are working.

Next, we're looking for a file containing « Accessories » in the home user folder:

grep -r Accessories .

This one returned to us the entries in the .config/menu/applications.menu file.

So, we modify the text and restart AdeskBar process. We have two different entries, one "Accessoires" (Accessories french translation) containing two of the five original entries, and one "Accessories" entry containing the three others. So, it's not the good method.

Looking for from the root :

find . -name "*,directory"

We find a /user/share/desktop-directories folder, containing an Accessories file. After modification and reboot, it's OK.

We have copied the /root/.local/share files in our squashFS copy etc/skel/.local/share folder, because in Live CD, user account are created just-in-time from etc/skel . The modified accessories file was also copied in /usr/share/dektop-directories.

Once the CD regenerated (as shown in the section part #5), we have the elements translated correctly.

First of all, we tried to find solutions for Redo Backup translation looking for :

- LXDE and OpenBox documentation available in Internet ;

- in LXDE translations problems dedicated forums ;

- in the general documentation about Linux distributions translations.

Theses tracks have enabled us to find partial solutions. Installing a language package with :

apt-get install language-pack-gnome-fr

By creating a /etc/default/locale file containing :

LANG="fr_FR.UTF-8"

The system himself was translated in French (messages in Terminal), and the date and time, menu elements, and graphical interface, but not everything. The OpenBox graphical interface is globally still in English.

we decide to use a more methodical method, based on verified hypothesis working directly in the Redo Backup distribution completely installed on a hard disk partition. It's the same method exposed in the Live CD preparation section (squashFS decompression). It will also be necessary to create a /boot folder and copying the vmlinuz and initrid.lz files from the /casper CD folder. If this installation is a multiboot installation, it will be possible to start Redo Backup doing an update-grub from the main used Linux system.

Are all the translation libraries available ?

Look at the added language-pack-gnome-fr files, present in
/usr/share/locale-langpack/fr.

We find LC_MESSAGES folder, witch contains many .mo files évoquant functions or applications names from system. These files can't be read with a text editor.

We saw on Internet than .mo files are compiled translation files. We can uncompile them to obtain editable .po files which can be edited with text editor.

We try to uncompile one of it, for example the file-roller.mo file with command :

msgunfmt /usr/share/locale-langpack/fr/LE_MESSAGES/file-roller.mo > ~/file-roller.po

In looking it's content, we see it's a translation for the archiving software.

The translations libraries seem to be present.

Is the system correctly linking the translation files ?

The system is correctly translated in text mode, we can suppose the problem is located in graphical interface. The use of the command :

locale

A terminal shows us correctly defined environment variables. The problem is elsewhere.

If we have a look in the graphical interface configuration files present in /etc/xdg/openbox containing three files which can be verloaded in a user session in ~/.config/openbox.

Everything about graphical environnement can also be in /etc/x11.

We test with a Lubuntu distribution based on lxde and OpenBox to compare with Redo Backup and try to discover what could be missing in it.

we rely on a distribution Lubuntu, based on lxde and Openbox, to compare the two distributions and try to identify what might miss Redo Backup. . The three files from /etc/xdg/openbox are present in both distributions, and nothing in their content allow to envisage a problem here.

We have a look in etc/x11 . The only difference is a symbolic link pointing to /usr/bin/Xorg in Redo Backup.

In the xinit sub-folder, we see two folders present in Lubuntu but not in Redo Backup. The Lubuntu's xinitrc.d sub-folder contains a 50-systemd-user.sh file calling a environment element. We copy this folder in the same place in Redo Backup to see if it's changing anything.

In a console, we launch the 50-systemd-user.sh file being a script. We obtain a error message telling about systemctl being missing. We locate it with Lubuntu :

find /chemin/Lubuntu -name "systemctl"

We copy it in the same folder place in Redo Backup, and then we launch 50-systemd-user.sh again.

We have a new error message about library libgcrypt.so.20 is missing.

A Internet research about it inform us that this library is used for cryptography. No interest for our problem

We find another missing sub-folder in Redo Backup ; xinput.de .After it's content analysis, this file seems to be used for Asiatic languages support. No matter for our problem again.

We know it's the LC_MESSAGES folder whre are the translations libraries. Let's have a look on the differences between Lubunu and Redo Backup about this :

sudo grep -rn "LC_MESSAGES" /etc/*

For both distributions, we don't see differences in /etc.

Now, we're looking for a application's library in Lubuntu also present in Redo Backup to check if menus of this one are translated. We find a gparted.mo file, and launching Gparted in Redo Backup, we notice it is correctly translated.

We can do another hypothesis, The translations are not only done with the /usr/share/locale-langpack/fr/LC_MESSAGE folder.

The reference to the translations are done correctly. We can formulate a new hypothesis.

Or there are identical libraries elsewhere in other folders, or the translations are done directly in the applications binary files.

We try a copy of the binary from Lubuntu instead of Redo Backup equivalent. For example, the PCManFM file manager. We do the operation and start :

pcmanfm

From a console in Redo Backup, a error message tells us the libfm-gtk.so.4 is missing. So we type :

apt-get update

then :

apt-get install libfm-gtk

A error message tells us it's impossible to obtain the package.

A Internet Research learn us this package is included in libfm-gtk4, being himself not foundfor Redo Backup. We have here a version problem between Lubunu and Redo Backup, based respectively on Ubuntu 12.04 version for Redo Backup and 15.10 for the used Lubuntu.

Then, we will download and install the Lubuntu 12.04 version. Once this Done, we try again to replace the binary PCManFM file by the Lubuntu 12.04 one, correctly translated. Starting it under Redo Backup is OK, but the application menus are still in English. So the translations are not in the binary.

Now, we try to find the PCManFM translations file in Lubuntu 12.04, doing a search on all presents files :

find /usr -name "*.mo"

We obtain a lot of files, so we refine by filtering those in french.

find /usr -name "*.mo" | grep "fr"

We discover another folder : /usr/share/locale/fr/LC_MESSAGES in which we find explicit files : pcmanfm.mo, openbox.mo, etc.

We see this folder in Redo Backup, but it's empty. We copy the Lubuntu 12.04 files in it.

We restart our Redo Backup distribution and then … it's now in French.

This method allowed us to identify where were the translations problems are. Some missing files need to be reconstituted. The next method will explain how to do it.

After these tests, we will realize the translation.

7-1-3 - System correction for translation

We are going in chroot from our Redo Backup Live CD copy (like saw in 5.8 chapter).

Lets start with locales:

locale

The command gave us the following errors :

locale: cannot set LC_CTYPE to default locale: no such file or directory
locale: cannot set LC_MESSAGES to default locale: no such file or directory
locale: cannot set LC_COLLATE to default locale: no such file or directory

Followed by different LC fields, the LANGUAGE and LC_TYPE are empty, the others are correctly positioned with the fr_FR.UTF-8 value.

Let's regenerate locales :

locale-gen "fr_FR.UTF-8"

Then :

dpkg-reconfigure locales

The call of locale command doesn't return errors.

To be sure :

apt-get update

The previous apt-get update was wise, the system downloading elements from the « *translate-fr » repositories

We benefit to update the time zone :

dpkg-reconfigure tzdata

Let's regenerate the squashFS followed by CD and let's see the result.

After boot, no change.

Then we try to reinstall the leafpad text editor :

apt-get --reinstall install leafpad

After CD regeneration, same problem.

At the end of the Leafpad reinstall command return, we notice the following messages :

localpurge: Disk space freed in /usr/share/locale: 272KiB
localpurge: Disk space freed in /usr/share/man: 0KiB
localpurge: Disk space freed in /usr/share/gnome/help: 0KiB
localpurge: Disk space freed in /usr/share/omf: 0KiB

Does the «localpurge» application erase the translations files ?

Let's deinstall localepurge :

apt-get remove localepurge

Then reinstall leafpad.

We have a look in the locales content :

ls /usr/share/locale/fr/LC_MESSAGES

leafpad.mo

Very good sign.

Let's regenerate the CD to see the result.

It's working, let's apply the method to others menu applications:

apt-get --reinstall install pcmanfm
apt-get --reinstall install chromium-browser
apt-get --reinstall install baobab
apt-get --reinstall install gparted
apt-get --reinstall install system-config-lvm
apt-get --reinstall install lxrandr
apt-get --reinstall install lxappearance
apt-get --reinstall install lshw-gtk
apt-get --reinstall install obconf

To know applications names, we just have to go to the help menu->info inside them.

After CD regeneration and reboot, some programs stay not translated (Gparted, disk utility). It's seems to be Gnome programs.

Let's try this :

apt-get install language-pack-gnome-fr

This solve the problem.

Photorec stays not translated, there is no french version.

Chromium gave us difficulties, solved with the «chromium-browser-l10n» package re-installation :

apt-get install chromium-browser-l10n

When CD regeneration, Chromium did not work anymore. We started it from the terminal and the the following message :

root@ubuntu:~# chromium-browser
[1971:1971:0330/111614:FATAL:setuid_sandbox_client.cc(282)] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /usr/lib/chromium-browser/chrome-sandbox is owned by root and has mode 4755.

We rectified the problem activating the SUID bit on /usr/lib/chromium-browser/chrome-sandbox file.

chmod u+s /usr/lib/chromium-browser/chrome-sandbox

7-2 - OpenBox contextual menu translation

To change contextual menu, we modified the /etc/xdg/openbox/menu.xml file.

We added entries corresponding to different tools in normal menu. Look at a example for text editor :

<item label="Editeur texte">
<action name"Execute"><execute>leafpad</execute></action>
</item>

We have adapted existing entries. To know the necessary commands, we just had to look at .desktop files saw previously.

We removed the Debian menu by deletion of following entry :

<menu id="/Debian" />

7-3 - Power off buttons translation

Next, we wanted to translate power off buttons at the right bottom :

We looked for « power off computer » string in the /usr/share folder (probably location following our previous research) :

cd /usr/share
grep -r "power off computer" .

The string was found in « /usr/share/adeskbar/plugins/session.py » file. To use quotes , we have to escape them with anti slash character.

Next, we deleted the session.pyc file to force "recompilation" and launched AdeskBarAdeskBar. Strings are correctly translated, but the commands were not work.

A right mouse button click on power off icon permitted us to access to a « Preferences » menu

Then, we have access to a « Launchers » tab containing « Session control » :

We've replaced commands dbus-send—system..... by reboot and poweroff.

Next, we have embedded the modified Python file in the squashFS as well as the AdeskBar settings from  /root/.config/adeskbar/default.cfg to the /etc/skel squashFS folder.

The .pyc file wasn't copied, It is not present in the CD (just-in-time generated).

8 - Corrections and improvements

The chromium access from contextual menu wasn't functioning, an error message was returned :

Chromium cannot be run as root

We retrieved the launch command in .desktop file :

/usr/bin/chromium-browser -user-data-dir=/root/,config/chromium %U

We fixed the starting page in google, the profile was copied in the /etc/skel of . squashFS

We added the « gvfs-backends » package to be able to scan the network from pcManFM.

9 - CD cleaning

We have now finished the translation. We will clean our squashFS . The cleaning operations will be executed in chroot.

The missing locales is due to mitigation made by distribution creator.

We have reinstall packages, this will have filled the .deb cache with them.

Then list the present packages :

dpkg-query -l|more

We remove useless packages via :

apt-get --purge remove [nom du paquet]

The --purge option permits to also delete configuration files.

We need to be careful, to delete necessary packages will generate malfunctions. If you have doubt, leave them.

Then, we delete remaining orphans packages :

apt-get install deborphan
apt-get --purge remove $(deborphan)
apt-get --purge remove deborphan

Once packages deleted, we make the following operations:

apt-get --purge autoremove #remove package and config files
apt-get autoclean # cleans the cache
apt-get clean # cleans the cache
rm /tmp/* -r -f # delete temporary files
rm /var/log/* -r -f # delete logs

Outside chroot, we delete help files about unused applications, and also locales from other languages (we leave English ones).

After cleaning, our ISO files has a size of 326 MM, the original is 249MB. It would be possible to make better, but the ratio of the time necessary to do it and the result is not interesting.

10 - Conclusion

This translation work permits us to enter into the Live Cd universe, and also ti use th OpenBoxWindow Manager less widespread than Gnome or KDE, and to deepen our system skills.

10-1 - For further

We have seen in the part number 3 how to use on Redo Backup other distribution. So it will be possible to create our own distribution embedding Redo Backup.

This Redo Backup.distribution doesn't work on recent system with UEFI Secure boot activated (like original version). To palliate this, we can modify a distribution with Secure boot support, like Ubuntu 14 or higher, and to personalize it to add Redo Backup. Scripts.

10-2 - Sources

To download original ISO

Our french version.

Published link about this tutorial on the Redo Backup SourceForge forum

10-3 - Thanks

We thank the following developpez.com members :

Zoom61 for technical checks ;

Jacques_jean for French spellcheckin of original tutorial ;

Siguillaume for English spellchecking.

WinJerome for global spellchecking (French & English versions)