--- /dev/null
- SELECTOR_DEFAULT=(quote (not (tag :expensive-test)))
- SELECTOR_EXPENSIVE=nil
- SELECTOR=
+### @configure_input@
+
+# Copyright (C) 2010-2016 Free Software Foundation, Inc.
+
+# This file is part of GNU Emacs.
+
+# GNU Emacs is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# GNU Emacs is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
+
+### Commentary:
+
+## Some targets:
+## check: re-run all tests, writing to .log files.
+## check-maybe: run all tests whose .log file needs updating
+## filename.log: run tests from filename.el(c) if .log file needs updating
+## filename: re-run tests from filename.el(c), with no logging
+
+### Code:
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+VPATH = $(srcdir)
+
+SEPCHAR = @SEPCHAR@
+
+# We never change directory before running Emacs, so a relative file
+# name is fine, and makes life easier. If we need to change
+# directory, we can use emacs --chdir.
+EMACS = ../src/emacs
+
+EMACS_EXTRAOPT=
+
+# Command line flags for Emacs.
+# Apparently MSYS bash would convert "-L :" to "-L ;" anyway,
+# but we might as well be explicit.
+EMACSOPT = -batch --no-site-file --no-site-lisp -L "$(SEPCHAR)$(srcdir)" $(EMACS_EXTRAOPT)
+
+# Prevent any settings in the user environment causing problems.
+unexport EMACSDATA EMACSDOC EMACSPATH GREP_OPTIONS
+
+## To run tests under a debugger, set this to eg: "gdb --args".
+GDB =
+
+# The locale to run tests under. Tests should work if this is set to
+# any supported locale. Use the C locale by default, as it should be
+# supported everywhere.
+TEST_LOCALE = C
+
+# The actual Emacs command run in the targets below.
+# Prevent any setting of EMACSLOADPATH in user environment causing problems.
+emacs = EMACSLOADPATH= LC_ALL=$(TEST_LOCALE) EMACS_TEST_DIRECTORY=$(srcdir) \
+ $(GDB) "$(EMACS)" $(EMACSOPT)
+
+.PHONY: all check
+
+all: check
+
+%.elc: %.el
+ @echo Compiling $<
+ @$(emacs) -f batch-byte-compile $<
+
+## Ignore any test errors so we can continue to test other files.
+## But compilation errors are always fatal.
+WRITE_LOG = > $@ 2>&1 || { stat=ERROR; cat $@; }; echo $$stat: $@
+
+## I'd prefer to use -emacs -f ert-run-tests-batch-and-exit rather
+## than || true, since the former makes problems more obvious.
+## I'd also prefer to @-hide the grep part and not the
+## ert-run-tests-batch-and-exit part.
+##
+## We need to use $loadfile because:
+## i) -L :$srcdir -l basename does not work, because we have files whose
+## basename duplicates a file in lisp/ (eg eshell.el).
+## ii) Although -l basename will automatically load .el or .elc,
+## -l ./basename treats basename as a literal file (it would be nice
+## to change this; bug#17848 - if that gets done, this can be simplified).
+##
+## Beware: it approximates 'no-byte-compile', so watch out for false-positives!
- --eval "(ert-run-tests-batch-and-exit ${SELECTOR})" ${WRITE_LOG}
++SELECTOR_DEFAULT = (quote (not (tag :expensive-test)))
++SELECTOR_EXPENSIVE = nil
++ifndef SELECTOR
++SELECTOR_ACTUAL=$(SELECTOR_DEFAULT)
++else
++SELECTOR_ACTUAL=$(SELECTOR)
++endif
++
++
+%.log: %.el
+ @if grep '^;.*no-byte-compile: t' $< > /dev/null; then \
+ loadfile=$<; \
+ else \
+ loadfile=$<c; \
+ ${MAKE} $$loadfile; \
+ fi; \
+ echo Testing $$loadfile; \
+ stat=OK ; \
+ mkdir --parents $(dir $@) ; \
+ $(emacs) -l ert -l $$loadfile \
- ## Rerun default tests.
- check:
- @${MAKE} check-doit SELECTOR="${SELECTOR_DEFAULT}"
++ --eval "(ert-run-tests-batch-and-exit ${SELECTOR_ACTUAL})" ${WRITE_LOG}
+
+ELFILES = $(shell find ${srcdir} -path "${srcdir}/manual" -prune -o \
+ -path "*resources" -prune -o -name "*el" -print)
+## .elc files may be in a different directory for out of source builds
+ELCFILES = $(patsubst %.el,%.elc, \
+ $(patsubst $(srcdir)%,.%,$(ELFILES)))
+LOGFILES = $(patsubst %.elc,%.log,${ELCFILES})
+LOGSAVEFILES = $(patsubst %.elc,%.log~,${ELCFILES})
+TESTS = $(subst ${srcdir}/,,$(LOGFILES:.log=))
+
+## If we have to interrupt a hanging test, preserve the log so we can
+## see what the problem was.
+.PRECIOUS: %.log
+
+.PHONY: ${TESTS}
+
+## The short aliases that always re-run the tests, with no logging.
+## Define an alias both with and without the directory name for ease
+## of use.
+define test_template
+$(1):
+ @test ! -f ./$(1).log || mv ./$(1).log ./$(1).log~
+ @${MAKE} ./$(1).log WRITE_LOG=
+
+$(notdir $(1)): $(1)
+endef
+
+$(foreach test,${TESTS},$(eval $(call test_template,${test})))
+
+## Include dependencies between test files and the files they test.
+## We do this without the file and eval directly, but then we would
+## have to run Emacs for every make invocation, and it might not be
+## available during clean.
+-include make-test-deps.mk
- ## Rerun also expensive tests.
++## Rerun all default tests.
++check: mostlyclean
++ @${MAKE} check-doit SELECTOR="${SELECTOR_ACTUAL}"
+
- check-expensive:
++## Rerun all default and expensive tests.
+.PHONY: check-expensive
- ## Re-run all the tests every time.
- .PHONY: check-doit
- check-doit:
- -@for f in $(LOGFILES); do test ! -f $$f || mv $$f $$f~; done
- @${MAKE} check-maybe
-
- ## Only re-run tests whose .log is older than the test.
++check-expensive: mostlyclean
+ @${MAKE} check-doit SELECTOR="${SELECTOR_EXPENSIVE}"
+
- check-maybe: ${LOGFILES}
++## Only re-run default tests whose .log is older than the test.
+.PHONY: check-maybe
- clean mostlyclean:
++check-maybe:
++ @${MAKE} check-doit SELECTOR="${SELECTOR_ACTUAL}"
++
++## Run the tests.
++.PHONY: check-doit
++check-doit: ${LOGFILES}
+ $(emacs) -l ert -f ert-summarize-tests-batch-and-exit $^
+
+.PHONY: mostlyclean clean bootstrap-clean distclean maintainer-clean
+
++mostlyclean:
++ -@for f in *.log; do test ! -f $$f || mv $$f $$f~; done
++
++clean:
+ -rm -f ${LOGFILES} ${LOGSAVEFILES}
+ -rm make-test-deps.mk
+
+bootstrap-clean: clean
+ -rm -f ${ELCFILES}
+
+distclean: clean
+ rm -f Makefile
+
+maintainer-clean: distclean bootstrap-clean
+
+make-test-deps.mk: $(ELFILES) make-test-deps.emacs-lisp
+ $(EMACS) --batch -l $(srcdir)/make-test-deps.emacs-lisp \
+ --eval "(make-test-deps \"$(srcdir)\")" \
+ 2> $@
+# Makefile ends here.
--- /dev/null
- time-stamp-time-zone: "GMT"
+<DIV LANG="it" ALIGN="justify">
+
+<H2>
+ Cos'è il software libero?
+</H2>
+
+<P>
+ Il concetto di software libero discende naturalmente da quello di
+ libertà di scambio di idee e di informazioni. Negli ambienti
+ scientifici, quest'ultimo principio è tenuto in alta considerazione
+ per la fecondità che ha dimostrato; ad esso infatti è generalmente
+ attribuita molta parte dell'eccezionale ed imprevedibile crescita del
+ sapere negli ultimi tre secoli.
+</P>
+<P>
+ La libertà di scambio di idee non è tuttavia una questione puramente
+ pratica: essa è anche alla base dei concetti di libertà di pensiero e
+ di espressione. Analogamente alle idee, il software è immateriale, e
+ può essere riprodotto e trasmesso facilmente. In modo simile a quanto
+ avviene per le idee, parte essenziale del processo che sostiene la
+ crescita e l'evoluzione del software è la sua libera diffusione. Ed
+ ogni giorno di più, come le idee, il software permea il tessuto
+ sociale e lo influenza, produce effetti etici, economici, politici e
+ in un senso più generale culturali.
+</P>
+<P>
+ Fu Richard M. Stallman, nei primi anni Ottanta, a formalizzare per la
+ prima volta il concetto di software libero. La <A TITLE="definizione
+ di software libero secondo FSF"
+ href="http://www.it.gnu.org/philosophy/free-sw.it.html">definizione</A>
+ di Stallman, che da subito assurse al ruolo di definizione per
+ eccellenza di software libero, assume la forma di quattro principi di
+ libertà:
+</P>
+<P>
+<DL>
+ <DT>Libertà 0, o libertà fondamentale:
+ <DD>La libertà di eseguire il programma per qualunque scopo, senza
+ vincoli sul suo utilizzo.
+
+ <DT>Libertà 1:
+ <DD>La libertà di studiare il funzionamento del programma, e
+ di adattarlo alle proprie esigenze.
+
+ <DT>Libertà 2:
+ <DD>La libertà di redistribuire copie del programma.
+
+ <DT>Libertà 3:
+ <DD>La libertà di migliorare il programma, e di distribuirne
+ i miglioramenti.
+</DL>
+</P>
+<P>
+ Il software distribuito con una licenza che rispetti questi principi è
+ detto <Q><EM>software libero</EM></Q> (in inglese <Q><EM>free
+ software</EM></Q>). Nel 1984 Richard M. Stallman <A TITLE="storia
+ del progetto GNU"
+ HREF="http://www.it.gnu.org/gnu/thegnuproject.it.html">diede vita al
+ progetto GNU</A>, con lo scopo di tradurre in pratica il concetto di
+ software libero, e creò la <Q>Free Software Foundation</Q> per
+ dare supporto logistico, legale ed economico al progetto GNU.
+</P>
+
+<H3><A NAME="licenze">
+ Licenze d'uso di un programma
+</A></H3>
+
+<P>
+ La <EM>licenza d'uso</EM> è un documento legale generalmente
+ distribuito assieme a ogni programma. Essa, appoggiandosi alle norme
+ sul diritto d'autore, specifica diritti e doveri di chi riceve tale
+ programma.
+</P>
+<P>
+ Gran parte delle licenze comunemente usate sono <EM>proprietarie</EM>,
+ cioè non libere, in quanto non garantiscono le quattro libertà. Quasi
+ sempre tali licenze non consentono infatti la libera copia del
+ programma, né la sua modifica. Spesso, se il programma è installato
+ sul computer di casa, la licenza impedisce persino di installarlo sul
+ proprio portatile (per utilizzare il programma fuori casa); se il
+ programma è utilizzato in uno studio professionale, non consente di
+ tenerlo installato su un computer di riserva, nel caso che quello
+ principale si guasti.
+</P>
+<P>
+ La licenza del progetto GNU, la <EM>Licenza Pubblica Generica GNU (<A
+ TITLE="traduzione della licenza GNU GPL"
+ HREF="http://softwarelibero.it/gnudoc/gpl.it.txt">GNU GPL</A>)</EM>,
+ al contrario, concede all'utente del programma tutte e quattro le
+ libertà suddette. Inoltre si occupa anche di proteggerle: chi
+ modifichi un programma protetto da GPL e lo distribuisca con tali
+ modifiche, deve distribuirlo sotto licenza GPL. È grazie a questo
+ tipo di protezione che la GPL è attualmente la licenza più usata per
+ il software libero.
+</P>
+<P>
+ Con un gioco di parole, il nome dato a questo tipo di protezione
+ è <EM>permesso d'autore</EM> (in inglese <A TITLE="definizione di
+ copyleft (inglese)" LANG="en"
+ HREF="http://www.it.gnu.org/copyleft/copyleft.html"><EM>copyleft</EM></A>):
+ è il criterio che prevede che le modifiche ad un programma possano
+ essere distribuite solo con la stessa licenza del programma originale.
+ Le licenze proprietarie usano le norme sul diritto d'autore (copyright
+ in inglese) per togliere libertà agli utenti di un programma; il
+ permesso d'autore usa le stesse norme per garantire quelle libertà e
+ per proteggerle.
+</P>
+<P>
+ La GNU GPL non è unica nel suo genere. Diverse <A TITLE="lista di
+ licenze libere e non"
+ HREF="http://www.it.gnu.org/licenses/license-list.it.html">altre
+ licenze</A> garantiscono le quattro libertà e si possono pertanto
+ qualificare come licenze per il software libero. Fra queste, merita
+ una speciale menzione per la sua diffusione la <A TITLE="la licenza
+ BSD (in inglese)" LANG="en"
+ HREF="http://www.freebsd.org/copyright/license.html">licenza BSD</A>,
+ la cui principale differenza dalla GPL è che, non essendo basata sul
+ permesso d'autore, non ha fra i propri obiettivi quello di proteggere
+ la libertà del software cui è applicata. Chi infatti modifichi un
+ programma protetto da BSD, può distribuirlo con le modifiche usando
+ qualunque licenza.
+</P>
+<P>
+ Sia BSD che GPL hanno pro e contro. La licenza GPL riflette l'idea
+ della cooperazione: se io concedo ad altri la libertà di modificare e
+ redistribuire il mio programma, costoro sono tenuti a concedere le
+ stesse libertà sulle loro modifiche. Il problema è che alcuni vedono
+ questo vincolo come un'imposizione ingenerosa, se non addirittura una
+ restrizione insopportabile. La licenza BSD riflette l'idea del dono
+ liberale: chiunque può fare ciò che meglio crede del mio programma.
+ Il problema è che questo significa che chiunque può redistribuire
+ anche in forma chiusa con una licenza proprietaria un programma BSD
+ modificato, impedendo così ai propri acquirenti di modificarlo e
+ redistribuirlo a loro volta.
+</P>
+
+<H3><A NAME="miti">
+ Sfatiamo alcuni miti
+</A></H3>
+
+<P>
+<DL>
+
+ <DT>Il software libero è gratuito
+
+ <DD>È falso: la libertà del software non ha nulla a che vedere con
+ il suo prezzo. Benché gran parte del software libero più diffuso
+ sia distribuito gratuitamente, ci sono programmatori che vivono
+ della vendita e della manutenzione dei programmi liberi da loro
+ creati.
+
+ <DT>Il software gratuito è libero
+
+ <DD>È falso. Molti programmi proprietari vengono distribuiti
+ gratuitamente.
+
+ <DT>Il software libero è privo di copyright
+
+ <DD>È falso. Benché si possa rinunciare al copyright su un proprio
+ programma e renderlo così di pubblico dominio, la gran parte del
+ software libero è distribuito con una licenza. Per esempio, sono
+ licenze di copyright la licenza BSD e la GNU GPL, anche se per
+ qualificare quest'ultima spesso si parla di permesso d'autore
+ (copyleft).
+
+ <DT>L'introduzione del software libero nella scuola e nella pubblica
+ amministrazione, ma anche nei paesi poveri, ridurrebbe i costi
+ relativi al software
+
+ <DD>Potrebbe essere vero, ma una seria valutazione dei costi è molto
+ difficile. Qualunque tipo di software, se usato in ambito non
+ domestico, ha dei costi di manutenzione che sono solitamente
+ maggiori del suo prezzo di acquisto. I motivi per sostenere l'uso
+ del software libero, specie in ambiti pubblici, riguardano anzitutto
+ la libertà, non il prezzo.
+
+<!-- Discorso inadatto ad un documento introduttivo
+ <DT>Chi scrive un programma libero lo deve pubblicare su Internet
+
+ <DD>È una falsa argomentazione spesso usata per scoraggiare
+ un'azienda dall'uso di una licenza libera per i suoi programmi.
+ Sia gli autori che gli acquirenti di un programma libero hanno il
+ diritto di distribuirlo a titolo oneroso o gratuito, ma non hanno
+ alcun obbligo in tal senso.
+-->
+
+</DL>
+</P>
+
+<H3><A NAME="oss">
+ Il movimento open source
+</A></H3>
+
+<P>
+ Nel 1998 Bruce Perens, Eric Raymond e altre personalità nel campo del
+ software libero si convinsero che i principi di libertà associati ad
+ esso fossero malvisti nel mondo degli affari, a causa della loro
+ carica ideologica. Decisero perciò di evitare accuratamente ogni
+ riferimento a considerazioni politiche o di principio, e di lanciare
+ una campagna di promozione del software libero che ne mettesse in luce
+ i numerosi <A TITLE="un discorso di Robert Chassell di FSF"
+ HREF="http://softwarelibero.it/altri/economia-sl.shtml">vantaggi
+ pratici</A>, come la facilità di adattamento, l'affidabilità, la
+ sicurezza, la conformità agli standard, l'indipendenza dai singoli
+ fornitori. A tal fine scrissero la <Q><A TITLE="la definizione di
+ Open Source (in inglese)" LANG="en"
+ HREF="http://www.opensource.org/docs/definition.html">Open Source
+ Definition</A></Q>, il documento fondamentale del movimento <A
+ TITLE="il sito di Open Source Initiative (OSI), in inglese" LANG="en"
+ HREF="http://opensource.org/"><EM>open source</EM></A>.
+</P>
+<P>
+ Il movimento open source fu un successo, e contribuì a sdoganare il
+ concetto di software libero in campo aziendale, dove era guardato con
+ sospetto o condiscendenza. Un esempio di questo successo è
+ l'atteggiamento dell'IBM, l'azienda che ha fatto di gran lunga i
+ maggiori investimenti nel campo del software libero, la quale parla
+ esclusivamente di open source, mai di software libero.
+</P>
+<P>
+ La voluta neutralità del movimento open source verso gli aspetti
+ etici e politici del software libero è la caratteristica sostanziale
+ che lo distingue dalla filosofia del software libero, che al contrario
+ pone l'accento sulle motivazioni ideali. Parlare di software libero
+ piuttosto che di open source è una questione politica piuttosto che
+ pratica; i due movimenti concordano infatti sulle licenze considerate
+ accettabili, ed hanno obiettivi e mezzi comuni.
+</P>
+
+<H3><A NAME="impatto">
+ Impatto pratico del software libero
+</A></H3>
+
+<P>
+ La <A TITLE="usi commerciali del software libero, di Alessandro
+ Rubini"
+ HREF="http://www.it.gnu.org/philosophy/software-libre-commercial-viability.it.html">rilevanza
+ economica</A> del software libero è ancora molto ridotta, ma è in
+ fortissima crescita ormai da alcuni anni, e tutto consente di supporre
+ che tale crescita <A TITLE="prospettive del software libero, gruppo di
+ studio dell'UE"
+ HREF="http://eu.conecta.it/paper/Economics_open_source.html">continui
+ nel prossimo futuro</A>, anche grazie ai <A TITLE="vantaggi del
+ software libero, gruppo di studio UE"
+ HREF="http://eu.conecta.it/paper/Advantages_open_source_soft.html">vantaggi
+ tecnici ed economici</A> del software libero.
+</P>
+<P>
+ Ad oggi, il software libero è ampiamente diffuso in ambito accademico,
+ industriale e fra gli appassionati di calcolatori, soprattutto grazie
+ ai sistemi GNU/Linux. Questi sistemi liberi sono disponibili a costi
+ molto bassi, ben inferiori a quelli di analoghi sistemi proprietari.
+ Tuttavia, a causa delle loro caratteristiche, il loro uso richiede una
+ buona cultura di base nel campo del software.
+</P>
+<P>
+ In ambito accademico viene molto apprezzata la possibilità di
+ personalizzare ogni parte del sistema, visto che i programmi liberi
+ sono liberamente modificabili (libertà numero uno). In ambito
+ industriale, si apprezza l'affidabilità dei sistemi liberi, dovuta al
+ fatto che quando un utente corregge un errore in un programma
+ solitamente rende disponibile la correzione agli altri utenti (libertà
+ numero tre). Gli appassionati di calcolatori apprezzano lo spirito di
+ condivisione esistente fra gli utenti di software libero.
+</P>
+<P>
+ Ma le implicazioni dell'uso del software libero non sono soltanto
+ tecniche ed economiche, perché il software da tempo ormai è avviato ad
+ occupare un ruolo di primo piano nella nostra vita quotidiana, ed è
+ destinato a cambiare in maniera profonda la società.
+</P>
+<P>
+ È per queste ragioni che la nostra libertà futura dipenderà anche
+ dalla capacità di ognuno di noi di controllare il software. È per
+ queste ragioni che ai tradizionali principi di libertà sessuale, di
+ culto, di movimento, di espressione deve essere affiancata la libertà
+ del software. È per queste ragioni che la nostra libertà futura
+ dipenderà anche dall'uso di software libero.
+</P>
+
+<P>
+ <EM>scritto da <A TITLE="pot@softwarelibero.it"
+ HREF="mailto:pot@softwarelibero.it">Francesco Potortì</A> per l'<A
+ TITLE="il sito dell'Associazione Software Libero"
+ HREF="http://softwarelibero.it/">Associazione Software
+ Libero</A></EM>
+</P>
+<HR NOSHADE>
+<P>
+ Copyright © 2002 Francesco Potortì
+ <BR>
+ Ultima versione ipertestuale disponibile su <A TITLE="versione
+ stampabile"
+ HREF="http://softwarelibero.it/documentazione/softwarelibero.html"><http://softwarelibero.it/documentazione/softwarelibero.html></A>
+</P>
+<P>
+ La copia letterale e integrale e la distribuzione sono permesse con
+ qualsiasi mezzo, a condizione che questa nota sia riprodotta.
+</P>
+
+<!--
+Local variables:
+fill-column: 72
+time-stamp-active: t
++time-stamp-time-zone: "UTC0"
+time-stamp-format: "%:y-%02m-%02d"
+time-stamp-line-limit: 30
+time-stamp-start: "ultima\\s-+modifica\\s-+è\\s-+del\\s-+"
+time-stamp-end: "\\."
+End:
+-->
+
+</DIV>