Effective Packaging

Total Page:16

File Type:pdf, Size:1020Kb

Effective Packaging Effective packaging Petr Uzel L3/Maintenance [email protected] ptr uzl @ IRC About this talk collection of tips and tricks that make (some) package maintenance tasks more efficient no rocket science, no cool technologies based on experience there are definitely better ways 2/1 c Novell Inc. All Right Reserved Which package is broken? given a bug (e.g. /path/to/bin crashes), sometimes it is not obvious which package should be fixed bugzilla does not track package info rpm -qf /path/to/file gives name of the RPM we need source package, not RPM $ rpm -qf /lib64/libblkid.so.1 libblkid1-2.18-56.1.x86_64 $ osc search -s --package blkid No matches found for 'blkid' in packages 3/1 c Novell Inc. All Right Reserved Source package name let's ask RPM: $ rpm -q --queryformat '%{SOURCERPM}\n' \ libblkid1-2.18-56.1.x86_64 util-linux-2.18-56.1.src.rpm Everything combined together (file ! source package) $ rpm -q --queryformat '%{SOURCERPM}\n' \ $(rpm -qf /lib64/libblkid.so.1) | \ sed -e 's/\(^.*\)-.*-.*src.rpm/\1/' util-linux Where did I install the package from? $ rpm -q --queryformat '%{DISTURL}\n' util-linux obs://build.opensuse.org/home:puzel:staging/openSUSE_11.3/6a[CUT] 4/1 c Novell Inc. All Right Reserved Get package source from OBS With branching: slow: osc branch openSUSE:Factory foo; osc co home:*:branches:PRJ faster: osc branch --checkout openSUSE:Factory foo fastest: osc getpac foo or osc bco foo hyperspeed: osc getpac + osc bash completion Without branching: function show_devel { osc meta pkg openSUSE:Factory ${1} | fgrep devel } go directly to devel project 5/1 c Novell Inc. All Right Reserved Building package osc build in package working copy usually does the right thing more control: osc build [OPTS] REPOSITORY ARCH SPECFILE REPOSITORY, ARCH and SPECFILE detected automatically if not specified list REPO-ARCH combinations: osc repos [PRJ] 6/1 c Novell Inc. All Right Reserved osc build options build debuginfo and debugsource packages: osc build --debuginfo/-d skip post build checks: osc build --nochecks delete old build root before build: osc build --clean use alternative project for build: osc --alternative-project=openSUSE:Factory use ccache to speed up build: osc build --ccache 7/1 c Novell Inc. All Right Reserved Use custom RPMs in buildroot foo depends on bar, which is not in buildservice yet but we have bar.rpm osc build -p/--prefer-pkgs DIR: prefer packages from DIR when installing buildroot $ cd foo $ osc build -p /path/to_dir_with_bar.rpm foo.spec osc build -x/--extra-pkgs PKG: add this package to buildroot 8/1 c Novell Inc. All Right Reserved Buildroot tips by default, buildroot is /var/tmp/build-root OSC BUILD ROOT overrides the default $ export OSC_BUILD_ROOT=/var/tmp/build-root-temp $ osc build use when parallelly building multiple packages buildroot on tmpfs 5% speedup of parted build $ grep build-root /etc/fstab tmpfs /var/tmp/build-root tmpfs size=5G 0 0 9/1 c Novell Inc. All Right Reserved Avoid password for building by default, osc build asks for root password; to avoid it set su-wrapper = sudo in ~/.oscrc add ``yourlogin ALL = (root) NOPASSWD: /usr/bin/build'' to sudoers file 10/1 c Novell Inc. All Right Reserved Build log build log is stored in $OSC BUILD ROOT/.build.log slow: less /var/tmp/build-root/.build.log faster: osc lbl/localbuildlog respects $OSC BUILD ROOT from working copy osc rbl/remotebuildlog PRJ PKG REPO ARCH - get remote build log 11/1 c Novell Inc. All Right Reserved Version update workflow 1 get package source 2 download tarball 3 verify tarball 4 repack tarball 5 check differences 6 adjust specfile 7 refresh patches 8 run test build 9 test the package 10 write changelog entry 11 commit 12/1 c Novell Inc. All Right Reserved Downloading tarball with ncftp many projects publish tarballs on FTP sites ncftp is a command-line FTP client with bookmarking support useful to remember locations where upstream publishes tarballs supported by bash-completion $ ncftp ut<tab> -> ncftp util-linux ncftp... ls ncftp... get fil<tab> -> filename ncftpbookmarks: bookmark editor 13/1 c Novell Inc. All Right Reserved Repacking tarball packaging policy requires the tarball to be bzip2-ed (or xz-ed) sometimes upstream provides only .tar.gz $ bznew parted-2.3.tar.gz $ ls *.bz2 parted-2.3.tar.bz2 14/1 c Novell Inc. All Right Reserved What's new in tarball? Compare outputs from configure --help $ git clone git://gitorious.org/opensuse/pack-tools.git $ diffconf gnupg-2.0.10.tar.bz2 gnupg-2.0.16.tar.bz2 15/1 c Novell Inc. All Right Reserved Change specfile usually just open specfile and increase the version number small helper: $ alias vs='vim -p *.spec' in vim (normal mode), press Ctrl+A/Ctrl+X to increase/decrease numbers 16/1 c Novell Inc. All Right Reserved Packaging with quilt about quilt Quilt allows you to easily manage large numbers of patches by keeping track of the changes each patch makes. Patches can be applied, un-applied, refreshed, and more. 17/1 c Novell Inc. All Right Reserved Packaging with quilt quilt setup initialize a source tree from RPM spec file 1 unpack tarball 2 apply patches 3 un-apply patches (but remembers the series) IOW: %prep phase $ quilt setup -v foo.spec $ cd foo-1.0.0 shortcut: $ alias qs='quilt setup -v *.spec' 18/1 c Novell Inc. All Right Reserved Packaging with quilt working with series of patches now we are in the directory created by quilt setup (unpacked tarball) none of the patches is applied (but quilt \knows" about them) quilt push applies one patch (-a: all patches) quilt pop un-applies one patch (-a: all patches) quilt top prints name of the last applied patch quilt refresh refreshes last patch (so that it applies cleanly, without fuzz and offsets) quilt series prints the names of all patches 19/1 c Novell Inc. All Right Reserved Packaging with quilt inspecting patches $ quilt diff $ quilt diff --color=auto or quilt diff | colordiff $ quilt files or quilt diff | lsdiff $ quilt diff | diffstat $ quilt diff -U num view differences in vimdiff (side by side): $ alias qdv='quilt diff -p0 -C 9999 --color=never --diff=vimdiff' 20/1 c Novell Inc. All Right Reserved Packaging with quilt creating new patch 1 quilt push -a steps 3 and 4 can be 2 quilt new combined to foo-fix-bug.patch quilt edit src/file.c 3 quilt add src/file.c the patch appears in parent directory (after 4 vim src/file.c quilt refresh) 5 hack, hack you have to add it to 6 quilt refresh specfile 21/1 c Novell Inc. All Right Reserved Packaging with quilt importing patch goal: import patch (e.g. taken from upstream) to quilt 1 quilt push -a 2 quilt import /path/to/bugfix.patch 3 quilt push 4 quilt refresh bugfix.patch appears in the parent directory -p num controls how many directory levels to strip (as with patch(1)) -P name overrides name of the patch multiple patches can be imported at once 22/1 c Novell Inc. All Right Reserved Packaging with quilt rejected patches when quilt push fails, use quilt push -f applies as much as possible, leaves rejects (file.c + file.c.rej) $ quilt push Applying patch gnupg-files-are-digests.patch patching file g10/gpg.c Hunk #3 succeeded at 1998 (offset -4 lines). Hunk #4 succeeded at 2487 (offset -4 lines). patching file g10/options.h Hunk #1 FAILED at 194. 1 out of 1 hunk FAILED -- rejects in file g10/options.h patching file g10/sign.c Patch gnupg-files-are-digests.patch does not apply (enforce with -f) 23/1 c Novell Inc. All Right Reserved Packaging with quilt rejected patches - continued failed hunks in *.c.rej have to be applied manually (vim *.c) then quilt refresh helper: vim quilt plugin (zypper install vim-plugin-quilt) (Contrib) vim foo.c - if there is also foo.c.rej - opens vertically split view easier to copy code from rejected hunks to original file the plugin can do more: :help quilt 24/1 c Novell Inc. All Right Reserved Packaging with quilt make quilt more friendly $ alias q='quilt' $ alias qd='quilt diff --color=always' $ alias qdv='quilt diff -p0 -C 9999 --color=never --diff=vimdiff' $ alias qp='quilt push --color=auto' $ alias qs='quilt setup -v *.spec' $ cat ~/.quiltrc # show C function name in hunk header QUILT_DIFF_OPTS='-p' 25/1 c Novell Inc. All Right Reserved osc status, osc addremove we have to tell osc about new/deleted files example: update foo-1.0 to foo-2.0 $ ls foo*bz2 foo-1.0.tar.bz2 foo-2.0.tar.bz2 $ osc status ? foo-2.0.tar.bz2 $ rm foo-1.0.tar.bz2 $ osc ar # osc addremove D foo-1.0.tar.bz2 A foo-2.0.tar.bz2 $ osc st # osc status D foo-1.0.tar.bz2 A foo-2.0.tar.bz2 osc add + osc remove = osc ar 26/1 c Novell Inc. All Right Reserved Committing changes osc diff displays changes in the package more readable: $ alias osccd='osc diff | colordiff | less' osc vc opens foo.changes file (prepares new entry header, unless -e option is given) vim can open compressed tarballs: :tabnew foo-2.0.tar.bz2 search for Changelog, NEWS, . ; open copy, paste and edit changelog entry osc commit osc sr 27/1 c Novell Inc. All Right Reserved Vim and changelogs to make changelog editing with vim more convenient, add to .vimrc: set nocompatible filetype plugin on syntax on autocmd BufRead,BufNewFile *.changes.* set filetype=changes autocmd FileType changes set spelllang=en_us spell textwidth=67 28/1 c Novell Inc.
Recommended publications
  • Debian Developer's Reference Version 12.0, Released on 2021-09-01
    Debian Developer’s Reference Release 12.0 Developer’s Reference Team 2021-09-01 CONTENTS 1 Scope of This Document 3 2 Applying to Become a Member5 2.1 Getting started..............................................5 2.2 Debian mentors and sponsors......................................6 2.3 Registering as a Debian member.....................................6 3 Debian Developer's Duties 9 3.1 Package Maintainer's Duties.......................................9 3.1.1 Work towards the next stable release............................9 3.1.2 Maintain packages in stable .................................9 3.1.3 Manage release-critical bugs.................................. 10 3.1.4 Coordination with upstream developers............................ 10 3.2 Administrative Duties.......................................... 10 3.2.1 Maintaining your Debian information............................. 11 3.2.2 Maintaining your public key.................................. 11 3.2.3 Voting.............................................. 11 3.2.4 Going on vacation gracefully.................................. 12 3.2.5 Retiring............................................. 12 3.2.6 Returning after retirement................................... 13 4 Resources for Debian Members 15 4.1 Mailing lists............................................... 15 4.1.1 Basic rules for use....................................... 15 4.1.2 Core development mailing lists................................. 15 4.1.3 Special lists........................................... 16 4.1.4 Requesting new
    [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]
  • Leitfaden Für Debian-Betreuer
    Leitfaden für Debian­Betreuer Osamu Aoki, Helge Kreutzmann, and Mechtilde Stehmann August 27, 2021 Leitfaden für Debian­Betreuer by Osamu Aoki, Helge Kreutzmann, and Mechtilde Stehmann Copyright © 2014­2020 Osamu Aoki Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ”Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED ”AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IM­ PLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Diese Anleitung wurde mit den nachfolgenden Dokumenten als Referenz erstellt: • »Making a Debian Package (AKA the Debmake Manual)«, Copyright © 1997 Jaldhar Vyas. • »The New­Maintainer’s Debian Packaging Howto«, Copyright © 1997 Will Lowe. • »Debian­Leitfaden für Neue Paketbetreuer«, Copyright © 1998­2002 Josip Rodin, 2005­2017 Osamu Aoki, 2010 Craig Small und 2010 Raphaël Hertzog. Die neuste Version dieser Anleitung sollte • im Paket debmake­doc und • auf der Debian­Dokumentations­Website verfügbar sein.
    [Show full text]
  • Enterprise View™
    ® Micro Focus ™ Enterprise View Installation Guide Copyright © 2008 Micro Focus (IP) Ltd. All rights reserved. Micro Focus (IP) Ltd. has made every effort to ensure that this book is correct and accurate, but reserves the right to make changes without notice at its sole discretion at any time. The software described in this document is supplied under a license and may be used or copied only in accordance with the terms of such license, and in particular any warranty of fitness of Micro Focus software products for any particular purpose is expressly excluded and in no event will Micro Focus be liable for any consequential loss. Animator®, COBOL Workbench®, EnterpriseLink®, Mainframe Express®, Micro Focus®, Net Express®, REQL® and Revolve® are registered trademarks, and AAI™, Analyzer™, Application Server™, Application to Application Interface™, AddPack™, AppTrack™, AssetMiner™, CCI™, DataConnect™, Dialog System™, Enterprise Server™, Enterprise Server with MTO™, EuroSmart™, FixPack™, LEVEL II COBOL™, License Server™, Mainframe Access™, Mainframe Manager™, Micro Focus® COBOL™, Micro Focus® Studio™, Micro Focus® Server™, Object COBOL™, OpenESQL™, Personal COBOL™, Professional COBOL™, Server Express™, SmartFind™, SmartFind Plus™, SmartFix™, SourceConnect™, SupportLine™, Toolbox™, VS COBOL™, WebSync™, and Xilerator™ are trademarks of Micro Focus (IP) Ltd. IBM® and CICS® are registered trademarks, and IMS™, DB2, DB2/390, DB2 Connect Enterprise Edition, DB2 Connect Personal Edition, COBOL for OS/390, Enterprise. Systems Architecture/390, ESA/390, MVS, MVS/ESA, OS/390, S/390, System/390, VSE/ESA and MFS are trademarks, of International Business Machines Corporation. Netscape Enterprise Server™ is a trademark of Netscape Communications Corporation. Internet Information Server®, Windows 95®, Windows 98®, Windows NT 4.0®, Windows ME® and Windows 2000® are registered trademarks of Microsoft Corporation.
    [Show full text]
  • Compiling C Programs
    CSCI 2132: Software Development Lab 6: Exploring bash and C Compilation Synopsis In this lab, you will: • Customize the behaviour your bash shell • Write and compile some simple C programs • Practice the edit-compile-fix cycle using emacs and the shell • Learn to patch programs using diff and patch Contents Overview......................................................................................................2 Step 1: Login and lab setup.................................................................................3 Step 2: The name of your shell.............................................................................3 Step 3: The .bashrc file.....................................................................................3 Step 4: Customize rm ........................................................................................4 Optional Step: Install bashrc.new as your new .bashrc file............................................7 Step 5: Edit .profile .......................................................................................8 Optional Step: Install profile.new as your new .profile file.......................................... 10 Step 6: Write a simple C program.......................................................................... 11 Step 7: Explore exit codes................................................................................... 12 Step 8: diff .................................................................................................. 14 Step 9: patch................................................................................................
    [Show full text]
  • Unix (And Linux)
    AWK....................................................................................................................................4 BC .....................................................................................................................................11 CHGRP .............................................................................................................................16 CHMOD.............................................................................................................................19 CHOWN ............................................................................................................................26 CP .....................................................................................................................................29 CRON................................................................................................................................34 CSH...................................................................................................................................36 CUT...................................................................................................................................71 DATE ................................................................................................................................75 DF .....................................................................................................................................79 DIFF ..................................................................................................................................84
    [Show full text]
  • Distributed Revision Control with Mercurial
    Distributed revision control with Mercurial Bryan O’Sullivan Copyright c 2006, 2007 Bryan O’Sullivan. This material may be distributed only subject to the terms and conditions set forth in version 1.0 of the Open Publication License. Please refer to Appendix D for the license text. This book was prepared from rev 028543f67bea, dated 2008-08-20 15:27 -0700, using rev a58a611c320f of Mercurial. Contents Contents i Preface 2 0.1 This book is a work in progress ...................................... 2 0.2 About the examples in this book ..................................... 2 0.3 Colophon—this book is Free ....................................... 2 1 Introduction 3 1.1 About revision control .......................................... 3 1.1.1 Why use revision control? .................................... 3 1.1.2 The many names of revision control ............................... 4 1.2 A short history of revision control .................................... 4 1.3 Trends in revision control ......................................... 5 1.4 A few of the advantages of distributed revision control ......................... 5 1.4.1 Advantages for open source projects ............................... 6 1.4.2 Advantages for commercial projects ............................... 6 1.5 Why choose Mercurial? .......................................... 7 1.6 Mercurial compared with other tools ................................... 7 1.6.1 Subversion ............................................ 7 1.6.2 Git ................................................ 8 1.6.3
    [Show full text]
  • Debianization of Predictprotein
    debian-unstable package-building git-repository lintian and quilt sources Programming challenge 10: Debianization of PredictProtein Jens Preußner Supervisor: Laszlo Kajan The Bioinformatics Lab 10th of July, 2012 debian-unstable package-building git-repository lintian and quilt sources Table of contents 1 debian-unstable Installation 2 package-building Structure of directory Building 3 git-repository Local git repository Remote git repository Initial push 4 lintian and quilt Fixing lintian warnings Working with quilt 5 References Now perform as root: $ chroot /srv/unstable/ $ adduser --home /home/<user> --uid <uid> <user> $ su - <user> debian-unstable package-building git-repository lintian and quilt sources Installing debian-unstable in L1 Required packages: debootstrap, dpkg-dev - easy Bind your home and proc, see Network filesystems debian-unstable package-building git-repository lintian and quilt sources Installing debian-unstable in L1 Required packages: debootstrap, dpkg-dev - easy Bind your home and proc, see Network filesystems Now perform as root: $ chroot /srv/unstable/ $ adduser --home /home/<user> --uid <uid> <user> $ su - <user> debian-unstable package-building git-repository lintian and quilt sources Installing debian-unstable in L1 To know for sure, that you are in wheezy/sid In new environment: $ cat /etc/debian version wheezy/sid instead of 6.0.4 debian-unstable package-building git-repository lintian and quilt sources My special case I had a perl module for uploading The module was not contained in CPAN Naming conventions:
    [Show full text]
  • The Kate Handbook
    The Kate Handbook Anders Lund Seth Rothberg Dominik Haumann T.C. Hollingsworth The Kate Handbook 2 Contents 1 Introduction 10 2 The Fundamentals 11 2.1 Starting Kate . 11 2.1.1 From the Menu . 11 2.1.2 From the Command Line . 11 2.1.2.1 Command Line Options . 12 2.1.3 Drag and Drop . 13 2.2 Working with Kate . 13 2.2.1 Quick Start . 13 2.2.2 Shortcuts . 13 2.3 Working With the KateMDI . 14 2.3.1 Overview . 14 2.3.1.1 The Main Window . 14 2.3.2 The Editor area . 14 2.4 Using Sessions . 15 2.5 Getting Help . 15 2.5.1 With Kate . 15 2.5.2 With Your Text Files . 16 2.5.3 Articles on Kate . 16 3 Working with the Kate Editor 17 4 Working with Plugins 18 4.1 Kate Application Plugins . 18 4.2 External Tools . 19 4.2.1 Configuring External Tools . 19 4.2.2 Variable Expansion . 20 4.2.3 List of Default Tools . 22 4.3 Backtrace Browser Plugin . 25 4.3.1 Using the Backtrace Browser Plugin . 25 4.3.2 Configuration . 26 4.4 Build Plugin . 26 The Kate Handbook 4.4.1 Introduction . 26 4.4.2 Using the Build Plugin . 26 4.4.2.1 Target Settings tab . 27 4.4.2.2 Output tab . 28 4.4.3 Menu Structure . 28 4.4.4 Thanks and Acknowledgments . 28 4.5 Close Except/Like Plugin . 28 4.5.1 Introduction . 28 4.5.2 Using the Close Except/Like Plugin .
    [Show full text]
  • C/C++ Compile Guide
    WizFi630S Guide C/C++ Compile Guide (Version 1.0.0) © 2019 WIZnet Co., Ltd. All Rights Reserved. For more information, please visit our website at http://www.wiznet.io/ © Copyright 2019 WIZnet Co., Ltd. All rights reserved. 1 WizFi630S Guide Document Revision History Date Revision Changes 2019-11-25 1.0 Release © Copyright 2019 WIZnet Co., Ltd. All rights reserved. 2 WizFi630S Guide Contents 1. Overview ................................................................................................................. 4 2. Download ................................................................................................................ 4 2.1 Prerequisites .................................................................................................. 4 2.2 Packages for Building Environment .......................................................... 4 2.3 OpenWRT Firmware Repository................................................................. 6 2.4 Menuconfig .................................................................................................... 7 3. Write C Code........................................................................................................... 7 3.1 Helloworld ...................................................................................................... 7 3.2 Make the Environment Script .................................................................... 8 4. Cross Compile ......................................................................................................... 8 4.1
    [Show full text]
  • Buildroot Training Buildroot Training
    Buildroot Training Buildroot Training © Copyright 2004-2021, Bootlin. Creative Commons BY-SA 3.0 license. Latest update: October 6, 2021. Document updates and sources: https://bootlin.com/doc/training/buildroot Corrections, suggestions, contributions and translations are welcome! embedded Linux and kernel engineering Send them to [email protected] - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 1/353 Rights to copy © Copyright 2004-2021, Bootlin License: Creative Commons Attribution - Share Alike 3.0 https://creativecommons.org/licenses/by-sa/3.0/legalcode You are free: I to copy, distribute, display, and perform the work I to make derivative works I to make commercial use of the work Under the following conditions: I Attribution. You must give the original author credit. I Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. I For any reuse or distribution, you must make clear to others the license terms of this work. I Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above. Document sources: https://github.com/bootlin/training-materials/ - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 2/353 Hyperlinks in the document There are many hyperlinks in the document I Regular hyperlinks: https://kernel.org/ I Kernel documentation links: dev-tools/kasan I Links to kernel source files and directories: drivers/input/ include/linux/fb.h I Links to the declarations, definitions and instances of kernel symbols (functions, types, data, structures): platform_get_irq() GFP_KERNEL struct file_operations - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/353 Company at a glance I Engineering company created in 2004, named ”Free Electrons” until Feb.
    [Show full text]
  • Debian Packaging Tutorial
    Debian Packaging Tutorial Lucas Nussbaum [email protected] version 0.27 – 2021-01-08 Debian Packaging Tutorial 1 / 89 About this tutorial I Goal: tell you what you really need to know about Debian packaging I Modify existing packages I Create your own packages I Interact with the Debian community I Become a Debian power-user I Covers the most important points, but is not complete I You will need to read more documentation I Most of the content also applies to Debian derivative distributions I That includes Ubuntu Debian Packaging Tutorial 2 / 89 Outline 1 Introduction 2 Creating source packages 3 Building and testing packages 4 Practical session 1: modifying the grep package 5 Advanced packaging topics 6 Maintaining packages in Debian 7 Conclusions 8 Additional practical sessions 9 Answers to practical sessions Debian Packaging Tutorial 3 / 89 Outline 1 Introduction 2 Creating source packages 3 Building and testing packages 4 Practical session 1: modifying the grep package 5 Advanced packaging topics 6 Maintaining packages in Debian 7 Conclusions 8 Additional practical sessions 9 Answers to practical sessions Debian Packaging Tutorial 4 / 89 Debian I GNU/Linux distribution I 1st major distro developed “openly in the spirit of GNU” I Non-commercial, built collaboratively by over 1,000 volunteers I 3 main features: I Quality – culture of technical excellence We release when it’s ready I Freedom – devs and users bound by the Social Contract Promoting the culture of Free Software since 1993 I Independence – no (single)
    [Show full text]