PPA status: Audacious 3.3-beta1, Revelation 0.4.14 and Xournal 0.4.7

It’s been awhile, I know, but there were few reasons for that and I will write about it somewhere in the near future.

Mostly what I’ve done in the last few days:

  • Lots of cleanings — all old and no longer supported packages were cleaned from repositories.
  • Preparation for movement to a new server — thanks to that,  repository will be much more reliable, properly backed up and blazing  fast (I kid you not!).
  • Bringing up new build environment — much more powerful machine  (which saves me a lot of time on building packages), pretty much no  space limitation for my needs.

So, not a lot of actual building, isn’t it? But even though, for  purposes of this post, I’ve build three new packages (I wanted to test  new environment too): Audacious 3.3 Beta 1 (Beta 2 is already released  and I will build and upload it tomorrow), Revelation 0.4.14 (latest  upstream release) and Xournal 0.4.7 (latest upstream release).

If you have any package suggestions, that you would like to see in  Debian, leave a comment, tweet me or drop me a line on  e-mail/facebook/g+ with suggestions (:

PAC: the best SSH manager for Linux

Awhile ago, on my G+ account, I asked following question:

Dear lazyweb. I’m looking for some SSH connection manager for Linux with tabs and logging. Any suggestions?– https://plus.google.com/u/0/104932547714077013691/posts/cerdSCmExc3

There  were few answers with suggestions, however none of them offered ultimate solution for all mentioned points. Today, I found the answer myself, and that answer is PAC Manager.  Just read on its website what this wonderful piece of software is capable of and don’t forget to have a look on screenshots section too. Personally, I will only tell you, that you can find download links here, and besides sources for self-compilation, there are DEB and RPM packages ready.

Flash your Android phone on Linux

In this particular example, I’ll show how to do that on this specification:

OS: Debian Sid
Phone: Samsung Galaxy SL (i9003)
Software: Heimdall 1.3.1
ROM: XXKPQ (taken from here)

Basically it should work on any operating system, cause Heimdall (tool used for flashing) is available for any platform and there’s also source available (as this is project is on MIT license).

Read more “Flash your Android phone on Linux”

PPA status: Marlin 0.1, Audacious 3.1.2, GIMP 2.7.4

I’m happy to announce that, finally, Marlin has been ported to Debian. I used Marlin Daily PPA as an base. I had to drop libunity dependency, as there’s no Unity in Debian, and pack some other libraries to satisfy rest of dependencies: Varka Library and Extended Actions.

New upstream stable release of Audacious – 3.1.x line – is available in unstable branch of my PPA.

Latest unstable release of GIMP – 2.7.4 – is now available in experimental branch of my PPA. All packages are based on this PPA for Ubuntu.

Extend LV & FS on-line with one command

Today my GNOME 3 told me, that my root partition is filling in pretty  quickly and there’s not much space left. I looked into it and figured  that 1 GB of additional space will suffice for some time. Since version 2.02.86 of lvm2 package, there’s a new flag for lvextend command: -r (--resizefs):

Resize underlying filesystem together with the logical volume using fsadm(8).

Neat. I decided to give it a try:

sudo lvextend -L +1G -r /dev/mapper/duckbill-root

  Extending logical volume root to 14,90 GiB
  Logical volume root successfully resized
resize2fs 1.42-WIP (25-Sep-2011)
System plików /dev/mapper/duckbill-root jest zamontowany pod /; wymagana zmiana rozmiaru w locie
old_desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/mapper/duckbill-root to 3906560 (4k) blocks.
The filesystem on /dev/mapper/duckbill-root is now 3906560 blocks long.

Migrating to new Logical Volume

Recently I had some disk issues on my server and unfortunately it went to load average above 20 (which was killing for this machine). It forced me to power down the machine completely and to investigate it further. (It turned out that issue was with space on /home partition —  sharing file system between two disks turned out to be not-so-good-idea after all).

Nevertheless, during those perturbations I found out, that I haven’t got filesystem dedicated for /var/log, which is a good practice and I decided, that it needs to be done. First I checked how much space is used in /var/log at the moment:

du -h /var/log

52K	/var/log/exim4
5.9M	/var/log/nmon
4.0K	/var/log/samba/cores/nmbd
4.0K	/var/log/samba/cores/smbd
12K	/var/log/samba/cores
652K	/var/log/samba
88K	/var/log/apt
4.0K	/var/log/mysql
12M	/var/log/installer/cdebconf
13M	/var/log/installer
48K	/var/log/unattended-upgrades
4.0K	/var/log/iptraf
4.0K	/var/log/news
4.0K	/var/log/sysstat
12K	/var/log/fsck
4.0K	/var/log/ntpstats
2.3M	/var/log/nginx
39M	/var/log

Not so much, so I looked where I can move those files for a moment:

df -PTh | grep /dev/mapper

/dev/mapper/dziobak-root ext4  322M  178M  128M  59% /
/dev/mapper/dziobak-home ext4  169G  148G   14G  92% /home
/dev/mapper/dziobak-tmp ext4  368M   11M  339M   3% /tmp
/dev/mapper/dziobak-usr ext4  8.3G  1.0G  6.9G  13% /usr
/dev/mapper/dziobak-var ext4  2.8G  620M  2.1G  24% /var

/tmp sounds good. Last thing to check before performing any action  — is there any application that is currently using /var/log folder:

lsof /var/log/*

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rsyslogd 1165 root    1w   REG  254,3   483188 4039 /var/log/kern.log
rsyslogd 1165 root    2w   REG  254,3   381980 4099 /var/log/messages
rsyslogd 1165 root    5w   REG  254,3   404756   42 /var/log/syslog
rsyslogd 1165 root    6w   REG  254,3    55716 4072 /var/log/debug
rsyslogd 1165 root    7w   REG  254,3  2403297 4032 /var/log/daemon.log
rsyslogd 1165 root    8w   REG  254,3   251603 4051 /var/log/auth.log
nmon     2202 root  cwd    DIR  254,3     4096 2948 /var/log/nmon

There are two (rsyslog and nmon), so I will need to stop them before  move. But firstly I will prepare new LV dedicated to /var/log:

lvcreate -L 1G --name var-log dziobak
  Logical volume "var-log" created

Where -L 1G is size of the new LV, --name var-log is the name of LV and dziobak is the name of VG. Now it’s time to create some file system — I was  struggling between ext2 or ext4. Finally I decided to go for ext4, but I believe it’s just a matter of taste:

mkfs.ext4 /dev/dziobak/var-log

mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376

Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 24 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

Simple. OK, now it’s time to stop those applications, that are using /var/log, so we can move logs to some temporary place:

service rsyslog stop
Stopping enhanced syslogd: rsyslogd.

lsof /var/log/*
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nmon    2202 root  cwd    DIR  254,3     4096 2948 /var/log/nmon

kill -9 2202
lsof /var/log/*

Done. Let’s move those logs to /tmp then:

tar -cvvzf /tmp/var-log.tar.gz /var/log

*** Some long output ;) ***

ls -l /tmp/var-log.tar.gz
-rw-r--r-- 1 root root 10095778 Sep 27 17:10 /tmp/var-log.tar.gz

rm -rf /var/log

OK, now it’s time to attach new LV and bring back old log files:

mkdir /var/log
mount /dev/mapper/dziobak-var--log /var/log
cd /
tar xvvzf /tmp/var-log.tar.gz

Last step is to add new file system to /etc/fstab:

/dev/mapper/dziobak-var--log /var/log   ext4    defaults        0       2

reprepro, building packages via SSH and signing repository

I’m using my stationary PC for building packages, so most of the time  I’m accessing this server via SSH. Almost everything is working fine,  except pinentry (curses) which isn’t asking for a password during repository signing. Fortunately, reprepro has option that you can pass in command line which will force password question. The flag is --ask-passphrase and here’s an example command:

reprepro --ask-passphrase -b .. include unstable *.changes

Updating GRUB device.map file after adding a new disk

Recently I wrote about extending existing VG in LVM by adding new external hard disk on USB. Basically I covered the topic fully, although today during installation of new kernel (2.6.39 from squeeze-backports) I encounter some errors. It took my awhile while I found out, that the most important one is GRUB related:

update-grub
Generating grub.cfg ...
/usr/sbin/grub-probe: error: Couldn't find PV pv1. Check your device.map.

GRUB2 can read some information from LVM partitions – GRUB-legacy didn’t  really care about disks in LVM, as he was unable to read from them.  Anyway, I figured that the problem is in grub.cfg and in device.map –  both files are located under /boot/grub. What’s the problem? Well, new  added to existing VG and used only to extend existing LVs disk wasn’t  recognized by GRUB (hence error message provided above). This error was  due to lack of disk information provided in device.map file. What’s the  solution? Pretty simple, actually:

mv /boot/grub/device.map /boot/grub/device.map.backup
grub-mkdevicemap
update-grub

That’s all! (: