Pokazywanie postów oznaczonych etykietą oprogramowanie. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą oprogramowanie. Pokaż wszystkie posty

sobota, 30 marca 2024

Kompilacja Fluxbox 1.3.7 kompilatorem C++ 17 (GCC 11)

Po aktualizacji systemu jakiś czas temu okazało się, że posiadając nową wersję gcc w systemie nie byłem w stanie poprawnie skompilować Fluxboksa. Błąd wyglądał tak:

util/fluxbox-remote.cc: In function ‘int main(int, char**)’:
util/fluxbox-remote.cc:76:32: error: ordered comparison of pointer with integer zero (‘unsigned char*’ and ‘int’)
   76 |             && text_prop.value > 0
      |                ~~~~~~~~~~~~~~~~^~~

Całe szczęście jest to stary błąd (#1138) naprawiony lata temu. O ile jednak link do łatki na stronie stricte Fluxboksowej już nie działa, znajdziemy łatkę na stronie paczki Fluksboksa w AUR oraz wśród społeczności Gentoo.

Jako, że łatka nie jest duża pozwolę sobie wkleić ją do tego posta:

http://git.fluxbox.org/fluxbox.git/patch/?id=22866c4d30f5b289c429c5ca88d800200db4fc4f
https://bugs.gentoo.org/732782

From 22866c4d30f5b289c429c5ca88d800200db4fc4f Mon Sep 17 00:00:00 2001
From: John Sennesael <john@aminking.com>
Date: Mon, 2 Nov 2015 15:14:32 -0600
Subject: fixes bug #1138

---
 util/fluxbox-remote.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/util/fluxbox-remote.cc b/util/fluxbox-remote.cc
index 59852e6..504015b 100644
--- a/util/fluxbox-remote.cc
+++ b/util/fluxbox-remote.cc
@@ -73,7 +73,7 @@ int main(int argc, char **argv) {
     if (strcmp(cmd, "result") == 0) {
         XTextProperty text_prop;
         if (XGetTextProperty(disp, root, &text_prop, atom_result) != 0
-            && text_prop.value > 0
+            && text_prop.value != 0
             && text_prop.nitems > 0) {
 
             printf("%s", text_prop.value);
--
cgit v0.11.2

Wystarczy, że zapiszecie tekst powyżej np. jako c-plus-plus-17.patch i będąc w głownym katalogu źródeł Fluxboksa wydacie polecenie (przy czym plik .patch musi być jeden katalog wyżej):

patch -Np1 < ../c-plus-plus-17.patch

Po wszystkim kompilacja powinna przebiec bez problemów.

poniedziałek, 15 kwietnia 2013

Stawiamy dedykowany serwer Unreal Tournament '99 na linuksie

Ok przyszła pora na pierwszego UT, pisząc tego posta stawiam właśnie takowy serwerek więc będzie na świeżo :). Powoli, krok za krokiem.

Serwer podstawowy


Tworzymy sobie jakiś katalog do naszej zabawy i pobieramy paczkę z serwerem(podaję pierwsze miejsce z tym plikiem jakie znalazłem):
wget http://to22.org/system/files/ut-server-436.tar_.gz

Następnie rozpakowujemy go za pomocą polecenia:
tar xvf ut-server-436.tar_.gz

Otrzymaliśmy folder ut-server, czyli już mamy na czym pracować, fajnie. Przydałoby się jeszcze zapuścić UTPure coby wyłapywało cheaterów bez skilla ;). Tak więc bobieramy:
wget http://downloads.unrealadmin.org/UnrealTournament/AntiCheat/UTPure/UTPureRC7G.zip

Rozpakowujemy, akurar rozpakowywałem unzip'em i zawartości nie było szczególnie dużo więc mogę pokazać co to to ma w środku:
inflating: utpure/UTPureReadme.txt
inflating: utpure/VaPure.htm
inflating: utpure/ZPPureReadme.txt
creating: utpure/System/
inflating: utpure/System/BP1Handler7G.u
inflating: utpure/System/BP4Han[UTPureRC7G.UTPure]dler7G.u
inflating: utpure/System/PureINTLog.u
inflating: utpure/System/PurePkgLog.u
inflating: utpure/System/PureStat7G.u
extracting: utpure/System/UTPureRC7G.int
inflating: utpure/System/UTPureRC7G.u
inflating: utpure/System/VAHandler7G.u
inflating: utpure/System/ValAvatar.ini
inflating: utpure/System/ZPPure7G.int
inflating: utpure/System/ZPPure7G.u
creating: utpure/uz/
inflating: utpure/uz/BP1Handler7G.u.uz
inflating: utpure/uz/BP4Handler7G.u.uz
inflating: utpure/uz/PureStat7G.u.uz
inflating: utpure/uz/UTPureRC7G.u.uz
inflating: utpure/uz/VAHandler7G.u.uz
inflating: utpure/uz/ZPPure7G.u.uz
inflating: utpure/PureINTLog.txt
inflating: utpure/PurePkgLog.txt
inflating: utpure/PureStatsReadme.txt

Jako, że nie znalazłem w załączonych plikach informacji o instalacji(domyślnie kopiuje się zawartość folderów analogicznie, ale co z folderem uz?) zastosowałem się do tego poradnika i skopiowałem zawartość obu folderów, System i uz do katalogu System w katalogu naszego serwera. Następnie(co już pisze w pliku UTPureReadme.txt) dokonujemy niewielkiej zmiany w pliku konfiguracyjnym naszego serwera(UnrealTournament.ini). Mianowicie w dziale [Engine.GameEngine] dodajemy następujące wpisy:
ServerPackages=UTPureRC7G
ServerActors=UTPureRC7G.UTPureSA

Pamiętajmy, że zgodnie z tym co pisze w pliku dołączonym do UTPure należy uruchomić serwer i szybko zakończyć ten proces, wtedy zostanie utworzona w pliku konfiguracyjnym serwera pełna sekcja [UTPureRC7G.UTPure].

I prawdę mówiąc z grubsza będzie tyle. Warto jeszcze rzucić okiem na sekcję [Engine.GameReplicationInfo] są tam podstawowe dane serwera widziane dla graczy. W paczce z serwerem są tam tylko dwie linijki, poniżej pokażę tą sekcję z kilkoma innymi opcjami:
[Engine.GameReplicationInfo]
ServerName=Testowy serwer
ShortName=Testowy
MOTDLine1=Witamy
MOTDLine2=Na naszym
MOTDLine3=Serwerze UT99
AdminName=
AdminEmail=
Region=0

Pora na uruchomienie naszego serwera, myślę, że kto się bierze za takie rzeczy wystarczy że dostanie przykłady, dlatego poniżej przykładowa komenda startująca serwer:
./ucc-bin server CTF-Face?game=BotPack.CTFGame? ini=UnrealTournament.ini log=ut.log -nohomedir &

Jeśli chcecie mieć możliwość administrowania serwerem przez z poziomu przeglądarki internetowej w sekcji [UWeb.WebServer] musicie zmienić linijkę bEnabled na:
bEnabled=True

W niektórych przypadkach zajdzie potrzeba zmiany portu dla tego rodzaju administracji, a że nie ma tej liniki w domyślnym pliku konfiguracyjnym dodam, że robi to w taki sposób(oczywiście port ustalcie sobie sami):
ListenPort=8887

Jeśli chcemy aby nasz serwer był widziany na liście serwerów dodajemy sekcję [IpServer.UdpServerUplink] uzupełnioną np. w ten sposób:
[IpServer.UdpServerUplink]
DoUplink=True
UpdateMinutes=1
MasterServerAddress=unreal.epicgames.com
MasterServerPort=27900
Region=0

Informacje dodatkowe


Automaczyne nagrywanie demek

Jeśli mamy działające UTPure, wystarczy ze w pliku konfiguracyjnym serwera dopiszemy sekcję [UTPureRC7G.bbPlayer], a w niej np.:
bDoDemo=True
DemoMask=%l_[%y_%m_%d_%t]_[%c]_%e
DemoPath=Demos

I teraz tak, bDoDemo określa czy dema mają być automaczycnie nagrywane, DemoMask to maska plików z demami(szczegóły w pliku UTPureReadme.txt dołączonym do UTPure); natomiast DemoPath określa gdzie będą zapisywane dema. W moim przypadku jest to katalog Demos umieszczony na tym samym poziomie co katalog System. Pamiętajcie żeby najpierw utworzyć katalog w którym będą zapisywane dema i aby na końcu wpisu dać "".
 

Zakończenie


W zasadzie będzie na tyle, dodam jeszcze, że serwer warto uaktualnić so wersji 451 lub nowszej, po który zapraszam tutaj.

Zdaję sobie również sprawę, że zawarte tutaj informacje są bardzo podstawowe, niemniej jednak zapewniają postawienie prostego serwera, zachęcam do dalszych poszukiwań na własną rękę.

środa, 22 lutego 2012

Tworzenie filtru dla wielu nadawców w GMailu

Przydatne gdy ręcznie filtrujemy częsty, ale nie wyłapywany automatycznie spam. Pamiętajmy, że adresów nadawców nie oddzielamy przecinkami tylko spacjami, zaś całą grupę zamykamy w nawiasy klamrowe, np.:
{adres1@jakaspoczta.pl adres2@jakaspoczta.pl adres3@jakaspoczta.pl}

Przywrócenie hibernacji w Windows Vista

Rozwiązanie dla problemu, który przytrafił mi się na kilku komputerach. Podobno opcja hibernacji może zniknąć jeśli usuniemy/wyczyścimy plik hibernacji za pomocą narzędzia do oczyszczania dysków dostarczanego z systemem.

Rozwiązanie jest banalne, wystarczy, że uruchomimy wiersz poleceń (znajdziemy go w Akcesoria -> Wiersz Poleceń) i wydamy polecenie:
powercfg /hibernate on

poniedziałek, 29 marca 2010

Fraps dla linuksa?

No właśnie, jeśli chcieliście nagrać kiedyś film przedstawiający działanie aplikacji na OpenGL pojawiał się problem, jeśli była wyświwtlana zaawansowana grafika itp. sprawy, a zależało wam na płynności to sprawa zaczynała być naprawdę ciężka.

Dzisiaj trafiłem na glc, niewielki program mający być chyba właśnie odpowiednikiem Frapsa i tym podobnych programów przeznaczonych głównie dla graczy. Zgrywanie zadziała jeśli wskażemy aplikację na OpenGL lub dźwiękiem z Alsy, jeśli znajdzie tylko aktywną Alsę - zrzuci dźwięk, jeśli tylko OpenGL - obraz, jeśli oba - to oba. Zachęcam do przetestowania.

piątek, 5 marca 2010

Jak uruchomić Tomb Raider 1 pod linuksem?

No tak, gra legenda, a mnie naprawdę długo zajęło znalezienie sposobu na odpalenie jej pod pingwinem aby działała w sposób zadowalający.

Zaznaczam że post ten w dużej części jest po prostu przetłumaczonymi instrukcjami uzyskania akcelerowanego DOSBoksa w wersji 0.73 zamieszczonymi w tym temacie, dodatkowo znajdują się tutaj moje uwagi i dopiski oraz procedura instalacji oraz uruchomienia gry - może akurat komuś się przyda.

Rozwiązaniem okazał się DOSBox z łatkami na sprzętową akcelerację właściwą wtedy głównie dla kart z rodziny 3Dfx, który przy użyciu OpenGlide pozwala nam odpalić akcelerowanego Tomb Raidera.

Ale po kolej, czyli - czego będziemy potrzebować:

  • źródeł DOSBoksa w stabilnej wersji 0.73

  • łatki na źródła DOSBoksa

  • paczki z plikiem glide2x.ovl

  • źródeł OpenGlide

Oczywiście wszystko co zostało omówione w tym poradniku robicie na własne ryzyko ryzykując zdrowiem waszego sprzętu komputerowego (zostaliście ostrzeżeni) - tak pisało w oryginalnym poście, uznałem że warto ostrzec czytelników.

Ok, to po kolei:

1. Niezbędne zależności

Polecenie stosowalne dla dystrybucji Debiano-podobnych:
sudo apt-get install libsdl1.2-dev libsdl-sound1.2-dev libsdl-net1.2-dev libpcap-dev build-essential cvs

Osobiście nie musiałem niczego doinstalowywać jeśli dobrze pamiętam ale to już zależy od tego co macie w swoim systemie.

2. Aktualna wersja OpenGlide

Logowanie na server CVS jako użytkownik anonimowy (jeśli dobrze rozumiem polecenie)
cvs -d:pserver:anonymous@openglide.cvs.sourceforge.net:/cvsroot/openglide login

(Gdy zostaniecie zapytani o hasło klikacie Enter)

Pobieramy źródła OpenGlide z repozytorium CVS
cvs -z3 -d:pserver:anonymous@openglide.cvs.sourceforge.net:/cvsroot/openglide co -P openglide

Dodatkowe zależności kompilacyjne OpenGlide
sudo apt-get install autoconf libtool

Kompilacja OpenGlide
cd openglide
./bootstrap
./configure
make
sudo make install *

* Osobiście polecam doinstalować paczkę checkinstall i zamiast ostatniej komendy wykonać checkinstall. Zbuduje to paczkę dla Debiana i jeśli wykonamy je jako root - od razu zainstaluje ją w systemie. W rezultacie znacznie łatwiej będzie nam później te pliku usunąć.

**Jeśli po wydaniu polecenia make pojawią się problemy (błąd w pliku gbanner.cpp) otwórz ten plik, poszukaj include i zamień na include . Później wykonaj make clean, a następnie ponownie make

3. Pobieramy, nakładamy łatki i kompilujemy  DOSBoksa

Pobieramy źródła DOSBoksa

Jako, że łatka jest na wersję 0.73 (aktualnie jest to wersja stabilna) wystarczy że pobierzecie stabilne źródła programu. Możecie znaleźć je na stronie projektu albo pod tym adresem.

Pobieramy łatki z forum

Przejdź do tego tematu i pobierz oba pliki(DOSBox_glide.zip - łatki na źródła i glide2x.zip - paczka z plikiem glide2x.ovl). Łatkę umieść o jeden folder wyżej niż folder ze źródłami DOSBoksa (upewnij się, że nosi on nazwę dosbox).

Nakładamy łatkę

Polecenie jeśli się nie mylę wykonać należy w katalogu w którym znajduje się łatka:
cat dosbox_glide.diff | patch -p0

Kompilujemy DOSBoksa

Przejdź do folderu dosbox i wykonaj:
./autogen.sh
./configure CPPFLAGS="-I /usr/local/include/openglide/"
make
sudo make install *

* Ponownie, radzę zbudować sobie paczkę przy pomocy checkinstall - może być lekki bałagan z wersją pakietu ale wierzę, że sobie poradzicie

Jeśli do tej pory wszystko poszło pomyślnie powinniście mieć zainstalowaną w systemie wersję DOSBoksa z obsługą akceleracji. Ale zanim przejdziemy dalej musimy sprawdzić kilka rzeczy.

4. Uruchamiamy DOSBoksa i wykonujemy pozostałe czynności

Jak poprawnie uruchamiać akcelerowanego DOSBoksa?

Bardzo ważne jest abyście korzystali z biblioteki OpenGlide - libglide2x.so, a nie tej która jest domyślnie wykorzystywana w systemie. Aby tak się stało uruchamiajcie program tymi dwoma pleceniami:
export LD_LIBRARY_PATH=/usr/local/lib
dosbox

Możliwe jest wykonanie tych czynności w jednej linii, jeśli chcielibyście np. zrobić sobie skrót:
LD_LIBRARY_PATH=/usr/local/lib dosbox

Pamiętajcie aby zawsze w ten sposób uruchamiać DOSBoksa, inaczej biblioteki OpenGlide nie zostaną znalezione.

Zapisujemy bazową konfigurację DOSBoksa

Mi ten punkt nie działa, ale może Wam będzie; po prawdzie to nie jest on też jakoś szczególnie do szczęścia niezbędny (program jakoś po uruchomieniu chyba sam zapisuje konfigurację; u mnie plik konfiguracyjny to ~/.dosbox/dosbox-0.73.conf - utworzył go program i tam dokonywałem wszelkich zmian). Aby zapisać konfigurację bazową po uruchomieniu DOSBoksa wykonaj:
CONFIG -WRITECONFIG dosbox.conf

Po wykonaniu tego polecenia plik dosbox.conf zostanie umieszczony w folderze z poziomu którego uruchamiałeś DOSBoksa (jak z konsoli to chyba jasne, jak nie to pewnie będzie to /home/twoja_nazwa_użytkownika). Jeśli chcesz aby ta konfiguracja była zawsze stosowana przenieś plik do ~/.dosboxrc.

Sprawdzamy czy akceleracja jest aktywna

W pliku dosbox.conf sprawdź czy w sekcji [glide] jest napisane glide=true. Jeśli nie to to zmień.

Instalacja glide2x.ovl

Teraz zajmiemy się drugim plikiem który pobraliście, tym który nie był łatką na źródła tylko archiwum. Znajdźcie tam ten plik i wrzućcie go do katalogu gdzie gra którą będziecie uruchamiać ma plik startowy oraz do katalogu z którego będzie uruchamiać DOSBoksa (np. wasz folder domowy, jeśli uruchamiać będziecie przez prosty skrót).

Pamiętajcie aby, jeśli nazwa pliku nie jest napisana małymi literami zmienić ją na taką. Tzn. jeśli jest np. w archiwum Glide2x.ovl zmieńcie na glide2x.ovl - inaczej program nie znajdzie pliku.

Uruchamiamy ponownie DOSBoksa

Po prostu, pamiętajcie o poleceniu export LD_LIBRARY_PATH=/usr/local/lib jeśli uruchamiacie program na nowej konsoli.

Uruchamiamy grę

Jeśli macie już zainstalowanego Tomb Raidera to zmontujcie jej folder w DOSBoksie, przejdźcie do niego z poziomu programu i grajcie. Upewnijcie się tylko że wykonujecie wersję dla 3Dfx - dobry pliku uruchomieniowy znajdziecie m.in. w tej paczce (interesował Was będzie plik TOMB3dfx.EXE - link do paczki też z jakiegoś tematu na tym forum był ale nie mogę go teraz znaleźć). Oczywiście plik ten umieszczacie w katalogu do którego zainstalowaliście grę.

5. Informacje dodatkowe

W oryginalnym temacie na forum znajdziecie również małe FAQ, mi nie chciało się już go tłumaczyć - w razie problemów radzę tam zajrzeć. Poza tym warto chociaż raz odwiedzić ten wątek bo jest on chyba uaktualniany na porzeby nowych wersji DOSBoksa, tego posta zaś uaktualniał nie będę.

6. + Instalacja Tomb Raidera i uruchomienie - a nóż się komuś przyda

Jeśli nie wiecie jak to zrobić pokaże jak zrobiłem to ja uwalniają się jednocześnie od konieczności każdorazowego wkładania płytki z grą. Przede wszystkim zrobimy sobie obraz płyty aby nie musieć ciągle z niej korzystać, musicie dowiedzieć się jakie urządzenie to u Was napęd do którego wkładacie CD z grą - mocne może się tu okazać polecenie mount (oczywiście wykonane po zobaczeniu zawartości CD w systemie). U mnie napęd był pod /dev/hda więc obraz robiłem poleceniem:
dd if=/dev/hda of=/ścieżka/do/katalogu/gdzie/chcemy/mieć/obraz/nazwa_obrazu.iso

Jak już macie obraz tworzycie sobie jakiś folder np. w /mnt gdzie będziecie go montować:
mkdir /mnt/obraz_tr1

Teraz montujemy nasze nowo-utworzone .iso (koniecznie jako root):
mount -o loop /ścieżka/do/katalogu/gdzie/mamy/obraz/nazwa_obrazu.iso /mnt/obraz_tr1

Teraz wartałoby sobie utworzyć (może nie trzeba, ja tak robię dla porządku) katalog gdzie DOSBox będzie instalował grę (będzie to dla programu dysk C):
mkdir /ścieżka/do/katalogu/gdzie/chcemy/zainstalować/grę

Teraz należy przygotować program do instalacji gry tj. podmontować mu katalog gdzie ma być zaintalowany Tomb Raider jako dysk C oraz katalog z podmontowanym obrazem płyty CD jako D. Uruchamiamy DOSBoksa i wykonujemy:
mount c /ścieżka/do/katalogu/gdzie/chcemy/zainstalować/grę

mount d /ścieżka/do/katalogu/gdzie/montowaliśmy/obraz/płyty

d:

INSTALL.EXE

(po czym przechodzimy przez procedurę instalacyjną)

Teraz wystarczy jeszcze przegrać (jeśli zapomnieliście) plik glide2x.ovl do katalogu w którym zainstalowała się gra oraz do katalogu z którego uruchamiać będziemy DOSBoksa.

Po wszystkim przenosimy zdobyty wcześniej plik TOMB3dfx.EXE do katalogu w którym zainstalowana została gra i uruchamiamy DOSBoksa (pamiętajcie o poleceniu export LD_LIBRARY_PATH=/usr/local/lib). Montujemy katalog do którego zainstalowaliśmy grę jako C, wykonujemy TOMB3dfx.EXE i rozpoczynamy zabawę.

Kompilacja Fluxbox 1.3.7 kompilatorem C++ 17 (GCC 11)

Po aktualizacji systemu jakiś czas temu okazało się, że posiadając nową wersję gcc w systemie nie byłem w stanie poprawnie skompilować Fluxb...