forum.netbsd.se - NetBSD Sweden

You are not logged in.

#1 2006-04-05 21:31:42

micke
Member
Registered: 2006-03-28
Posts: 25
Website

Miljö-variabler och build.sh

Tjena, jag sitter och jobbar med en applikation som kommer att dyka upp på nksb.netbsd.se, och jag har lite funderingar på om ni vet vart man kan hitta information om exakt vilka variabler som behövs för att kunna använda build.sh(jag menar inte src/BUILDING, utan mer vad som krävs att verktygen som bygger NetBSD). Har skummat igenom build.sh lite men har svårt att se exakt vad som behövs. Funderar på att dra iväg en fråga till netbsd.org men tänkte fråga här först.

Jag skapar en ny process som exekverar skriptet, och använder execve(2). Jag vill rensa miljön helt och sätta upp en ny med endast de variabler som behövs (mest för att undvika konstigt eller oväntat beteende och minska säkerhetsriskerna). Jag får länkningsproblem när jag bygger "tools" just nu och har då endast satt PATH plus de variabler som är specifika för build.sh och make. Build.sh hittar MACHINE, DESTDIR, TOOLDIR, OBJDIR och RELEASEDIR, men när den kommer till att bygga lint2 så stöter den på länkningsproblem...

Får se om jag får något napp här ;-)

Last edited by micke (2006-04-05 21:33:55)

Offline

 

#2 2006-04-06 14:13:23

micke
Member
Registered: 2006-03-28
Posts: 25
Website

Re: Miljö-variabler och build.sh

Jag har hittat en hel del godsaker i src/share/mk/bsd.README och genom att köra `build.sh params`. Får se om jag får någon ordning på det här... ;-)

Offline

 

#3 2006-04-07 09:20:54

fredrik
Administrator
From: Göteborg, Sweden
Registered: 2004-05-10
Posts: 229
Website

Re: Miljö-variabler och build.sh

Hoppas det löser sig smile

Offline

 

#4 2006-04-07 12:56:05

micke
Member
Registered: 2006-03-28
Posts: 25
Website

Re: Miljö-variabler och build.sh

Det skall nog ordna sig. Anledningen till att jag bytte strategi var att jag ville ha full kontroll över miljön och visste inte i vilken utsträckning build.sh kontrollerar de variabler den använder. Har nu gjort helt om och utnyttjar användarens miljö men skriver över de variabler som används vid konfigurationen. Jag har gjort hela releases tidigare med applikationen utan att sätta några av de variabler som finns och det har fungerat bra. Men då använder man standardmapparna för verktygen, objekt, release osv. Jag antar att det är ok att göra så, de flesta kör ju build.sh med existerande miljö utan problem...

Det går lite långsamt för mig just nu, söker jobb och har lite annat att stå i, det är därför det tar lite tid. Den första releasen kommer nog att kännas ganska fattig men om det är någon som redan läst den "roadmap" jag har på nksb.netbsd.se så skall release 0.3 bli mer användbar då jag kommer att implementera hjälp-funktionen och autokonfigureringen av kärnan. Skall bli riktigt kul, nu har jag i stort sätt bara jobbat med curses. Efter den första pre-alpha releasen hoppas jag att få lite feedback på upplägg och hur den fungerar ((in)stabil, gräsligt, funktionellt, lätt/svårt att använda etc), och försöka rätta till och ändra.

Jag har lite ideer på hur jag skall lösa konfigurationen och hjälpen:

* scanna igenom dmesg och leta efter enheter, spara alla konfigurerade enheter i en hash-lista
* scanna igenom kärn konfigurationsfilen och leta efter enheter
    *slå upp enheten i hash-listan som skapades av dmesg
        * om den finns, fortsätt
        * om inte, inaktivera enheten i konfigurations-filen

Parametrar blir svårare, jag kan inte ta hjälp av en dmesg-utskrift här. Så jag spar helt enkelt alla parametrar precis som de är. Senare kanske man kan skapa mallar för hur dessa skall konfigureras. T ex om man vill skapa en profil för en router kan man inaktivera de saker som inte behövs snabbt och enkelt samtidigt som man strippar kärnan...

Borde inte vara alltför svårt att implementera *host*.

Hjälp-biten löser jag genom att varje projekt har information om vilket källkodsträd som den använder sig av och skannar in filen i applikationen. Man kan inte använda sig av manualerna som själva system har installerat då man inte vet om det är samma version man bygger för. Man kan t ex ha 3.0 installerat och bygga current.

Användare väljer att visa hjälp-avsnitt om en enhet
Ta reda på vilken enhet det rör sig om, hämta korrekt manual-sida i troff-format (tror det är det de använder sig av) och ladda in

Användare väljer att visa hjälp-avsnitt om en parameter
Detta blir svårare att lösa då det flesta ligger i man 4 options, antingen får man försöka hitta något mönster i troff-formatet som visar på nytt stycke och saxxa ut det som är aktuellt, eller så får man helt enkelt visa hela manualsidan. Det finns parametrar som är kopplade till enheter och och deras manual-sida, dessa blir nog väldigt svårt att skanna efter i realtid.

Ja, vi får se hur det här slutar... ;-)

Last edited by micke (2006-04-07 12:59:33)

Offline

 

Board footer

Powered by PunBB
© Copyright 2002–2008 PunBB