1 April 2, 2008 1 Software Packaging and Releasing Best Practices William Cohen NCSU CSC 591W April 2, 2008.

Slides:



Advertisements
Similar presentations
Getting Started: Ansoft HFSS 8.0
Advertisements

Linux+ Guide to Linux Certification, Third Edition Chapter 11 Compression, System Backup, and Software Installation.
Chapter 11 Compression, System Backup, and Software Installation.
Downloading & Installing Software Chapter 13. Maintaining the System Yum Pirut BitTiorrent Rpm Keeping Software Up To Date Up2date Red Hat Network Wget.
Linux Operations and Administration
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Linux+ Guide to Linux Certification
SCRAM Software Configuration, Release And Management Background SCRAM has been developed to enable large, geographically dispersed and autonomous groups.
Lesson 7-Creating and Changing Directories. Overview Using directories to create order. Managing files in directories. Using pathnames to manage files.
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.
SUSE Linux Enterprise Server Administration (Course 3037) Chapter 4 Manage Software for SUSE Linux Enterprise Server.
Javadoc. The Plan ● What is Javadoc? ● Writing Javadoc comments ● Using the Javadoc tool ● Demo ● Practice.
1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.
Software Engineering in Robotics Packaging and Deployment of Systems Henrik I. Christensen –
Apache Web Server v. 2.2 Reference Manual Chapter 1 Compiling and Installing.
Version control Using Git Version control, using Git1.
Managing Software Patches 10/15/ Introducing Solaris OE Patches A patch contains collection of files and directories Patch replaces existing files.
Writing macros and programs for Voyager cataloging Kathryn Lybarger ELUNA 2013 May 3, #ELUNA2013.
SUSE Linux Enterprise Desktop Administration Chapter 6 Manage Software.
Guide to Linux Installation and Administration1 Chapter 4 Running a Linux System.
XP Practical PC, 3e Chapter 3 1 Installing and Learning Software.
What is a port The Ports Collection is essentially a set of Makefiles, patches, and description files placed in /usr/ports. The port includes instructions.
Deploying Software with Group Policy Chapter Twelve.
GLite build and integration system Building and Packaging Robert HARAKALY
1 MSTE Visual SourceSafe For more information, see:
Yannick Patois - Datagrid Software Repository Presentation - March, n° 1 Datagrid Software Repository Presentation CVS, packages and automatic.
Separate distribution of the analysis code (and more) P. Hristov 19/03/2014.
Andrew McNab - Globus Distribution for Testbed 1 Globus Distribution for Testbed 1 Andrew McNab, University of Manchester
How to configure, build and install Trilinos November 2, :30-9:30 a.m. Jim Willenbring.
GLite build and integration system Building and Packaging Robert HARAKALY
20 October 2005 LCG Generator Services monthly meeting, CERN Validation of GENSER & News on GENSER Alexander Toropin LCG Generator Services monthly meeting.
Maite Barroso – WP4 Workshop – 10/12/ n° 1 -WP4 Workshop- Developers’ Guide Maite Barroso 10/12/2002
1 February 6, Patches William Cohen NCSU CSC 591W February 6, 2008.
1 April 14, Starting New Open Source Software Projects William Cohen NCSU CSC 591W April 14, 2008.
9/21/04 James Gallagher Server Installation and Testing: Hands-on ● Install the CGI server with the HDF and FreeForm handlers ● Link data so the server.
Getting Started in RPM Packaging Izhar Firdaus / KageSenshi Contributor Fedora Project
EPEL All Hands Meeting, Padova, Mattias Ellert Uppsala University.
1 March 19, Test Plans William Cohen NCSU CSC 591W March 19, 2008.
1 February 6, Patch Submission and Review Process William Cohen NCSU CSC 591W February 11, 2008.
Packaging Software for Debian Roberto C. Sánchez Ohio Linuxfest Saturday, September 29, 2007.
1 January 14, Evaluating Open Source Software William Cohen NCSU CSC 591W January 14, 2008 Based on David Wheeler, “How to Evaluate Open Source.
1 January 31, Documenting Software William Cohen NCSU CSC 591W January 31, 2008.
FreeBSD ports & packages. FreeBSD ports & packages - overview Different UNIX distributions use differents package systems for distributing software Debian.
RPM101: A gentle intro to creating your own packages Richard Keech Red Hat Asia-Pacific.
New Tools Used by the Scientific Linux Team
Dynamics GP – You Own It … Why Not Use It? Financial November 8, 2016
Chapter 9 Managing Software
Installing and Learning Software
Increasing Reproducibility by Freezing R
Chapter 3 Installing and Learning Software
Installing and Learning Software
Software Packaging and Releasing
SPI external software build tool and distribution mechanism
Version control, using Git
Part 3 – Remote Connection, File Transfer, Remote Environments
Software Testing With Testopia
Build and Package CSE 403 section, 2011 Feb 3, Hao Lu.
Introduction to Programming the WWW I
Dynamic Web Page A dynamic web page is a kind of web page that has been prepared with fresh information (content and/or layout), for each individual viewing.
CVS revisions UML diagram
June 2011 David Front Weizmann Institute
Lecture 13 RPM and its advantages.
Tanner Lovelace Triangle Linux Users Group 11/Jan/2003
Unit 9 NT1330 Client-Server Networking II Date: 8/9/2016
Figure 6-4: Installation and Patching
Electronics II Physics 3620 / 6620
Discussing an OVS/OVN Split
Module 5 Getting Help.
FreeBSD ports & packages
CIS 488/588 Bruce R. Maxim UM-Dearborn
Presentation transcript:

1 April 2, Software Packaging and Releasing Best Practices William Cohen NCSU CSC 591W April 2, 2008

2 2 Source Tarball ● Tag to check out source for release from code repository ● All files in tarball should in code repository: ● No locally created files in tarball ● Tarball creates single directory with everything inside single directory ● Tarball name matches directory created, e.g. oprofile tar.gz creat directory oprofile ● Use compression, text files in source compress well

3 April 2, Source Tarball Contents ● Clear license information ● Install: ● List requirement for building software ● Instructions to build ● Readme: ● Pointer to project page for additional information and help ● Complete source code: ● Okay to depend on other projects ● Avoid putting copies of other project's source files into code

4 April 2, Source Building ● Describe in the INSTALL file ● Keep it simple: ●./configure – setup options ● make – build the software ● make install – places software in proper locations ● Configure, build and install are separate steps ● Only the install should need root privileges ● Do not hard code location of build and install destination

5 April 2, Distribution Packaging

6 April 2, Naming ● Names of source rpm and generated rpms should match up ● May have subpackages, for example gcc-c ● Dash '-' used to delimit parts of NVR ● Unique names, each name identifies a single package ● Version numbering so upgrades work properly: ● Snapshot, alpha, beta, and release candidates: ● kernel rc7 becomes kernel rc7

7 April 2, Summary and Description ● Summary field provides one line description of what package is ● Description field provides a paragraph ● Keep the lines less than 80 characters in length ● For more detailed information people should refer to th documentation

8 April 2, URL, Source, and Patches ● URL: entry ● Points to the project page ● Verify correct and up to date ● Source: entry ● Points to location for pristine source ● Verify correct an up to date ● Use patches for any modifications on source ● Patch n : entries ● Patches to apply to pristine source

9 April 2, Licensing ● RPM License: entry ● Reference to the license of the resulting binary RPM ● Make sure that the field is accurate ● List of concise names for licenses: ●

10 April 2, Avoid Binaries or Libraries in Source RPM ● Security Issues: ● Cannot check the security of a binary ● Cannot generate patches for a binary ● Compiler: ● Code compile with specific flags, e.g. Fortify option ● ABI and library changes ● Possible exceptions: ● Cross compiled code ● Firmware

11 April 2, Changelogs ● Describe what has changed in the rpm ● Include the version information so easy to know which build has change ● Include what specific bugs fixed

12 April 2, Static Libraries ● Avoid static libraries ● Cannot determine which packages use static library ● When correction made in static library do not know what other packages need to be rebuild ● Use shared libraries instead, automatic use of new and improved code

13 April 2, Dependencies ● State the dependencies required to build package builds and for package to operates properly ● Used by build systems to set up build environment ● BuildRequires: ● Things needed when the binary rpm built from srpm ● With autoconfig can have things in the binary rpm differ depending on build environment ● Requires: ● Things needed for binary rpm ● RPM figures out dependencies on shared libraries when building

14 April 2, Documentation ● Not everyone needs/wants the documentation ● Consider putting documentation into subpackage if very large

15 April 2, Desktop/GUI Applications ● Do not want to start via command line ● Need to have icon and entry so menu item available

16 April 2, Packaging Sanity Checks ● Compare with earlier packaging ● Files: ● Ownership and permissions ● Size ● Added, deleted, or moved ● Proper requires/provides

17 April 2, Building the RPM ● Avoid building rpms as root ● Use the rpm macro (~/.rpmmacros): %home %(echo $HOME) %_topdir %{home}/rh-rpms

18 April 2, Rpmlint ● Handy script to look for possible problems

19 April 2, Further Reading ● ● ● guidelines.html guidelines.html ●