Approfondimento GNU Autotools Sistemi Operativi (9 CFU), Cdl Informatica, A

Total Page:16

File Type:pdf, Size:1020Kb

Approfondimento GNU Autotools Sistemi Operativi (9 CFU), Cdl Informatica, A Approfondimento GNU Autotools Sistemi Operativi (9 CFU), CdL Informatica, A A !"#$%!"#& Dipartimento di Scienze Fisic)e, Informatic)e e *atematiche Università di *odena e Re--io .milia )ttp/%%0e1lab ing unimo it/people%andreolini/didattica/sistemi2operativi 1 Quote of t)e da4 (*editate, -ente, meditate ) “The difference between a good and a poor architect is that the poor architect succumbs to every temptation and the good one resists it.” Ludwig Wittgenstein (1889-1951) Filosofo, ingegnere, logico Pioniere della logica filosofica 2 GNU AUTOTOOLS 3 Scenario e domande (Esistono strumenti di ausilio alla scelta di una distribu(ione GNU%Linu56) Scenario: l7utente ha a disposizione un )ost%-uest su cui 8 stata appena installata una distribu(ione GNU/Linu5 L7utente vuole imparare a gestire (installare, rendere porta1ile) il soft0are 9a mano: Domande: .sistono strumenti per installare soft0are partendo da archivi sor-ente6 ;ali strumenti gestiscono le differenze presenti nei diversi SO UNI=6 4 Un caso di vita vissuta (Un programmatore scopre X11 e vuole condividere la sua scien(a con altri) Un pro-rammatore scrive un programma in lingua--io C che apre una >nestra di =## A puro titolo di esempio, fate conto che ?uesto programma sia window.c, presente nella se(ione 9Approfondimenti: della presente lezione Lo compila con successo gcc -o window window.c -L/usr/X11R6/lib -lX11 Lo esegue ./window 5 Funziona Un caso di vita vissuta (Un pro-rammatore scopre =## e vuo e condividere la sua scienza con altri) Il programmatore, pieno di orgoglio, fornisce il sorgente al suo amico e gli chiede di compilarlo e testarlo Scaricate window.c sul vostro guest 'e1ian. @rovate a compilarlo gcc -o window window.c -L/usr/X11R6/lib -lX11 La compilazione fallisce 6 ;rue stor4 (Neil @atrick a-rees) 7 Cosa 8 andato storto6 (Nell7esempio in ?uestione) Sul guest 'ebian mancano i >le include della li1reria =## /usr/include/X11/X.h in primis ;ali >le non sono installati di default in Debian. 'e1ian 8 un SO universale, non un SO orientato solo ai programmatori B possibile installare i >le include tramite un pacchetto binario opportuno 8 .terogeneità de-li ambienti UNIX (La causa più -enerale del fallimento) La causa principale del fallimento 8 una ed una sola Gli )ost dei due pro-rammatori non sono uguali. Sono simili, ma non u-uali Che cosa cam1ia6 @acc)etti soft0are installati Dersioni dei pacc)etti soft0are installati @osi(ione nel >le s4stem dei soft0are ric)iesti 9 @ortabilit+ (Lo strumento con cui contrastare l7eterogeneit+ de-li ambienti UNIX) @er contrastare l7eterogeneità il soft0are i sistemi di tipo UNI= (nello specifico, GNU/Linu5) incora--iano la produ(ione di soft0are portabile "ortabilità: un soft0are 8 detto portabile se 8 compila1ile e/o eseguibile con sfor(o ridotto (al limite, nullo) su un host diverso da ?uello su cui 8 stato scritto ;anto minore 8 lo sfor(o, tanto piC 8 portabile il soft0are 10 Come si ottiene la portabilit+6 (Scrittura di codice portabile, costru(ione portabile di un ese-uibile) Si scrive codice portabile che non fa assunzioni di alcun tipo sulla piattaforma In altre parole: rende tutto parametrico Esempio: se un >le di con>-urazione cam1ia nome tra uno UNI= ed un altro, si de>nisce una costante con il nome corretto #define LOGNAME /var/log/auth.log Nel programma non si usa direttamente la strin-a 9/var/log/auth.log:, 1ensE la macro LOGNAME 11 Come si ottiene la portabilit+6 (Scrittura di codice portabile, costru!ione portabile di un eseguibile) Nel caso di lingua--i compilati ?uali il C, si usano strumenti per la compilazione di soft0are in modo portabile ;ali strumenti/ anali((ano il SO e l'albero sor-enteF identi>cano dipenden(e soft0are necessarie (li1rerie e programmi ese-ui1ili)F veri>cano la presen(a delle dipenden(eF costruiscono un Makefile adatto all'arc)itettura )ard0are e soft0are 12 Un esempio di soft0are portabile (Il soft0are di esempio GNU Gello) $NU &ello 8 un soft0are del pro-etto GNU che svolge una sola, semplice azione/ salutare l7utente Come soft0are non serve ad un granc)H B, tuttavia, un esempio di soft0are portabile Essendo contenuto, 8 piC semplice da studiare 13 Scelta della versione di GNU Gello (L7ultima disponibile su http:%%000 -nu or-%soft0are%hello) Aprite un bro0ser e navigate all7URL seguente/ )ttp/%%000 -nu.or-/soft0are%)ello Identificate la sezione 9'o0nloading Hello: Cliccate sul primo link HT*L. Identificate l7ultima versione/ hello-2.10.tar.gz 14 Scaricamento di GNU Gello (;ramite il comando wget) Una volta sopra il link G;*L, premete il pulsante destro del mouse e selezionate la voce 9Copia indiri((o link: Aprite un terminale ed usate il comando wget per scaricare l7arc)ivio: wget http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz @er incollare l7URL copiato in precedenza, potete/ premere la sequen(a Ctrl-Shift-vF premere il tasto centrale del mouse 15 Installa(ione del pacchetto wget (;ramite pacc)etto soft0are) Se non avete wget, installatelo (per il momento, tramite il gestore dei pacc)etti di Debian): apt-get install wget 16 @erc)H wget6 (. non, ad esempio, il bro0ser6) @erc)H wget supporta il ripristino dei do0nload interrotti. Basta attivare l7opzione -c wget -c http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz Non tutti i bro0ser moderni supportano tale funzione out2of2the2bo5 3uando si rende necessario proteggersi dalle interru(ioni? Quando: la connessione di rete )a una 1anda 1assa ed il do0nload deve essere svolto in piC puntateF la connessione di rete )a un alto tasso di erroriF la dimensione del >le da scaricare 8 -rande 17 Esercizi (5 min ) J Scaricate l7arc)ivio sorgente dell7ultima versione disponi1ile del soft0are GNU Kget Interrompete lo scaricamento a met+ con la se?uenza Ctrl-c ,ipristinate lo scaricamento 18 Altol+ (“Chi va l+6”) @rima di procedere con lo studio di GNU Hello, dovete verificare c)e l7arc)ivio da voi scaricato sia autentico ed inte-ro tramite la verifica della >rma di-itale dell7archivio 19 Installa(ione di GNU @rivac4 Guard (apt-get install gnupg) Il controllo della >rma ric)iede strumenti per la -estione della critto-ra>a asimmetrica (a c)iave pu1blica e privata). Il SO mette a disposizione il soft0are GNU @rivac4 Guard (GNUPG) allo scopo Installatelo apt-get install gnupg 20 Creazione di una coppia di c)iavi (Comando gpg, op(ione --gen-key) @er verificare per bene l7inte-rità di un archivio soft0are, createvi una coppia di chiavi pubblica e privata con il comando seguente/ gpg --gen-key Accettate i primi tre valori prede>niti premendo INVIO Inserite nome e co-nome @otete proteggere le c)iavi con una password, se volete 21 Scaricamento della firma digitale (;ramite il comando wget) @onete il cursore sopra il link di nome/ hello-2.10.tar.gz.sig @remete il pulsante destro del mouse e selezionate la voce 9Copia indirizzo linA: Aprite un terminale ed usate il comando wget per scaricare la firma di-itale/ wget http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz.sig L7estensione .sig sta per signature ('rma) 22 Derifica di inte-rità e di autenticit+ (Comando gpg, op(ione --verify) Il comando gpg --verify riceve in ingresso la >rma di-itale e verifica/ c)e l'arc)ivio sia stato >rmato dal pro-rammatore responsa1ile e nessun altroF c)e l'arc)ivio sia inte-ro .se-uite il comando seguente/ gpg --verify hello-2.10.tar.gz.sig 23 Esercizi (3 min ) $ Scaricate la >rma digitale dell7arc)ivio soft0are di GNU K-et e veri>catela 24 Un piccolo problema (Non avete la c)iave pubblica dello sviluppatore c)e ha >rmato l7archivio) Il comando non riesce a validare la firma gpg: Impossibile controllare la firma: chiave pubblica non trovata @er verificare la >rma 8 necessario disporre della c)iave pu1blica dello sviluppatore che ha >rmato l7arc)ivio ,icordate/ la >rma di-itale va decriptata con tale c)iave e l'hash contenuto al suo interno 8 confrontato con l'has) calcolato sull'arc)ivio scaricato 25 Identi>cazione della chiave pu11lica (B presente un identificatore apposito nel messa--io di output di gpg) 'ovete innanzitutto identificare la c)iave pu1blica dello sviluppatore c)e )a >rmato l7arc)ivio L7identificatore della c)iave 8 presente nel messa--io se-uente/ gpg: Firma eseguita in data dom 16 nov 2014 13:08:37 CET usando RSA, ID chiave FDE9B739 26 Scaricamento della c)iave pu11lica (Comando gpg, op(ione --recv-key) Una volta noto l7identificatore della c)iave pu1blica, la si puM importare da un server remoto di c)iavi pu11lic)e Si usa il comando seguente/ gpg --recv-key FDE9B739 27 IIG FAT KARNING (Nou have been 0arned) Il comando gpg --recv-key si connette ad un servizio remoto 1asato sul protocollo ;C@ Se un >re0all intermedio 1locca il tentativo di connessione, il comando non fun(ionaO In tal caso, 8 necessario scaricare ed importare a mano la c)iave pu11lica dello sviluppatore 28 Individuazione di una chiave pu11lica (Nel caso in cui gpg --recv-key non fun(ioni) Il primo passo consiste nella individuazione dell7ID della c)iave pu1blica gpg --verify vi dice ?ual 8 la c)iave privata con cui 8 stato >rmato l'arc)ivio Doi dovrete individuare la corrispondente c)iave pu11lica Annotatevi su un file di testo il valore dell7I' Nel caso di GNU Hello: FDE9B739 29 Localiz(azione di una chiave pu11lica (;ramite un motore di ricerca) La c)iave pu11lica è di solito ospitata su siti Ke1/ )ome pa-e dello sviluppatoreF motore di ricerca di c)iavi PGP I motori di ricerca indicizzano tali siti Aprite un bro0ser all7U,L/ )ttp/%%000 -oogle com Inserite la stringa FDE9B739 Cercate i risultati relativi a/ )ome pa-e dello sviluppatoreF server di c)iavi PGP 30 Locali((azione home page (;ramite un
Recommended publications
  • The Debian GNU/Linux
    The Debian GNU/Linux FAQ translator: etony C.F.AN <[email protected]> Debian FAQ Authors version 5.0.1, 17 March 2012 XXX要要要 ,文cãT一些s于 Debian GNU/Linux 的8Á问题. HHHCCC声声声明明明 Copyright © 1996-2003 by Software in the Public Interest (u守v包+,文cHC声明的MÐ下, A¸6\和发布,文c的完t拷贝. (u守上述完t拷贝H,有sHC声明的MÐ下, A¸拷贝和发布ú于,文c完t拷贝的修9H,, v且, 发布@有通Ç修9 ,文c而得0的工\成果, {使(与,文c的¸可声明一致的¸可声明. (u守上述修9H,HC声明的MÐ下, A¸拷贝和发布,文cv它语言的û译H,, 如果,¸可声明有Ïê1o件ú金 会(Free Software Foundation)8Æ的S0化译,, 则uªS0化译,. i Contents 1 定定定II义与与与概概概述述述 1 1.1 什么/ Debian GNU/Linux?...............................................1 1.2 OK, 现(我知SDebian /. Linux/什么?!.......................................1 1.3 什么/ “Hurd”?.......................................................2 1.4 Debian GNU/Linux 与v他 Linux 发LH有什么不同? 为什么要选éDebian GNU/Linux?............2 1.5 Debian ¡划与ê1o件ú金会的GNU¡划 .......................................2 1.6 Debian 的发音Ê+I?...................................................2 2 Debian GNU/Linux 的的的···取取取与与与安安安ÅÅÅ 3 2.1 Debian 的最新H,/?...................................................3 2.2 如U得0 Debian 的安Å盘?................................................3 2.3 如UÎIq安Å Debian?..................................................3 2.4 我有;U:, 可以·取 Debian qÏ吗?..........................................3 2.5 可以o盘安Å吗?.......................................................3 2.6 可以Q络安Å吗?.......................................................4 3 |||¹¹¹'''问问问题题题 5 3.1 可以(什么7的l件û统上ÐL?.............................................5 3.2 与v他的linux发LH|¹L如U?.............................................5 3.3 Debian 源码与v他
    [Show full text]
  • Beginning Portable Shell Scripting from Novice to Professional
    Beginning Portable Shell Scripting From Novice to Professional Peter Seebach 10436fmfinal 1 10/23/08 10:40:24 PM Beginning Portable Shell Scripting: From Novice to Professional Copyright © 2008 by Peter Seebach All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher. ISBN-13 (pbk): 978-1-4302-1043-6 ISBN-10 (pbk): 1-4302-1043-5 ISBN-13 (electronic): 978-1-4302-1044-3 ISBN-10 (electronic): 1-4302-1044-3 Printed and bound in the United States of America 9 8 7 6 5 4 3 2 1 Trademarked names may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, we use the names only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. Lead Editor: Frank Pohlmann Technical Reviewer: Gary V. Vaughan Editorial Board: Clay Andres, Steve Anglin, Ewan Buckingham, Tony Campbell, Gary Cornell, Jonathan Gennick, Michelle Lowman, Matthew Moodie, Jeffrey Pepper, Frank Pohlmann, Ben Renow-Clarke, Dominic Shakeshaft, Matt Wade, Tom Welsh Project Manager: Richard Dal Porto Copy Editor: Kim Benbow Associate Production Director: Kari Brooks-Copony Production Editor: Katie Stence Compositor: Linda Weidemann, Wolf Creek Press Proofreader: Dan Shaw Indexer: Broccoli Information Management Cover Designer: Kurt Krames Manufacturing Director: Tom Debolski Distributed to the book trade worldwide by Springer-Verlag New York, Inc., 233 Spring Street, 6th Floor, New York, NY 10013.
    [Show full text]
  • GNU Guix Cookbook Tutorials and Examples for Using the GNU Guix Functional Package Manager
    GNU Guix Cookbook Tutorials and examples for using the GNU Guix Functional Package Manager The GNU Guix Developers Copyright c 2019 Ricardo Wurmus Copyright c 2019 Efraim Flashner Copyright c 2019 Pierre Neidhardt Copyright c 2020 Oleg Pykhalov Copyright c 2020 Matthew Brooks Copyright c 2020 Marcin Karpezo Copyright c 2020 Brice Waegeneire Copyright c 2020 Andr´eBatista Copyright c 2020 Christine Lemmer-Webber Copyright c 2021 Joshua Branson Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled \GNU Free Documentation License". i Table of Contents GNU Guix Cookbook ::::::::::::::::::::::::::::::: 1 1 Scheme tutorials ::::::::::::::::::::::::::::::::: 2 1.1 A Scheme Crash Course :::::::::::::::::::::::::::::::::::::::: 2 2 Packaging :::::::::::::::::::::::::::::::::::::::: 5 2.1 Packaging Tutorial:::::::::::::::::::::::::::::::::::::::::::::: 5 2.1.1 A \Hello World" package :::::::::::::::::::::::::::::::::: 5 2.1.2 Setup:::::::::::::::::::::::::::::::::::::::::::::::::::::: 8 2.1.2.1 Local file ::::::::::::::::::::::::::::::::::::::::::::: 8 2.1.2.2 `GUIX_PACKAGE_PATH' ::::::::::::::::::::::::::::::::: 9 2.1.2.3 Guix channels ::::::::::::::::::::::::::::::::::::::: 10 2.1.2.4 Direct checkout hacking:::::::::::::::::::::::::::::: 10 2.1.3 Extended example ::::::::::::::::::::::::::::::::::::::::
    [Show full text]
  • Freehoo Version 3.5.2 User/Developers Guide, 1 May 2008
    Freehoo version 3.5.2 User/Developers guide, 1 May 2008 K. Viswanathan [email protected] \Anand Babu" Periasamy [email protected] Copyright c 2002, 2007, 2008 Freehoo Core Team This is the first edition of the Freehoo documentation. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the con- ditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another lan- guage, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation. i Table of Contents 1 Overview .................................. 1 2 Invoking .................................. 2 3 Freehoo commands ........................ 3 3.1 Freehoo command - * ........................................ 3 3.2 Freehoo command - <buddy> ................................. 3 3.3 Freehoo command - add ..................................... 3 3.4 Freehoo command - alias..................................... 4 3.5 Freehoo command - bell ..................................... 4 3.6 Freehoo command - broadcast ................................ 4 3.7 Freehoo command - burst-of-romance ......................... 4 3.8 Freehoo command - burst ...................................
    [Show full text]
  • EPXA10 Development Kit Getting Started User Guide
    EPXA10 DDR Development Kit Getting Started User Guide 101 Innovation Drive February 2003 San Jose, CA 95134 (408) 544-7000 http://www.altera.com UG-EPXA10DDR-1.4 P25-08757-00 Copyright EPXA10 DDR Development Kit Getting Started User Guide Copyright © 2003 Altera Corporation. All rights reserved. Altera, The Programmable Solutions Company, the stylized Altera logo, specific device designations, and all other words and logos that are identified as trademarks and/or service marks are, unless noted otherwise, the trademarks and service marks of Altera Corporation in the U.S. and other countries. All other product or service names are the property of their respective holders. Altera products are protected under numerous U.S. and foreign patents and pending applications, mask work rights, and copyrights. Altera warrants performance of its semiconductor products to current specifications in accordance with Altera’s standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Altera Corporation. Altera customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. ii Altera Corporation About this User Guide This user guide provides comprehensive information about getting started with the Altera® Excalibur™ EPXA10 DDR development kit. Table 1 shows the user guide revision history. Table 1. User Guide Revision History Date Description February 2003 Minor text edit.
    [Show full text]
  • Free As in Freedom (2.0): Richard Stallman and the Free Software Revolution
    Free as in Freedom (2.0): Richard Stallman and the Free Software Revolution Sam Williams Second edition revisions by Richard M. Stallman i This is Free as in Freedom 2.0: Richard Stallman and the Free Soft- ware Revolution, a revision of Free as in Freedom: Richard Stallman's Crusade for Free Software. Copyright c 2002, 2010 Sam Williams Copyright c 2010 Richard M. Stallman Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled \GNU Free Documentation License." Published by the Free Software Foundation 51 Franklin St., Fifth Floor Boston, MA 02110-1335 USA ISBN: 9780983159216 The cover photograph of Richard Stallman is by Peter Hinely. The PDP-10 photograph in Chapter 7 is by Rodney Brooks. The photo- graph of St. IGNUcius in Chapter 8 is by Stian Eikeland. Contents Foreword by Richard M. Stallmanv Preface by Sam Williams vii 1 For Want of a Printer1 2 2001: A Hacker's Odyssey 13 3 A Portrait of the Hacker as a Young Man 25 4 Impeach God 37 5 Puddle of Freedom 59 6 The Emacs Commune 77 7 A Stark Moral Choice 89 8 St. Ignucius 109 9 The GNU General Public License 123 10 GNU/Linux 145 iii iv CONTENTS 11 Open Source 159 12 A Brief Journey through Hacker Hell 175 13 Continuing the Fight 181 Epilogue from Sam Williams: Crushing Loneliness 193 Appendix A { Hack, Hackers, and Hacking 209 Appendix B { GNU Free Documentation License 217 Foreword by Richard M.
    [Show full text]
  • Full Circle Magazine Is Neither Affiliated, with Nor Endorsed By, Canonical Ltd
    Full Circle THE INDEPENDENT MAGAZINE FOR THE UBUNTU LINUX COMMUNITY UBUNTU DEVELOPMENT SERIES SPECIAL EDITION SINGLE TOPIC SERIES FROM MAGAZINE ISSUES #49 - #52 Full Circle Magazine is neither affiliated, with nor endorsed by, Canonical Ltd. Full Circle Magazine Specials About Full Circle Full Circle is a free, Find Us independent, magazine Website: dedicated to the Ubuntu http://www.fullcirclemagazine.org/ family of Linux operating systems. Each month, it Forums: contains helpful how-to http://ubuntuforums.org/ articles and reader- forumdisplay.php?f=270 submitted stories. Welcome to another 'single-topic special' IRC: #fullcirclemagazine on Full Circle also features a In response to reader requests, we are assembling the chat.freenode.net companion podcast, the Full content of some of our serialised articles into dedicated Editorial Team Circle Podcast which covers editions. the magazine, along with Editor: Ronnie Tucker other news of interest. For now, this is a straight reprint of the series 'Ubuntu (aka: RonnieTucker) Development', Parts 1-4, by Daniel Holbach from issues [email protected] Please note: this Special #49 through #52; nothing fancy, just the facts. Webmaster: Rob Kerfia Edition is provided with (aka: admin / linuxgeekery- Please bear in mind the original publication date; current [email protected] absolutely no warranty versions of hardware and software may differ from those whatsoever; neither the Podcaster: Robin Catling contributors nor Full Circle illustrated, so check your hardware and software versions before attempting to emulate the tutorials in these special (aka RobinCatling) Magazine accept any [email protected] responsibility or liability for editions. You may have later versions of software installed loss or damage resulting from or available in your distributions' repositories.
    [Show full text]
  • Functional Package Management with Guix
    Functional Package Management with Guix Ludovic Courtès Bordeaux, France [email protected] ABSTRACT 1. INTRODUCTION We describe the design and implementation of GNU Guix, a GNU Guix1 is a purely functional package manager for the purely functional package manager designed to support a com- GNU system [20], and in particular GNU/Linux. Pack- plete GNU/Linux distribution. Guix supports transactional age management consists in all the activities that relate upgrades and roll-backs, unprivileged package management, to building packages from source, honoring the build-time per-user profiles, and garbage collection. It builds upon the and run-time dependencies on packages, installing, removing, low-level build and deployment layer of the Nix package man- and upgrading packages in user environments. In addition ager. Guix uses Scheme as its programming interface. In to these standard features, Guix supports transactional up- particular, we devise an embedded domain-specific language grades and roll-backs, unprivileged package management, (EDSL) to describe and compose packages. We demonstrate per-user profiles, and garbage collection. Guix comes with a how it allows us to benefit from the host general-purpose distribution of user-land free software packages. programming language while not compromising on expres- siveness. Second, we show the use of Scheme to write build Guix seeks to empower users in several ways: by offering the programs, leading to a \two-tier" programming system. uncommon features listed above, by providing the tools that allow users to formally correlate a binary package and the Categories and Subject Descriptors \recipes" and source code that led to it|furthering the spirit D.4.5 [Operating Systems]: Reliability; D.4.5 [Operating of the GNU General Public License|, by allowing them to Systems]: System Programs and Utilities; D.1.1 [Software]: customize the distribution, and by lowering the barrier to Applicative (Functional) Programming entry in distribution development.
    [Show full text]
  • A Brief Introduction to GNU Guix
    A Brief Introduction to GNU Guix David Thompson [email protected] Codefest 2014 Cambridge, MA I Introduction I What is GNU Guix? I Packages I Operating Systems I Demo Who am I? I My name is David Thompson I I am the Web Developer at the Free Software Foundation I I am a contributor to GNU Guix and GNU Guile What is Guix? I A purely functional package manager for the GNU system, and a distribution thereof I Dependable, hackable, and liberating I Based on Nix I Written in Guile Scheme What is Guix? Dependable In addition to standard package management features, Guix supports transactional upgrades and roll-backs, unprivileged package management, per-user profiles, and garbage collection. What is Guix? Hackable It provides Guile Scheme APIs, including high-level embedded domain-specific languages (EDSLs), to describe how packages are built and composed. What is Guix? Liberating A user-land free software distribution for GNU/Linux comes as part of Guix. Packages I The package build and installation process is seen as a function, in the mathematical sense I That function takes inputs, such as build scripts, a compiler, and libraries, and returns an installed package I As a pure function, its result depends solely on its inputs I Build processes are run in isolated environments, where only their explicit inputs are visible Packages (define hello (package (name "hello") (version "2.8") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/.../hello-" version ".tar.gz")) (sha256 (base32 "0wqd...dz6")))) (build-system gnu-build-system)
    [Show full text]
  • Guix, Functional Package Management for the People
    Guix, Functional Package Management for the People Ludovic Courtes` [email protected] GNU Hackers Meeting, July 2012, Dusseldorf¨ GNUten Tag, Dusseldorf!¨ GNUten Tag, Dusseldorf!¨ I functional package manager! I written in Guile Scheme! I a new programming layer for Nix I Nix? what’s Guix? http://gitorious.org/guix/ I it’s the new thing! I IPA: /gi:ks/ I written in Guile Scheme! I a new programming layer for Nix I Nix? what’s Guix? http://gitorious.org/guix/ I it’s the new thing! I IPA: /gi:ks/ I functional package manager! I a new programming layer for Nix I Nix? what’s Guix? http://gitorious.org/guix/ I it’s the new thing! I IPA: /gi:ks/ I functional package manager! I written in Guile Scheme! I Nix? what’s Guix? http://gitorious.org/guix/ I it’s the new thing! I IPA: /gi:ks/ I functional package manager! I written in Guile Scheme! I a new programming layer for Nix what’s Guix? http://gitorious.org/guix/ I it’s the new thing! I IPA: /gi:ks/ I functional package manager! I written in Guile Scheme! I a new programming layer for Nix I Nix? but the one i use works great too! I functional, again? I of course it does! more on this later... so what’s Nix? http://nixos.org/nix/ I a functional package manager but the one i use works great too! I of course it does! more on this later... so what’s Nix? http://nixos.org/nix/ I a functional package manager I functional, again? I of course it does! more on this later..
    [Show full text]
  • Ubuntu-Packaging-Guide.Pdf
    Ubuntu Packaging Guide Release 1.0.3 bzr711 ubuntu14.04.1 Ubuntu Developers August 31, 2021 CONTENTS 1 Articles 2 1.1 Introduction to Ubuntu Development..................................2 1.2 Getting Set Up..............................................4 1.3 Fixing a bug in Ubuntu..........................................8 1.4 Packaging New Software......................................... 14 1.5 Security and Stable Release Updates.................................. 17 1.6 Patches to Packages........................................... 19 1.7 Fixing FTBFS packages......................................... 22 1.8 Shared Libraries............................................. 23 1.9 Backporting software updates...................................... 25 2 Knowledge Base 26 2.1 Communication in Ubuntu Development................................ 26 2.2 Basic Overview of the debian/ Directory............................... 26 2.3 ubuntu-dev-tools: Tools for Ubuntu developers............................. 32 2.4 autopkgtest: Automatic testing for packages.............................. 34 2.5 Using Chroots.............................................. 36 2.6 Setting up sbuild............................................. 37 2.7 KDE Packaging............................................. 40 3 Further Reading 42 i CONTENTS Ubuntu Packaging Guide Welcome to the Ubuntu Packaging and Development Guide! This is the official place for learning all about Ubuntu Development and packaging. After reading this guide you will have: • Heard about the most important players,
    [Show full text]
  • Name Introduction Wishes and Requirements
    software-wishlist.pod NAME software-wishlist - wishes (and requirements) by TiU LIS Unix for supported software INTRODUCTION The intended audience for this document is software developers, as well aspeople intermediating with software developers. This document lists wishes and requirements for software, for it to beinstalled on TiU LIS Unix managed systems. For specificsoftware installations, requirements are decided upon on a case by case basis.However, this list will be used as a guideline. This list applies to all software running on LIS Unix managed systems: theOS vendor supplied kernel, Oracle product installations, PHP and Perlwebapplications, in-house developed small scripts, and all other stuff. The list is sorted: the first wish is a hard requirement always, and is "easy"to fulfill. The last wish would make LIS Unix very happy, but is quite oftenimpossible to fulfill. Of course, the more items your software adheres to, thehigher the service level LIS Unix can guarantee, the happier everybody will be. This document is published at: http://non-gnu.uvt.nl/pub/uvt-unix-doc/software-wishlist/software-wishlist . WISHES AND REQUIREMENTS 1. maintained The software needs to be maintained. Popular Unix Operating Systems change,expectations of SysAdmins and users change, new ways to attack and abusesoftware get found and used: the environment of each software package changes,so all software packages will have to change too. For newly fixed softwareversions and releases, a agreed upon channel should be established to LIS Unix,so that upgrades can get carried out in time. 2. version numbers Each version of the software package has a number by which it can be easilyidentified.
    [Show full text]