Se descargaches o instalador de Lúa para Windows, é moi probable que o sistema che amosase unha xanela azul co aviso «Windows protexeu o PC» e, despois, unha mensaxe de control de contas con «Editor: descoñecido». Asusta un pouco, e é normal preguntarse se o programa é perigoso. Non o é, pero tampouco che pedimos que nos creas sen máis: neste artigo explicamos por que aparece ese aviso e, sobre todo, como podes compilar Lúa ti mesmo a partir do código fonte, para que o programa que executas saia do teu propio equipo.

Por que Windows di que o programa non é de confianza
O aviso vén de Microsoft Defender SmartScreen, un filtro que revisa os programas descargados de Internet antes de executalos. SmartScreen fíxase sobre todo en dúas cousas:
- Se o programa leva sinatura dixital. Un programador ou unha empresa pode «asinar» o seu executable cun certificado de sinatura de código (Authenticode). Ese certificado non o pode fabricar calquera: emíteo unha autoridade de certificación que Microsoft recoñece (ou o propio servizo de sinatura de Microsoft) despois de comprobar a identidade de quen o solicita. Cando o ficheiro está asinado, Windows pode amosar o nome do editor en vez de «descoñecido».
- A reputación. SmartScreen leva a conta de cantas persoas descargaron e executaron ese mesmo ficheiro sen problemas. Un programa novo, ou unha versión recén publicada, aínda non ten esa reputación.
O instalador de Lúa non está asinado, e cada versión nova é un ficheiro distinto que ninguén executou antes. Por iso Windows o trata como «descoñecido». O aviso non significa que se detectase ningún virus: significa só que Windows non sabe quen o fixo.
Por que Lúa non está asinada
Piztu é un proxecto educativo e libre, sen ánimo de lucro. Un certificado de sinatura de código custa centos de euros cada ano, esixe validar unha entidade xurídica e, desde 2023, a chave privada ten que gardarse nun dispositivo físico especial (un token ou un servizo na nube). E nin sequera iso elimina o aviso de inmediato: un programa asinado pero novo tamén pode recibir avisos ata que acumula reputación.
Ademais, convén lembrar que a sinatura di quen fixo un programa, non o que fai. Un programa asinado pode ser malicioso, e un sen asinar pode ser perfectamente seguro. No software libre hai unha garantía distinta e máis forte: o código está á vista. Calquera persoa pode lelo, revisalo e compilalo.
Se prefires usar o instalador descargado
Na xanela de SmartScreen preme «Máis información» e despois «Executar de todos os xeitos». Antes, se queres, comproba que o ficheiro é o publicado: na páxina de Releases cada ficheiro vai acompañado doutro rematado en .sha256. En PowerShell, Get-FileHash .\nome-do-ficheiro.exe calcula a súa pegada; ten que coincidir coa do .sha256.
A alternativa: compilar Lúa ti mesmo
Se compilas o programa no teu equipo, sabes exactamente de que código saíu. E hai un efecto secundario cómodo: SmartScreen só revisa os ficheiros que chegan desde Internet (o navegador márcaos como descargados), así que o lua.exe que xeras ti non mostra ese aviso.
Non fai falla saber programar. Só hai que copiar unhas ordes nunha consola. Necesitas:
- Windows 10 ou 11 de 64 bits, con winget (xa vén instalado; se non, instala «Instalador de aplicacións» desde a Microsoft Store).
- Conexión a Internet e uns 3 GB libres.
- Entre 15 e 30 minutos a primeira vez, porque se descargan moitas pezas. As seguintes compilacións son moito máis rápidas.
Paso 1. Abrir PowerShell
Preme a tecla Windows, escribe PowerShell e ábreo. Non fai falla abrilo como administrador: winget pedirá permiso cando o necesite.
Paso 2. Instalar as ferramentas de compilación
Lúa está escrita en Go, a interface en JavaScript e usa a biblioteca Wails para crear a xanela. Instala Git (para descargar o código), Go, Node.js e Task (que encadea os pasos da compilación). Copia estas catro liñas, unha a unha:
winget install --id Git.Git -e winget install --id GoLang.Go -e winget install --id OpenJS.NodeJS.LTS -e winget install --id Task.Task -e
Pecha PowerShell e volve abrilo, para que recoñeza os programas novos. Comproba que todo está no seu sitio:
git --version go version node -v task --version
Go ten que ser a versión 1.25 ou posterior, e Node a 20 ou posterior.
Paso 3. Instalar Wails
Wails instálase co propio Go. Usamos a mesma versión que indica o código de Lúa (no ficheiro go.mod):
go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-beta.14
Comproba que funciona con wails3 version. Se PowerShell responde que non recoñece wails3, pecha e abre de novo a consola: o instalador de Go engade o cartafol %USERPROFILE%\go\bin ao PATH, pero só as consolas novas o ven.
Paso 4. Descargar o código desde GitHub
Vai ao teu cartafol persoal e clona o repositorio de Lúa:
cd $HOME git clone https://github.com/piztusistemas/lua.git cd lua
Isto descarga a última versión en desenvolvemento. Se prefires compilar exactamente unha versión publicada, cambia a ela pola súa etiqueta (por exemplo, a 26.10.9):
git tag git checkout 26.10.9
Agora tes todo o código no cartafol lua, e podes abrilo e revisalo cando queiras. O máis importante:
lua\lua: a aplicación.lua\lua_installer: o instalador, co scriptbuild-windows.ps1que usaremos no paso 6. É curto e está comentado: paga a pena lelo antes de executalo.edicion: o motor común (plantillas, LaTeX, Word e OpenDocument).
Paso 5. Compilar Lúa
cd lua\lua task build
A primeira vez tarda uns minutos: Go descarga as súas bibliotecas, npm descarga as da interface, xérase a interface e por último compílase o programa. Se todo vai ben, o resultado está en:
lua\lua\build\bin\lua.exe
Podes abrilo xa con .\build\bin\lua.exe (ou con task run). Este executable funciona solto, pero para xerar PDF Lúa precisa unha distribución de LaTeX; no seguinte paso o instalador encárgase dela.
Paso 6 (recomendado). Compilar o instalador
O instalador colle o lua.exe, cópiao a C:\Program Files\Piztu\Lua, crea os atallos e instala con winget o que Lúa necesita para os documentos: MiKTeX (LaTeX) e Pandoc. Para compilalo:
cd $HOME\lua\lua\lua_installer powershell -ExecutionPolicy Bypass -File .\build-windows.ps1
Windows non deixa executar scripts de PowerShell por defecto; a opción -ExecutionPolicy Bypass permíteo só para esta orde, sen cambiar a configuración do equipo. O script comproba que tes as ferramentas, compila Lúa de novo, méteo dentro do instalador e compila o instalador. Ao rematar indica:
✅ Compilado: lua_installer\build\bin\lua-installer.exe
Executa ese ficheiro con dobre clic. Windows pedirá permiso de administrador (o instalador ten que escribir en Program Files). A xanela de control de contas seguirá dicindo «Editor: descoñecido», porque o executable segue sen sinatura, pero agora es ti quen o compilou.
Paso 7 (opcional). Pasar as probas
Lúa ten centos de probas automáticas. Se queres comprobar que a túa compilación se comporta como debe:
cd $HOME\lua\lua\lua go test ./...
Tarda un par de minutos. As probas que precisan LaTeX, LibreOffice ou Maxima sáltanse soas se eses programas non están instalados.
Actualizar a unha versión nova
Cando publiquemos unha versión nova, non fai falla repetir todo. Abre PowerShell e:
cd $HOME\lua git checkout main git pull cd lua\lua_installer powershell -ExecutionPolicy Bypass -File .\build-windows.ps1
Se algo falla
- «task» (ou «go», «git», «wails3») non se recoñece como nome dun cmdlet: pecha e abre de novo PowerShell despois de instalar. Se persiste, reinicia a sesión de Windows.
- Erro ao compilar a interface (npm): comproba con
node -vque tes Node 20 ou posterior. - O instalador instala unha versión vella: usa sempre
build-windows.ps1e nontask builddentro delua_installer, porque o script é o que mete o Lúa recén compilado dentro do instalador.
Se tes dúbidas, o código, a documentación técnica (cartafol 02-DOCS) e o historial de cambios están en github.com/piztusistemas/lua. Esa transparencia é, en realidade, a mellor sinatura que pode ter un programa.