Wow…
Jak każdego dnia rano budzę się nie wiedząc co ze sobą zrobić, marnuję większość czasu po czym marnuję jeszcze trochę, zjadam posiłki i marnuję resztę pozostałego dnia. U jego końca postanowiłem zrobić coś pożytecznego, coś na czym zyskam i odmieni moje życie…

Minimalizuję przeglądarkę wiecznej odchłani i spoglądam na conky u prawej części ekranu. Mój wzrok niepewnie sunie się przez kolejne sekcje - dumnie brzmiący, dwukolorowy, napisany pogrubioną czciąnką nagłówek "Archlinux", następnie zakładka Date, Memory, Cpu, aż w końcu zatrzymał się na System. Zerkam na kolejne wiersze dostarczające mi niezbędnych informacji do codziennego życia:

Linux 3.17.3-1-ARCH. x86_64
Uptime: 3d 1h 30m
Last System Update: 30d 22h 12m

Miesiąc od ostatniej aktualizacji, minął szmat czasu, musiałem to zmienić…

Jak niemal codzień naciskam meta+t, ukazuje się czarne okno z moim przyjacielem - znakiem zachęty - który zachęca mnie do codziennych igraszek, ale nie, nie tym razem drogi przyjacielu… Na złość codzienności zdecydowałem wpisać "pacman -Syu", zaraz potem menadżer paczek zaczął synchronizować lokalną listę paczek, na ekranie zaczęła się poruszać żółta literka "C", która zjadała kolejne myślniki wizualizując postęp pobierania oraz w zabawny sposób nawiązując do klasyki gier automatowych, a licznik w conky zrestartował się do pozycji "Last System Update: 0m".
Po pomyślnej synchronizacji listy paczek ukazała się lista pakietów przeznaczonych do aktualizacji. Spokojnie wodzę wzrokiem, czytam kolejne nazwy oprogramowania: archey, bgfminer, calibre, cgminer, chromium, coin, dropbox, ffmpeg…
W końcu swój wzrok zatrzymuję na "freecad", lekko osłupiały przełykam ślinę, drżącą ręką poprawiam okulary, w mojej głowie panuje zmieszanie, niezrozumienie oraz chaos. W myślach mówię "Nie, to nie możliwe!". Przypominam sobie jak jeszcze nieco ponad miesiąc temu instalowałem freecad, i bynajmniej nie był on wtedy dostępny w oficjalnych repozytoriach. Pamiętam jak ręcznie przez ponad godzinę kompilowałem oprogramowanie poprzez AUR (Arch User Repository), sukcesywnie co chwilę potwierdzając swoje wybory niewprowadzania zmian do plików makefile.
Pierwsze co pomyślałem to to, że yaourt mógł wprowadzić jakieś repozytoria dla pacmana, ale po 100 ms odrzuciłem tą myśl jako idiotyczną i pozbawioną sensu. Postanowiłem więc zweryfikować czy naprawdę przez lata próśb użytkowników i rozwoju Freecad, ów program trafił do oficjalnego repozytorium, nadal wydawało mi się to nieprawdopodobne.
Pierwsze co robię to wchodzę na archlinux.org, wchodzę w ostatnio dodane pakiety, naciskam ctrl+F i niepewnie wpisuję kolejne litery - ”f”, ”r”, ”e”.

86_64 Community freecad 0.14.3702-3 A general purpose 3D CAD modeler 2014-12-05

Szok i niedowierzanie! Freecad faktycznie w oficjalnych repozytoriach pacmana!
Pełen entuzjazmu sprawdzam czy to nie sen. Wchodzę na google i wpisuję ”freecad aur”, klikam na pierwszy link prowadzący do podstrony freecad. Ku moim oczom pojawia się błąd 404, to bardzo świeży błąd ponieważ strona jeszcze jest indeksowana w wyszukiwarce Google – to nie sen!, to się dzieje naprawdę!

Fakty nie pozostawiają złudzeń moi drodzy przyjaciele, Freecad po latach niebytu i nieprzychylności developerów Archlinuxa w końcu doczekał się swojego miejsca w dystrybucji.
Morał tej histori jest krótki i niektórym znany - By mieć aktualny softwer zadbaj aby system był systematycznie czyszczony.

Brak powiązanych.
gethiox

@MoonAteTheDark: szory że usunąłem wpisaka (oraz twój komentarz), ale stwierdziłem ze tam się nie nadaje (max 2500 znaków, ale w sumie to lepiej niż 250 czy nawet 140), sporo bawołów rzuciło mi się w oczy :v

MoonAteTheDark

@gethiox: mój komentarz i tak tylko pochlebiał tekst, więc whtvr, ważne że ty go widziałeś

akerro

Daily reminder to pacman -Syu

gethiox

@akerro: i pan myślisz że co, reboot co 24h? Czyś pan oszalał?

gethiox

ciekawostka
autorski skrypt obliczający czas od ostatniego uruchomienia pacman -Syu

#!/bin/sh
pactime=$(cat /var/log/pacman.log | grep "pacman -Syu" | tail -n 1 | grep -o "[0-9]{4}-[0-9][0-9]-[0-9][0-9]\ [0-9][0-9]\:[0-9][0-9]");
diff=$(($(date +%s)-$(date -d "$(echo $pactime | grep -o [0-9] | sed '2q;d')/$(echo $pactime | grep -o [0-9] | sed '3q;d')/$(echo $pactime | grep -o [0-9] | sed '1q;d') $(echo $pactime | grep -o [0-9] | sed '4q;d'):$(echo $pactime | grep -o [0-9]* | sed '5q;d')" +%s)));
if (($diff<3600)); then printf "%01dm\n" $((($diff/60)%60)); elif (($diff<86400)); then printf "%01dh %01dm\n" $((($diff/3600)%24)) $((($diff/60)%60)); else printf "%01dd %01dh %01dm\n" $(($diff/86400)) $((($diff/3600)%24)) $((($diff/60)%60)); fi

Szkrypt bazuje na paczaniu w logach pacmana czy nie włączylie dosłownie "pacman -Syu", zbiera se datę w formacie 2014-12-06 23:57
No i jakoś to tam konwertuje na sekundy, przeprowadza różnice między czasem obecnym w sekundach a tym diffem który przelicza na m/h/d
są tam funkcje warunkowe bo chciałem to upodobnić do conkowego stylu "uptime", że pokazuje tylko minuty jak są minuty, jeżeli więcej i równe godzinie to wtedy dopiero pokazujo godziny

@akerro: może cię to zainteresuje chociaż przypuszczam że wątpie

gethiox

hmm, tak kminię że z czasem przepuszczanie całych pacmanowych logów przez grepa może być nieco zasobożrące, choć nie jest źle bo conky robi to raz na minutę.

akerro

@gethiox: wrzuciłbym to do ruby albo pythona i byłoby mniej zasobożerne i szybsze ;,,;

zskk

@akerro: twierdzenie ze ruby albo python są wydajniejsze od 4 binarek w napisanych C zaladowanych praktycznie zawsze juz do ramu :E

@gethiox: troszku skróciłem:

date -d@$(( $(date +%s) - $(date -d "$(grep Syu /var/log/pacman.log | tail -n1 | cut -d' ' -f1,2 | tr -d '[]')" +%s) )) +'%j %T' | awk '{print $1-1"d",$2}'

aa no i dzieki za info o freecadzie. dawno na to czekalem...

Karramba

@zskk: zjeżdżaj z tą czarną magią, to porządny serwis prowadzony przez... o cholera...

zskk

@Karramba: tak właściwie to wczoraj jeszcze dla u/gethiox napisalem wersję ostateczną:

T=$((($(date +%s)-$(date -d"$(grep Syu /var/log/pacman.log|tail -n1|cut -d' ' -f1,2|tr -d '[]' )" +%s))/60));[ $T -gt 1440 ]&&D=$(($T/1440))d;[ $T -gt 60 ]&&H=$(($T/60%24))h;M=$(($T%60))m;echo $D $H $M

gethiox

u/zskk: potwierdzam i daję okejkę