Hur rättar man buggar i Ubuntu?

Här diskuteras programmering och utveckling
diwic
Inlägg: 96
Blev medlem: 27 jan 2008, 12:54
OS: Ubuntu
Utgåva: 20.04 Focal Fossa LTS
Kontakt:

Hur rättar man buggar i Ubuntu?

Inlägg av diwic »

Finns det någon howto för ungefär följande scenario:

1. Man upptäcker en bug i något av programmen man använder i Ubuntu.
2. Man laddar ner källkoden för programmet från Ubuntus arkiv.
3. Man fixar buggen.
4. Man ersätter befintligt program med det man just kompilerat.
5. Man skickar en patch till nån ansvarig och tipsar om vad det rättar till.

Jag tror mig kunna programmera tillräckligt bra för att kunna rätta buggar i ganska många program, så det är mest steg 2, 4 och 5 som jag undrar över. Det ska väl helst göras på rätt sätt för att det ska gå så smidigt som möjligt och att undvika versionskonflikter?

// David
Lars
Inlägg: 6191
Blev medlem: 14 jan 2007, 19:31
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Stockholm

Re: Hur rättar man buggar i Ubuntu?

Inlägg av Lars »

Det finns väl två vägar att gå, det ena är att rapportera buggarna i Launchpad. Det andra är att vända sig direkt till det projekt det gäller. Hur man gör i Launchpad finns beskrivet på HelpingWithBugs bl.a. För andra projekt får man gå till deras respektive hemsida och t.ex. leta upp deras sändlista eller buggrapporteringssystem.
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

Re: Hur rättar man buggar i Ubuntu?

Inlägg av mcNisse »

Så här gjorde jag när jag försökte rätta buggar i koffice. Jag struntade helt i launchpad.
2. Ladda ner källkoden från projektets versionshanteringssystem.
4. Läs bygginstruktionerna. Det brukar finnas miljövariabler så att det går att mixa versioner av bibliotek ifall det behövs.
5. Skicka patcherna till buggrapporten för projektet. Det borde gå att länka mellan launchpad och projektets buggrapport.
gusnan
Inlägg: 348
Blev medlem: 17 jan 2007, 08:20
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

Re: Hur rättar man buggar i Ubuntu?

Inlägg av gusnan »

2:an löser du genom "apt-src install program". - Om du inte har alla beroenden installerade så kommer den vilja installera dom (genom att köra programmet som sudo - Så se till vilka rättigheter du har på dom hämtade filerna/katalogerna när du har fått hem allt). Skapa helst en mapp för detta då ett par filer vanligen skapas i mappen som kommandot körs. (förutom mappen som innehåller källkoden)

Patchen görs enklast genom att kopiera filen som buggen finns i till en ny (i samma katalog) - fixa buggen - och kör sedan något liknande

Kod: Markera allt

diff -u src/originalfil.c src/fixadfil.c > min_snygga_patch.diff 
(om du skippar "> min_snygga_patch.diff" så får du ut resultatet på skärmen.)

Jag tror det ska ge en acceptabel diff. (Jag är lite osäker på vartifrån man ska köra diff-kommandot dock...)
Användarvisningsbild
gasol
Inlägg: 405
Blev medlem: 27 jul 2007, 14:57
Kontakt:

Re: Hur rättar man buggar i Ubuntu?

Inlägg av gasol »

Jag skulle nog ge dig tipset att inte använda apt-src utan ladda hem och bygga programmet från deras SVN/CVS/GIT eller vad dom nu kör.
Det kan ju hända att buggen redan är fixxad i den senaste versionen. På så vis så slipper du göra en massa extra arbete. En annan anledning är att projekt ofta vill ha diff filer mot deras senaste version så dom slipper att pilla med din patch för att kunna applicera den.

Sedan skulle jag nog tro att projektets mailinglista är det effektivaste sättet att in en patch på, eventuellt också deras IRC kanal
The Black Mountain Scorpion Hoedown Bluegrass Experience Gang
From Left to Right: Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle.
diwic
Inlägg: 96
Blev medlem: 27 jan 2008, 12:54
OS: Ubuntu
Utgåva: 20.04 Focal Fossa LTS
Kontakt:

Re: Hur rättar man buggar i Ubuntu?

Inlägg av diwic »

Ok, tack för svaren. Vad jag inte riktigt har koll på är hur mycket de olika distributionerna skiljer sig från varandra tror jag, och på vilka sätt. (T ex var i filsystemet olika saker bör ligga, behörighetssystem m m) Det gör i sin tur att det känns säkrast att göra det på "Ubuntus sätt".

I vilket fall, jag tänkte försöka mig på att rätta buggen som beskrivs här:

https://bugs.launchpad.net/ubuntu/+sour ... +bug/37664

med hjälp av patchen som beskrivs här:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=396199

...eftersom inte någon i Ubuntu verkar bry sig nämnvärt.

Så då har jag skapat en katalog ~/ubuntusource och där har jag gjort apt-src på ddd och lesstif. Och sedan ändrat källkoden på det sätt som patchen föreslår.

Vilket gör att jag kommer till steg 4, att få det där till att bli aktivt på mitt system. Första frågan är om jag egentligen behöver kompilera om ddd utan om det räcker med att få rätt på lesstif? Med tanke på att ddd beror på lesstif2 i synaptic så tyder det nog på att den länkar mot lesstif2 vid körning och inte vid kompilering.

Fråga: är det jag ska göra härnäst nu, en configure - make - sudo make install på lesstif2? Kommer det att ersätta befintlig lesstif2 och få ddd att länka dit, eller ska jag göra på något annat sätt?
Och om det går åt skogen, hur "avinstallerar" man något man installerat med "sudo make install" egentligen?
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

Re: Hur rättar man buggar i Ubuntu?

Inlägg av mcNisse »

Du kan nog lösa testandet utan att installera libbarna. Det finns en miljövariabel LD_LIBRARY_PATH som styr varifrån libbar läses in. Se bara till att ~/ubuntusource/XXX ligger före /usr/lib så borde det gå bra. XXX är där de byggda libbarna ligger. Jag är osäker om du ens behöver ange /usr/lib i LD_LIBRARY_PATH, programmen har en inbyggd sökväg som de använder. Det går att se den inbyggda med hjälp av ldd.
Du får ju lov att starta ddd från ett skript eller den terminalen du satt variabeln.
Användarvisningsbild
gasol
Inlägg: 405
Blev medlem: 27 jul 2007, 14:57
Kontakt:

Re: Hur rättar man buggar i Ubuntu?

Inlägg av gasol »

Precis som mcNisse säger så är det bara att exportera LD_LIBRARY_PATH, den är kolon separerad precis som PATH är. Ubuntu har som default inget värde satt för LD_LIBRARY_PATH så om du inte har något speciellt satt där så är det bara att ersätta den. LD_LIBRARY_PATH ska peka på katalogen som innehåller .so filerna. Dom brukar oftast ligga i den dolda katalogen .libs under src

När du väl har gjort det så kan du testa å se om ddd länkar mot rätt bibliotek genom att köra ldd <sökväg till ddd binären> och eventuellt grep'a efter lesstif2. Exempel på output för ldd ls:

Kod: Markera allt

ldd /bin/ls
        linux-gate.so.1 =>  (0xffffe000)
        librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb7f58000)
        libacl.so.1 => /lib/libacl.so.1 (0xb7f51000)
        libselinux.so.1 => /lib/libselinux.so.1 (0xb7f3b000)
        libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7dfa000)
        libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7de3000)
        /lib/ld-linux.so.2 (0xb7f7c000)
        libattr.so.1 => /lib/libattr.so.1 (0xb7ddf000)
        libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7dda000)
        libsepol.so.1 => /lib/libsepol.so.1 (0xb7d99000)
The Black Mountain Scorpion Hoedown Bluegrass Experience Gang
From Left to Right: Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle.
Lars
Inlägg: 6191
Blev medlem: 14 jan 2007, 19:31
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Stockholm

Re: Hur rättar man buggar i Ubuntu?

Inlägg av Lars »

Några observationer om just den här buggen:
1) Efter två år står den fortfarande som New trots att buggen har verifierats hos flera personer, se Confirming
2) Buggen verkar ligga i libtiff2 (väl?) men är registrerad på ddd, lägg till libtiff2 via +distribution/package
3) Buggen finns även i Debian men ingen har länkat dit, fixa med +distribution/package och klistra in URL:en
4) När buggen har lagts till libtiff2 kan man sätta Invalid på ddd (om jag förstått saken rätt)

Allt det här är sådant som vem som helst har rättigheter till att fixa! Jag är ingen expert på hur man handskas med det här och ibland kan jag tycka att det känns lite läskigt att rota för mycket i statusen på buggar. Men om man är säker på att man har rätt så tycker jag att man ska göra vad man kan för att rätta till brister i buggrapporteringen.

Jag förstår inte riktigt om buggen är fixad i Debian eller inte, men Ubuntu tar ju många paket rakt av ifrån dem. Det är kanske Debian-folket som "inte bryr sig"?
diwic
Inlägg: 96
Blev medlem: 27 jan 2008, 12:54
OS: Ubuntu
Utgåva: 20.04 Focal Fossa LTS
Kontakt:

Re: Hur rättar man buggar i Ubuntu?

Inlägg av diwic »

Nu har jag gjort följande:

1. Ändrat status från new till confirmed i launchpad samt lagt till länk till lesstif2.

2. Lagt till lämplig "export LD_LIBRARY_PATH" i min ~/.bashrc vilket får ddd att länka mot mitt nya bibliotek.

Får se om debian/ubuntu-folket gör något mer åt buggen, annars har jag åtminstone något som funkar här. Tack för hjälpen!

// David
Skriv svar

Återgå till "Programmering och webbdesign"