summaryrefslogtreecommitdiff
path: root/misc/slackbook/html/package-management-making-packages.html
diff options
context:
space:
mode:
Diffstat (limited to 'misc/slackbook/html/package-management-making-packages.html')
-rw-r--r--misc/slackbook/html/package-management-making-packages.html120
1 files changed, 120 insertions, 0 deletions
diff --git a/misc/slackbook/html/package-management-making-packages.html b/misc/slackbook/html/package-management-making-packages.html
new file mode 100644
index 00000000..f5812775
--- /dev/null
+++ b/misc/slackbook/html/package-management-making-packages.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta name="generator" content="HTML Tidy, see www.w3.org" />
+<title>Making Packages</title>
+<meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.7" />
+<link rel="HOME" title="Slackware Linux Essentials" href="index.html" />
+<link rel="UP" title="Slackware Package Management" href="package-management.html" />
+<link rel="PREVIOUS" title="Package Utilities"
+href="package-management-package-utilities.html" />
+<link rel="NEXT" title="Making Tags and Tagfiles (for setup)"
+href="package-management-making-tags-and-tagfiles.html" />
+<link rel="STYLESHEET" type="text/css" href="docbook.css" />
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+</head>
+<body class="SECT1" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#840084"
+alink="#0000FF">
+<div class="NAVHEADER">
+<table summary="Header navigation table" width="100%" border="0" cellpadding="0"
+cellspacing="0">
+<tr>
+<th colspan="3" align="center">Slackware Linux Essentials</th>
+</tr>
+
+<tr>
+<td width="10%" align="left" valign="bottom"><a
+href="package-management-package-utilities.html" accesskey="P">Prev</a></td>
+<td width="80%" align="center" valign="bottom">Chapter 18 Slackware Package
+Management</td>
+<td width="10%" align="right" valign="bottom"><a
+href="package-management-making-tags-and-tagfiles.html" accesskey="N">Next</a></td>
+</tr>
+</table>
+
+<hr align="LEFT" width="100%" />
+</div>
+
+<div class="SECT1">
+<h1 class="SECT1"><a id="PACKAGE-MANAGEMENT-MAKING-PACKAGES"
+name="PACKAGE-MANAGEMENT-MAKING-PACKAGES">18.3 Making Packages</a></h1>
+
+<p>Making Slackware packages can be either easy or difficult. There is no specific method
+for building a package. The only requirement is that the package be a tar gzipped file
+and if there is a postinstallation script, it must be <tt
+class="FILENAME">/install/doinst.sh</tt>.</p>
+
+<p>If you are interested in making packages for your system or for a network that you
+manage, you should have a look at the various build scripts in the Slackware source tree.
+There are several methods we use for making packages.</p>
+
+<div class="SECT2">
+<h2 class="SECT2"><a id="PACKAGE-MANAGEMENT-EXPLODEPKG"
+name="PACKAGE-MANAGEMENT-EXPLODEPKG">18.3.1 <tt class="COMMAND">explodepkg</tt></a></h2>
+
+<p><tt class="COMMAND">explodepkg</tt>(8) will do the same thing that <tt
+class="COMMAND">installpkg</tt> does to extract the package, but it doesn't actually
+install it and it doesn't record it in the packages database. It simply extracts it to
+the current directory.</p>
+
+<p>If you look at the Slackware source tree, you will see how we use this command for
+&#8220;framework&#8221; packages. These packages contain a skeleton of what the final
+package will look like. They hold all the necessary filenames (zero-length), permissions,
+and ownerships. The build script will cat the package contents from the source directory
+to the package build directory.</p>
+</div>
+
+<div class="SECT2">
+<h2 class="SECT2"><a id="PACKAGE-MANAGEMENT-MAKEPKG"
+name="PACKAGE-MANAGEMENT-MAKEPKG">18.3.2 <tt class="COMMAND">makepkg</tt></a></h2>
+
+<p><tt class="COMMAND">makepkg</tt>(8) will package up the current directory into a valid
+Slackware package. It will search the tree for any symbolic links and add a creation
+block to the postinstallation script for creating them during the package install. It
+also warns of any zero-length files in the package tree.</p>
+
+<p>This command is typically run after you have created your package tree.</p>
+</div>
+
+<div class="SECT2">
+<h2 class="SECT2"><a id="PACKAGE-MANAGEMENT-SLACKBUILD-SCRIPTS"
+name="PACKAGE-MANAGEMENT-SLACKBUILD-SCRIPTS">18.3.3 SlackBuild Scripts</a></h2>
+
+<p>Slackware packages are built in many different ways by necessity. Not all software
+packages are written by their programmers to compile the same way. Many have compile time
+options that are not all included in the packages Slackware uses. Perhaps you need some
+of this functionality; you'll need to compile your own package then. Fortunately for many
+Slackware packages, you can find SlackBuild scripts in the package's source code.</p>
+
+<p>So what is a SlackBuild script? SlackBuild scripts are executable shell scripts that
+you run as <tt class="USERNAME">root</tt> to configure, compile, and create Slackware
+packages. You can freely modify these scripts in the source directory and run them to
+create your own versions of the default Slackware packages.</p>
+</div>
+</div>
+
+<div class="NAVFOOTER">
+<hr align="LEFT" width="100%" />
+<table summary="Footer navigation table" width="100%" border="0" cellpadding="0"
+cellspacing="0">
+<tr>
+<td width="33%" align="left" valign="top"><a
+href="package-management-package-utilities.html" accesskey="P">Prev</a></td>
+<td width="34%" align="center" valign="top"><a href="index.html"
+accesskey="H">Home</a></td>
+<td width="33%" align="right" valign="top"><a
+href="package-management-making-tags-and-tagfiles.html" accesskey="N">Next</a></td>
+</tr>
+
+<tr>
+<td width="33%" align="left" valign="top">Package Utilities</td>
+<td width="34%" align="center" valign="top"><a href="package-management.html"
+accesskey="U">Up</a></td>
+<td width="33%" align="right" valign="top">Making Tags and Tagfiles (for setup)</td>
+</tr>
+</table>
+</div>
+</body>
+</html>
+