пятница, 13 марта 2009 г.

Установка linuxdcpp из Baazar в Debian GNU/GPL Linux Lenny

1. Устанавливаем не обходимые пакеты
# aptitude install cdbs scons libbz2-dev libgtk2.0-dev libglade2-dev libssl-dev \
bzr fakeroot dpkg-dev g++ libboost-dev

2. Переходим в /tmp
$ сd /tmp

3. Качаем саму последнею ревизию из Baazar
$ bzr branch lp:linuxdcpp

4. Переходим в /tmp/linuxdcpp
$ cd /tmp/linuxdcpp

5. Выполняем
$ scons release=1 PREFIX=/usr FAKE_ROOT=/tmp/debian/linuxdcpp

6. Устанавливаем в /tmp/debian/linuxdcpp
$ scons install release=1

7. Перейдем в /tmp/debian/linuxdcpp
$ cd /tmp/debian/linuxdcpp

8. Создадим папку DEBIAN и перейдем в нее
$ mkdir DEBIAN && cd DEBIAN

9. Создадим файл control
control:
Package: linuxdcpp
Version: 1.0.3-bzr297
Architecture: amd64
Maintainer: Vasy pupkin@mail.ru
Installed-Size: 2667
Depends: libbz2-1.0, libc6 (>= 2.7-1), libgcc1 (>= 1:4.1.1), libglade2-0 (>= 1:2.6.1),
libglib2.0-0 (>= 2.16.0), libgtk2.0-0 (>= 2.12.0), libpango1.0-0 (>= 1.20.3),
libssl0.9.8 (>= 0.9.8f-5), libstdc++6 (>= 4.2.1), libx11-6, zlib1g (>= 1:1.1.4)
Section: net
Priority: optional
Homepage: http://linuxdcpp.berlios.de/
Description: Port of the Windows file-sharing program, DC++
Direct connect is a peer-to-peer (P2P) file-sharing protocol.
Clients connect to a central hub where they can view a list of
clients or users connected to them. Users can search for files
and download them from other clients, as well as chat with other
users.
.
The most popular Windows client implementing this protocol
currently is DC++. LinuxDC++ is a Linux port of DC++. Though it is
primarily aimed at Linux, it has been shown to work on other
Unix-based operating systems as well.
.

где bzr297 номер ревизии.

10. Создадим скрипты postinst и postrm
postinst:
#!/bin/sh
set -e
if [ "$1" = "configure" ] && [ -x "`which update-menus 2>/dev/null`" ]; then
update-menus
fi

postrm:
#!/bin/sh
set -e
if [ -x "`which update-menus 2>/dev/null`" ]; then update-menus ; fi

11.Создадим каталог: /tmp/debian/linuxdcpp/usr/share/applications и перейдем в него
$ mkdir -p /tmp/debian/linuxdcpp/usr/share/applications
$ cd /tmp/debian/linuxdcpp/usr/share/applications

12. создадим файл dc++.desktop
dc++.desktop:
[Desktop Entry]
Name=DC++
GenericName=Direct Connect Client
GenericName[fr]=Client Direct Connect
Comment=Linux port of the famous client DC++ for the P2P network Direct Connect
Comment[fr]=Portage linux du fameux client DC++ pour le reseau P2P Direct Connect
Exec=linuxdcpp
Icon=linuxdcpp.xpm
Terminal=false
Type=Application
Categories=Network;P2P

13.Создадим каталог: /tmp/debian/linuxdcpp/usr/share/menu и перейдем в него
$ mkdir -p /tmp/debian/linuxdcpp/usr/share/menu
$ cd /tmp/debian/linuxdcpp/usr/share/menu

14. Создадим файл linuxdcpp
linuxdcpp:
?package(linuxdcpp):\
needs="X11"\
section="Applications/Network/File Transfer"\
title="DC++"\
icon32x32="/usr/share/pixmaps/linuxdcpp-32.xpm"\
icon16x16="/usr/share/pixmaps/linuxdcpp-16.xpm"\
command="/usr/bin/linuxdcpp"

15 Cкопируем иконки из архива в /tmp/debian/linuxdcpp/usr/share/pixmaps
$ mkdir -p /tmp/debian/linuxdcpp/usr/share/pixmaps

16. Соберем пакет
$ cd /tmp/debian && fakeroot dpkg -b linuxdcpp linuxdcpp_1.0.3-bzr297_amd64.deb

17. Установим пакет
# dpkg -i linuxdcpp_1.0.3-bzr297_amd64.deb

среда, 11 марта 2009 г.

Установка XBMC из SVN в Debian GNU/GPL Linux Lenny

1. Устанавливаем не обходимые пакеты
# aptitude checkinstall subversion make g++ gcc gawk pmount libtool nasm automake cmake gperf \
unzip bison libsdl-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev \
libsdl-sound1.2-dev libfribidi-dev liblzo2-dev libfreetype6-dev libsqlite3-dev libogg-dev \
libasound-dev python-sqlite libglew-dev libcurl4-dev x11proto-xinerama-dev libxinerama-dev \
libxrandr-dev libxrender-dev libmad0-dev libogg-dev libvorbis-dev libmysqlclient-dev \
libpcre3-dev libdbus-1-dev libhal-dev libhal-storage-dev libjasper-dev libfontconfig1-dev \
libbz2-dev libboost-dev libfaac-dev libenca-dev libxt-dev libxmu-dev libpng-dev libjpeg-dev \
libpulse-dev mesa-utils

2. Переходим в /tmp
$ сd /tmp

3. Качаем саму последнею ревизию из SVN
Не стабильная версия:
$ svn co http://xbmc.svn.sourceforge.net/svnroot/xbmc/branches/linuxport/XBMC

Стабильная версия:
$ svn co http://xbmc.svn.sourceforge.net/svnroot/xbmc/tags/8.10_Atlantis-linux-osx-win32/XBMC

4. Переходим в /tmp/XBMC
$ cd /tmp/XBMC

5. Выполняем configure
$ ./configure

7. Выполняем make
$ make

8. Устанавливаем
# make install  #Установит программу

или
# checkinstall  #создаст deb пакет и поставит его

9. Запуск
$ xbmc


PS. Необходим репозитарий http://debian-multimedia.org/

вторник, 10 марта 2009 г.

Видео для n810

Вот написал два скрипта для перекодирования video для n810:
1. Если источник DVD
Copy Source | Copy HTML
  1. #!/bin/bash

  2. ABITRATE=128 #Битрейт звуковой дорожки

  3. VOLUME=5 #Во сколько раз будет увеличиваться звук

  4. VBITRATE=800 #Битрейт видео дорожки

  5. OUT=DVD-N810.avi #Выходной файл

  6. SCALE=400:-2 #Масштабирование

  7. INPUT="$1" #Путь к DVD

  8. TITLES=5 #Заголовок с фильмом

  9. AID=128 #Номер звуковой дорожки

  10. CHAPTER=1 #Chapter c которого надо начать рипать

  11. #Фильтры:VD

  12. FILTER="" #1)Самое правильное видео - progressive

  13. #FILTER=pullup,softskip,        #2)Чуток сложнее - telecined

  14. #FILTER=pp=lb,                #3)Interlaced - самая пакость.

  15. crop1=1

  16. crop2=2

  17. while [ "$crop1" != "$crop2" ]

  18. do

  19.     ss1=$(expr $RANDOM % 1000)

  20.     crop1=$(mplayer dvd://${TITLES} -dvd-device ${INPUT} -chapter ${CHAPTER} \

  21.     -benchmark -vo null -nosound -ss $ss1 -frames 70 -vf scale=${SCALE},cropdetect \

  22.     2>/dev/null | grep CROP | sed -n 50p | sed 's/.*crop=//g'| sed 's/).*//g')

  23.     ss2=$(expr $RANDOM % 1000)

  24.     crop2=$(mplayer dvd://${TITLES} -dvd-device ${INPUT} -chapter ${CHAPTER} \

  25.     -benchmark -vo null -nosound -ss $ss2 -frames 70 -vf scale=${SCALE},cropdetect \

  26.     2>/dev/null | grep CROP | sed -n 50p | sed 's/.*crop=//g'| sed 's/).*//g')

  27. done

  28. CROP=$crop1

  29. echo "$CROP"

  30. echo "Pass 1"

  31. mencoder dvd://${TITLES} -dvd-device ${INPUT} -chapter ${CHAPTER} -nosound \

  32. -vf ${FILTER}scale=${SCALE},crop=${CROP} -ovc xvid -xvidencopts chroma_opt:gmc:\

  33. max_bframes=1:vhq=4:bvhq=1:quant_type=mpeg:pass=1 -o /dev/null

  34. echo "Pass 2"

  35. mencoder dvd://${TITLES} -dvd-device ${INPUT} -chapter ${CHAPTER} -oac mp3lame -aid ${AID} \

  36. -lameopts vbr=0:br=${ABITRATE}:mode=0:vol=${VOLUME} -vf ${FILTER}scale=${SCALE},crop=${CROP} \

  37. -ovc xvid -xvidencopts bitrate=${VBITRATE}:gmc:chroma_opt:max_bframes=1:vhq=4:bvhq=1:\

  38. quant_type=mpeg:pass=2 -o ${OUT}

  39. rm divx2pass.log

  40. echo "Happy End"


Использование:
$ ./n810_dvd /path/to/DVD

2. Если источник видео файл
Copy Source | Copy HTML
  1. #!/bin/bash

  2. ABITRATE=128 #Битрейт звуковой дорожки

  3. VOLUME=1 #Во сколько раз будет увеличиваться звук

  4. VBITRATE=800 #Битрейт видео дорожки

  5. OUT="$1"_n810.avi #Выходной файл

  6. #SCALE=480:-2                #Масштабирование

  7. SCALE=400:-2 #Масштабирование

  8. INPUT=$1 #Путь к DVD

  9. #Фильтры:VD

  10. FILTER="" #1)Самое правильное видео - progressive

  11. #FILTER=pullup,softskip,        #2)Чуток сложнее - telecined

  12. #FILTER=pp=lb,                #3)Interlaced - самая пакость.

  13. crop1=1

  14. crop2=2

  15. while [ "$crop1" != "$crop2" ]

  16. do

  17.     ss1=$(expr $RANDOM % 1000)

  18.     crop1=$(mplayer ${INPUT} -benchmark -vo null -nosound -ss $ss1 -frames 70 \

  19.     -vf scale=${SCALE},cropdetect 2>/dev/null | grep CROP | sed -n 50p | \

  20.     sed 's/.*crop=//g'| sed 's/).*//g')

  21.     ss2=$(expr $RANDOM % 1000)

  22.     crop2=$(mplayer ${INPUT} -benchmark -vo null -nosound -ss $ss2 -frames 70 \

  23.     -vf scale=${SCALE},cropdetect 2>/dev/null | grep CROP | sed -n 50p | \

  24.     sed 's/.*crop=//g'| sed 's/).*//g')

  25. done

  26. CROP=$crop1

  27. echo "Pass 1"

  28. mencoder ${INPUT} -nosound -vf ${FILTER}scale=${SCALE},crop=${CROP} -ovc xvid \

  29. -xvidencopts chroma_opt:gmc:max_bframes=1:vhq=4:bvhq=1:quant_type=mpeg:pass=1 -o /dev/null

  30. echo "Pass 2"

  31. mencoder ${INPUT} -oac mp3lame -lameopts vbr=0:br=${ABITRATE}:mode=0:vol=${VOLUME} \

  32. -vf ${FILTER}scale=${SCALE},crop=${CROP} -ovc xvid -xvidencopts bitrate=${VBITRATE}:gmc:\

  33. chroma_opt:max_bframes=1:vhq=4:bvhq=1:quant_type=mpeg:pass=2 -o ${OUT}

  34. rm divx2pass.log

  35. echo "Happy End"

  36.  


Использование:
$ ./n810_file /path/to/file

понедельник, 9 марта 2009 г.

Установка KVIrc 3.4.3 из SVN в Debian GNU/GPL Linux Lenny

1. Устанавливаем не обходимые пакеты
# aptitude install libx11-dev qt3-dev-tools libqt3-mt-dev gettext checkinstall \
dpkg-dev kdelibs kde-devel automake build-essential gcc g++ subversion

2. Переходим в /tmp
сd /tmp

3. Качаем саму последнею ревизию из SVN
svn co https://svn.kvirc.de/svn/branches/kvirc

4. Переходим в /tmp/kvirc/3.4/
cd /tmp/kvirc/3.4/

5. Выполняем autogen.sh
./autogen.sh

6. Выполняем configure
./configure

7. Выполняем make
make

8 Устанавливаем
# make install  # Установит программу

или
# checkinstall  #создаст deb пакет и поставит его

Можно собирать с помощью такого скрипта:
Copy Source | Copy HTML
  1. #!/bin/bash

  2. svn co https://svn.kvirc.de/svn/branches/kvirc/3.4

  3. mkdir /tmp/deb

  4. cd /tmp/deb

  5. cp -r /home/alex/3.4 kvirc-3.4.3

  6. cd kvirc

  7. ./autogen.sh

  8. ./configure --prefix=/usr

  9. make

  10. sudo checkinstall


Необходимо только поставить пакеты для сборки:)

воскресенье, 8 марта 2009 г.

Установка truecrypt 6.1а в Debian GNU/GPL Linux

1) Скачаем программу. http://www.truecrypt.org/downloads.php
2) Распакуем архив в директорию /tmp
3) Удовлетворим зависимости для сборки
# aptitude install build-essential libgtk2.0-dev libwxgtk2.8-dev \
gcc libfuse-devfuse-utils mount libwxbase2.8-dev dmsetup libsm6

4) Переходим в папку /tmp/truecrypt-6.1a-source
5) Качаем в папку 3 файла нужных для сборки
$ wget ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20/pkcs11.h
$ wget ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20/pkcs11f.h
$ wget ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20/pkcs11t.h

6) Собираем:
 $ make 

7) Копируем truecrypt в /usr/local/bin
  # cp /tmp/truecrypt-6.1a-source/Main/truecrypt /usr/local/bin/ 

Запускаем и пользуемся

суббота, 7 марта 2009 г.

Изменение темы qt3 приложений

Приложения на писанные на Qt3, как правило в основном ставиться с KDE 3.x. Но так как я не использую KDE, то по умолчанию приложения которые написаны на qt3 например, VirtualBOX 1.x, используют по умолчанию ужасный стиль motif. Который меня просто не устраивал по своему внешнему виду. Поискав по интернету, нашел способ решить это проблему без установки дополнительных KDE библиотек:
1. Поставить qt3-qtconfig и тему polymer:
# aptitude install qt3-qtconfig polymer

2. Запустить программу
qt3-qtconfig

3. На вкладке Appearance, выберете в списке Select GUI Style тему Polymer. Также вы можете подредактировать цвет темы, чтоб она была больше похожа на вашу GTK тему.

Проблемы с VLC

Столкнулся вот с такой проблемой не воспроизводит видео VLC. Проблема оказалась в репозитарии debian-multimedia.org. Пришлось удалить пакеты(libavcodec51 libavdevice52 libavformat52 libavutil49 libpostproc51 libswscale0 ffmpeg), которые были получены с этого репозитария и заодно переставить VLC. Вот мой ход действий:
1. Закомментировать репозитарий debian-multimedia.org в /etc/apt/sources.list.
2. Удалить пакеты.
# aptitude remove libavcodec51 libavdevice52 libavformat52 vlc libavutil49 libpostproc51 libswscale0 ffmpeg

3. Обновить базу пакетов.
# aptitude update

4. Установить пакеты заново.
# aptitude install libavcodec51 libavdevice52 libavformat52 vlc libavutil49 libpostproc51 libswscale0 ffmpeg

5. Удалить папку настроек VLC
$ rm -fr ~/.vlc/


Вроде все должно заработать.

Скрипт bash

Вот наткнулся вот на такой интересный скрипт, на bash. Который позволяет читать переменные из файлa.
Copy Source | Copy HTML
  1. #!/bin/bash

  2. IFS=$'\n'

  3. for str in `cat ini | sed 's/^ *//' | egrep -v '^$|^#'`; do

  4.         eval $(echo $str|sed 's/ *=/=/;s/= */=/')

  5. done

  6.  

  7. echo $var


в файле ini например должно быть:
var=12345

Источник: http://citkit.ru/articles/121/