Anpassa fri programvara - Frihet ett, hur nyttjar man den? Copyright © 2006, 2007 Marcus Rejås Rejås Datakonsult Jag ger härmed rätten till alla att nyttja denna presentation på alla sätt som anses lämpliga så länge som syftet på något sätt främjar användandet av fri och/eller öppen programvara. Du kan alltså ta hela eller delar av detta arbete, du kan ändra det, du kan stoppa in det i ett annat arbete, du kan ta bort mitt namn, du kan hävda att du skrivit det, du kan göra vad du vill med detta arbete bara ovanstående uppfylls. För att göra denna denna presentation har bara fri programvara använts Denna presentation i ett format lämpligt för redigering finns på 12.odp Marcus Rejås, Norrtälje
Anpassa fri programvara - Frihet ett, hur nyttjar man den? Marcus Rejås Rejås Datakonsult N3P – Open Source 7p.
3 Friheter ● Frihet 1 – Friheten att studera hur programmet fungerar och anpassa det så det passa dig ● Frihet 3 – Friheten att förbättra programmet och sprida din förbättrade version till allmänheten så att alla vinner på det
4 Anpassa och förbättra ● Att man har rätt att anpassa betyder inte att det är enkelt att göra det ● Det betyder inte heller att man bör göra det ● Men man kan om man vill ● Det måste finnas rutiner för det ● Någon annan kan göra det åt dig
5 Ge tillbaka dina förändringar ● För din egen skull – Om upphovsmannen tar till sig dina förändringar behöver du inte bry dig om dem i framtiden ● För allas skull – Programmet kan bli bättre för alla ● Strategiskt beslut »
6 När skall man inte ge tillbaka ● Oftast har man bara att vinna på att ge tillbaka, men ibland kan det vara bättre att låta bli. – Kopplingar till egenutvecklade system – Saker som ger marknadsledning – Sådant som avslöjar hemligheter – Sådant ingen annan kan ha nytta av – Men det måste bedömas från fall till fall
7 Att tänka på ● Oavsett vad du förändrar så vill du kunna uppgradera till en senare version av samma produkt, till exempel vid säkerhetsuppgraderingar. ● Tänk efter före ● Isolera dina förändringar så mycket det går. ● Ha struktur vid införande av förändringar
8 Att isolera förändring (1/2) ● Vissa produkter har funktioner för utökning (moduler). Använd dem om möjligt. ● Vid kommunikation med ett privat system modifiera där du har bäst kontroll eller skriv ett mellanlager. Så lite som möjligt i den fria produkten. ● Isolera din kod i egna filer eller väl uppmärkt i originalfilerna.
9 Att isolera förändring (2/2) ● Skapa ett skript som utför förändringarna ● Skriv ”blyg” kod ● Se till att din kod alltid kontrollerar sin omgivning ● Förbered koden för enkel testning ● Läs om Configuration Management (för stort för denna kurs)
10 Hantera förändring ● Målet är att det skall vara enkelt att ta en ny version av originalkoden (upstream) och föra på lokala förändringar samt att verifiera och ”deploya” den nya versionen ● Finns verktyg för detta. Viss funktionalitet finns i SVN, CVS och liknande. Det finns verktyg även för hela kejdan även om det krävs en hel del arbete från er sida.
11 Relationen till originalkoden ● Se till att alltid ha originalkoden nära till hands och lätt att köra ● Isolera fel till er kod eller originalkoden ● Rapportera aldrig buggar eller fel från er version utan se till att reproducera dem från originalkoden ● Även vid supportfrågor måste originalkoden användas
12 Ett exempel ● Koppling mellan lagersystem och Joomla – Skriv en modul till Joomla – Dokumentera den väl – Håll koll på att modulernas API inte förändras mellan olika releaser av Joomla – Skriv tester som är enkla att göra för att verifiera att den fungerar – Om ditt lagersystem är egenutvecklat är det ingen idé att släppa den fritt. Annars är det det.
13 Ett exempel ● Stöd för egenutvecklad hårdvarukort i Linux – Skriv en drivrutin till Linux – Om du kommer att sälja ditt kort, se till att släppa drivrutinen under GPL och försök få med den i Linux. Nu har du stöd för din produkt på ett bra sätt i alla Linuxvarianter på sikt.
14 Ett exempel ● Ta bort onödiga menyalternativ i OpenOffice – Skriv ett skript som gör det – Skriv tester som kollar att det gått bra – Du behöver inte släppa ditt skript men publicera gärna en beskrivning av vad ni gjort.
15 Ett exempel ● Anpassa ett program till Svenska – Kan röra sig om en ren översättning, men kan också vara att ta bort alternativ som till exempel ras, delstat och adressrader – Om det finns en funktion i koden för att isolera översättningar, använd den och skicka din översättning till upphovsmannen – Annars, skriv ett skript som söker igenom koden efter strängar. Översätt dem och gör ett skript som byter ut strängarna. Finns produkter för detta. – Kolla strängar vid varje release, det lär vara nya...
16 Tack! Frågor som vanligt på Moodle eller