Patch and recompile source rpm

четвъртък, април 30th, 2009

Както обикновено когато е последен работен ден изникват странни проблеми. Днес попаднах на интересен client/server side bug, който се наложи да оправям. Оказа се, че в PureFTPd има проблем засягащ timestamp на файлове. При upload на файл timestamp-а локално и този на сървъра се различават с по няколко часа, в зависимост от часовата зона, като за нашата часовете са 2. Това е когато се използва preserve timestamp опцията от страна на клиента, и е доста неудобно при синхронизация на файлове. За щастие проблема се оказа елементарен за решаване – описано е как да стане тук. Аз обаче нямах време да чакам bugfix от upstream-a и взех нещата в свои ръце. Реших да прекомпилирам source rpm и по-надолу ще опиша как точно може да се направи това.

  • Като за начало имаме нужда от rpm-build, така че ако го няма, се налага да го инсталираме :
yum -y install rpm-build
  • Намираме и инсталираме src rpm-а. В моя случай той е ето тук.
rpm -ivh pure-ftpd-1.0.21-15.el5.src.rpm
  • Отиваме в specs директорията:
cd /usr/src/redhat/SPECS/
  • Където подготвяме source за компилиране, като го разархивираме и apply-ваме вече дефинираните patch-ове
rpmbuild -bp pure-ftpd.spec

#Възможно е да има проблеми със зависимости, като естествено трябва да инсталираме посочените пакети, ако има такава необходимост

  • Отиваме в /usr/src/redhat/BUILD където би трябвало да има директория от рода pure-ftpd-1.0.21. Правиме й backup, който ще ползваме при генериране на patch-a в последствие.
cd /usr/src/redhat/BUILD

cp -r pure-ftpd-1.0.21 pure-ftpd-1.0.21.orig

Промяната, която трябва да направим е да заменим "mktime()" с "timegm()" във файла ftpd.c. И така с любимия файлов редактор vim, правим нужната промяна във файла /usr/src/redhat/BUILD/pure-ftpd-1.0.21/src/ftpd.c

  • Генерираме patch-a
diff -Naur pure-ftpd-1.0.21.orig/src/ftpd.c pure-ftpd-1.0.21/src/ftpd.c > ../SOURCES/pure-ftpd-1.0.21-utime.patch

като той трябва да съдържа нещо от рода:

1
2
3
4
5
6
7
8
9
10
11
--- pure-ftpd-1.0.21.orig/src/ftpd.c    2009-04-30 13:39:37.000000000 +0300
+++ pure-ftpd-1.0.21/src/ftpd.c 2009-04-30 13:40:55.000000000 +0300
@@ -2541,7 +2541,7 @@
tm.tm_mon--;
tm.tm_year -= 1900;
if (tm.tm_mon < 0 || tm.tm_year <= 0 ||
-       (ts = mktime(&tm)) == (time_t) -1) {
+       (ts = timegm(&tm)) == (time_t) -1) {
addreply_noformat(501, MSG_TIMESTAMP_FAILURE);
return;
}
  • Редактираме spec файла /usr/src/redhat/SPECS/pure-ftpd.spec като правим следните промени
Release:    15%{?dist}

на

Release:    15%{?dist}.1
  • Добавяме ред, в който описваме направения patch
Patch3:     pure-ftpd-1.0.21-utime.patch
  • в %prep секцията, добавяме следния ред, след другите patch-ове
%patch3 -p1 -b .utime
  • в %changelog секцията описваме направената промяна
1
2
* Thu Apr 30 2009 package maintainer <mail> - 1.0.21-15.1
- patch pure-ftpd "SITE UTIME" bug</mail>
  • остава да прекомпилираме пакета
rpmbuild -ba pure-ftpd.spec
  • Ако всичко мине гладко, готовият RPM трябва да се намира в /usr/src/redhat/RPMS/$arch/ и можем да пристъпим към update/инсталация на готовия пакет.

Още информация:

http://docs.fedoraproject.org/drafts/rpm-guide-en/ch-rpmbuild.html

http://linux.die.net/man/8/rpmbuild

Допълнение:

Настройка на winscp за Daylight saving time (DST) - http://winscp.net/eng/docs/ui_login_environment#daylight_saving_time

Happy Birthday, Al!

събота, април 25th, 2009

Тц, не става въпрос за Ал Бънди, а за един от най-великите актьори на нашето време – Michael Corleone :) а.к.а Al Pacino. И друг път съм споменавал, че е сред любимите актьори, гледал съм почти всички негови филми. Сред тях не липсват и някое и друго недоразумение като Gigli, но 90% от ролите му са уникални. Но всеки, който го е гледал вероятно знае това. Така че няма смисъл да го хваля.

Едва ли щях да пиша специално за рождения му ден, но забелязах, че в програмата на Нова за днес е обявен един от най-добрите му филми, донесъл му й Оскар – „Усещане за жена„. Не знам дали е случайно, или пък човека има фенове и в Нова, които са решили да го почетат, но ЧРД, Ал! Ще гледаме филма, макар и да сме го гледали неведнъж.

Моите Такъми

четвъртък, април 16th, 2009

Проследих първата вълна из блоговете на този „мийм“, който тръгна от Еленко, и за първи път намерих нещо такова за интересно, и сега когато Марио е решил да ми прехвърли щафетата, аз пък реших да се включа.

Няма да има снимки, направих, но на тъмно и с телефон с малка камерка, по-добре въобще да не ги показвам :) Така че, ако някой не може да направи асоциация с написаното, ще трябва да потърси картинка сам :) . Ще пиша главно за нещата, които разнасям ежедневно, или почти ежедневно, с малки изключения.

И така:

1. Nokia 9500 Communicator – голям и тежък смартфон, с чието носене изпитвам известни затруднения, особено в летните месеци. Но когато те потърсят от поддръжката, нямаш лаптоп или интернет връзка наоколо, а твоята намеса е наложителна това е твоето спасение. Qwerty + Mtel GPRS + Putty за Simbian и имаш връзка до където пожелаеш.

2. Sony Ericcson K600i – стар, измъчван от поне двама човека преди мен. Само той си знае премеждията причинили драскотините и внезапните рестарти, от които страда. Но като за втора карта, на която малко хора ми звънят върши своята работа.

3. Слънчеви очила Solano – за човек със светли очи прекарващ средно мжеду 8 и 12 часа пред компютър като мен това е не аксесоар, а необходимост, независимо от сезона. Самия модел е с класически дизайн, дебела рамка и поляризационен филтър cat.3

4. Casio Edifice EFA-119 (син циферблат) – служи ми вярно, вече две години. Има доста функции, включително и термометър, но е труден за калибриране.

5. MP3/MP4 Player MpMan – китайски мп3 плеър, който ми подариха преди време. Справя се нелошо обаче. Ползвам го често, когато не искам да слушам нечий разговор или кикот в автобуса. Най-често е на честотите на star.fm/zrock.

6. Corsair flash voyager – любимият ми флаш стик, на който си нося разни ключове за ssh/vpn и темподобни. Винаги е с мен.

7. Ключодържател / Портфейл – две неща, които също са винаги с мен. Покрай ключовете, имам отварачка за бира, билярдна топка и разни други метални неща. Портфейла е важно да има много разделения, за да има къде да се носят карти, визитки, etc. И естествено пари :)

8. Лаптоп – когато ми се налага пътуване разнасям някой служебен лаптоп, най-често с инсталирани CentOS или Fedora. Избягвам да го нося ежедневно, вземам го само за по-дълги пътувания. Затова и обмислям закупуване на някой компактен netbook.

9. Кримп – Клещи + RJ45 (8P/8C) конектори – хубаво е да ги има, защото никога не се знае кога ще се наложи да се ползват. Неведнъж съм съжалявал, че не ги нося, и неведнъж са ме спасявали когато са били с мен.

С това в общи линии се изчерпват нещата, които са с мен ежедневно. Ето и две други, които ползвам всекидневно, но не ги разнасям с мен:

1. Слушалки AKG-512 / AKG-44 – обичам да слушам музика, особено когато работя. Помага ми да се концетрирам и да се абстрахирам от околната среда. Затова и в офиса, и вкъщи съм заложил на слушалките от марката AKG.

2. Монитори DELL – някой ще каже, защо точно Dell. Отговорът е заради поставката. Масивна и тежка, не позволява монитора да мърда при случайно побутване на бюрото примерно. Доста голям ход за регулиране по височина. Pivot, въртене в почти всички посоки. Невероятно добри и удобни.

В общи линии, това е за което се сетих, че си заслужава вниманието. За разлика от почти всички други не съм отбелязал фототехника. Просто в момента не притежавам такава, но пък съм хвърлил око на Panasonic FZ28 и мисля в скоро време да си го закупя.

Всеки, който чете по-редовно тук, да се чувства поканен да сподели своите „такъми“. Пряка покана отправям към Ясен, Gflex, Icaci и за цвят Intercessia, която наскоро коментира тук :)

Prank Calls

вторник, април 14th, 2009

Преди време, не помня по кое радио правиха опит да шокират хората с радио обаждания рано сутринта. Но не им се отдаваше особено много. Днес попаднах на някои изключително добри телефонни шеги направени в едно от предаванията на BBC Radio 1 с водещ Scott Mills. И така:

1. Scottish Pizza Takeaway – поръчка в пицария

2. Chinese Takeway- поръчка в китайски ресторант

3. Indian Takeaway – поръчка в индийски

http://www.youtube.com/watch?v=S5RRsOK9EQg

4. И накрая, но не на последно място малката Беки, която иска да отмъсти на учителите и училището си.

http://www.youtube.com/watch?v=IYA-rDP3Gss

Световен ден на авиацията и космонавтиката!

неделя, април 12th, 2009

Днес е 12-ти април – световен ден на авиацията и космонавтиката. На първото не съм особен фен, но пък обичам астрономията и космоса, както и нашите звездни братя :)

Имам едно наблюдениe, което често се потвърждава. Голяма част от хората в IT средите обичат sci-fi и неща в тази насока. Не знам защо, но е така. Та така и с мен.

И след това лирично отклонение, да си дойдем на думата. На този ден преди 48 години Русия (тогава СССР) изстрелва Восток-1, на чийто борд е Юрий Гагарин, който става първият човек видял Земята, така както много малко хора са я виждали и ще я видят. Година след това в Русия почват да празнуват Деня на Космонавтиката, а няколко години по-късно с решение на Международната Федерация по Авиация е обявен за международен. Гледам да съм над политическите стереотипи, но при търсене в Google не успях да намеря читава информация по въпроса. В Wikipedia няма статия на Английски, в която да се споменава за това, пише, че е предимно руски празник. Но както и да е, както вече казах политиката е за политиците. Не ми пука особено кой го празнува и кой не. Тук се чества всяка година, така че и аз си го отбелязвам по мой начин. Тази година, понеже съм от Родопите, ще е така:

Честит ден на Космонавтиката!

Stop ACTA