Tags Posts tagged with "slackware"

slackware

przez -
3 1427
Slackware

Największą zaletą otwartego oprogramowania jest dostępność źródeł i możliwość samodzielnej kompilacji programów. Twórcy takich dystrybucji jak Fedora czy Ubuntu nie zachęcają użytkowników do samodzielnej kompilacji, gdyż w podstawowych wersjach domyślnie nie oferują pakietów potrzebnych do tworzenia oprogramowania. Można zaryzykować stwierdzenie, że jeśli czegoś nie ma w repozytorium używanej dystrybucji, to większość użytkowników bezradnie rozkłada ręce i czeka aż deweloperzy przygotują paczkę z programem, czy naniosą poprawki w przypadku błędów. Czasem jednak przychodzi ten moment, że trzeba samodzielnie spróbować przygotować pakiet.

W systemie Slackware, a także dystrybucjach pochodnych typu Salix OS, dosyć łatwo przekompilować program, gdyż twórcy zadbali o dostępność narzędzi programistycznych oraz skryptów ułatwiających budowanie pakietów. Zademonstrujemy to na przykładzie apletu xfce4-weather-plugin dla środowiska Xfce.

Wspomniany wcześniej xfce4-weather-plugin, to aplet Pogody. Wyświetla on dane z dokładnością do jednego miejsca po przecinku, co powinno zazwyczaj cieszyć. Jednakże tutaj dane dotyczące prognozy są orientacyjne i podawanie ich z dużą dokładnością nie ma sensu. Co gorsza ten ogonek po przecinku sprawia, że wartości są mniej wyraziste i trudniej dostrzec to co istotne.

xfce4-weather-plugin

Można oczywiście zasugerować autorom programu nasze wątpliwości na bugzilla.xfce.org, ale wdrożenie poprawek może zająć troszkę czasu, o ile w ogóle zostaniemy wysłuchani, bo być może wszyscy oprócz nas cieszą z takiego stanu rzeczy a tylko nam taka dokładność się nie spodobała. Spróbujmy zatem samodzielnie dokonać zmian.

Po sprawdzeniu wersji pakietu, wiemy że mamy zainstalowany xfce4-weather-plugin 0.8.1. Poszukajmy źródeł i skryptu do zbudowania tego pakietu na jakimś serwerze, który udostępnia takie pliki dla systemu Slackware, np. ftp://ftp.osuosl.org/pub/slackware/slackware_source/. Domyślamy się, że szukany program znajdziemy w podkatalogu xfce i dalej xfce4-weather-plugin. Pobieramy stamtąd 3 pliki:

  • xfce4-weather-plugin-0.8.1.tar.xz – źródła programu,
  • xfce4-weather-plugin.SlackBuild – skrypt do kompilacji i budowania pakietu
  • slack-desc, który jest po prostu opisem programu.

Rozpakowujemy źródła i wchodzimy do podkatalogu panel-plugin. Jest tam sporo plików i początkowo możemy mieć problem ze stwierdzeniem, w którym mogą być dane dla nas istotne. Trzeba zdać się na intuicję lub na systematyczne poszukiwanie. Autorowi udało się w miarę szybko ustalić, że interesuje nas plik weather-data.c, a w nim funkcja get_data, a konkretnie ten fragment kodu w języku C:

[bash]
case TEMPERATURE:
val = g_ascii_strtod(loc->temperature_value, NULL);
if (unit_system == IMPERIAL &&
(!strcmp(loc->temperature_unit, "celcius") ||
!strcmp(loc->temperature_unit, "celsius")))
val = val * 9.0 / 5.0 + 32.0;
else if (unit_system == METRIC &&
!strcmp(loc->temperature_unit, "fahrenheit"))
val = (val – 32.0) * 5.0 / 9.0;
return g_strdup_printf("%.1f", val);
case PRESSURE:
if (unit_system == METRIC)
return LOCALE_DOUBLE(loc->pressure_value, "%.1f");
val = g_ascii_strtod(loc->pressure_value, NULL);
if (unit_system == IMPERIAL)
val *= 0.01450378911491;
return g_strdup_printf("%.1f", val);
case WIND_SPEED:
val = g_ascii_strtod(loc->wind_speed_mps, NULL);
if (unit_system == IMPERIAL)
val *= 2.2369362920544;
else if (unit_system == METRIC)
val *= 3.6;
return g_strdup_printf("%.1f", val);[/bash]

Dla kogoś kto nigdy nie programował wygląda to jak zaklęcie czarnej magii. Jeśli jednak ktoś doczytał aż dotąd, to znaczy, że być może właśnie chce przygodę z programowaniem rozpocząć. Wyjaśniamy zatem, że fragment ten wylicza temperaturę, ciśnienie i prędkość wiatru, przelicza odpowiednio Celsjusze na Fahrenheity i vice-versa oraz zaokrągla dane do jednego miejsca po przecinku. Ktoś kto już programował w C (lub języku o składni pochodnej jak Java) zauważy, że dokładność wyniku uzyskano za pomocą formatowania %.1f. I to nam wystarcza, żeby nanieść pierwszą w życiu poprawkę do źródła w języku C. Zamieniamy %.1f na %.0f. W ten sposób zmuszamy program, żeby zamiast jednej cyfry stosował zero cyfr po przecinku:

[bash]
case TEMPERATURE:
val = g_ascii_strtod(loc->temperature_value, NULL);
if (unit_system == IMPERIAL &&
(!strcmp(loc->temperature_unit, "celcius") ||
!strcmp(loc->temperature_unit, "celsius")))
val = val * 9.0 / 5.0 + 32.0;
else if (unit_system == METRIC &&
!strcmp(loc->temperature_unit, "fahrenheit"))
val = (val – 32.0) * 5.0 / 9.0;
return g_strdup_printf("%.0f", val);
case PRESSURE:
if (unit_system == METRIC)
return LOCALE_DOUBLE(loc->pressure_value, "%.0f");
val = g_ascii_strtod(loc->pressure_value, NULL);
if (unit_system == IMPERIAL)
val *= 0.01450378911491;
return g_strdup_printf("%.0f", val);
case WIND_SPEED:
val = g_ascii_strtod(loc->wind_speed_mps, NULL);
if (unit_system == IMPERIAL)
val *= 2.2369362920544;
else if (unit_system == METRIC)
val *= 3.6;
return g_strdup_printf("%.0f", val);[/bash]

Nie jest to może zbyt rozbudowany przykład, ale przecież od czegoś trzeba zacząć zanim na poważnie zapuścimy się w gąszcz wskaźników, zmiennych i funkcji. Teraz zapisujemy plik i możemy skompilować program ręcznie wydając sakramentalne ./configure; make; make install; ale prościej będzie skorzystać ze skryptu slackbuild, który zawiera w sobie opcje konfiguracji i budowania pakietu. Spakujmy zatem katalog z programem do formatu i nazwy wymaganej przez skrypt: xfce4-weather-plugin-0.8.1.tar.xz; jeśli ręcznie to można np. tak:

[bash]tar cvfJ xfce4-weather-plugin-0.8.1.tar.xz xfce4-weather-plugin-0.8.1/[/bash]

Dalej umieszczamy pobrane wcześniej pliki slack-desc i xfce4-weather-plugin.SlackBuild w tym samym katalogu i z poziomu administratora wykonujemy:

[bash]bash xfce4-weather-plugin.SlackBuild[/bash]

co po wypisaniu wielu linii z informacjami o kompilacji powinno zakończyć się komunikatem:

[bash]Slackware package /tmp/xfce4-weather-plugin-0.8.1-i486-1.txz created[/bash]

Następnie uaktualniamy nasz pakiet w systemie:

[bash]upgradepkg –reinstall /tmp/xfce4-weather-plugin-0.8.1-i486-1.txz[/bash]

Po wylogowaniu i ponownym zalogowaniu, mamy to czego oczekiwaliśmy. Prognoza oraz ikonka na panelu jest od razu bardziej czytelna:

xfce4-weather-plugin

W innych dystrybucjach niż Slackware poprawienie i zbudowanie tego pakietu jest być może trudniejsze, ale na pewno możliwe i jeśli kogoś temat zainteresował, to może poszukać odpowiedniej metody samodzielnie. Tak czy inaczej warto czasami wrócić do źródeł – dosłownie oraz w przenośni – i w ten sposób rozpocząć przygodę z programowaniem.

przez -
9 1103
Slackware

Patrick Volkerding ogłosił wydanie systemu Slackware Linux 14.0. Jest to jedna z najstarszych i nadal aktywnie rozwijanych dystrybucji Linuksa, której pierwsza wersja została wydana 13 lipca 1993 roku. System do dziś jest budowany z zasadą KISS (keep it simple stupid). Najnowsza wersja posiada jądro Linux 3.2.29, GCC 4.7.1, Glibc 2.15, X.Org Server 1.12.1, Perl 5.16.1, Xfce 4.10 oraz KDE SC 4.8.5.

Dodatkowo znajdziemy Firefox 15.0.1, Thunderbird 15.0.1, Konqueror 4.8.5, SeaMonkey 2.12.1, Java Development Kit (JDK) 6, Pidgin 2.10.6, GIMP 2.8.2, gkrellm-2.3.5, XChat 2.8.8, XSane 0.998, PAN 0.139.

przez -
30 1338
Slackware

Wydano system Slackware Linux 13.37. Jest to jedna z najstarszych i nadal aktywnie rozwijanych dystrybucji Linuksa, której pierwsza wersja została wydana 13 lipca 1993 roku. System do dziś jest budowany z zasadą KISS (keep it simple stupid). Najnowsze wydanie działa pod kontrolą jądra 2.6.37.6, dostępne jest również jądro Linux 2.6.38.4. W systemie znajdziemy długo oczekiwaną przeglądarkę Mozilla Firefox 4.0, zaktualizowano także serwer Xów oraz sterowniki do kart graficznych. Dodano do systemu wolnościowy sterowniki Nouveau dla kart graficznych nVidia, usprawniony został instalator systemu, który pozwala teraz zainstalować dystrybucję na systemie plików btrfs.

Polecane

fritz3000

0 45
Jeśli mamy problem z wifi należy najpierw popróbować z rozwiązaniami lokalizacyjnym, czasami kanały mogą być zapchane i to powoduje problemy z łącznością....