÷ƒ’À;è TeX output 2003.11.26:1336‹ÿÿÿÿ Û_2 ý ~? ÕÁ ýZݺóþÖëI½q½qecss2074¼Soft–ÿwmw“a“re–fÑRelease“Practice“HO‘ÿwmWTOŽ¤ ®„ØcÕÁGŽŽ¡ó 1ê± ecrm1000¹Eric–U S.“Raš¸èymond“ó  b> cmmi10µ<¹esr@th˜yrsus.comµ>’Î{k¹1.0,“21“no˜v˜em˜bre“1998Ž¡Ÿ&°óŒ6 ecss1000½Questo–ÄßHOš¸èWTO‘Ädescrive“le“regole“di“una“buona“release“pGer“un“p˜rogetto“opšGen-source“p˜er“Linux.‘À¾SeguendoŽ¡queste–„ðregole,‘Ðãsi“faciliter€à“il“pi€ù“pšGossibile“gli“utenti“nel“costruire“il“co˜dice“e“usaš¸èrlo,‘Ðãe“gli“altri“sviluppato˜ri“nelŽ¡capirlo–iÂe“co•Gop“era¸ère›iÂp“er˜miglio•¸èra“rlo.‘¯fQuesto˜do•Gcumento˜€è˜una˜lettura˜obbligata˜p“er˜i˜novelli˜sviluppato¸èri.‘¯fGliŽ¡sviluppatoš¸èri–ãfespGerti“devono“fa˜re“una“revisione“quando“stanno“rilasciando“un“nuovo“p˜rogetto.‘ QV˜err€à“rivedutoŽ¡p•Gerio“dicamente›ÓÖp“er˜mostra•¸ère˜le˜evoluzioni˜degli˜standa“rd.‘í¢La˜traduzione˜italiana˜€è˜stata˜curata˜da˜Edoa“rdoŽ¡Rampazzo‘U µ<½T‘ÿ*¸aedium@mclink.itµ>ŽŸ(Àœó&Lt$ffffecbx1440¿IndiceŽ©Øó]fŒ ecbx1000À1Ž‘ÿIn®>troQÂduzione’€Ó2ŽŽ¤ؼ‘ÿ¹1.1Ž‘%ý¡P•¸èerc“h€é–U questo“doGcumen¸èto?‘>o‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï2ŽŽ¡‘ÿ1.2Ž‘%ý¡Nuo•¸èv“e›U v“ersioni˜di˜questo˜doGcumen“to‘ ‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï2ŽŽ¦À2Ž‘ÿBuone–Õregole“pQÂer“dare“un“nome“a“un“progetto“e“a“un“arc®>hivio’ŠY2ŽŽ¡‘ÿ¹2.1Ž‘%ý¡Usare–U nomi“nello“stile“GNU,“con“una“radice“e“nš¸èumerazione“delle“patc˜h“primarie.secondarie‘ï¡‘ü.ŽŽ‘Æè‘ü.ŽŽ‘wï2ŽŽ¡‘ÿ2.2Ž‘%ý¡Scegliere–U con“accuratezza“un“nome“pGer“il“presso“c¸èhe“sia“unico“e“facile“da“digitare‘‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï4ŽŽ¦À3Ž‘ÿBuone–Õregole“di“sviluppQÂo’CÆ~4ŽŽ¡‘ÿ¹3.1Ž‘%ý¡Scriv¸èere–U in“puro“ANSI“C“o“in“un“linguaggio“pGortabile‘íG‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï4ŽŽ¡‘ÿ3.2Ž‘%ý¡Seguire–U le“buone“regole“della“pGortabilit€à“del“linguaggio“C‘«‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï4ŽŽ¡‘ÿ3.3Ž‘%ý¡Utilizzare–U autoGconf/“automak¸èe/“autoheader‘‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï4ŽŽ¡‘ÿ3.4Ž‘%ý¡Con¸ètrollare–U lo“stato“del“coGdice“prima“di“rilasciarlo‘¬Ë‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï5ŽŽ¦À4Ž‘ÿBuone–Õregole“pQÂer“creare“una“distribuzione’í!>5ŽŽ¡‘ÿ¹4.1Ž‘%ý¡Essere–U sicuri“cš¸èhe“gli“arc˜hivi“tar“v˜engano“sempre“decompressi“in“una“n˜uo˜v‘ÿqÐa“singola“directory‘–»‘ü.ŽŽ‘wï5ŽŽ¡‘ÿ4.2Ž‘%ý¡F‘ÿ*¸ornire–U un“README‘¨#‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï5ŽŽ¡‘ÿ4.3Ž‘%ý¡RispšGettare–U e“seguire“le“regole“standard“p˜er“la“titolazione“dei“le‘D7‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï6ŽŽ¦À5Ž‘ÿBuone–Õregole“di“com®>unicazione’%Ú7ŽŽ¡‘ÿ¹5.1Ž‘%ý¡Riferire–U a“c.o.l.a‘üÑü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï7ŽŽ¡‘ÿ5.2Ž‘%ý¡Riferire–U ad“un“newsgroup“attinen¸ète“al“tema‘2·‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï7ŽŽ¡‘ÿ5.3Ž‘%ý¡F›ÿ*¸ornire–U un“sito“W˜eb‘Ä[‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï7ŽŽ¡‘ÿ5.4Ž‘%ý¡Creare–U delle“mailing“list“attinen¸èti“al“progetto‘£‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï7ŽŽ¡‘ÿ5.5Ž‘%ý¡Distribuzione›U attra•¸èv“erso˜i˜pi€ù˜impGortan“ti˜arc“hivi‘3‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï7ŽŽ¡‘ÿ5.6Ž‘%ý¡F‘ÿ*¸ornire–U arc¸èhivi“RPM‘vW‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï8ŽŽŽŽŒ‹* Û_2 ý ~?Ÿ„€ÕÁGŽÀ1.‘ñ8In®>troQÂduzione’~¯œ¹2ŽŽ ÕÁ ýV¯¿1Ž‘ÁInctropœduzioneŽŸèó¥!¢N ecbx1200Â1.1Ž‘¾P• erc“h€é–¸questo“do_úcumen to?Ž©Mª¹C'€è–un“gran“n¸èumero“di“buone“regole“tradizionali“pšGer“un“co˜dice“op˜en-source“c¸èhe“aiutano“gli“altri“nel“p˜ortarlo,Ž¤ ®usarlo–ßáe“co•Gop“erare–ßánel“suo“sviluppGo.‘ÄAlcune“di“queste“con•¸èv“enzioni–ßásono“tradizionali“nel“mondo“Unix“e“neiŽ¡precursori– xdi“Linš¸èux;‘ܱaltre“sono“state“sviluppate“recen˜temen˜te“in“rispGosta“a“particolari“n˜uo˜vi“strumen˜ti“e“n˜uo˜v˜eŽ¡tecnologie–U come“il“W›ÿ*¸orld“Wide“W˜eb.ŽŸؼQuesto–ãdoGcumenš¸èto“aiuter€à“ad“acquisire“queste“regole.‘KªLo“stesso“€è“organizzato“in“sezioni,‘úQciascuna“con˜tenen˜teŽ¡un–U indice“degli“argomenš¸èti.‘q€Quest'ultimo“servir€à“anc˜he“come“con˜trollo“preliminare“ai“ni“della“distribuzione.ŽŸ#ÃÂ1.2Ž‘¾Nuo• v“e›¸v“ersioni˜di˜questo˜do_úcumen“toŽ¦¹Questo–ÀkdošGcumen¸èto“sar€à“p˜ostato“mensilmen¸ète“nel“newsgroup“óqLË ectt1000ºcomp.os.linux.answers“¹.‘³bIl“do˜cumen¸èto“€èŽ¡arcš¸èhiviato–U su“div˜ersi“siti“FTP“riguardan˜ti“Lin˜ux,“incluso“ºsunsite.unc.edu“¹in“ºpub/Linux/docs/HOWTO¹.Ž©ؼSi–q´pu€ò“prendere“visione“dell'ultima“vš¸èersione“di“questo“HO˜WTO‘qksul“W›ÿ*¸orld“Wide“W˜eb“all'URL‘âÖºhttp://Ž¡sunsite.unc.edu/LDP/HOWTO/Software-–€Release-“Practice.html‘U ¹.Ž¦Si–U €è“autorizzati“a“spGedire“domande“o“commenš¸èti“su“questo“HO˜WTO“a“Eric“S.“Ra˜ymond,Ž¦ó½HЃ ecti1000Ãesr@snark.thyrsus.c‘ÿ}/om–U ºmailto:esr@snark.thyrsus.com“¹.ŽŸ(Àœ¿2Ž‘ÁBuone–G\regole“ppœer“dare“un“nome“a“un“progetto“e“a“un“arcchivioŽŸ¿:¹P•¸èoic“h€é–0il“carico“sui“distributori“di“arc¸èhivi,›Fucome“Sunsite,˜il“sito“del“PSA‘ÿe“CP‘ÿ*¸AN,“€è“in“aumen¸èto,˜si“tendeŽ¡sempre–„]pi€ù“a“far“prošGcessare“le“prop˜oste“da“v‘ÿqÐalutare“in“parte“o“completamen¸ète“da“dei“programmi“(piuttostoŽ¡c•¸èhe›U in“teramen“te˜da˜una˜pGersona).Ž¦Questo–hivio’ˆ6!¹3ŽŽ ÕÁ ýV¯‘Questo– semš¸èbrer€à“a“molti“programmi“un“arc˜hivio“di“un“progetto“c˜hiamato“`foGobar123'“senza“n˜umeroŽŸ ®‘della‘U v¸èersione.Ž¤qRÀfoQÂobar1.2.3.tar.gzŽŽŽ©³‘¹Questo–U semš¸èbrer€à“a“molti“programmi“un“arc˜hivio“di“un“progetto“c˜hiamato“`foGobar1'“nella“v˜ersione“2.3.Ž¡ÀfoQÂobar-v1.2.3.tar.gzŽŽŽ¦‘¹Molti–U programmi“lo“inš¸èterpreterebbGero“come“un“progetto“c˜hiamato“`foGobar-v1'.Ž¡ÀfoQÂo_bar-1.2.3.tar.gzŽŽŽ¦‘¹La–U sottolineatura“€è“dicile“da“leggere,“scriv¸èere“e“ricordareŽ¡ÀF‘ÿ ºoQÂoBar-1.2.3.tar.gzŽŽŽ¦‘¹A‘:ömeno–;1cš¸èhe“non“Ãsi‘gYvo‘ÿ}/glia‘ÿ†¹assomigliare“ad“una“mezza“cartuccia“del“mark˜eting.‘#³Inoltre“€è“dicile“daŽ¤ ®‘leggere,–U scriv¸èere,“e“ricordare.ŽŸ@ÙSe–½si“devš¸èe“distinguere“tra“arc˜hivi“di“sorgen˜ti“e“di“binari,‘*ko“tra“tipi“div˜ersi“di“binari,‘*ko“esprimere“alcuni“tipi“diŽ¡opzioni–Bnel“nome“del“le,‘›Jsi“€è“pregati“di“considerarle“come“un'“estensione“del“le“e“metterle“Ãdop‘ÿ}/o‘.йil“n¸èumeroŽ¡della–U vš¸èersione.‘q€CioG€è,“€è“meglio“scriv˜ere:ŽŸ@ØÀfoQÂobar-1.2.3.src.tar.gzŽŽŽ¦‘¹sorgen¸ètiŽ¤qRÀfoQÂobar-1.2.3.bin.tar.gzŽŽŽ¦‘¹binari,–U di“tipGo“non“precisatoŽ¡ÀfoQÂobar-1.2.3.bin.ELF.tar.gzŽŽŽ¦‘¹binari–U di“tipGo“ELFŽ¡ÀfoQÂobar-1.2.3.bin.ELF.static.tar.gzŽŽŽ¦‘¹binari–U ELF“link‘ÿqÐati“staticamen¸èteŽ¡ÀfoQÂobar-1.2.3.bin.SP‘ÿ ºAR®>C.tar.gzŽŽŽ¦‘¹binari‘U SP‘ÿ*¸AR¸èCŽŸ@ÙSi–Ts€è“pregati“di“Ãnon‘ȹusare“nomi“come“`fo•Gobar-ELF-1.2.3.tar.gz',‘ÔGp“erc¸èh€é–Tsi“programmi“hanno“dicolt€à“aŽŸ ®distingure–U i“sussi“(come“`-ELF')“dalla“radice“del“nome.ŽŸؼUn–U buon“mošGdello“generale“p˜er“un“nome“€è“costituito,“nell'ordine,“da:ŽŸ@Ø‘ 9b1.ŽŽŽ‘presso–U del“progettoŽ¡‘ 9b2.ŽŽŽ‘trattinoŽ¡‘ 9b3.ŽŽŽ‘nš¸èumero–U della“v˜ersioneŽ¡‘ 9b4.ŽŽŽ‘pun¸ètoŽ¡‘ 9b5.ŽŽŽ‘src–U o“bin“(facoltativ¸èo)Ž¡‘ 9b6.ŽŽŽ‘punš¸èto–U o“trattino“(meglio“un“pun˜to)Ž¡‘ 9b7.ŽŽŽ‘tipGologia–U del“binario“e“opzioni“(facoltativ¸èo)Ž¡‘ 9b8.ŽŽŽ‘estensioni–U dell'arc¸èhivio“e“del“tipGo“di“compressioneŽŽŽŒ‹() Û_2 ý ~?Ÿ„€ÕÁGŽÀ3.‘ñ8Buone–Õregole“di“sviluppQÂo’A£¹4ŽŽ ÕÁ ýV¯Â2.2Ž‘¾Scegliere–ðÄcon“accuratezza“un“nome“p_úer“il“presso“c he“sia“unico“e“facile“daŽŸõ‘¾digitareŽŸMª¹La–n™radice“pressanš¸ète“do˜vrebbGe“essere“com˜une“a“tutti“i“le“di“un“progetto,›œ´facile“da“leggere,˜scriv¸èere“e“ricordare.Ž¤ ®Si–~‚€è“pregati“quindi“di“non“usare“sottolineature.‘)÷Ugualmen¸ète“non“usare“caratteri“maiuscoli“e“maiuscoletti“senzaŽ¡una–©£buona“ragione““confondono“l'ordine“di“ricerca“dell'oGcc¸èhio“umano“e“ricordano“una“mezza“cartuccia“delŽ¡mark•¸èeting›U c“he˜v“oglia˜fare˜l'in“telligen“te.Ž©ؼCrea–ǽinoltre“confusione“il“fatto“cš¸èhe“due“progetti“div˜ersi“hanno“lo“stesso“nome.‘ÉXSi“cerc˜hi“cos€ì“di“con˜trollareŽ¡ev•¸èen“tuali–µÜconitti“prima“di“rilasciare“la“propria“n•¸èuo“v‘ÿqÐa–µÜrelease.‘“³Un“buon“luogo“do•¸èv“e›µÜcon“trollare˜€è˜costituitoŽ¡dal–U le“di“indice“di“Sunsite‘ª@ºhttp://sunsite.unc.edu/pub/Linux“¹.ŽŸ(Àœ¿3Ž‘ÁBuone–G\regole“di“svilupppœoŽŸ¿:¹La–×#maggior“parte“di“queste“regole“sono“vš¸èolte“ad“assicurare“la“pGortabilit€à,‘7£non“solo“v˜erso“sistemi“Lin˜uxŽ¡ma–Ougualmenš¸ète“v˜erso“altri“sistemi“Unix.‘¾Essere“pGortabile“v˜erso“altri“sistemi“Unix“non“€è“solo“un“segno“diŽ¡professionalit€à– ve“cortesia“del“programmatore,‘óKma“ancš¸èhe“un'assicurazione“preziosa“con˜tro“ev˜en˜tuali“futuriŽ¡cam•¸èbiamen“ti–U in“Lin¸èux“stesso.Ž¦Inoltre,‘âWaltre–’æpšGersone“Ãc–ÿ}/er“cher“anno‘4t¹di–’æcompilare“il“loro“co˜dice“su“sistemi“non-Lin¸èux;‘1Écon“la“p˜ortabilit€à“siŽ¡ridurr€à–U il“n¸èumero“di“pšGersone“p˜erplesse“cš¸èhe“in˜vieranno“fastidiosissime“e-mail.ŽŸ#ÃÂ3.1Ž‘¾Scriv ere–¸in“puro“ANSI“C“o“in“un“linguaggio“p_úortabileŽŸMª¹Pš¸èer–ýLla“pGortabilit€à“e“la“stabilit€à,‘'Wsi“do˜vrebbGe“scriv˜ere“in“ANSI–ý!C“o–ýLin“un“altro“linguaggio“c˜he“sia“garan˜titoŽ¡come–U pGortabile“in“quanš¸èto“abbia“un'implemen˜tazione“m˜ulti-piattaforma.Ž¦Linguaggi–uÜdi“questo“tipGo“includono“Python,–¢ƒP¸èerl,“T›ÿ*¸cl–uÜed“Emacs“Lisp.‘'V˜ecc¸èhi,‘¢ƒsemplici“linguaggi“shell“non“sonoŽ¡qualicati;‘yci–m`sono“troppGe“dierenš¸èti“implemen˜tazioni“con“sottili“idiosincrasie,‘spe“l'am˜bien˜te“shell“€è“soggetto“aŽ¡in•¸èterruzioni›U do“vute˜alle˜congurazioni˜dell'uten“te˜come,˜ad˜esempio,˜quelle˜degli˜alias˜delle˜shell.Ž¦Ja¸èv‘ÿqÐa–*×promette“bšGene“come“linguaggio“p˜ortabile,‘`Ema“le“implemen¸ètazioni“disp˜onibili“p˜er“Lin¸èux“sono“app˜enaŽ¡abbGozzate–r`e“scarsamenš¸ète“in˜tegrate“con“Lin˜ux.‘É?La“scelta“di“Ja˜v‘ÿqÐa“€è“pšGer“ora“il“minore“dei“mali,‘y¯sebb˜ene“p˜ossaŽ¡div¸èenire–U pi€ù“p•Gop“olare–U con“il“tempGo.ŽŸ#ÃÂ3.2Ž‘¾Seguire–¸le“buone“regole“della“p_úortabilit€à“del“linguaggio“CŽŸMª¹Se–»€si“scrivš¸èe“in“C,“si“€è“libGeri“di“usare“pienamen˜te“le“caratteristic˜he“ANSI‘»$“prototipi“di“funzioni“inclusi,Ž¡cš¸èhe–® aiuteranno“a“individuare“le“inconsistenze“tra“i“div˜ersi“moGduli.‘|I‘® compilatori“in“v˜ecc˜hio“stile“K&R‘® sonoŽ¡supGerati.Ž¦D'altra–Ò¤parte“non“si“presuppGonga“cš¸èhe“alcune“caratteristic˜he“spGecic˜he“del“GCC‘Ò„come“l'opzione“'-pipGe'“o“leŽ¡funzioni–r—nidicate“siano“dispGonibili.‘ÉäQueste“si“torceranno“conš¸ètro“a“c˜hiunque“faccia“un“pGorting“v˜erso“sistemiŽ¡non-Lin¸èux–U o“non-GCC.ŽŸ#ÃÂ3.3Ž‘¾Utilizzare–¸auto_úconf/“automak e/“autoheaderŽŸMª¹Se–µFsi“scrivš¸èe“in“C,“usare“autoGconf/automak˜e/autoheader“pGer“risolv˜ere“problemi“di“pGortabilit€à,‘ Osondare“laŽ¡congurazione–¦del“sistema,‘HHe“confezionare“i“makš¸èele.‘¹Chi“installa“dai“sorgen˜ti“si“aspGetta,–HHgiustamen˜te,“diŽ¡pGoter–U digitare“congure;“mak¸èe“e“ottenere“una“struttura“pulita.ŽŽŽŒ‹1! Û_2 ý ~?Ÿ„€ÕÁGŽÀ4.‘ñ8Buone–Õregole“pQÂer“creare“una“distribuzione’êýÒ¹5ŽŽ ÕÁ ýV¯Â3.4Ž‘¾Con trollare–¸lo“stato“del“co_údice“prima“di“rilasciarloŽ©Mª¹Se–W¹si“scrivš¸èe“in“C,“fare“un“test“con“'-W‘ÿ*¸all'“ed“eliminare“gli“errori“almeno“una“v˜olta“prima“di“ciascuna“release.Ž¤ ®Questo–¦0bloGcca“un“nš¸èumero“sorprenden˜te“di“errori.‘71P˜er“una“totale“completezza“si“compili“anc˜he“con“'-pGedan˜tic'.ŽŸؼSe–K si“scrivš¸èe“in“P˜erl,‘M con˜trollare“il“cošGdice“con“'p˜erl“-c',‘M 'p˜erl“-w',‘M e“'p˜erl“-T'‘Kprima“di“ciascuna“release“(si“v¸èedaŽ¡la–U doGcumenš¸ètazione“P˜erl).ŽŸ(Àœ¿4Ž‘ÁBuone–G\regole“ppœer“creare“una“distribuzioneŽŸ¿:¹Le–æeseguenš¸èti“indicazioni“descriv˜ono“come“la“propria“distribuzione“do˜vrebbGe“apparire“quando“qualcuno“laŽ¡rin¸ètraccia,–U la“scarica“e“la“decomprime.ŽŸ#ÃÂ4.1Ž‘¾Essere–«•sicuri“cš he“gli“arc˜hivi“tar“v˜engano“sempre“decompressi“in“una“n˜uo˜v‘ÿ@ aŽŸõ‘¾singola‘¸directoryŽ¦¹Il–ªìpi€ù“fastidioso“errore“dei“no•¸èv“elli–ªìsviluppatori“consiste“nel“fare“arcš¸èhivi“tar“c˜he“decomprimono“i“le“e“leŽ¡directory–Ýsdella“distribuzione“nella“directory“correnš¸ète,‘ÿˆmagari“so˜vrascriv˜endo“le“gi€à“esisten˜ti.‘ xÃNon‘biso‘ÿ}/gnaŽ¡farlo–“°mai“!Ž©ؼ¹In•¸èv“ece,‘ si–xCdev'essere“sicuri“cš¸èhe“i“le“del“proprio“pacc˜hetto“abbiano“tutti“una“pGorzione“di“directory“c˜hiamataŽ¡come–il“progetto,‘É}ancš¸èh€é“questi“v˜engano“decompressi“in“una“singola“directory“direttamen˜te“Ãsotto‘ ’¹quellaŽ¡corren¸ète.Ž¦Ecco– Ùun“trucco“pGer“un“makš¸èele“c˜he“agisce“in“questo“moGdo,‘SÈassumendo“c˜he“la“directory“della“propria“dis-Ž¡tribuzione–OÅvš¸èenga“c˜hiamata“`foGobar'“e“c˜he“SR˜C‘O…con˜tenga“un“elenco“dei“le“della“distribuzione“stessa.‘aoCi€òŽ¡ric¸èhiede–U GNU“tar“1.13Ž©ؼºVERS=1.0Ž¡foobar-$(VERS).tar.gz:Ž¡‘)ý`tar–?¬--prefix-name='foobar-$(VERS)/'“-czf“foobar-$(VERS).tar.gz“$(SRC)Ž¦¹Se–U si“ha“un“vš¸èersione“pi€ù“v˜ecc˜hia“di“tar,“si“pu€ò“pro˜v‘ÿqÐare“una“cosa“del“tipGo:Ž¦ºfoobar-$(VERS).tar.gz:Ž¡‘)ý`@ls–?¬$(SRC)“|“sed“s:^:foobar-$(VERS)/:“>MANIFESTŽ¡‘)ý`@(cd–?¬..;“ln“-s“foobar“foobar-$(VERS))Ž¡‘)ý`(cd–?¬..;“tar“-czvf“foobar/foobar-$(VERS).tar.gz“`cat“foobar/MANIFEST`)Ž¡‘)ý`@(cd–?¬..;“rm“foobar-$(VERS))ŽŸ#ÃÂ4.2Ž‘¾F‘þàornire–¸un“READMEŽŸMª¹Bisogna–S‚fornire“un“le“c¸èhiamato“README›SAo“READ.ME˜cš¸èhe“funga“da“mappa“pGer“la“propria“distribuzione.‘¡P˜erŽ¡una›Ó“v•¸èecc“hia˜con“v“enzione,‘í|questo˜€è˜il˜primo˜le˜c“he˜gli˜in“trepidi˜esploratori˜leggeranno˜dopGo˜a“v“er˜decompressoŽ¡i‘U sorgen¸èti.ŽŸؼ€È–U bGene“c¸èhe“il“README“includa:Ž¦‘ó !",š cmsy10¸ŽŽŽ‘¹Una–U brev¸èe“descrizione“del“progetto.ŽŸ®‘¸ŽŽŽ‘¹Un–U link“al“sito“w¸èeb“del“progetto“(se“ne“ha“uno).ŽŽŽŒ‹?Ñ Û_2 ý ~?Ÿ„€ÕÁGŽÀ4.‘ñ8Buone–Õregole“pQÂer“creare“una“distribuzione’êýÒ¹6ŽŽ ÕÁ ýV¯‘¸ŽŽŽ‘¹Note›U sull'am•¸èbien“te˜di˜progettazione˜ed˜ev“en“tuali˜problemi˜di˜pGortabilit€à.Ž¤±6‘¸ŽŽŽ‘¹Una–U mappa“cš¸èhe“descriv‘ÿqÐa“i“le“impGortan˜ti“e“le“sotto-directory‘ÿ*¸.Ž¡‘¸ŽŽŽ‘¹Istruzioni–rppGer“l'installazione“e“la“compilazione“o“un“ricš¸èhiamo“a“un“le“c˜he“con˜tenga“le“stesse“(di“solitoŽ© ®‘INST‘ÿ*¸ALL).Ž¡‘¸ŽŽŽ‘¹Un–yÄelenco“di“coloro“cš¸èhe“hanno“fatto“e“c˜he“man˜tengono“il“progetto“o“un“ric˜hiamo“ad“un“le“c˜he“loŽ¦‘con¸ètenga–U (di“solito“CREDITS).Ž¡‘¸ŽŽŽ‘¹No•¸èvit€à›U recen“ti˜sul˜progetto˜o˜un˜ric“hiamo˜ad˜un˜le˜c“he˜con“tenga˜le˜stesse˜(di˜solito˜NEWS).ŽŸ"°ëÂ4.3Ž‘¾Rispš_úettare–¸e“seguire“le“regole“standard“p˜er“la“titolazione“dei“leŽŸMª¹Prima–ËJancora“di“leggere“il“README,“l'inš¸ètrepido“esploratore“a˜vr€à“analizzato“i“nomi“dei“le“nella“directoryŽ¦della–YCdistribuzione“appšGena“decompressa.‘}éQuei“nomi“p˜ossono“essi“stessi“fornire“delle“informazioni.‘}éA¸èderendoŽ¦a–êrstandard“ssi“sulle“regole“di“nominazione,‘Æsi“pu€ò“dare“all'esploratore“degli“indizi“preziosi“su“ci€ò“c¸èhe“€è“inŽ¦proGcin¸èto–U di“guardare.ŽŸؼEcco–QÈalcuni“nomi“standard“di“le“e“il“loro“signicato.‘gxNon“€è“detto“c¸èhe“siano“tutti“necessari“pGer“tutte“leŽ¦distribuzioni.ŽŸ`’ÀREADME–Õor“READ.MEŽŽŽ©/¥‘¹Il–U le“della“mappa,“da“leggersi“pGer“primoŽ¡ÀINST‘ÿ ºALLŽŽŽ¦‘¹istruzioni–U pGer“la“congurazione,“struttura“e“l'installazioneŽ¡ÀCREDITSŽŽŽ¦‘¹elenco–U di“cš¸èhi“ha“con˜tribuito“al“progettoŽ¡ÀNEWSŽŽŽ¦‘¹notizie–U recen¸èti“sul“progettoŽ¡ÀHISTOR‘ÿ ºYŽŽŽ¦‘¹storia–U del“progettoŽ¡ÀCOPYINGŽŽŽ¦‘¹termini–U di“licenza“del“progetto“(con•¸èv“enzione‘U GNU)Ž¡ÀLICENSEŽŽŽ¦‘¹termini–U di“licenza“del“progettoŽ¡ÀMANIFESTŽŽŽ¦‘¹elenco–U dei“le“della“distribuzioneŽ¡ÀF‘þ¸øA®>QŽŽŽ¦‘¹doGcumenš¸èto–i2testo“con˜tenen˜te“le“domande“pGoste“pi€ù“di“frequen˜te“(F‘ÿ*¸requen˜tly“Ask˜ed“Question)“sulŽŸ ®‘progettoŽ¡ÀT‘ÿ ºA®>GSŽŽŽ¦‘¹tag-le–U generato“pGer“uso“di“Emacs“o“viŽŸ`“N.B.–eSi“accetta“come“con•¸èv“enzione–egenerale“c¸èhe“i“nomi“dei“le“scritti“tutti“in“caratteri“maiuscoli“costituiscanoŽŸ ®matainformazioni–U leggibili“sul“paccš¸èhetto,“e“non“sui“suoi“compGonen˜ti.ŽŽŽŒ‹Jï Û_2 ý ~?Ÿ„€ÕÁGŽÀ5.‘ñ8Buone–Õregole“di“com®>unicazione’#\n¹7ŽŽ ÕÁ ýV¯¿5Ž‘ÁBuone–G\regole“di“comcunicazioneŽŸ¿:¹Il–ñproprio“soft•¸èw“are–ñnon“render€à“il“mondo“migliore“se“nessuno“sa“c¸èhe“esiste.‘_ÆInoltre,‘*”con“una“presenza“visibileŽ¤ ®del–U progetto“su“Inš¸èternet“sar€à“pi€ù“semplice“tro˜v‘ÿqÐare“uten˜ti“e“co-sviluppatori.‘q€Ecco“i“mošGdi“standard“p˜er“farlo.Ž©"òvÂ5.1Ž‘¾Riferire–¸a“c.o.l.aŽŸMª¹Annš¸èunciare–Çyla“n˜uo˜v‘ÿqÐa“release“a“Ãc–ÿ}/omp.os.linux.announc“e–Çyºnews:comp.os.linux.announce“¹.‘BIOltre“a“essere“lettoŽ¡da–ÎÕmoltissime“pšGersone,‘íCquesto“grupp˜o“€è“una“dei“pi€ù“grossi“conš¸ètenitori“di“siti“w˜eb“riguardan˜ti“le“no˜vit€à“delŽ¡settore,–U come“ÃF‘ÿ;Èr–ÿ}/eshme“at–U ºhttp://www.freshmeat.net“¹.Ž¦Â5.2Ž‘¾Riferire–¸ad“un“newsgroup“attinen te“al“temaŽŸMª¹Si–ŸQtroš¸èvi“un“gruppGo“USENET‘Ÿ>attinen˜te“alla“propria“applicazione,‘±Ýe“si“ann˜unci“l€ì“la“sua“uscita.‘PSi“pGosti“soloŽ¡do•¸èv“e–³la“Ãfunzione‘sa¹del“cošGdice“€è“attinen¸ète,‘Ó{e“si“restringa“il“camp˜o“d'azione.‘;|Se“(p˜er“esempio)“si“sta“rilasciando“unŽ¡programma–)œscritto“in“Pš¸èerl“c˜he“consulti“un“serv˜er“IMAP‘ÿ*¸,“si“do˜vrebbGe“sicuramen˜te“pGostare“a“comp.mail.imap.Ž¡Ma–95non“si“doš¸èvrebbGe“probabilmen˜te“pšGostare“a“comp.lang.p˜erl“a“meno“cš¸èhe“il“programma“non“sia“anc˜he“unŽ¡esempio–U istruttivš¸èo“delle“tecnic˜he“P˜erl“all'a˜v‘ÿqÐanguardia.ŽŸؼL'ann•¸èuncio›U do“vrebbGe˜includere˜l'URL˜di˜un˜sito˜w“eb˜del˜progetto.Ž¦Â5.3Ž‘¾F›þàornire–¸un“sito“W˜ebŽŸMª¹€È‘Ý impGortan•¸ète›Ý-a“v“ere˜un˜sito˜w“eb˜se˜si˜v“ogliono˜raccogliere˜uten“ti˜o˜un˜gruppGo˜di˜sviluppatori˜del˜progetto.Ž¡Caratteristic¸èhe–U standard“di“un“sito“sono:ŽŸ‹‘¸ŽŽŽ‘¹Lo–U statuto“del“progetto“(pGercš¸èh€é“esiste,“a“c˜hi“si“riv˜olge,“ecc.).Ž¤I|‘¸ŽŽŽ‘¹Collegamenš¸èti–U pGer“scaricare“i“sorgen˜ti.Ž¡‘¸ŽŽŽ‘¹Istruzioni–U pGer“iscriv¸èersi“alla/alle“mailing“list“del“progetto.Ž¡‘¸ŽŽŽ‘¹Un–U elenco“di“F‘þã Aš¸èQ“(F‘ÿ*¸requen˜tly“Ask˜ed“Questions).Ž¡‘¸ŽŽŽ‘¹DoGcumen¸ètazione–U in“HTML“sul“progetto.Ž¡‘¸ŽŽŽ‘¹Link–U a“progetti“correlati“e/o“in“compGetizione“con“il“proprio.ŽŸŠAlcuni–U siti“di“progetti“forniscono“anc¸èhe“degli“URL“pGer“l'accesso“anonimo“al“master“source“tree.Ž¦Â5.4Ž‘¾Creare–¸delle“mailing“list“attinen ti“al“progettoŽŸMª¹€È‘§una–»pratica“comš¸èune“creare“una“lista“priv‘ÿqÐata“di“sviluppGo“attra˜v˜erso“cui“i“collabšGoratori“del“progetto“p˜ossanoŽ¤ ®comš¸èunicare–~fe“scam˜biarsi“delle“patc˜h.‘íSSi“p•Gotrebb“e–~fanc˜he“creare“una“lista“di“ann˜unci“e“notizie“pšGer“le“p˜ersoneŽ¡c•¸èhe›U v“ogliano˜essere˜ten“ute˜informate˜sullo˜stato˜del˜progetto.Ž¦Â5.5Ž‘¾Distribuzione›¸attra• v“erso˜i˜pi€ù˜imp_úortan“ti˜arc“hiviŽŸMª¹Negli–U anni“scorsi,“l'arc¸èhivio“di“ÃSunsite“ºhttp://www.sunsite/unc.edu/pub/Linux/Ž¤ؼ¹€è–U stato“il“pi€ù“impGortanš¸ète“luogo“di“scam˜bio“pGer“i“programmi“Lin˜ux.Ž¡Altri–U siti“impGortan¸èti“sono:ŽŽŽŒ‹Tt Û_2 ý ~?Ÿ„€ÕÁGŽÀ5.‘ñ8Buone–Õregole“di“com®>unicazione’#\n¹8ŽŽ ÕÁ ýV¯‘¸ŽŽŽ‘¹Il–U sito“del“ÃPython–“°Softwar›ÿ}/e“A˜ctivity‘U ºhttp://www.python.orgŽŸ®‘¹(pGer–U programmi“scritti“in“Python).ŽŸ®‘¸ŽŽŽ‘¹Il– |ÃCP‘ÿ;ÈAN‘ iºhttp://language.perl.com/CPAN“¹,‘³SComprehensivš¸èe“P˜erl“Arc˜hiv˜e“Net˜w˜ork,‘³S(pGer“programmiŽ¤ ®‘scritti–U in“P¸èerl).ŽŸ#ÃÂ5.6Ž‘¾F‘þàornire–¸arc hivi“RPMŽŸMª¹La–ßcongurazione“standard“de-facto“pGer“i“paccš¸èhetti“di“binari“installabili“€è“quella“usata“dal“Red“Hat“P˜ac˜k-Ž¡age–ÕAManager,‘õIRPM.“€È‘Õ presenš¸ète“nella“maggior“parte“delle“pi€ù“conosciute“distribuzioni“Lin˜ux,‘õIe“suppGortatoŽ¡ecacemenš¸ète–U da“praticamen˜te“tutte“le“altre“(eccettute“Debian“e“Slac˜kw˜are).ŽŸؼDi–ÓEconseguenza,‘ò΀è“una“buona“idea“pGer“il“sito“del“proprio“progetto“fornire“tanš¸èto“pacc˜hetti“RPM‘Ó$installabiliŽ¡quan•¸èto›U arc“hivi˜tar.ŽŽŽŒø`—ƒ’À;èÛ_2ÕÁGó½HЃ ecti1000ó¥!¢N ecbx1200ó]fŒ ecbx1000ó&Lt$ffffecbx1440óŒ6 ecss1000óþÖëI½q½qecss2074óqLË ectt1000ó 1ê± ecrm1000ó !",š cmsy10ó  b> cmmi10ùd~ßßßßßßß