summaryrefslogtreecommitdiffstats
path: root/content/it/slackware
diff options
context:
space:
mode:
Diffstat (limited to 'content/it/slackware')
-rw-r--r--content/it/slackware/mkhint/header.jpgbin0 -> 406608 bytes
-rw-r--r--content/it/slackware/mkhint/index.md125
-rw-r--r--content/it/slackware/mkhint/thumbnail.jpgbin0 -> 242235 bytes
3 files changed, 125 insertions, 0 deletions
diff --git a/content/it/slackware/mkhint/header.jpg b/content/it/slackware/mkhint/header.jpg
new file mode 100644
index 0000000..6c3322e
--- /dev/null
+++ b/content/it/slackware/mkhint/header.jpg
Binary files differ
diff --git a/content/it/slackware/mkhint/index.md b/content/it/slackware/mkhint/index.md
new file mode 100644
index 0000000..9e2eb55
--- /dev/null
+++ b/content/it/slackware/mkhint/index.md
@@ -0,0 +1,125 @@
++++
+title = "mkhint"
+tagline = "Gestisce gli hint file di slackrepo: aggiorna versioni, ricalcola i checksum, segue i rilasci upstream."
+status = "active"
+repo_url = "https://git.danix.xyz/mkhintfile"
+tags = ["bash", "slackware", "slackrepo", "packaging"]
+
+[menus.main]
+ name = "hintfiles helper"
+ parent = "slackware"
+ weight = 10
++++
+
+**mkhint** è un singolo script Bash che elimina la noia di mantenere gli
+*hint file* di [slackrepo](https://idlemoor.github.io/slackrepo/). Un hint file
+sovrascrive i dettagli di build di un pacchetto SBo: quale versione compilare,
+da dove scaricare i sorgenti e i checksum con cui verificarli. Tenerli
+allineati a mano, su decine di pacchetti, è esattamente il tipo di lavoro
+ripetitivo che dovrebbe spettare a uno script.
+
+## Cosa fa
+
+- **Aggiorna un hint** `-f package -v 2.0.1`: porta la versione ovunque nel
+ file, riscarica i sorgenti da `DOWNLOAD` / `DOWNLOAD_x86_64` e ricalcola
+ `MD5SUM` / `MD5SUM_x86_64`. Il file precedente viene salvato in `.bak`.
+- **Crea un hint** `-n package`: genera un nuovo hint dal `.info`
+ corrispondente nel repository, rimuovendo i campi che slackrepo non vuole e
+ impostando `ARCH` a `x86_64`. Senza `.info`, scrive uno scheletro vuoto.
+- **Elenco** `-l`: stampa ogni hint con il suo `HintVer` (versione nell'hint)
+ accanto al `SBOVer` (versione nel `.info` del repository), evidenziando le
+ righe in cui i due valori coincidono byte per byte, così individui gli hint
+ ormai ridondanti rispetto all'upstream.
+- **Revisione** `-R`: scorre solo gli hint evidenziati, mostrando ciascuno
+ affiancato al suo `.info` (`git diff --no-index`, con ripiego su `diff -y`) e
+ chiedendo se tenere, cancellare o saltare.
+- **Controllo** `-C [package...]`: interroga
+ [nvchecker](https://github.com/lilydjwg/nvchecker) per l'ultima versione
+ upstream di uno, alcuni o tutti gli hint; segnala cosa è obsoleto; aggiorna i
+ pacchetti accettati con `nvtake`; e termina con un unico prompt
+ `slackrepo update` per tutto ciò che è cambiato.
+- **Manutenzione** `-d package` / `-c`: cancella un hint e il suo backup,
+ oppure rimuove tutti i `.bak` dalla directory degli hint in un colpo solo.
+
+## Riferimento dei comandi
+
+```text
+mkhint - Manage hint files for slackrepo scripts
+
+Usage:
+ ./mkhint --version VERSION --hintfile FILE Update existing hint file
+ ./mkhint --version VERSION --new FILE Create new hint file
+ ./mkhint --new FILE Create new hint file (no version)
+ ./mkhint --hintfile FILE Update hint, suggest latest version via nvchecker
+ ./mkhint --check [FILE...] Check all (or named) hints for upstream updates
+ ./mkhint --list List hint files
+ ./mkhint --review Review hints matching SBo version, keep/delete each
+ ./mkhint --clean Remove .bak files from HINT_DIR
+ ./mkhint --no-dl --hintfile FILE Update hint, skip downloads, add NODOWNLOAD=yes
+ ./mkhint --no-dl --new FILE Create hint with NODOWNLOAD=yes
+ ./mkhint --help Show this help
+
+Options:
+ --version, -v VERSION New version string (required for --hintfile)
+ --hintfile, -f FILE Path to existing hint file (required with --version)
+ --new, -n FILE Create new hint file (required with --version or standalone)
+ --list, -l List all hint files in the default directory
+ --review, -R Review hints whose version matches the SBo .info; diff + keep/delete
+ --clean, -c Remove all .bak files from HINT_DIR
+ --check, -C [FILE...] Check hints for upstream updates via nvchecker, update interactively
+ --delete, -d FILE Delete a hint file (and .bak if present)
+ --no-dl, -N Skip downloads; add NODOWNLOAD=yes to hint file (use with -f or -n)
+ --help, -h Show this help message
+```
+
+## Come funziona
+
+mkhint è puro Bash con tre piccole dipendenze, ciascuna con un compito solo:
+
+- `wget` scarica gli archivi per calcolarne l'MD5,
+- `nvchecker` (e il suo compagno `nvtake`) segue le versioni upstream,
+- `jq` analizza l'output JSON di nvchecker.
+
+Tutto il resto è shell. I percorsi del repository e della directory degli hint
+sono due variabili in cima allo script. Il file di bash-completion li rispecchia,
+così `-f`, `-n`, `-d` e `-C` completano i nomi dei pacchetti dalla directory
+giusta, e `-v` suggerisce persino la versione corrente letta direttamente
+dall'hint file indicato.
+
+Le voci `DOWNLOAD` multiriga (un pacchetto con più URL sorgente) sono gestite
+con cura: il primo URL viene sempre riscaricato perché la versione è cambiata,
+mentre ogni URL di continuazione viene proposto in modo interattivo, così i
+sorgenti invariati conservano il checksum esistente invece di essere riscaricati
+inutilmente.
+
+## Perché esiste
+
+Mantenere un overlay SBo personale significa un flusso costante di aggiornamenti
+di versione. Ogni volta la stessa danza: modificare la stringa di versione,
+scaricare il nuovo tarball, ricalcolare il checksum, sperare di non aver sbagliato
+una cifra. mkhint riduce quella danza a un comando, e il trio `--check` /
+`--list` / `--review` trasforma "quali dei miei hint sono ormai obsoleti o
+inutili?" da audit manuale a un'occhiata. È il tipo di strumento piccolo e
+affilato che Slackware incoraggia: niente demone, niente database, niente
+framework, solo uno script che fa bene un lavoro noioso.
+
+## Avvio rapido
+
+```bash
+sudo cp mkhint /usr/local/bin/mkhint
+sudo cp mkhint.bash-completion /etc/bash-completion.d/mkhint
+
+# aggiorna un hint esistente a una versione nota
+mkhint -f mypackage -v 2.0.1
+
+# crea un nuovo hint dal .info del repository
+mkhint -n mypackage
+
+# guarda cosa si è mosso a monte
+mkhint --check
+```
+
+Modifica i percorsi `REPO_DIR` e `HINT_DIR` in cima allo script (e nel file di
+completion) per adattarli alla tua configurazione prima del primo utilizzo.
+
+{{< actions use="repo" url="https://git.danix.xyz/mkhintfile/" desc="Sfoglia il sorgente" caption="Spero ti sia utile. Se mantieni un tuo overlay slackrepo, mkhint potrebbe risparmiarti la stessa noia che risparmia a me. Patch e idee sono benvenute." >}}
diff --git a/content/it/slackware/mkhint/thumbnail.jpg b/content/it/slackware/mkhint/thumbnail.jpg
new file mode 100644
index 0000000..dabefd5
--- /dev/null
+++ b/content/it/slackware/mkhint/thumbnail.jpg
Binary files differ