Moje zkusenosti s gettextem jsou dost mizerne. gettext ma byt udelan tak, aby sam detekoval pritomnost gettextu v libc a pripadne pouzil nahradu distribuovanou s programem, ale moc to nefunguje. Navic configure script pro gettext obsahuje bug, ze i kdyz na systemu nejsou pritomny prikazy msgfmt & spol, tak se je v makefile snazi volat.
Vysledek je asi takovy, ze gettextovany program nejde prelozit jinde, nez na linuxu s libc6 a gettextem. Links nejakou dobu gettext pouzival, ale pak jsem ho vyhodil, protoze problemy s portabilitou byly velke.
O natvrdo zakodovanych cestach k /bin/sh pripadne provadeni prikazu 'ln' v gettextu snad ani nema cenu mluvit - neunixove systemy jsou proste ignorovany.
Dalsi velka neprijemnost gettextu je neschopnost provadet prekodovani znakovych sad nebo aspon prekodovat pismena s hacky a carkami na odpovidajici ascii znaky. Pokud jste nekdy pristupovali na pocesteny linux z terminalu, jehoz znakova sada nebyla 8859-2, tak vite, o cem mluvim...
Jen male upresneni, config.h.in neni generovan autoconfem (pro ten to je naopak zdrojak), ale muze byt generovan autoheaderem z dalsich souboru (acconfig.h).
Jeste otazka k licencovani - nekde jsem se docetl, ze autoconf a automake mohou byt pouzivany i pro komercni programy (vystup neni GPL), zatimco GNU gettext (protoze je GPL, nikoliv LGPL) lze pouzit jen v GPL programech (zhruba). Pochopil jsem to dobre?
Pokud je pravda, ze vystup gettextu nelze pouzivat v komercnich programech, tak si delam svuj vlastni system pro vicejazycne veci.
Nekdy mi pripada, ze nektere dobre standardy Linuxu musi nutne komercni svet ignorovat kvuli tomu, ze nemuze z pochopitelnych duvodu akceptovat odkryti vsech svych zdrojovych kodu, jak to pozaduje GPL. Konecne me nikdo natuknul, abych pochopil, proc se dobre standardy z Linuxu prilis nesiri do komercniho sveta. Je to smutne.
Stadrady GNU (linuxu) se nesiri protoze jsou psany jako rozsireni GNU systemu (extensions). Pokud mate na mysli standardy pouzivane obecne v UNIXovem svete jako je SystemV nebo POSIX, tak ty se siri :) Jinak standardy nemaji s problematikou komercnosti programu nic spolecenho. Pokud narazite na problematiku GPL vs. LGPL pak by bylo vhodne si precist http://www.gnu.org/philosophy/why-not-lgpl.html
proc je nekdy vhodnejsi pouzivat prave GPL.
IMHO neni eticke nutit cizi autory k pouzivani GPL. Jedine, co GPL podporuje, je duplikace usili - kod pod GPL je pro komunitu navzdy ztracen, pokud je zajem, aby byl opravdu volny (a ne jen 'volny pro freeware').
Mimochodem, BSD systemy obsahuji knihovny editline, ktera
dela neco podobneho jako GPL readline. Pod NetBSD editline
ma dokonce readline emulacni vrstvu - podporuje pomerne velkou mnozinu funkcni a promennych readline, takze aplikace napsane pro readline se misto libreadline slinkuji s libedit a vse funguje (napr. psql, mysql client, bc, gdb, ....)
Alternativy existuji. Neni treba nechavat se svazovat GPL, kdyz je k dispozici volny software.
Jeste neco. Bohuzel GPL nebrani tomu, kvuli cemu byla napsana. Napr. stale existuji pouze binarni kernel moduly pro Linux, pouze binarni drivery, pouze binarni komercni aplikace pro Linux atd. Ja osobne moc smyslu v GPL nevidim - rika, ze davam software sice 'volne' k dispozici, ale jen nekomu ? Me to pripada divne. IMHO GPL poskozuje freeware komunitu svym pristupem 'kde je bajt z GPL kodu, to musi byt pod GPL a zdarma'. Lidem kterym zalezi na opravdove obecne pouzitelnosti kodu a na tom, aby byl kod opravdu volny, tak GPL kod pouzit nemuzou - nakazil by se GPL a oni by _museli_ zmenit licenci na GPL.
Já abych řekl pravdu, neberu texty z gnu.org příliš vážně. Po prostudování tohoto webu jsem došel k názoru, že je příliš jednostranně zaměřen a trochu mi připomíná spíše politickou manipulaci, než zralou úvahu. Ne vždy, ale hodně často. Ani bych nečekal od tohoto webu něco jiného, než věty ve smyslu GPL je nejlepší, GPL je skvělý, používejte GPL. Patří to tak nějak k tomu, aby si propagoval své.
Považuji za užitečné, aby kód jádra Linuxu byl GPL a mnoha základních utilit včetně překladače jazyka C, ovladačů, apod.. Ale pro mnoho projektů je lépe se GPL vyhnout, jde-li Vám o skutečné rozšíření produktu. To je můj názor. Hodně mě v tom utvrzuje to, že mnoho projektů zavrhuje GPL, a kloní se ke svým licencím, mnohdy méně restriktivním. Třeba Apache, PHP, apod.. Asi si to tak nějak myslí podobně.
Typicky makefile pro BSD make vypada takto:
PROG= sort
SRCS= append.c fields.c files.c fsort.c init.c msort.c sort.c
.include <bsd.prog.mk>
Tento makefile zkompiluje jednotlive .o soubory, sestavi
program sort a 'zkompiluje' jeho manovou stranku do *.cat1.
'make install' pak program jeho manovou stranku nainstaluje
na jeho misto - pokud je tak nastaveno v preferencich,
manovou stranku i zkompresuje.
Veskera logika kompilace napr. .o z .c nebo ziskani
.c z .y (yacc gramatiky), 'kompilace' manpages nebo
generovani *.info z *.texi je v systemovych make 'knihovnach'
v /usr/share/mk. V Makefile je tak jen to podstatne, nestale
opakujici cast je na jednom centralnim miste, sdilena
vsemi Makefile soubory.
IMHO je to elegantnejsi pristup nez muset kvuli kazde
zmene v 'globalnich' pravidlech muset pregenerovavat
cely kompilacni strom, pri tom zjistit ze nektery z auto*
nastroju uz mam prilis stary a musim upgrejdovat atd ;-)
Vim o cem mluvim, takhle jsem napr. sveho casu 'zapasil'
s KDE, kde jsem si prilezitostne upravoval nejaka drobnosti.
Automake jiste mechanizuje spoustu prace. Tato prace ale s BSD make neni vubec treba.
No jo, ale problem je v tom, ze program pouzivajici BSD make nepujde prelozit jinde, nez na BSD. Takze clovek pak stejne bude muset psat tech Makefilu nekolik - pro kazdy klon Unixu - a udrzba programu bude mnohem komplikovanejsi.
Programy pouzivajici automake/autoconf jdou prelozit na vsech Unixech (a nejen na nich - i na OS/2 nebo Win32). Udajne configure script chodi i na historickem Unixu v7 na PDP11.
GNU licence nbrani neco napsat pod linuxem -pouzit gcc Make ..
udelat binarky a ty komercne prodavat.
On pouze brani tomu ze vezmete gcc udelate v nem nejakou malou zmenu a pak to gcc budete prodavat (ale podporu prodavat muzete, ale musite to upravene gcc dat zdarma vcetne zdrojaku)
takze licence nebrani vyvijet a prodavat, ale ukrast hotovy program a prodavat ho. (takze napr. nekdo muze dat na svou starnku gcc a prodavat k nemu support) ..... takze napr. se nemusite bat ze kdyz pouzijete QT, nebo GTK tak tento program musi byt GNU ... nemusi.
Aspon tak to chapu ja
Je to presne tak (alespon podle meho nazoru). Klidne muzete psat komercni programy, ktere pouzivaji GPL knihovny a prodavat je. Pokud ale chcete pouzit primo existujici kod programu a zalozit na nem neco jineho, pak vas GPL omezuje prave na pouziti GPL.
Prijde mi to jedine fer. Kdyz chci pouzit neci praci je to nejmensi, ze budu respektovat autorovy podminky, ktere k tomu dal. A nebo si to napisu sam. btw - bez GNU by sance na vyuziti ciziho kodu byla daleko mensi a museli bysme si napsat vsechno.
GPL!=LGPL. Kdyz jsem naposledy kontroloval Gtk, byl pod LGPL.Mimochodem, vzpominam si na "manifest" okolo readline knihovny, ve kterem se explicitne tvrdilo, ze je pod GPL proto, aby ji nebylo lze pouzit pod proprietarnimi programy s cilem tyto otevrit, a ze se to v nejmene jednom pripade povedlo