Linuxportalen.se är Sveriges största och aktivaste webbplats för användare av öppen- och fri programvara.
Du besöker Linuxportalen.se som gäst vilket begränsar din möjlighet att använda webbplatsens alla funktioner. Genom att registera dig som medlem får du inte bara möjlighet att söka bland webbplatsens innehåll, skapa nya och delta i befintliga diskussioner, skapa din egen blogg, kommunicera med andra medlemmar genom privata meddelanden och delta i omröstningar. Du får också tillgång till Veckans Kadavro - en seriestrip unikt skapad för Linuxportalen.se!
Registeringen sker snabbt och är helt kostnadsfri - tveka inte, bli medlem idag!
Halloj!
Jag sitter förvirrat och dreglar över tangentbordet med ett litet datorprojekt. Nämligen att testa en patch från Gnome Bugzilla ( en liten diff-fil av något slag). Jag har aldrig kompilerat något så stort förut och till att börja med vet jag inte hur jag ska få fram originalfilen från difffen?
Någon här som hackat Gnome förut? 
Det skulle vara bra om du nämnde vilket program du ska kompilera, vilken version, samt bifogar en URL till programmets projektsida på gnome.org, samt Bugzilla-sidan/sidan där du hittade patchen.
Halloj!
Programmet är gnome-panel, på min dator /usr/bin/gnome-panel. Jag är mer eller mindre vilsen på gnomes hemsida... Här är bug-rapporten med patchen som jag tänkte pröva. http://bugzilla.gnome.org/show_bug.cgi?id=507873
Hmm... Projektets hemsida hittar jag tyvärr inte men filerna hittar man på
http://ftp.gnome.org/pub/GNOME/sources/gnome-panel/2.26/
och http://git.gnome.org./cgit/gnome-panel/log/?h=gnome-2-26
Jag har försökt lära mig programmering ett tag men det känns som en rätt trög smet att ta sig in i. De flesta böcker börjar med samma saker, variabler och loopar och hej och hå men det som jag tycker är mest frustrerande är att hantera allting runtikring. Kompilatorer och annan programvara. Nu trycker jag i mig Beginning Linux Programming och den har rätat ut en del frågetecken... men en nära framstående hjärnblödning är fortfarande inte utesluten.
Jag letar vidare...
Och här är länken till projektets hemsida
http://live.gnome.org/GnomePanel
Testa INTE detta innan någon annan har bekräftat, eller rättat detta.
Jag har googlat runt lite och du bör kunna göra så här (annars kommer säkert Kristian in och rättar mig
Detta ska göra så att du har två versioner av gnome-panel, så att du kan köra din egen version när du vill, och på så vis testa patchen.
1. (I terminalen, placera dig i källkodskatalogen till gnome-panel)
2. kommando: patch --dry-run -i DinPatch.patch (byt ut DinPatch till den faktiska sökvägen till din patch)
3. (Får du felmeddelande? Om inte fortsätt med..)
4 kommando: patch -i Tb02.patch
5. kommando: ./configure --prefix=/där/du/vill/ha/gnome-panel
6. kommando: make
7. kommando: make install
8. Nu bör du har en egenkompilerad version av gnome-panel. Testa genom att (antingen i terminal, eller alt+f2-rutan) mata in "killall gnome-panel && /din/gnome-panel" där du ersätter /din/gnome-panel med den faktiska sökvägen).
Viktigt: Behåll källkodskatalogen så att du enkelt kan köra "make uninstall" i den om något skulle gå fel. Sedan kan du börja om genom att först köra "make clean", alternativt (om standardpaketet av gnome-panel för din distribution skulle försvinna av någon orsak) installera genom din pakethanterare.
...och det är inte för inte som det står öppna, icke-fungerande, pillade i, elprylar längs ena väggen i mitt rum... här prövas friskt!
Jag har iallafall kommit förbi åtminsone steg 1-3, 4 verkade ok men vid 5 blir det stopp.
Den hittar inte ./configure... jag står (tycker jag) på rätt ställe i mappen och gör jag ls -l configure så är där ett exekverbart program och sudo framför gör ingen skillnad heller?!
Tack för hjälpen!
Hittade just:
http://www.network-theory.co.uk/docs/diff/
Med Stallman som konsult borde man ju träffa rätt. Återkommer till fallet när jag läst klart!
Finns det någon fil som heter autogen eller liknande i mappen? Jag tror du kan köra --prefix...osv även med autotools.
Nu kom jag vidare... genom att börja om och helt enkelt upprepa proceduren. Make nästa!
make: *** No targets specified and no makefile found. Stop.
...Hmm... ska DEN ha argument också? Makefile finns ju.
När man plöjer igenom gnomes sidor så presenterar dom en hel drös med verktyg och det är lite lurigt att förstå vad dom egentligen använder. Någon IDE eller är det fusk?
autogen brukar skapa configure som du ska köra före make.
Men när du kompilerar om ett dist paket till en debian dist så är det enklaste att tanka hem diff filen som finns i din dists källkods förråd tillsammans med .orig filen med källkod.
Sedan kör du patchen som debians diff fil är och sedan kör du din egen patch.
Därefter så bygger du ett paket.
Har du problem att lägga till patchen?
Tex så lägger du till en gz komprimerad patch på detta sätt när du befinner dig i katalogen där du packade upp källkoden.
zcat foo.patch.gz | patch -p0 --verbose --backup --suffix=.orig
--backup --suffix=.orig gör en backup av filen/filerna som patchas så du lätt kan rulla tillbaka patchningen eller kontrollera något om det behövs.
-p0 kan ibland behöva ersättas med -p1 och talar bara om var i sökvägen i patchen den ska börja ifrån, så den vet om den ska börja vid tex först / eller nästa i sökvägen.
Om patchen inte är komprimerad så kan man använda tex
patch -p0 < foo.patch
Detta är bara exempel på hur man kan göra med patchar och det finns andra sätt att applicera patchar på men dessa brukar jag använda.
Sedan till debian så finns det en hel del verktyg och metoder för att bygga paket och patcha paket och jag gör som vanligt på ett sätt som säkert är bökigt och inte använder dessa nya modernare verktyg och metoder så där kanske du får bäst hjälp av någon annan då jag själv inte kör någon debian-baserad dist.
Om man har en serie patchar som man alltid vill applicera på varje ny version av ett program så är git rebase precis vad man behöver. Det automatiserar hela processen (gnome kör git numera)
---------------------------------------
Varje ny generation får en så kall och bitter ton efter en tid och det är bara de under tio som förstår hur man ska leva ett värdigt liv
---------------------------------------
Open Source - because writing software doesn't make you a "traitor"
Om jag ber dig riktigt snällt Kristian kan du inte skriva en guide om git på svenska då så alla kan få lära sig styrkan i git. (som jag borde ha satt mig in i men inte orkat)
Den som söker skola finna att jag redan skrivit en liten text på wikibooks, samt diverse bloginlägg här på LP
---------------------------------------
Varje ny generation får en så kall och bitter ton efter en tid och det är bara de under tio som förstår hur man ska leva ett värdigt liv
---------------------------------------
Open Source - because writing software doesn't make you a "traitor"
checking for PANEL... configure: error: Package requirements (ORBit-2.0 >= 2.4.0 gdk-pixbuf-2.0 >= 2.7.1 pango >= 1.15.4 gtk+-2.0 >= 2.15.1 glib-2.0 >= 2.18.0 gio-2.0 >= 2.18.0 gio-unix-2.0 >= 2.18.0 libgnome-2.0 >= 2.13.0 libgnomeui-2.0 >= 2.5.4 libbonoboui-2.0 >= 2.1.1 gnome-desktop-2.0 >= 2.11.1 libglade-2.0 >= 2.5.0 gconf-2.0 >= 2.6.1 libgnome-menu >= 2.11.1 dbus-glib-1 >= 0.60) were not met:
Jahaja... Så här fanns en massa info som jag missade under ./configure...
Jag trodde att alla bibliotek skulle vara superduper eftersom gnome-panel är samma version som den gnåm jag har i datorn. Dessutom trodde jag att paketen automatiskt skulle vara senaste version eftersom Ubuntu så duktigt laddar ner en massa uppdateringar...
Det är uppmuntrande med alla svar man får här...
När man ska kompilera något och får beroendefel så ska man installera paketen som slutar på "-dev" (om man kör debian/ubuntu).
Sök enligt
apt-cache search libglade | grep dev
så ser du vad som kommer upp
---------------------------------------
Varje ny generation får en så kall och bitter ton efter en tid och det är bara de under tio som förstår hur man ska leva ett värdigt liv
---------------------------------------
Open Source - because writing software doesn't make you a "traitor"
Har lärt mig något nytt: sudo apt-get build-dep gnome-panel
50M nya jag-vet-inte-vad-men-borde-förmodligen...
./configure = en massa makefiler
make = Jösses vad länge den tuggade... funkar!
make install =
Patchen funkar och jag är glad...
Tack alla för hjälpen. Det är mer ös här än på gnomes egen sida...