Packaging Software for Debian Roberto C. Sánchez Ohio Linuxfest Saturday, September 29, 2007.

Slides:



Advertisements
Similar presentations
Object-Oriented Enterprise Application Development Tomcat 3.2 Configuration Last Updated: 03/30/2001.
Advertisements

1 of 6 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 10: Server Administration.
1 of 5 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2006 Microsoft Corporation.
Package Managers What are they and why we use them.
Deploying and Managing Software by Using Group Policy.
Deployment Management The following screens demonstrate how to: 1. Access and view deployments 2. Create a new local deployment 3. Create and modify a.
Snippet Management The following screens demonstrate how to: 1. Access and view snippets 2. Create a local standard snippet, or a local class snippet 3.
1 of 5 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Debian package manager Presenter: Lilian Wang. Install Software  先別管 package 了, 你有聽過重灌嗎 ?  Chrome/Firefox, Office, pietty, Notepad++, PCMan, LOL, …
SCRAM Software Configuration, Release And Management Background SCRAM has been developed to enable large, geographically dispersed and autonomous groups.
Dustin Harman VM Workshop 2015 RPM Basics. What is RPM? Red Hat Package Manager Native package manager on RHEL, Fedora, SUSE, some Mandriva RPM/SRPM files.
70-294: MCSE Guide to Microsoft Windows Server 2003 Active Directory Chapter 12: Deploying and Managing Software with Group Policy.
SKA/KAT SPIN Presentation Software Engineering (!?) Robert Crida.
Introduction to Hall-D Software February 27, 2009 David Lawrence - JLab.
Trilinos 101: Getting Started with Trilinos November 7, :30-9:30 a.m. Mike Heroux Jim Willenbring.
Lab 11 Department of Computer Science and Information Engineering National Taiwan University Lab11 - Porting 2014/12/9/ 26 1.
© 2004 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice SISP Training Documentation Template.
1 Lecture 19 Configuration Management Software Engineering.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
11 MANAGING AND DISTRIBUTING SOFTWARE BY USING GROUP POLICY Chapter 5.
Maintain Installed Applications. Computer Center, CS, NCTU 2 In Ports Tree  / Makefile  COMMENT pkg-descr  WWW pkg-message  Shown after installed.
1 What is a Kernel The kernel of any operating system is the core of all the system’s software. The only thing more fundamental than the kernel is the.
® IBM Software Group © 2008 IBM Corporation Setting up Build Forge demo projects for ALM Windows only May – work in progress Stuart Poulin
CVS – concurrent versions system Network Management Workshop intERlab at AIT Thailand March 11-15, 2008.
How to configure, build and install Trilinos November 2, :30-9:30 a.m. Jim Willenbring Mike Phenow.
SONIC-3: Creating Large Scale Installations & Deployments Andrew S. Neumann Principal Engineer, Progress Sonic.
Module 6: Deploying and Managing Software by Using Group Policy.
Prepared by: Steve Teo Contributors: Tong Huu Khiem.
National Center for Supercomputing ApplicationsNational Computational Science Grid Packaging Technology Technical Talk University of Wisconsin Condor/GPT.
Running Kuali: A Technical Perspective Ailish Byrne (Indiana University) Jonathan Keller (University of California, Davis)
Deploying Software with Group Policy Chapter Twelve.
GLite build and integration system Building and Packaging Robert HARAKALY
J.P. Wellisch, CERN/EP/SFT SCRAM Information on SCRAM J.P. Wellisch, C. Williams, S. Ashby.
Yannick Patois - Datagrid Software Repository Presentation - March, n° 1 Datagrid Software Repository Presentation CVS, packages and automatic.
Trilinos Framework: Next Steps Thursday November 9, :45-9:30 a.m. Jim Willenbring Mike Phenow.
Linux development Lection What we gonna do today Root privileges Software packages Managing software packages Build procedures Build components.
Installing Applications in FreeBSD lctseng. Computer Center, CS, NCTU 2 Before we start  Permission issue root: the super user Like administrator in.
Build Tools 1. Building a program for a large project is usually managed by a build tool that controls the various steps involved. These steps may include:
How to configure, build and install Trilinos November 2, :30-9:30 a.m. Jim Willenbring.
Active-HDL Server Farm Course 11. All materials updated on: September 30, 2004 Outline 1.Introduction 2.Advantages 3.Requirements 4.Installation 5.Architecture.
CLHEP Infrastructure Improvements CHEP 2004 Lynn Garren, FNAL and Andreas Pfeiffer, CERN.
SWIM Project Meeting, Bloomington, IN September 2006 Working with the SWIM Code Repository David E. Bernholdt Oak Ridge National Laboratory
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
1 Creative Innovation – Customer Satisfaction – Continual Quality Improvement Accessing and Building Asterisk SCF.
Giving back to the community: how does Debian perform? Sam Hocevar Debian Project Leader FOSS.IN ’07 Bangalore, India.
Managing 666 packages, or how to tame the beast Introducing PET, a tool to track packages' health.
Building Debian Packages Debian packaging tutorial Amaya Rodrigo, Soissons Feb 2007.
1 April 2, Software Packaging and Releasing Best Practices William Cohen NCSU CSC 591W April 2, 2008.
1 /15 Design and Implementation of the Custom Debian Distributions Toolkit (CDDT) 17 February 2006 Sergio Talens-Oliag II Open Source World.
Introduction to Android Programming
RPM101: A gentle intro to creating your own packages Richard Keech Red Hat Asia-Pacific.
Installing Applications in FreeBSD
Chuan-kai Lin Drake Diedrich Google Inc.
Backing Up Your System With rsnapshot
Open-O Integration Project Introduction
Development Environment
Performance Data Collection and Reporting (PDCR)
About SharePoint Server 2007 My Sites
Chapter 7 Installing Program &Backup Tool
Software Testing With Testopia
Software Documentation
Giving Back Contributing to Debian and the New Maintainer Process
Lecture 13 RPM and its advantages.
More Scripting & Chapter 11
University of Texas Rio Grande Valley Systems Administration CSCI 6175
Site scripts and Site Design
Periodic Processes Chapter 9.
Carthage ios 8 onwards Dependency manager that streamlines the process of integrating the libraries into the project.
Presentation transcript:

Packaging Software for Debian Roberto C. Sánchez Ohio Linuxfest Saturday, September 29, 2007

2 Overview ● Slides available online: – ● Reasons to package software for Debian ● Packaging resources ● Components of a debian/ directory ● Assembling the toolbox ● Packaging the software

3 Packaging resources ● Debian New Maintainers' Guide ● Debian policy manual (and sub-policies) ● #debian-mentors on OFTC IRC ● ● ● Google ● Hire me :-)

4 Reasons to package for Debian ● Altruism/Contribute ● Build a better OS ● Learn something ● Help your company sell/market product ● Distribute software you wrote yourself ● It is (can be) fun ● It is (can be) easy ● It is a challenge ● You can target a larger audience ● It will help you on the road to being a Debian Developer

5 debian/ directory components ● README.Debian – notes to users ● changelog* – changes and bug closures ● compat* – debhelper compatibility level ● control* – package descriptions/priorities ● copyright* – license and copyright info ● cron.d – if the package needs a cron job ● defaults – package default settings

6 debian/ directory components ● dirs* – directories which must be created ● docs – documentation files ● examples – sample code/scripts to install ● init.d – initialization script ● info/man pages – if not included upstream ● menu – place binaries in Debian menu ● patches/ - location of dpatch patches

7 debian/ directory components ● {pre,post}{inst,rm} – maintainer scripts ● rules* – makefile for building package(s) ● shlibs – library version information ● watch – automate process of updating to new upstream releases ● *.install – for creating multiple binary packages (e.g., shared and static libs) ● Anything with an asterisk (*) is required

8 Assembling the toolbox ● “Debian Package Customization HOWTO” – Describes how to modify existing packages – Explains how to setup the necessary tools – online: ● Necessary packages: dh-make, piuparts, devscripts, debhelper, dpkg-dev, sudo, fakeroot, pbuilder, gnupg, lintian, linda ● Other: local mirror or fast 'net connection ● Find some software to package

9 About the example ● Name: tuition-ledger ● Developer: me ● License: GPL ● Status: unreleased as of yet ● Purpose: database-driven application to track tuition obligations and payments for a small Christian school

10 Packaging the software ● Obtain the source tarball ● Debianize the source using dh_make ● Remove unnecessary files from debian/ ● Rename to remove.ex extensions ● Edit remaining files ● Add any new needed files ● Build the package

11 Obtain source and Debianize

12 Edit remaining files ● Edit changelog with `debchange`; close ITP (for first release) or note changes ● Place author, copyright and license information in the copyright file ● Review all files in upstream tarball and note differently licensed files in copyright ● Update list of directories to create in dirs ● Create menu entry in menu file (check menu sub- policy)

13 Edit remaining files ● Create watch file entry – Follow examples included in watch.ex – Test with `uscan --verbose --report` from top-level source directory – This is used in the future to check for new releases ● Edit maintainer scripts as necessary

14 The control file ● Consult Policy 2.4 and 2.5 for section and priority information ● Add short and long descriptions ● Add build-time dependencies (any libraries or programs needed to compile and/or build the software) ● Add non-library dependencies, recommendations and suggestions ● Specify arch: any, all, or a list

15 The control file

16 The rules file ● The remaining discussion assumes C/C++ software that uses standard GNU tools ● Read comments in the rules file and fill in appropriate code or tweak what is there – the proper `configure` invocation – the proper `make` invocation – the proper `make install` invocation – the proper `make distclean` invocation ● Delete unnecessary commands

17 The rules file

18 Build the package

19 Check the results ● Hopefully the build succeeded ● Make sure.diff.gz is not bloated (~10k) ● Run `piuparts` to check install/remove ● Run `lintian -viI ` ● Run `linda -vi ` ● Run `dpkg --info ` ● Run `dpkg --contents `

20 Install the package ● Use `dpkg -i ` to install ● Alternatively, place.debs in local repo – “Setting up your own APT repository with upload support” at debian-adminitration.org

21 Beyond the basics ● If you need to patch the upstream code, consider using dpatch ● Fix all the lintian and linda warnings ● Override bogus warnings ● Build more complex packages ● Use debconf to handle configuration data

22 Summary ● Building Debian packages can be fun and profitable ● Start small and work your way up – Don't try to package gcc or postgres at first – Avoid the more exotic options at first ● Make a habit of creating clean, policy-compliant packages from the start

23 Questions?