[prev in list] [next in list] [prev in thread] [next in thread]
List: leaf-cvs-commits
Subject: [Leaf-cvs-commits] devel/hejl book1.html,NONE,1.1 buildtool_gsg.pdf,NONE,1.1 c107.html,NONE,1.1 c108
From: Martin Hejl <hejl () users ! sourceforge ! net>
Date: 2003-07-25 18:52:55
[Download RAW message or body]
Update of /cvsroot/leaf/devel/hejl
In directory sc8-pr-cvs1:/tmp/cvs-serv7177
Modified Files:
bt_install.xml bt_sources.xml bt_usage.xml buildpacket.xml
buildtool_gsg.xml
Added Files:
book1.html buildtool_gsg.pdf c107.html c108.html c34.html
c35.html c425.html c426.html c44.html c45.html c78.html
c79.html x101.html x102.html x130.html x131.html x227.html
x228.html x39.html x40.html x433.html x434.html x480.html
x481.html x53.html x54.html x58.html x59.html x64.html
x65.html x84.html x85.html x89.html x90.html x92.html x93.html
Log Message:
Added buildpacket step by step guide
created pdfs and html from docbook
--- NEW FILE: book1.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Buildtool getting started guide</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="NEXT"
TITLE="Introduction"
HREF="c34.html"></HEAD
> <BODY
CLASS="book"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
> <DIV
CLASS="BOOK"
> <A
NAME="buildtoolGS"
> </A
> <DIV
CLASS="TITLEPAGE"
> <H1
CLASS="title"
> <A
NAME="AEN2"
> </A
> Buildtool getting started guide</H1
> <H3
CLASS="author"
> <A
NAME="AEN5"
> </A
> Arne Bernin</H3
> <DIV
CLASS="affiliation"
> <DIV
CLASS="address"
> <P
CLASS="address"
> arne@alamut.de</P
> </DIV
> </DIV
> <H3
CLASS="author"
> <A
NAME="AEN11"
> </A
> Martin Hejl</H3
> <DIV
CLASS="affiliation"
> <DIV
CLASS="address"
> <P
CLASS="address"
> martin@hejl.de</P
> </DIV
> </DIV
> <HR></DIV
> <DIV
CLASS="TOC"
> <DL
> <DT
> <B
> Table of Contents</B
> </DT
> <DT
> <A
HREF="c34.html"
> Introduction</A
> </DT
> <DD
> <DL
> <DT
> <A
HREF="c34.html#AEN36"
> What is buildtool?</A
> </DT
> <DT
> <A
HREF="x39.html"
> Why bother?</A
> </DT
> </DL
> </DD
> <DT
> <A
HREF="c44.html"
> Installation</A
> </DT
> <DD
> <DL
> <DT
> <A
HREF="c44.html#buildtool_checkout"
> CVS checkout</A
> </DT
> <DT
> <A
HREF="x53.html"
> Perl</A
> </DT
> <DT
> <A
HREF="x58.html"
> Initial configuration</A
> </DT
> <DT
> <A
HREF="x64.html"
> Toolchain download/build</A
> </DT
> </DL
> </DD
> <DT
> <A
HREF="c78.html"
> Buildtool usage</A
> </DT
> <DD
> <DL
> <DT
> <A
HREF="c78.html#AEN80"
> Options</A
> </DT
> <DT
> <A
HREF="x84.html"
> Getting information about the sources that can be built</A
> </DT
> <DT
> <A
HREF="x89.html"
> The difference between sources and packages</A
> </DT
> <DT
> <A
HREF="x92.html"
> Downloading the sources for a package</A
> </DT
> <DT
> <A
HREF="x101.html"
> Compiling the sources for a package</A
> </DT
> </DL
> </DD
> <DT
> <A
HREF="c107.html"
> Creating buildtool sources/packages</A
> </DT
> <DD
> <DL
> <DT
> <A
HREF="c107.html#AEN109"
> Overview</A
> </DT
> <DT
> <A
HREF="x130.html"
> Step by step guide to creating a simple config</A
> </DT
> <DD
> <DL
> <DT
> <A
HREF="x130.html#AEN144"
> Creating the source definition for syslinux, util-linux,
dosfstools</A
> </DT
> <DT
> <A
HREF="x130.html#AEN166"
> Creating the makefile for syslinux</A
> </DT
> <DT
> <A
HREF="x130.html#AEN175"
> Creating the source definition for fdisk</A
> </DT
> <DT
> <A
HREF="x130.html#AEN182"
> The makefile for util-linux</A
> </DT
> <DT
> <A
HREF="x130.html#AEN187"
> Source definition for dosfstools</A
> </DT
> <DT
> <A
HREF="x130.html#AEN194"
> Makefile for dosfstools</A
> </DT
> <DT
> <A
HREF="x130.html#AEN198"
> Finishing up hdsupp</A
> </DT
> </DL
> </DD
> <DT
> <A
HREF="x227.html"
> Buildtool reference</A
> </DT
> <DD
> <DL
> <DT
> <A
HREF="x227.html#AEN229"
> conf/global.cf</A
> </DT
> <DT
> <A
HREF="x227.html#AEN275"
> buildtool.cfg</A
> </DT
> <DT
> <A
HREF="x227.html#AEN290"
> buildtool.mk</A
> </DT
> <DT
> <A
HREF="x227.html#AEN364"
> Directory structure</A
> </DT
> </DL
> </DD
> </DL
> </DD
> <DT
> <A
HREF="c425.html"
> Creating lrp packages with buildpacket</A
> </DT
> <DD
> <DL
> <DT
> <A
HREF="c425.html#AEN427"
> Step by step guide to setting up the configuration for hdsupp.lrp</A
> </DT
> <DT
> <A
HREF="x433.html"
> Configuration</A
> </DT
> <DD
> <DL
> <DT
> <A
HREF="x433.html#AEN437"
> Version</A
> </DT
> <DT
> <A
HREF="x433.html#AEN440"
> Revision</A
> </DT
> <DT
> <A
HREF="x433.html#AEN443"
> Skeleton</A
> </DT
> <DT
> <A
HREF="x433.html#AEN446"
> Permissions</A
> </DT
> <DT
> <A
HREF="x433.html#AEN449"
> Owner</A
> </DT
> <DT
> <A
HREF="x433.html#AEN452"
> Help</A
> </DT
> <DT
> <A
HREF="x433.html#AEN462"
> Contents</A
> </DT
> <DT
> <A
HREF="x433.html#AEN467"
> File</A
> </DT
> </DL
> </DD
> <DT
> <A
HREF="x480.html"
> Creating packages</A
> </DT
> <DD
> <DL
> <DT
> <A
HREF="x480.html#AEN487"
> Options</A
> </DT
> </DL
> </DD
> </DL
> </DD
> </DL
> </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"
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="c34.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Introduction</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: buildtool_gsg.pdf ---
%PDF-1.3
1 0 obj
<< /S /GoTo /D (1.0) >>
endobj
4 0 obj
(Buildtool getting started guide)
endobj
5 0 obj
<< /S /GoTo /D (2.0) >>
endobj
8 0 obj
(Table of Contents)
endobj
9 0 obj
<< /S /GoTo /D (3.0) >>
endobj
12 0 obj
(Chapter 1. Introduction)
endobj
[...4505 lines suppressed...]
0000092949 00000 n
0000109997 00000 n
0000130169 00000 n
0000155322 00000 n
0000156455 00000 n
0000156549 00000 n
0000161277 00000 n
0000168045 00000 n
0000168084 00000 n
0000168122 00000 n
0000168292 00000 n
trailer
<<
/Size 823
/Root 821 0 R
/Info 822 0 R
> >
startxref
168485
%%EOF
--- NEW FILE: c107.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Creating buildtool sources/packages</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="PREVIOUS"
TITLE="Compiling the sources for a package"
HREF="x101.html"><LINK
REL="NEXT"
TITLE="Step by step guide to creating a simple config"
HREF="x130.html"></HEAD
> <BODY
CLASS="chapter"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="x101.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> </TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="x130.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="chapter"
> <H1
> <A
NAME="AEN107"
> </A
> Creating buildtool sources/packages</H1
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN109"
> </A
> Overview</H1
> <P
> For each package, 3 files control how its built:
<P
> </P
> <DIV
CLASS="variablelist"
> <DL
> <DT
> conf/global.cfg</DT
> <DD
> <P
> Defines
the servers that the config files for the packages are downloaded from,
and the packages/sources themselves as well as the dependencies of a given
package. All other files that are part of a package and should be
downloaded from somewhere have to be explicitly named in the
<TT
CLASS="filename"
> buildtool.cfg</TT
> which is specific to the package. The
file <TT
CLASS="filename"
> conf/global.cfg</TT
> is the same for all
packages/sources, you can find it in the <TT
CLASS="filename"
> conf</TT
> subdir
in your Buildtool root directory.</P
> </DD
> <DT
> buildtool.cfg</DT
> <DD
> <P
> (package
specific - will be downloaded with the information from
<TT
CLASS="filename"
> conf/global.cfg</TT
> ). Defines where to get the
sources/patches and also has the definitions for the package itself (used
by buildpacket).</P
> </DD
> <DT
> buildtool.mk</DT
> <DD
> <P
> (package
specific - will be downloaded with the information from
<TT
CLASS="filename"
> buildtool.cfg</TT
> ). Makefile for actually building the
sources.</P
> </DD
> </DL
> </DIV
> </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="x101.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="x130.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Compiling the sources for a package</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Step by step guide to creating a simple config</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: c108.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Creating buildtool sources/packages</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="PREVIOUS"
TITLE="Compiling the sources for a package"
HREF="x102.html"><LINK
REL="NEXT"
TITLE="Step by step guide to creating a simple config"
HREF="x131.html"></HEAD
> <BODY
CLASS="chapter"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="x102.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> </TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="x131.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="chapter"
> <H1
> <A
NAME="AEN108"
> </A
> Creating buildtool sources/packages</H1
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN110"
> </A
> Overview</H1
> <P
> For each package, 3 files control how its built:
<P
> </P
> <DIV
CLASS="variablelist"
> <DL
> <DT
> conf/global.cfg</DT
> <DD
> <P
> Defines
the servers that the config files for the packages are downloaded from,
and the packages/sources themselves as well as the dependencies of a given
package. All other files that are part of a package and should be
downloaded from somewhere have to be explicitly named in the
<TT
CLASS="filename"
> buildtool.cfg</TT
> which is specific to the package. The
file <TT
CLASS="filename"
> conf/global.cfg</TT
> is the same for all
packages/sources, you can find it in the <TT
CLASS="filename"
> conf</TT
> subdir
in your Buildtool root directory.</P
> </DD
> <DT
> buildtool.cfg</DT
> <DD
> <P
> (package
specific - will be downloaded with the information from
<TT
CLASS="filename"
> conf/global.cfg</TT
> ). Defines where to get the
sources/patches and also has the definitions for the package itself (used
by buildpacket).</P
> </DD
> <DT
> buildtool.mk</DT
> <DD
> <P
> (package
specific - will be downloaded with the information from
<TT
CLASS="filename"
> buildtool.cfg</TT
> ). Makefile for actually building the
sources.</P
> </DD
> </DL
> </DIV
> </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="x102.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="x131.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Compiling the sources for a package</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Step by step guide to creating a simple config</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: c34.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Introduction</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="PREVIOUS"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="NEXT"
TITLE="Why bother?"
HREF="x39.html"></HEAD
> <BODY
CLASS="chapter"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="book1.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> </TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="x39.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="chapter"
> <H1
> <A
NAME="buildtool_intro"
> </A
> Introduction</H1
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN36"
> </A
> What is buildtool?</H1
> <P
> Buildtool is a set of perl-scripts/packages to build lrp/leaf-packages from \
> source. Everything in the build process is automated, from downloading the sources \
> and applying patches to configuring/building the source and creating the \
> lrp-package.
</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="book1.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="x39.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Buildtool getting started guide</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Why bother?</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: c35.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Introduction</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="PREVIOUS"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="NEXT"
TITLE="Why bother?"
HREF="x40.html"></HEAD
> <BODY
CLASS="chapter"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="book1.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> </TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="x40.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="chapter"
> <H1
> <A
NAME="buildtool_intro"
> </A
> Introduction</H1
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN37"
> </A
> What is buildtool?</H1
> <P
> Buildtool is a set of perl-scripts/packages to build lrp/leaf-packages from \
> source. Everything in the build process is automated, from downloading the sources \
> and applying patches to configuring/building the source and creating the \
> lrp-package.
</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="book1.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="x40.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Buildtool getting started guide</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Why bother?</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: c425.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Creating lrp packages with buildpacket</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="PREVIOUS"
TITLE="Buildtool reference"
HREF="x227.html"><LINK
REL="NEXT"
TITLE="Configuration"
HREF="x433.html"></HEAD
> <BODY
CLASS="chapter"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="x227.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> </TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="x433.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="chapter"
> <H1
> <A
NAME="AEN425"
> </A
> Creating lrp packages with buildpacket</H1
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN427"
> </A
> Step by step guide to setting up the configuration for hdsupp.lrp</H1
> <P
> In this section, we will finish up the hdsupp package, so
buildpacket will be able to create an lrp-file from the sources buildtool
created. To do this, open source/hdsupp/buildtool.cfg and append the
following text:</P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> <Package>
<hdsupp>
Version = 1.0
Revision = 1
Help <<EOF
Tools to be create a bootable partition from within Bering-uClibc.
The procedure to get a plain syslinux partition (if you want to use lilo,
you're on your own) is something like this:
1. make sure your Bering install actually supports your harddrive
(i.e. insert the appropriate modules)
2. Run fdisk to create the partitions. I usually create an empty DOS
partition table (using the 'o' command) create a primary partition, make
that bootable (using the 'a' command)
3. Run mkfs.msdos on the newly created partition (e.g. mkfs.msdos /dev/hda1)
4. Copy the MBR to the drive using (assuming your harddrive is /dev/hda)
dd if=/usr/bin/mbr.bin of=/dev/hda bs=512 count=1
5. Mount the drive and copy the bering files onto the drive (please read
the bering users guide, section "Booting from an IDE device", it has some
vital info for that part of the process)
Remember to change the 'boot' and 'PKGPATH' to point to your harddrive.
6. run syslinux (e.g. syslinux /dev/hda1) This is usually the last thing I do
(after unmounting the partition again, of course), because that way, I can
simply copy everything from the floppy without having to worry about leaving
ldlinux.sys alone (since that gets overwritten with the correct version by
running syslinux)
EOF
<Permissions>
Files = 644
Directories = 755
</Permissions>
<Owner>
Files = root:root
Directories = root:root
</Owner>
<Contents>
<File>
Source = sbin/fdisk
Filename = sbin/fdisk
Type = binary
Permissions = 755
</File>
<File>
Source = sbin/mkfs.minix
Filename = sbin/mkfs.minix
Type = binary
Permissions = 755
</File>
<File>
Source = sbin/mkfs.msdos
Filename = sbin/mkfs.msdos
Type = binary
Permissions = 755
</File>
<File>
Source = usr/sbin/syslinux
Filename = usr/sbin/syslinux
Type = binary
Permissions = 755
</File>
<File>
Source = usr/sbin/mbr.bin
Filename = usr/sbin/mbr.bin
Type = binary
# We don't neet to specify permissions here, since the default 644 will do \
just fine </File>
</Contents>
</hdsupp>
</Package></PRE
> </TD
> </TR
> </TABLE
> <P
> </P
> <P
> </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="x227.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="x433.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Buildtool reference</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Configuration</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: c426.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Creating lrp packages with buildpacket</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="PREVIOUS"
TITLE="Buildtool reference"
HREF="x228.html"><LINK
REL="NEXT"
TITLE="Configuration"
HREF="x434.html"></HEAD
> <BODY
CLASS="chapter"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="x228.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> </TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="x434.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="chapter"
> <H1
> <A
NAME="AEN426"
> </A
> Creating lrp packages with buildpacket</H1
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN428"
> </A
> Step by step guide to setting up the configuration for hdsupp.lrp</H1
> <P
> In this section, we will finish up the hdsupp package, so
buildpacket will be able to create an lrp-file from the sources buildtool
created. To do this, open source/hdsupp/buildtool.cfg and append the
following text:</P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> <Package>
<hdsupp>
Version = 1.0
Revision = 1
Help <<EOF
Tools to be create a bootable partition from within Bering-uClibc.
The procedure to get a plain syslinux partition (if you want to use lilo,
you're on your own) is something like this:
1. make sure your Bering install actually supports your harddrive
(i.e. insert the appropriate modules)
2. Run fdisk to create the partitions. I usually create an empty DOS
partition table (using the 'o' command) create a primary partition, make
that bootable (using the 'a' command)
3. Run mkfs.msdos on the newly created partition (e.g. mkfs.msdos /dev/hda1)
4. Copy the MBR to the drive using (assuming your harddrive is /dev/hda)
dd if=/usr/bin/mbr.bin of=/dev/hda bs=512 count=1
5. Mount the drive and copy the bering files onto the drive (please read
the bering users guide, section "Booting from an IDE device", it has some
vital info for that part of the process)
Remember to change the 'boot' and 'PKGPATH' to point to your harddrive.
6. run syslinux (e.g. syslinux /dev/hda1) This is usually the last thing I do
(after unmounting the partition again, of course), because that way, I can
simply copy everything from the floppy without having to worry about leaving
ldlinux.sys alone (since that gets overwritten with the correct version by
running syslinux)
EOF
<Permissions>
Files = 644
Directories = 755
</Permissions>
<Owner>
Files = root:root
Directories = root:root
</Owner>
<Contents>
<File>
Source = sbin/fdisk
Filename = sbin/fdisk
Type = binary
Permissions = 755
</File>
<File>
Source = sbin/mkfs.minix
Filename = sbin/mkfs.minix
Type = binary
Permissions = 755
</File>
<File>
Source = sbin/mkfs.msdos
Filename = sbin/mkfs.msdos
Type = binary
Permissions = 755
</File>
<File>
Source = usr/sbin/syslinux
Filename = usr/sbin/syslinux
Type = binary
Permissions = 755
</File>
<File>
Source = usr/sbin/mbr.bin
Filename = usr/sbin/mbr.bin
Type = binary
# We don't neet to specify permissions here, since the default 644 will do \
just fine </File>
</Contents>
</hdsupp>
</Package></PRE
> </TD
> </TR
> </TABLE
> <P
> </P
> <P
> </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="x228.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="x434.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Buildtool reference</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Configuration</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: c44.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Installation</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="PREVIOUS"
TITLE="Why bother?"
HREF="x39.html"><LINK
REL="NEXT"
TITLE="Perl"
HREF="x53.html"></HEAD
> <BODY
CLASS="chapter"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="x39.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> </TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="x53.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="chapter"
> <H1
> <A
NAME="buildtool_install"
> </A
> Installation</H1
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="buildtool_checkout"
> </A
> CVS checkout</H1
> <P
> You can check out buildtool from thr sourceforge CVS Server. If you have an \
> sourceforge user account use:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> export CVS_RSH=ssh
cvs -z3 -d:ext:developername@cvs.sourceforge.net:/cvsroot/leaf \
co src/bering-uclibc/buildtool</PRE
> </TD
> </TR
> </TABLE
> </P
> <P
> If you don't have an account use anonymous access to the repository:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> cvs -d :pserver:anonymous@cvs.sourceforge.net:/cvsroot/leaf login</PRE
> </TD
> </TR
> </TABLE
>
Just press return if you see the password prompt. After login checkout with:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> cvs -z3 -d :pserver:anonymous@cvs.sourceforge.net:/cvsroot/leaf co \
> src/bering-uclibc/buildtool</PRE </TD
> </TR
> </TABLE
>
</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="x39.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="x53.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Why bother?</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Perl</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: c45.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Installation</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="PREVIOUS"
TITLE="Why bother?"
HREF="x40.html"><LINK
REL="NEXT"
TITLE="Perl"
HREF="x54.html"></HEAD
> <BODY
CLASS="chapter"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="x40.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> </TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="x54.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="chapter"
> <H1
> <A
NAME="buildtool_install"
> </A
> Installation</H1
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="buildtool_checkout"
> </A
> CVS checkout</H1
> <P
> You can check out buildtool from thr sourceforge CVS Server. If you have an \
> sourceforge user account use:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> export CVS_RSH=ssh
cvs -z3 -d:ext:developername@cvs.sourceforge.net:/cvsroot/leaf \
co src/bering-uclibc/buildtool</PRE
> </TD
> </TR
> </TABLE
> </P
> <P
> If you don't have an account use anonymous access to the repository:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> cvs -d :pserver:anonymous@cvs.sourceforge.net:/cvsroot/leaf login</PRE
> </TD
> </TR
> </TABLE
>
Just press return if you see the password prompt. After login checkout with:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> cvs -z3 -d :pserver:anonymous@cvs.sourceforge.net:/cvsroot/leaf co \
> src/bering-uclibc/buildtool</PRE </TD
> </TR
> </TABLE
>
</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="x40.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="x54.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Why bother?</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Perl</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: c78.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Buildtool usage</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="PREVIOUS"
TITLE="Toolchain download/build"
HREF="x64.html"><LINK
REL="NEXT"
TITLE="Getting information about the sources that can be built"
HREF="x84.html"></HEAD
> <BODY
CLASS="chapter"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="x64.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> </TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="x84.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="chapter"
> <H1
> <A
NAME="AEN78"
> </A
> Buildtool usage</H1
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN80"
> </A
> Options</H1
> <P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> usage: ./buildtool.pl command [pkgname]|[srcname] [...]
commands:
describe [pkgname]|[srcname] shows descriptionlines of package
[-f] source [pkgname]|[srcname] downloads, unpacks and patches
the wanted package/source
[-f] build [pkgname]|[srcname] the same as source, but builds
and installs sources/packages also
[-f] clean [pkgname]|[srcname] make a 'make clean' in srcdir
[-f] dlclean [pkgname]|[srcname] remove everything from dldir
[-f] srcclean [pkgname]|[srcname] make a 'make srcclean' in srcdir
distclean remove everything
maketar make a tar for distribution
The -f switch allows you to force building sourcing and cleaning
even if it seems the packages/sources are already installed or cleaned.</PRE
> </TD
> </TR
> </TABLE
> </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="x64.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="x84.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Toolchain download/build</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Getting information about the sources that can be built</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: c79.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Buildtool usage</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="PREVIOUS"
TITLE="Toolchain download/build"
HREF="x65.html"><LINK
REL="NEXT"
TITLE="Getting information about the sources that can be built"
HREF="x85.html"></HEAD
> <BODY
CLASS="chapter"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="x65.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> </TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="x85.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="chapter"
> <H1
> <A
NAME="AEN79"
> </A
> Buildtool usage</H1
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN81"
> </A
> Options</H1
> <P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> usage: ./buildtool.pl command [pkgname]|[srcname] [...]
commands:
describe [pkgname]|[srcname] shows descriptionlines of package
[-f] source [pkgname]|[srcname] downloads, unpacks and patches
the wanted package/source
[-f] build [pkgname]|[srcname] the same as source, but builds
and installs sources/packages also
[-f] clean [pkgname]|[srcname] make a 'make clean' in srcdir
[-f] dlclean [pkgname]|[srcname] remove everything from dldir
[-f] srcclean [pkgname]|[srcname] make a 'make srcclean' in srcdir
distclean remove everything
maketar make a tar for distribution
The -f switch allows you to force building sourcing and cleaning
even if it seems the packages/sources are already installed or cleaned.</PRE
> </TD
> </TR
> </TABLE
> </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="x65.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="x85.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Toolchain download/build</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Getting information about the sources that can be built</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: x101.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Compiling the sources for a package</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="UP"
TITLE="Buildtool usage"
HREF="c78.html"><LINK
REL="PREVIOUS"
TITLE="Downloading the sources for a package"
HREF="x92.html"><LINK
REL="NEXT"
TITLE="Creating buildtool sources/packages"
HREF="c107.html"></HEAD
> <BODY
CLASS="section"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="x92.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> Buildtool usage</TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="c107.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN101"
> </A
> Compiling the sources for a package</H1
> <P
> Running <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> ./buildtool.pl build somepackageName</PRE
> </TD
> </TR
> </TABLE
>
will cause buildtool to actually compile the source and install it to the
<TT
CLASS="filename"
> build</TT
> directory (and all its dependencies). After
this has completed successfully, all binaries required for the lrp package
(linked against uClibc) reside in the <TT
CLASS="filename"
> build</TT
>
directory.</P
> </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="x92.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="c107.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Downloading the sources for a package</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="c78.html"
ACCESSKEY="U"
> Up</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Creating buildtool sources/packages</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: x102.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Compiling the sources for a package</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="UP"
TITLE="Buildtool usage"
HREF="c79.html"><LINK
REL="PREVIOUS"
TITLE="Downloading the sources for a package"
HREF="x93.html"><LINK
REL="NEXT"
TITLE="Creating buildtool sources/packages"
HREF="c108.html"></HEAD
> <BODY
CLASS="section"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="x93.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> Buildtool usage</TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="c108.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN102"
> </A
> Compiling the sources for a package</H1
> <P
> Running <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> ./buildtool.pl build somepackageName</PRE
> </TD
> </TR
> </TABLE
>
will cause buildtool to actually compile the source and install it to the
<TT
CLASS="filename"
> build</TT
> directory (and all its dependencies). After
this has completed successfully, all binaries required for the lrp package
(linked against uClibc) reside in the <TT
CLASS="filename"
> build</TT
>
directory.</P
> </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="x93.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="c108.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Downloading the sources for a package</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="c79.html"
ACCESSKEY="U"
> Up</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Creating buildtool sources/packages</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: x130.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Step by step guide to creating a simple config</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="UP"
TITLE="Creating buildtool sources/packages"
HREF="c107.html"><LINK
REL="PREVIOUS"
TITLE="Creating buildtool sources/packages"
HREF="c107.html"><LINK
REL="NEXT"
TITLE="Buildtool reference"
HREF="x227.html"></HEAD
> <BODY
CLASS="section"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="c107.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> Creating buildtool sources/packages</TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="x227.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN130"
> </A
> Step by step guide to creating a simple config</H1
> <P
> This section should give you a quick glance at how the configuration
for a specific source is created (but it won't show the hours of
fighting with some source because it refuses to build - you will
experience that soon enough when you create your own package. I don't
want to discourage you, but cross-compiling often is more difficult than
building on the target system). For a more complete overview, please see
the following sections of this chapter.</P
> <P
> For this exercise, we will create a package called hdsupp.lrp, which
contains utilities for preparing a harddisk or compact flash disk for
running under Bering uClibc. This package will contain
<TT
CLASS="filename"
> fdisk</TT
> , <TT
CLASS="filename"
> syslinux</TT
> and
<TT
CLASS="filename"
> mkfs.msdos</TT
> .</P
> <P
> Because there is no combined tarball for <TT
CLASS="filename"
> syslinux</TT
> ,
<TT
CLASS="filename"
> fdisk</TT
> and <TT
CLASS="filename"
> mkfs.msdos</TT
> , we will
have to create 3 different source definitions for buildtool. We will start
with syslinux, since that is the easiest one.</P
> <P
> By the time you read this, hdsupp will already be part of the
buildtool checkout. This means that the settings for syslinux, util-linux
and dosfstools in <TT
CLASS="filename"
> conf/global.cfg</TT
> will already be
there. You can decide to either just skip that section, or (for the sake
of learning something) delete that part of <TT
CLASS="filename"
> conf/global.cfg</TT
>
and enter the information again manually. The following sections will
assume that buildtool knows nothing about syslinux, util-linux and
dosfstools.</P
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN144"
> </A
> Creating the source definition for syslinux, util-linux,
dosfstools</H2
> <P
> First of all we need to edit <TT
CLASS="filename"
> conf/global.cfg</TT
>
to contain a source definition for syslinux, util-linux, dosfstools.
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> <Source syslinux>
Server = cvs-sourceforge
Revision = HEAD
Directory = syslinux
Description = Syslinux boot-loader plus an MBR
</Source>
<Source util-linux>
Server = cvs-sourceforge
Revision = HEAD
Directory = util-linux
Description = provides fdisk and mkfs.minix
</Source>
<Source dosfstools>
Server = cvs-sourceforge
Revision = HEAD
Directory = dosfstools
Description = provides mkfs.dos
</Source></PRE
> </TD
> </TR
> </TABLE
> For now, we'll just pretend that the
<TT
CLASS="filename"
> buildtool.cfg</TT
> file will be in the leaf CVS. In this
section, we will create everything needed for syslinux - the other
sources will be taken care or later.</P
> <P
> Next, we need to create a directory called <TT
CLASS="filename"
> syslinux</TT
>
in <TT
CLASS="filename"
> source</TT
> . Doing <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> mkdir source/syslinux</PRE
> </TD
> </TR
> </TABLE
> will
do the job. This directory will contain <TT
CLASS="filename"
> buildtool.cfg</TT
> ,
<TT
CLASS="filename"
> buildtool.mk</TT
> and the syslinux sources.</P
> <P
> Create a new file <TT
CLASS="filename"
> source/syslinux/buildtool.cfg</TT
>
and enter the following information. <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> <Server cvs-sourceforge>
Type = viewcvs
Name = cvs.sourceforge.net/cgi-bin/viewcvs.cgi
Serverpath = /leaf/src/bering-uclibc/apps
</Server>
<Server kernel.org>
Type = http
Name = www.kernel.org
Serverpath = pub/linux/utils/boot/syslinux
</Server>
<File buildtool.mk>
Server = cvs-sourceforge
Revision = HEAD
Directory = syslinux
</File>
<File syslinux-2.05.tar.bz2>
Server = kernel.org
envname = SYSLINUX_SOURCE
</File></PRE
> </TD
> </TR
> </TABLE
> </P
> <P
> The two server definitions tell buildtool which server it should
use to dowload the files from. In this case it is the leaf-cvs
repository for <TT
CLASS="filename"
> buildtool.mk</TT
> and kernel.org for the
syslinux sources. Next we define the file definitiones themselves -
specifying HEAD for revision of buildtool.mk is convenient during
development of a package (since the revision number can change often
while one is trying to correct some bugs).</P
> <P
> Note the <TT
CLASS="filename"
> envname</TT
> parameter - with this
definition in the cfg-file, buildtool will set an environment variable
(named <TT
CLASS="filename"
> SYSLINUX_SOURCE</TT
> in this case) containing the
filename of the syslinux sources (<TT
CLASS="filename"
> syslinux-2.04.tar.bz2</TT
>
in our example). This saves us from having to hardcode any
version-specific information into the makefile. Specifying
<TT
CLASS="filename"
> envname</TT
> is not mandatory, but it keeps things
simple for upgrading to a new version of a source.</P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN166"
> </A
> Creating the makefile for syslinux</H2
> <P
> Obviously, this guide will not be able to teach you how to write
makefiles, or what to do when there are errors during build. We'll
simply focus on creating a makefile that produces the binaries and
conforms to what buildtool expects.</P
> <P
> Create a new file <TT
CLASS="filename"
> source/syslinux/buildtool.mk</TT
>
and enter the following contents: <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> #############################################################
#
# syslinux
#
#############################################################
include $(MASTERMAKEFILE)
SYSLINUX_DIR:=syslinux-2.05
SYSLINUX_TARGET_DIR:=$(BT_BUILD_DIR)/syslinux
source:
bzcat $(SYSLINUX_SOURCE) | tar -xvf -
-mkdir $(SYSLINUX_TARGET_DIR)
build:
export LANG=en_US # Hack for Redhat 9
$(MAKE) CC=$(TARGET_CC) -C $(SYSLINUX_DIR) syslinux
-$(BT_STRIP) --strip-unneeded $(SYSLINUX_DIR)/syslinux
$(MAKE) CC=$(TARGET_CC) -C $(SYSLINUX_DIR) INSTALLROOT=$(SYSLINUX_TARGET_DIR) \
install cp $(SYSLINUX_DIR)/mbr.bin $(SYSLINUX_TARGET_DIR)/usr/bin/mbr.bin
mkdir -p $(BT_STAGING_DIR)/usr/bin
-cp $(SYSLINUX_TARGET_DIR)/usr/bin/syslinux $(BT_STAGING_DIR)/usr/bin/
-cp $(SYSLINUX_DIR)/usr/bin/mbr.bin $(BT_STAGING_DIR)/usr/bin/
clean:
rm -rf $(SYSLINUX_TARGET_DIR)
$(MAKE) -C $(SYSLINUX_DIR) clean</PRE
> </TD
> </TR
> </TABLE
> As with all makefiles, make
sure that the delimiter in front of the commands (like
<B
CLASS="command"
> $(MAKE) -C $(SYSLINUX_DIR) clean</B
> above) is a
<I
CLASS="emphasis"
> tab</I
> and not <I
CLASS="emphasis"
> spaces</I
> .</P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN175"
> </A
> Creating the source definition for fdisk</H2
> <P
> On Debian, fdisk (and also mkfs.minix, which we will use for the
hdsupp package as well) is part of the util-linux package. So, we use
the sources that are luckily already provided in the bering uClibc CVS
(no need to pretend they're in CVS this time).</P
> <P
> Create a directory <TT
CLASS="filename"
> source/util-linux/</TT
> and a
new file <TT
CLASS="filename"
> source/util-linux/buildtool.cfg</TT
> and enter
the following information. <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> <Server cvs-sourceforge>
Type = viewcvs
Name = cvs.sourceforge.net/cgi-bin/viewcvs.cgi
Serverpath = /leaf/src/bering-uclibc/apps
</Server>
<File buildtool.mk>
Server = cvs-sourceforge
Revision = HEAD
Directory = util-linux
</File>
<File util-linux_2.11n.orig.tar.gz>
Server = cvs-sourceforge
envname = UTIL_LINUX_SOURCE
</File>
<File util-linux_2.11n-4.diff.gz>So
Server = cvs-sourceforge
envname = UTIL_LINUX_PATCH1
</File></PRE
> </TD
> </TR
> </TABLE
> </P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN182"
> </A
> The makefile for util-linux</H2
> <P
> As with syslinux, we need to create a makefile. This time the
source target will also include applying a patch</P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> #############################################################
#
# util-linux
#
#############################################################
include $(MASTERMAKEFILE)
UTIL_LINUX_DIR:=util-linux-2.11n
UTIL_LINUX_TARGET_DIR:=$(BT_BUILD_DIR)/util-linux
export CC=$(TARGET_CC)
export CFLAGS=-I$(BT_STAGING_DIR)/include
export LDFLAGS=-L$(BT_STAGING_DIR)/lib -L$(BT_STAGING_DIR)/usr/lib
source:
zcat $(UTIL_LINUX_SOURCE) | tar -xvf -
zcat $(UTIL_LINUX_PATCH1) | patch -d $(UTIL_LINUX_DIR) -p1
cd $(UTIL_LINUX_DIR) && ./configure
perl -i -p -e 's,HAVE_SLANG=yes,HAVE_SLANG=no,' $(UTIL_LINUX_DIR)/MCONFIG
perl -i -p -e 's,LIBSLANG=-lslang,LIBSLANG=,' $(UTIL_LINUX_DIR)/MCONFIG
-mkdir $(UTIL_LINUX_TARGET_DIR)
build:
$(MAKE) CC=$(TARGET_CC) -C $(UTIL_LINUX_DIR) misc-utils
$(MAKE) CC=$(TARGET_CC) -C $(UTIL_LINUX_DIR) disk-utils
$(MAKE) CC=$(TARGET_CC) -C $(UTIL_LINUX_DIR) fdisk fdisk
-$(BT_STRIP) --strip-unneeded $(UTIL_LINUX_DIR)/fdisk/fdisk
-$(BT_STRIP) --strip-unneeded $(UTIL_LINUX_DIR)/disk-utils/mkfs.minix
-cp $(UTIL_LINUX_DIR)/fdisk/fdisk $(UTIL_LINUX_TARGET_DIR)/
-cp $(UTIL_LINUX_DIR)/disk-utils/mkfs.minix $(UTIL_LINUX_TARGET_DIR)/
mkdir -p $(BT_STAGING_DIR)/sbin
-cp $(UTIL_LINUX_DIR)/fdisk/fdisk $(BT_STAGING_DIR)/sbin/
-cp $(UTIL_LINUX_DIR)/disk-utils/mkfs.minix $(BT_STAGING_DIR)/sbin/
clean:
rm -rf $(UTIL_LINUX_TARGET_DIR)
$(MAKE) -C $(UTIL_LINUX_DIR) clean</PRE
> </TD
> </TR
> </TABLE
> <P
> This one shows where things get a bit more tricky - for some
reason, the configure-script that comes with util-linux insisted on
building cfdisk (which needs ncurses). So, after running configure, we
remove the definitions that cause this from MCONFIG (this is what the
two calls to Perl do).</P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN187"
> </A
> Source definition for dosfstools</H2
> <P
> Dosfstools provides mkfs.msdos. Again we need to create a
directory for the sources/configs first. So, create a directory
<TT
CLASS="filename"
> source/dosfstools</TT
> and a new file
<TT
CLASS="filename"
> source/dosfstools/buildtool.cfg</TT
> with the following
content:</P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> <Server cvs-sourceforge>
Type = viewcvs
Name = cvs.sourceforge.net/cgi-bin/viewcvs.cgi
Serverpath = /leaf/src/bering-uclibc/apps
</Server>
<Server debian>
Type = http
Name = ftp.debian.org
Serverpath = debian/pool/main/d/dosfstools
</Server>
<File buildtool.mk>
Server = cvs-sourceforge
Revision = HEAD
Directory = dosfstools
</File>
<File dosfstools_2.9.orig.tar.gz>
Server = debian
envname = DOSFSTOOLS_SOURCE
</File>
<File dosfstools_2.9-1.diff.gz>
Server = debian
envname = DOSFSTOOLS_PATCH1
</File></PRE
> </TD
> </TR
> </TABLE
> <P
> Pretty much like the definitions before. Don't let yourself be
fooled - despite the name ftp.debian.org, we can access this server
using the http protocol.</P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN194"
> </A
> Makefile for dosfstools</H2
> <P
> As one would expect the makefile for dosfstools looks just like
the other ones.</P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> #############################################################
#
# dosfstools
#
#############################################################
include $(MASTERMAKEFILE)
DOSFSTOOLS_DIR:=dosfstools-2.9
DOSFSTOOLS_TARGET_DIR:=$(BT_BUILD_DIR)/dosfstools
export CC=$(TARGET_CC)
source:
zcat $(DOSFSTOOLS_SOURCE) | tar -xvf -
zcat $(DOSFSTOOLS_PATCH1) | patch -d $(DOSFSTOOLS_DIR) -p1
perl -i -p -e 's,CC\s*=\s*gcc,#CC = gcc,' $(DOSFSTOOLS_DIR)/Makefile
perl -i -p -e 's,PREFIX\s*=.*,PREFIX = $(DOSFSTOOLS_TARGET_DIR),' \
$(DOSFSTOOLS_DIR)/Makefile
-mkdir $(DOSFSTOOLS_TARGET_DIR)
build:
export PREFIX=$(DOSFSTOOLS_TARGET_DIR)
$(MAKE) CC=$(TARGET_CC) -C $(DOSFSTOOLS_DIR)
$(MAKE) CC=$(TARGET_CC) -C $(DOSFSTOOLS_DIR) install
-$(BT_STRIP) --strip-unneeded $(DOSFSTOOLS_TARGET_DIR)/sbin/mkdosfs
mkdir -p $(BT_STAGING_DIR)/sbin
-cp $(DOSFSTOOLS_TARGET_DIR)/sbin/mkfs.msdos $(BT_STAGING_DIR)/sbin/
clean:
rm -rf $(DOSFSTOOLS_TARGET_DIR)
$(MAKE) -C $(DOSFSTOOLS_DIR) clean</PRE
> </TD
> </TR
> </TABLE
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN198"
> </A
> Finishing up hdsupp</H2
> <P
> Finallly - almost there. Hdsupp will be a "wrapper
package" - it doesn't really compile anything, it just makes
sure that all sources it needs have been compiled, copies the binaries
to the staging dir (this part could also be done in the individual .mk
files) and creates the lrp package.</P
> <P
> In the beginning of this guide, we haven't added a definition
for hdsupp to <TT
CLASS="filename"
> conf/global.cfg</TT
> . We'll change
that now. Hdsupp is special, since one of its functions is to make sure
all of the sources have been compiled already - it has
<I
CLASS="emphasis"
> dependencies</I
> . In buildtool, we use the
<B
CLASS="command"
> required</B
> tag to indicate dependencies. This tag lists
all sources that must be built before hdsupp can be built. Notice that
hdsupp is not specified as a source, but as a package (at this point, it
makes no difference to buildtool, but it most likely will in the future
- only packages will be able to produce lrp-files).</P
> <P
> So, enter the following to <TT
CLASS="filename"
> conf/global.cfg</TT
> > </P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> <Package hdsupp>
Server = cvs-sourceforge
Revision = HEAD
Directory = hdsupp
Description = HD-Support package containing the tools needed to make a harddisc or \
compact flash bootable <Requires>
Name = syslinux
Name = util-linux
Name = dosfstools
</Requires>
</Package></PRE
> </TD
> </TR
> </TABLE
> <DIV
CLASS="section"
> <H3
CLASS="section"
> <A
NAME="AEN208"
> </A
> Hdsupp package definition</H3
> <P
> As before we need to create a directory for hdsupp containing
buildtool.cfg and buildtool.mk. Create a new directory
<TT
CLASS="filename"
> source/hdsupp</TT
> , a file <TT
CLASS="filename"
> buildtool.cfg</TT
>
and enter the following information to <TT
CLASS="filename"
> buildtool.cfg</TT
> > </P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> <Server cvs-sourceforge>
Type = viewcvs
Name = cvs.sourceforge.net/cgi-bin/viewcvs.cgi
Serverpath = /leaf/src/bering-uclibc/apps
</Server>
<File buildtool.mk>
Server = cvs-sourceforge
Revision = HEAD
Directory = hdsupp
</File></PRE
> </TD
> </TR
> </TABLE
> <P
> As you can see, this one is extremely simple. Since hdsupp
doesn't provide any sources, we only need to specify buildtool.mk.</P
> <P
> This is not all we need to add here - there's more to get
<TT
CLASS="filename"
> buildpacket</TT
> to work. But this will be taken care
of in the "Step by step" section of the buildpacket chapter.
(TODO add link)</P
> </DIV
> <DIV
CLASS="section"
> <H3
CLASS="section"
> <A
NAME="AEN218"
> </A
> Hdsupp makefile</H3
> <P
> You may be wondering why we need a makefile at all, since hdsupp
does not provide any sources. You are right - we don't
<I
CLASS="emphasis"
> need</I
> a makefile. But to keep buildtool happy (and
to make sure that buildpacket can verify that hdsupp has actually been
build), we will provide one that simply does nothing. </P
> <P
> As before create a new file called <TT
CLASS="filename"
> buildtool.mk</TT
>
in <TT
CLASS="filename"
> sources/hdsupp</TT
> and enter the following
contents:</P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> #############################################################
#
# hdsupp
#
#############################################################
include $(MASTERMAKEFILE)
source:
# nothing to be done
build:
# nothing to be done
clean:
# nothing to be done</PRE
> </TD
> </TR
> </TABLE
> <P
> That's it. You can now enter ./buildtool.pl build hdsupp and
(hopefully) buildtool will download and compile everything needed. If
something goes wrong, have a look at the buildtool-logfile (usually
the the error-messages are pretty clear about what's wrong).</P
> </DIV
> </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="c107.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="x227.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Creating buildtool sources/packages</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="c107.html"
ACCESSKEY="U"
> Up</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Buildtool reference</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: x131.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Step by step guide to creating a simple config</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="UP"
TITLE="Creating buildtool sources/packages"
HREF="c108.html"><LINK
REL="PREVIOUS"
TITLE="Creating buildtool sources/packages"
HREF="c108.html"><LINK
REL="NEXT"
TITLE="Buildtool reference"
HREF="x228.html"></HEAD
> <BODY
CLASS="section"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="c108.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> Creating buildtool sources/packages</TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="x228.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN131"
> </A
> Step by step guide to creating a simple config</H1
> <P
> This section should give you a quick glance at how the configuration
for a specific source is created (but it won't show the hours of
fighting with some source because it refuses to build - you will
experience that soon enough when you create your own package. I don't
want to discourage you, but cross-compiling often is more difficult than
building on the target system). For a more complete overview, please see
the following sections of this chapter.</P
> <P
> For this exercise, we will create a package called hdsupp.lrp, which
contains utilities for preparing a harddisk or compact flash disk for
running under Bering uClibc. This package will contain
<TT
CLASS="filename"
> fdisk</TT
> , <TT
CLASS="filename"
> syslinux</TT
> and
<TT
CLASS="filename"
> mkfs.msdos</TT
> .</P
> <P
> Because there is no combined tarball for <TT
CLASS="filename"
> syslinux</TT
> ,
<TT
CLASS="filename"
> fdisk</TT
> and <TT
CLASS="filename"
> mkfs.msdos</TT
> , we will
have to create 3 different source definitions for buildtool. We will start
with syslinux, since that is the easiest one.</P
> <P
> By the time you read this, hdsupp will already be part of the
buildtool checkout. This means that the settings for syslinux, util-linux
and dosfstools in <TT
CLASS="filename"
> conf/global.cfg</TT
> will already be
there. You can decide to either just skip that section, or (for the sake
of learning something) delete that part of <TT
CLASS="filename"
> conf/global.cfg</TT
>
and enter the information again manually. The following sections will
assume that buildtool knows nothing about syslinux, util-linux and
dosfstools.</P
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN145"
> </A
> Creating the source definition for syslinux, util-linux,
dosfstools</H2
> <P
> First of all we need to edit <TT
CLASS="filename"
> conf/global.cfg</TT
>
to contain a source definition for syslinux, util-linux, dosfstools.
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> <Source syslinux>
Server = cvs-sourceforge
Revision = HEAD
Directory = syslinux
Description = Syslinux boot-loader plus an MBR
</Source>
<Source util-linux>
Server = cvs-sourceforge
Revision = HEAD
Directory = util-linux
Description = provides fdisk and mkfs.minix
</Source>
<Source dosfstools>
Server = cvs-sourceforge
Revision = HEAD
Directory = dosfstools
Description = provides mkfs.dos
</Source></PRE
> </TD
> </TR
> </TABLE
> For now, we'll just pretend that the
<TT
CLASS="filename"
> buildtool.cfg</TT
> file will be in the leaf CVS. In this
section, we will create everything needed for syslinux - the other
sources will be taken care or later.</P
> <P
> Next, we need to create a directory called <TT
CLASS="filename"
> syslinux</TT
>
in <TT
CLASS="filename"
> source</TT
> . Doing <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> mkdir source/syslinux</PRE
> </TD
> </TR
> </TABLE
> will
do the job. This directory will contain <TT
CLASS="filename"
> buildtool.cfg</TT
> ,
<TT
CLASS="filename"
> buildtool.mk</TT
> and the syslinux sources.</P
> <P
> Create a new file <TT
CLASS="filename"
> source/syslinux/buildtool.cfg</TT
>
and enter the following information. <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> <Server cvs-sourceforge>
Type = viewcvs
Name = cvs.sourceforge.net/cgi-bin/viewcvs.cgi
Serverpath = /leaf/src/bering-uclibc/apps
</Server>
<Server kernel.org>
Type = http
Name = www.kernel.org
Serverpath = pub/linux/utils/boot/syslinux
</Server>
<File buildtool.mk>
Server = cvs-sourceforge
Revision = HEAD
Directory = syslinux
</File>
<File syslinux-2.05.tar.bz2>
Server = kernel.org
envname = SYSLINUX_SOURCE
</File></PRE
> </TD
> </TR
> </TABLE
> </P
> <P
> The two server definitions tell buildtool which server it should
use to dowload the files from. In this case it is the leaf-cvs
repository for <TT
CLASS="filename"
> buildtool.mk</TT
> and kernel.org for the
syslinux sources. Next we define the file definitiones themselves -
specifying HEAD for revision of buildtool.mk is convenient during
development of a package (since the revision number can change often
while one is trying to correct some bugs).</P
> <P
> Note the <TT
CLASS="filename"
> envname</TT
> parameter - with this
definition in the cfg-file, buildtool will set an environment variable
(named <TT
CLASS="filename"
> SYSLINUX_SOURCE</TT
> in this case) containing the
filename of the syslinux sources (<TT
CLASS="filename"
> syslinux-2.04.tar.bz2</TT
>
in our example). This saves us from having to hardcode any
version-specific information into the makefile. Specifying
<TT
CLASS="filename"
> envname</TT
> is not mandatory, but it keeps things
simple for upgrading to a new version of a source.</P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN167"
> </A
> Creating the makefile for syslinux</H2
> <P
> Obviously, this guide will not be able to teach you how to write
makefiles, or what to do when there are errors during build. We'll
simply focus on creating a makefile that produces the binaries and
conforms to what buildtool expects.</P
> <P
> Create a new file <TT
CLASS="filename"
> source/syslinux/buildtool.mk</TT
>
and enter the following contents: <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> #############################################################
#
# syslinux
#
#############################################################
include $(MASTERMAKEFILE)
SYSLINUX_DIR:=syslinux-2.05
SYSLINUX_TARGET_DIR:=$(BT_BUILD_DIR)/syslinux
source:
bzcat $(SYSLINUX_SOURCE) | tar -xvf -
-mkdir $(SYSLINUX_TARGET_DIR)
build:
export LANG=en_US # Hack for Redhat 9
$(MAKE) CC=$(TARGET_CC) -C $(SYSLINUX_DIR) syslinux
-$(BT_STRIP) --strip-unneeded $(SYSLINUX_DIR)/syslinux
$(MAKE) CC=$(TARGET_CC) -C $(SYSLINUX_DIR) INSTALLROOT=$(SYSLINUX_TARGET_DIR) \
install cp $(SYSLINUX_DIR)/mbr.bin $(SYSLINUX_TARGET_DIR)/usr/bin/mbr.bin
mkdir -p $(BT_STAGING_DIR)/usr/bin
-cp $(SYSLINUX_TARGET_DIR)/usr/bin/syslinux $(BT_STAGING_DIR)/usr/bin/
-cp $(SYSLINUX_DIR)/usr/bin/mbr.bin $(BT_STAGING_DIR)/usr/bin/
clean:
rm -rf $(SYSLINUX_TARGET_DIR)
$(MAKE) -C $(SYSLINUX_DIR) clean</PRE
> </TD
> </TR
> </TABLE
> As with all makefiles, make
sure that the delimiter in front of the commands (like
<B
CLASS="command"
> $(MAKE) -C $(SYSLINUX_DIR) clean</B
> above) is a
<I
CLASS="emphasis"
> tab</I
> and not <I
CLASS="emphasis"
> spaces</I
> .</P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN176"
> </A
> Creating the source definition for fdisk</H2
> <P
> On Debian, fdisk (and also mkfs.minix, which we will use for the
hdsupp package as well) is part of the util-linux package. So, we use
the sources that are luckily already provided in the bering uClibc CVS
(no need to pretend they're in CVS this time).</P
> <P
> Create a directory <TT
CLASS="filename"
> source/util-linux/</TT
> and a
new file <TT
CLASS="filename"
> source/util-linux/buildtool.cfg</TT
> and enter
the following information. <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> <Server cvs-sourceforge>
Type = viewcvs
Name = cvs.sourceforge.net/cgi-bin/viewcvs.cgi
Serverpath = /leaf/src/bering-uclibc/apps
</Server>
<File buildtool.mk>
Server = cvs-sourceforge
Revision = HEAD
Directory = util-linux
</File>
<File util-linux_2.11n.orig.tar.gz>
Server = cvs-sourceforge
envname = UTIL_LINUX_SOURCE
</File>
<File util-linux_2.11n-4.diff.gz>So
Server = cvs-sourceforge
envname = UTIL_LINUX_PATCH1
</File></PRE
> </TD
> </TR
> </TABLE
> </P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN183"
> </A
> The makefile for util-linux</H2
> <P
> As with syslinux, we need to create a makefile. This time the
source target will also include applying a patch</P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> #############################################################
#
# util-linux
#
#############################################################
include $(MASTERMAKEFILE)
UTIL_LINUX_DIR:=util-linux-2.11n
UTIL_LINUX_TARGET_DIR:=$(BT_BUILD_DIR)/util-linux
export CC=$(TARGET_CC)
export CFLAGS=-I$(BT_STAGING_DIR)/include
export LDFLAGS=-L$(BT_STAGING_DIR)/lib -L$(BT_STAGING_DIR)/usr/lib
source:
zcat $(UTIL_LINUX_SOURCE) | tar -xvf -
zcat $(UTIL_LINUX_PATCH1) | patch -d $(UTIL_LINUX_DIR) -p1
cd $(UTIL_LINUX_DIR) && ./configure
perl -i -p -e 's,HAVE_SLANG=yes,HAVE_SLANG=no,' $(UTIL_LINUX_DIR)/MCONFIG
perl -i -p -e 's,LIBSLANG=-lslang,LIBSLANG=,' $(UTIL_LINUX_DIR)/MCONFIG
-mkdir $(UTIL_LINUX_TARGET_DIR)
build:
$(MAKE) CC=$(TARGET_CC) -C $(UTIL_LINUX_DIR) misc-utils
$(MAKE) CC=$(TARGET_CC) -C $(UTIL_LINUX_DIR) disk-utils
$(MAKE) CC=$(TARGET_CC) -C $(UTIL_LINUX_DIR) fdisk fdisk
-$(BT_STRIP) --strip-unneeded $(UTIL_LINUX_DIR)/fdisk/fdisk
-$(BT_STRIP) --strip-unneeded $(UTIL_LINUX_DIR)/disk-utils/mkfs.minix
-cp $(UTIL_LINUX_DIR)/fdisk/fdisk $(UTIL_LINUX_TARGET_DIR)/
-cp $(UTIL_LINUX_DIR)/disk-utils/mkfs.minix $(UTIL_LINUX_TARGET_DIR)/
mkdir -p $(BT_STAGING_DIR)/sbin
-cp $(UTIL_LINUX_DIR)/fdisk/fdisk $(BT_STAGING_DIR)/sbin/
-cp $(UTIL_LINUX_DIR)/disk-utils/mkfs.minix $(BT_STAGING_DIR)/sbin/
clean:
rm -rf $(UTIL_LINUX_TARGET_DIR)
$(MAKE) -C $(UTIL_LINUX_DIR) clean</PRE
> </TD
> </TR
> </TABLE
> <P
> This one shows where things get a bit more tricky - for some
reason, the configure-script that comes with util-linux insisted on
building cfdisk (which needs ncurses). So, after running configure, we
remove the definitions that cause this from MCONFIG (this is what the
two calls to Perl do).</P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN188"
> </A
> Source definition for dosfstools</H2
> <P
> Dosfstools provides mkfs.msdos. Again we need to create a
directory for the sources/configs first. So, create a directory
<TT
CLASS="filename"
> source/dosfstools</TT
> and a new file
<TT
CLASS="filename"
> source/dosfstools/buildtool.cfg</TT
> with the following
content:</P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> <Server cvs-sourceforge>
Type = viewcvs
Name = cvs.sourceforge.net/cgi-bin/viewcvs.cgi
Serverpath = /leaf/src/bering-uclibc/apps
</Server>
<Server debian>
Type = http
Name = ftp.debian.org
Serverpath = debian/pool/main/d/dosfstools
</Server>
<File buildtool.mk>
Server = cvs-sourceforge
Revision = HEAD
Directory = dosfstools
</File>
<File dosfstools_2.9.orig.tar.gz>
Server = debian
envname = DOSFSTOOLS_SOURCE
</File>
<File dosfstools_2.9-1.diff.gz>
Server = debian
envname = DOSFSTOOLS_PATCH1
</File></PRE
> </TD
> </TR
> </TABLE
> <P
> Pretty much like the definitions before. Don't let yourself be
fooled - despite the name ftp.debian.org, we can access this server
using the http protocol.</P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN195"
> </A
> Makefile for dosfstools</H2
> <P
> As one would expect the makefile for dosfstools looks just like
the other ones.</P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> #############################################################
#
# dosfstools
#
#############################################################
include $(MASTERMAKEFILE)
DOSFSTOOLS_DIR:=dosfstools-2.9
DOSFSTOOLS_TARGET_DIR:=$(BT_BUILD_DIR)/dosfstools
export CC=$(TARGET_CC)
source:
zcat $(DOSFSTOOLS_SOURCE) | tar -xvf -
zcat $(DOSFSTOOLS_PATCH1) | patch -d $(DOSFSTOOLS_DIR) -p1
perl -i -p -e 's,CC\s*=\s*gcc,#CC = gcc,' $(DOSFSTOOLS_DIR)/Makefile
perl -i -p -e 's,PREFIX\s*=.*,PREFIX = $(DOSFSTOOLS_TARGET_DIR),' \
$(DOSFSTOOLS_DIR)/Makefile
-mkdir $(DOSFSTOOLS_TARGET_DIR)
build:
export PREFIX=$(DOSFSTOOLS_TARGET_DIR)
$(MAKE) CC=$(TARGET_CC) -C $(DOSFSTOOLS_DIR)
$(MAKE) CC=$(TARGET_CC) -C $(DOSFSTOOLS_DIR) install
-$(BT_STRIP) --strip-unneeded $(DOSFSTOOLS_TARGET_DIR)/sbin/mkdosfs
mkdir -p $(BT_STAGING_DIR)/sbin
-cp $(DOSFSTOOLS_TARGET_DIR)/sbin/mkfs.msdos $(BT_STAGING_DIR)/sbin/
clean:
rm -rf $(DOSFSTOOLS_TARGET_DIR)
$(MAKE) -C $(DOSFSTOOLS_DIR) clean</PRE
> </TD
> </TR
> </TABLE
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN199"
> </A
> Finishing up hdsupp</H2
> <P
> Finallly - almost there. Hdsupp will be a "wrapper
package" - it doesn't really compile anything, it just makes
sure that all sources it needs have been compiled, copies the binaries
to the staging dir (this part could also be done in the individual .mk
files) and creates the lrp package.</P
> <P
> In the beginning of this guide, we haven't added a definition
for hdsupp to <TT
CLASS="filename"
> conf/global.cfg</TT
> . We'll change
that now. Hdsupp is special, since one of its functions is to make sure
all of the sources have been compiled already - it has
<I
CLASS="emphasis"
> dependencies</I
> . In buildtool, we use the
<B
CLASS="command"
> required</B
> tag to indicate dependencies. This tag lists
all sources that must be built before hdsupp can be built. Notice that
hdsupp is not specified as a source, but as a package (at this point, it
makes no difference to buildtool, but it most likely will in the future
- only packages will be able to produce lrp-files).</P
> <P
> So, enter the following to <TT
CLASS="filename"
> conf/global.cfg</TT
> > </P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> <Package hdsupp>
Server = cvs-sourceforge
Revision = HEAD
Directory = hdsupp
Description = HD-Support package containing the tools needed to make a harddisc or \
compact flash bootable <Requires>
Name = syslinux
Name = util-linux
Name = dosfstools
</Requires>
</Package></PRE
> </TD
> </TR
> </TABLE
> <DIV
CLASS="section"
> <H3
CLASS="section"
> <A
NAME="AEN209"
> </A
> Hdsupp package definition</H3
> <P
> As before we need to create a directory for hdsupp containing
buildtool.cfg and buildtool.mk. Create a new directory
<TT
CLASS="filename"
> source/hdsupp</TT
> , a file <TT
CLASS="filename"
> buildtool.cfg</TT
>
and enter the following information to <TT
CLASS="filename"
> buildtool.cfg</TT
> > </P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> <Server cvs-sourceforge>
Type = viewcvs
Name = cvs.sourceforge.net/cgi-bin/viewcvs.cgi
Serverpath = /leaf/src/bering-uclibc/apps
</Server>
<File buildtool.mk>
Server = cvs-sourceforge
Revision = HEAD
Directory = hdsupp
</File></PRE
> </TD
> </TR
> </TABLE
> <P
> As you can see, this one is extremely simple. Since hdsupp
doesn't provide any sources, we only need to specify buildtool.mk.</P
> <P
> This is not all we need to add here - there's more to get
<TT
CLASS="filename"
> buildpacket</TT
> to work. But this will be taken care
of in the "Step by step" section of the buildpacket chapter.
(TODO add link)</P
> </DIV
> <DIV
CLASS="section"
> <H3
CLASS="section"
> <A
NAME="AEN219"
> </A
> Hdsupp makefile</H3
> <P
> You may be wondering why we need a makefile at all, since hdsupp
does not provide any sources. You are right - we don't
<I
CLASS="emphasis"
> need</I
> a makefile. But to keep buildtool happy (and
to make sure that buildpacket can verify that hdsupp has actually been
build), we will provide one that simply does nothing. </P
> <P
> As before create a new file called <TT
CLASS="filename"
> buildtool.mk</TT
>
in <TT
CLASS="filename"
> sources/hdsupp</TT
> and enter the following
contents:</P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> #############################################################
#
# hdsupp
#
#############################################################
include $(MASTERMAKEFILE)
source:
# nothing to be done
build:
# nothing to be done
clean:
# nothing to be done</PRE
> </TD
> </TR
> </TABLE
> <P
> That's it. You can now enter ./buildtool.pl build hdsupp and
(hopefully) buildtool will download and compile everything needed. If
something goes wrong, have a look at the buildtool-logfile (usually
the the error-messages are pretty clear about what's wrong).</P
> </DIV
> </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="c108.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="x228.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Creating buildtool sources/packages</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="c108.html"
ACCESSKEY="U"
> Up</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Buildtool reference</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: x227.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Buildtool reference</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="UP"
TITLE="Creating buildtool sources/packages"
HREF="c107.html"><LINK
REL="PREVIOUS"
TITLE="Step by step guide to creating a simple config"
HREF="x130.html"><LINK
REL="NEXT"
TITLE="Creating lrp packages with buildpacket"
HREF="c425.html"></HEAD
> <BODY
CLASS="section"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="x130.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> Creating buildtool sources/packages</TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="c425.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN227"
> </A
> Buildtool reference</H1
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN229"
> </A
> conf/global.cf</H2
> <P
> In this file you need to set two definitions - first, the server
that <TT
CLASS="filename"
> buildtool.cfg</TT
> gets downloaded from.</P
> <P
> Sample: <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> <Server hejl>
Type = http
Name = lrp.hejl.de
Serverpath = /devel
</Server>
<Package openssh>
Server = hejl
Directory = openssh
Description = OpenSSH (ssh, sshd, ssh-key, sftp)
<Requires>
Name = openssl
Name = zlib
Name = tcp_wrappers
</Requires>
</Package></PRE
> </TD
> </TR
> </TABLE
> </P
> <P
> The server section specifies that buildtool will use the url
<TT
CLASS="filename"
> http://lrp.hejl.de/devel</TT
> as a base to download the
config for the package. This url consists of two parts: The Name of the
server and the serverpath which will be appended to the servername.
Don't use an url here, since the protocol section of the url will be
automatically added by buildtool (depending on what is specified as
"Type").</P
> <P
> Possible entries in the Server section are:
<P
> </P
> <DIV
CLASS="variablelist"
> <DL
> <DT
> Type</DT
> <DD
> <P
> The type of
the server (Currently, the supported download types are: http, ftp,
viewcvs and file).</P
> </DD
> <DT
> Name</DT
> <DD
> <P
> The
name of the server (only for http, ftp and viewcvs.) without any leading
protocol (like http://). Note if you use viewvcs.cgi you have to add
here the pathname of the cgi script
(cvs.sourceforge.net/cgi-bin/viewcvs.cgi for example)</P
> </DD
> <DT
> Serverpath</DT
> <DD
> <P
> The
directory/pathname that comes after the servername (will be added there
by buildtool). In case of a viewcvs server it will be added after the
*checkout* that will be appended to the server' s Name (*checkout*
is needed to tell viewcvs to really download a file). You should not use
http for files that are downloaded via viewcvs - even though this is
possible, buildtool tries to fetch the correct version, even if there
already is a never version of the file in the repository (in that case,
the download via http would fail). For type "File" this should
contain a relative path to the file. This really only makes sense for
files that are part of the CVS checkout.</P
> </DD
> </DL
> </DIV
> </P
> <P
> Possible entries in the package/source section are:
<P
> </P
> <DIV
CLASS="variablelist"
> <DL
> <DT
> Server</DT
> <DD
> <P
> The name
of the server to use (has to be defined as server in the server section,
see above).</P
> </DD
> <DT
> Directory</DT
> <DD
> <P
> This
is an additional directory name that will be appended to the serverpath.
This makes it possible to define just one server for downloads from
multiple directories.</P
> </DD
> <DT
> Description</DT
> <DD
> <P
> The
string that is shown when entering <B
CLASS="command"
> ./buildtool.pl describe</B
> </P
> </DD
> <DT
> Requires</DT
> <DD
> <P
> The
Requires section should contain a list of package names that must be
built before building this package. The entries in here are put in line
by line starting with the keyword <I
CLASS="emphasis"
> Name</I
> .</P
> </DD
> </DL
> </DIV
> </P
> <P
> The package section specifies which server to use (there has to be
a corresponding server section) and which directory to download the
config files from. So, in this example, <TT
CLASS="filename"
> buildtool.cfg</TT
>
for the package openssh will be downloaded from <TT
CLASS="filename"
> http://lrp.hejl.de/devel/openssh</TT
>
(this is defined by the url from the server section plus the directory
defined by the package definition.</P
> <P
> The required section in this example defines, that before trying
to build openssh, buildtool must build openssl, zlib and tcp_wrappers
(and whatever packages they require).</P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN275"
> </A
> buildtool.cfg</H2
> <P
> Contains two main sections. First of all the server and file
specifications used for downloading the sources, and the package
specification (which will be used by buildpacket). See the documentation
on buildpacket for the package specification.</P
> <P
> Example: <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> <Server hejl>
Type = http
Name = lrp.hejl.de
Serverpath = /devel
</Server>
<Server debian>
Type = http
Name = ftp.debian.org
Serverpath = /debian/openssh
</Server>
<File buildtool.mk>
Server = hejl
Directory = openssh
</File>
<File openssh_3.6.1p1.orig.tar.gz>
Server = debian
envname = OPENSSH_SOURCE
</File>
<File openssh_3.6.1p2-2.diff.gz>
Server = debian
envname = OPENSSH_PATCH2
</File></PRE
> </TD
> </TR
> </TABLE
> </P
> <P
> The server section followes the same rules as in
<TT
CLASS="filename"
> conf/global.cfg</TT
> . At this point, all servers that
are referenced by a file section, need to be defined in this file (even
if they have already been defined in <TT
CLASS="filename"
> conf/global.cfg</TT
> ).
This may change in the future, so that servers need to be defined only
once.</P
> <P
> Each file section defines a file to download. These usually are
source archives and patches. The url to download the file is
<TT
CLASS="filename"
> serverURL/Directory/File-section-name</TT
> . In our
example, the three files that will be downloaded are:
<TT
CLASS="filename"
> http://lrp.hejl.de/devel/openssh/buildtool.mk</TT
>
<TT
CLASS="filename"
> http://ftp.debian.org/debian/openssh/openssh_3.6.1p1.orig.tar.gz</TT
>
and <TT
CLASS="filename"
> http://ftp.debian.org/debian/openssh/openssh_3.6.1p2-2.diff.gz</TT
> </P
> <P
> For patches, you can use the <TT
CLASS="filename"
> envname</TT
> option.
The effect of this option is that the value given with this option will
be used as an environment variable, containing the name of the
patch-file (this way, if a new patch comes out, replacing an old one,
the -mk file doesn't need to be changed).</P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN290"
> </A
> buildtool.mk</H2
> <P
> <TT
CLASS="filename"
> buildtool.mk</TT
> is the makefile that will be use
to extract the source archive, apply the patches and compile the source.
It must include the "mastermakefile" <TT
CLASS="filename"
> make/MasterInclude.mk</TT
> .
Luckily, the environment variable MASTERMAKEFILE contains the file name
of this file (including the full path). In short, every buildtool.mk
file should start with: <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> include $(MASTERMAKEFILE)</PRE
> </TD
> </TR
> </TABLE
> </P
> <DIV
CLASS="section"
> <H3
CLASS="section"
> <A
NAME="AEN296"
> </A
> targets</H3
> <P
> The following targets need to be defined in each mk-file (these
are the ones that are called by buildtool - of course you are free to
define additional ones you need for building the source).</P
> <DIV
CLASS="section"
> <H4
CLASS="section"
> <A
NAME="AEN299"
> </A
> source</H4
> <P
> Should extract the source tarball, apply patches and run
configure (if applicable).</P
> <P
> An example mk file follows here:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> # example makefile for buildroot
# include the master settings (like BUILD_DIR, ARCH...).
include $(MASTERMAKEFILE)
MYSRC_DIR=example-1.1.1
MYINSTALL_DIR=$(BT_BUILD_DIR)/example
# MYEXAMPLE_PATCH2 is set via the buildtool.cfg entry
.source:
tar xvzf example.src.tgz
(cd $(MYSRC_DIR) ; patch -p1 < ../example-1.patch ;\
patch -p1 < $(MYEXAMPLE_PATCH2)
touch .source
source: .source
.configure:
(cd $(MYSRC_DIR) ; ./configure --PREFIX=/usr \
--SYSCONFDIR=/etc \
--enable-example )
touch .configure
.build: .configure
(cd $(MYSRC_DIR) ; make all CC=$(TARGET_CC) LD=$(TARGET_LD) )
(cd $(MYSRC_DIR) ; make install INSTALL_PREFIX=$(MYINSTALL_DIR))
touch .build
build: .build
clean:
make -C $(MYSRC_DIR) clean
rm .build
rm .configure
srcclean: clean
rm -rf $(MYSRC_DIR)
rm .source</PRE
> </TD
> </TR
> </TABLE
> </P
> <P
> The reason for the dot-entries in this file are: you might
have problems if you try to apply a patch a second time to an
already patched source. Although this should normally not happen, if
you are working on a package to include into buildtool, it often
does. The trick with the dot-files prevents this (as long as the
.source file is there, the source won't be unpacked again. If
you want the source to be upacked/patched , make a
<B
CLASS="command"
> ./buildtool.pl srcclean PACKAGENAME</B
> ).</P
> </DIV
> <DIV
CLASS="section"
> <H4
CLASS="section"
> <A
NAME="AEN306"
> </A
> build</H4
> <P
> Should build the sources and install the binaries (to the
directory defined by the BT_BUILD_DIR environment variable).</P
> </DIV
> <DIV
CLASS="section"
> <H4
CLASS="section"
> <A
NAME="AEN309"
> </A
> clean</H4
> <P
> This should clean up all files created during the compile</P
> </DIV
> </DIV
> <DIV
CLASS="section"
> <H3
CLASS="section"
> <A
NAME="AEN312"
> </A
> Environment variables</H3
> <P
> The following environment variables are defined when the mk file
is run <P
> </P
> <DIV
CLASS="variablelist"
> <DL
> <DT
> BT_BUILDROOT</DT
> <DD
> <P
> root
dir of buildtool (where buildtool.pl resides)</P
> </DD
> <DT
> BT_SOURCE_DIR</DT
> <DD
> <P
> where
the sources are</P
> </DD
> <DT
> BT_BUILD_DIR/BT_BUILDDIR</DT
> <DD
> <P
> the
directory where the binaries (from sources or packages) get intstalled
to</P
> </DD
> <DT
> BT_STAGING_DIR</DT
> <DD
> <P
> the
directory where the binaries for the toolchaing get installed to</P
> </DD
> <DT
> BT_LINUX_DIR</DT
> <DD
> <P
> directory
of the linux kernel</P
> </DD
> <DT
> BT_PACKAGE_DIR</DT
> <DD
> <P
> where
to put finished packages</P
> </DD
> <DT
> BT_PATCHTOOL</DT
> <DD
> <P
> path
to patchtool</P
> </DD
> <DT
> GNU_TARGET_NAME</DT
> <DD
> <P
> something
like i386-linux</P
> </DD
> <DT
> GNU_HOST_NAME</DT
> <DD
> <P
> something
like i386-linux</P
> </DD
> <DT
> TARGET_CC</DT
> <DD
> <P
> compiler
to use for compiling the binaries</P
> </DD
> <DT
> TARGET_LD</DT
> <DD
> <P
> linker
to use for linking against uClibc</P
> </DD
> <DT
> BT_STRIP</DT
> <DD
> <P
> strip
program (and options) to use for stripping binaries</P
> </DD
> </DL
> </DIV
> </P
> </DIV
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN364"
> </A
> Directory structure</H2
> <P
> A short overview of the subdirectories you find when you checked
out buildtool and have the buildenv finished:
<P
> </P
> <DIV
CLASS="variablelist"
> <DL
> <DT
> <TT
CLASS="filename"
> build</TT
> </DT
> <DD
> <P
> This
is the place where sources can install there files (something you
normally do with a <B
CLASS="command"
> make install DESTDIR=someDir</B
> . From
here you can take the files to build the packages. Use a subdir for
every package.</P
> </DD
> <DT
> <TT
CLASS="filename"
> buildtool</TT
> </DT
> <DD
> <P
> Internal
directory , contains the perl modules/classes.</P
> </DD
> <DT
> <TT
CLASS="filename"
> conf</TT
> </DT
> <DD
> <P
> Global
Config files are in here (<TT
CLASS="filename"
> global.cfg, buildtools.cfg,
installed</TT
> )</P
> </DD
> <DT
> <TT
CLASS="filename"
> doc</TT
> </DT
> <DD
> <P
> you
can find some documentation in here.</P
> </DD
> <DT
> <TT
CLASS="filename"
> log</TT
> </DT
> <DD
> <P
> should
contain at least one file: buildtoollog, which has all the messages in
it you don't want to see on your terminal. Useful for debugging.</P
> </DD
> <DT
> <TT
CLASS="filename"
> make</TT
> </DT
> <DD
> <P
> The
place for the MasterMakefile which should be included by every other
makefile.</P
> </DD
> <DT
> <TT
CLASS="filename"
> package</TT
> </DT
> <DD
> <P
> In
here the actual packages are built. Every package has its own subdir (<TT
CLASS="filename"
> openssl</TT
>
for example) in which the unpacked package can be found. The packed
packages are stored in the <TT
CLASS="filename"
> package</TT
> dir as archives
(like <TT
CLASS="filename"
> openssl.lrp</TT
> ).</P
> </DD
> <DT
> <TT
CLASS="filename"
> source</TT
> </DT
> <DD
> <P
> all
sources are here. Sources means downloaded files as well as the unpacked
and compiled source (which should install its files to the
<TT
CLASS="filename"
> build</TT
> directory described above, and maybe to the
<TT
CLASS="filename"
> staging</TT
> directory from there. One subdir for every
source.</P
> </DD
> <DT
> <TT
CLASS="filename"
> staging</TT
> </DT
> <DD
> <P
> This
directory is primarly for internal use. The uclibc toolchain , the
cross-compiler and all libraries are installed here.</P
> </DD
> <DT
> <TT
CLASS="filename"
> tools</TT
> </DT
> <DD
> <P
> you
will find some tools in here , like upx for compressing the kernel and
(maybe) additional scripts.</P
> </DD
> </DL
> </DIV
> </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="x130.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="c425.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Step by step guide to creating a simple config</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="c107.html"
ACCESSKEY="U"
> Up</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Creating lrp packages with buildpacket</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: x228.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Buildtool reference</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="UP"
TITLE="Creating buildtool sources/packages"
HREF="c108.html"><LINK
REL="PREVIOUS"
TITLE="Step by step guide to creating a simple config"
HREF="x131.html"><LINK
REL="NEXT"
TITLE="Creating lrp packages with buildpacket"
HREF="c426.html"></HEAD
> <BODY
CLASS="section"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="x131.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> Creating buildtool sources/packages</TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="c426.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN228"
> </A
> Buildtool reference</H1
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN230"
> </A
> conf/global.cf</H2
> <P
> In this file you need to set two definitions - first, the server
that <TT
CLASS="filename"
> buildtool.cfg</TT
> gets downloaded from.</P
> <P
> Sample: <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> <Server hejl>
Type = http
Name = lrp.hejl.de
Serverpath = /devel
</Server>
<Package openssh>
Server = hejl
Directory = openssh
Description = OpenSSH (ssh, sshd, ssh-key, sftp)
<Requires>
Name = openssl
Name = zlib
Name = tcp_wrappers
</Requires>
</Package></PRE
> </TD
> </TR
> </TABLE
> </P
> <P
> The server section specifies that buildtool will use the url
<TT
CLASS="filename"
> http://lrp.hejl.de/devel</TT
> as a base to download the
config for the package. This url consists of two parts: The Name of the
server and the serverpath which will be appended to the servername.
Don't use an url here, since the protocol section of the url will be
automatically added by buildtool (depending on what is specified as
"Type").</P
> <P
> Possible entries in the Server section are:
<P
> </P
> <DIV
CLASS="variablelist"
> <DL
> <DT
> Type</DT
> <DD
> <P
> The type of
the server (Currently, the supported download types are: http, ftp,
viewcvs and file).</P
> </DD
> <DT
> Name</DT
> <DD
> <P
> The
name of the server (only for http, ftp and viewcvs.) without any leading
protocol (like http://). Note if you use viewvcs.cgi you have to add
here the pathname of the cgi script
(cvs.sourceforge.net/cgi-bin/viewcvs.cgi for example)</P
> </DD
> <DT
> Serverpath</DT
> <DD
> <P
> The
directory/pathname that comes after the servername (will be added there
by buildtool). In case of a viewcvs server it will be added after the
*checkout* that will be appended to the server' s Name (*checkout*
is needed to tell viewcvs to really download a file). You should not use
http for files that are downloaded via viewcvs - even though this is
possible, buildtool tries to fetch the correct version, even if there
already is a never version of the file in the repository (in that case,
the download via http would fail). For type "File" this should
contain a relative path to the file. This really only makes sense for
files that are part of the CVS checkout.</P
> </DD
> </DL
> </DIV
> </P
> <P
> Possible entries in the package/source section are:
<P
> </P
> <DIV
CLASS="variablelist"
> <DL
> <DT
> Server</DT
> <DD
> <P
> The name
of the server to use (has to be defined as server in the server section,
see above).</P
> </DD
> <DT
> Directory</DT
> <DD
> <P
> This
is an additional directory name that will be appended to the serverpath.
This makes it possible to define just one server for downloads from
multiple directories.</P
> </DD
> <DT
> Description</DT
> <DD
> <P
> The
string that is shown when entering <B
CLASS="command"
> ./buildtool.pl describe</B
> </P
> </DD
> <DT
> Requires</DT
> <DD
> <P
> The
Requires section should contain a list of package names that must be
built before building this package. The entries in here are put in line
by line starting with the keyword <I
CLASS="emphasis"
> Name</I
> .</P
> </DD
> </DL
> </DIV
> </P
> <P
> The package section specifies which server to use (there has to be
a corresponding server section) and which directory to download the
config files from. So, in this example, <TT
CLASS="filename"
> buildtool.cfg</TT
>
for the package openssh will be downloaded from <TT
CLASS="filename"
> http://lrp.hejl.de/devel/openssh</TT
>
(this is defined by the url from the server section plus the directory
defined by the package definition.</P
> <P
> The required section in this example defines, that before trying
to build openssh, buildtool must build openssl, zlib and tcp_wrappers
(and whatever packages they require).</P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN276"
> </A
> buildtool.cfg</H2
> <P
> Contains two main sections. First of all the server and file
specifications used for downloading the sources, and the package
specification (which will be used by buildpacket). See the documentation
on buildpacket for the package specification.</P
> <P
> Example: <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> <Server hejl>
Type = http
Name = lrp.hejl.de
Serverpath = /devel
</Server>
<Server debian>
Type = http
Name = ftp.debian.org
Serverpath = /debian/openssh
</Server>
<File buildtool.mk>
Server = hejl
Directory = openssh
</File>
<File openssh_3.6.1p1.orig.tar.gz>
Server = debian
envname = OPENSSH_SOURCE
</File>
<File openssh_3.6.1p2-2.diff.gz>
Server = debian
envname = OPENSSH_PATCH2
</File></PRE
> </TD
> </TR
> </TABLE
> </P
> <P
> The server section followes the same rules as in
<TT
CLASS="filename"
> conf/global.cfg</TT
> . At this point, all servers that
are referenced by a file section, need to be defined in this file (even
if they have already been defined in <TT
CLASS="filename"
> conf/global.cfg</TT
> ).
This may change in the future, so that servers need to be defined only
once.</P
> <P
> Each file section defines a file to download. These usually are
source archives and patches. The url to download the file is
<TT
CLASS="filename"
> serverURL/Directory/File-section-name</TT
> . In our
example, the three files that will be downloaded are:
<TT
CLASS="filename"
> http://lrp.hejl.de/devel/openssh/buildtool.mk</TT
>
<TT
CLASS="filename"
> http://ftp.debian.org/debian/openssh/openssh_3.6.1p1.orig.tar.gz</TT
>
and <TT
CLASS="filename"
> http://ftp.debian.org/debian/openssh/openssh_3.6.1p2-2.diff.gz</TT
> </P
> <P
> For patches, you can use the <TT
CLASS="filename"
> envname</TT
> option.
The effect of this option is that the value given with this option will
be used as an environment variable, containing the name of the
patch-file (this way, if a new patch comes out, replacing an old one,
the -mk file doesn't need to be changed).</P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN291"
> </A
> buildtool.mk</H2
> <P
> <TT
CLASS="filename"
> buildtool.mk</TT
> is the makefile that will be use
to extract the source archive, apply the patches and compile the source.
It must include the "mastermakefile" <TT
CLASS="filename"
> make/MasterInclude.mk</TT
> .
Luckily, the environment variable MASTERMAKEFILE contains the file name
of this file (including the full path). In short, every buildtool.mk
file should start with: <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> include $(MASTERMAKEFILE)</PRE
> </TD
> </TR
> </TABLE
> </P
> <DIV
CLASS="section"
> <H3
CLASS="section"
> <A
NAME="AEN297"
> </A
> targets</H3
> <P
> The following targets need to be defined in each mk-file (these
are the ones that are called by buildtool - of course you are free to
define additional ones you need for building the source).</P
> <DIV
CLASS="section"
> <H4
CLASS="section"
> <A
NAME="AEN300"
> </A
> source</H4
> <P
> Should extract the source tarball, apply patches and run
configure (if applicable).</P
> <P
> An example mk file follows here:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> # example makefile for buildroot
# include the master settings (like BUILD_DIR, ARCH...).
include $(MASTERMAKEFILE)
MYSRC_DIR=example-1.1.1
MYINSTALL_DIR=$(BT_BUILD_DIR)/example
# MYEXAMPLE_PATCH2 is set via the buildtool.cfg entry
.source:
tar xvzf example.src.tgz
(cd $(MYSRC_DIR) ; patch -p1 < ../example-1.patch ;\
patch -p1 < $(MYEXAMPLE_PATCH2)
touch .source
source: .source
.configure:
(cd $(MYSRC_DIR) ; ./configure --PREFIX=/usr \
--SYSCONFDIR=/etc \
--enable-example )
touch .configure
.build: .configure
(cd $(MYSRC_DIR) ; make all CC=$(TARGET_CC) LD=$(TARGET_LD) )
(cd $(MYSRC_DIR) ; make install INSTALL_PREFIX=$(MYINSTALL_DIR))
touch .build
build: .build
clean:
make -C $(MYSRC_DIR) clean
rm .build
rm .configure
srcclean: clean
rm -rf $(MYSRC_DIR)
rm .source</PRE
> </TD
> </TR
> </TABLE
> </P
> <P
> The reason for the dot-entries in this file are: you might
have problems if you try to apply a patch a second time to an
already patched source. Although this should normally not happen, if
you are working on a package to include into buildtool, it often
does. The trick with the dot-files prevents this (as long as the
.source file is there, the source won't be unpacked again. If
you want the source to be upacked/patched , make a
<B
CLASS="command"
> ./buildtool.pl srcclean PACKAGENAME</B
> ).</P
> </DIV
> <DIV
CLASS="section"
> <H4
CLASS="section"
> <A
NAME="AEN307"
> </A
> build</H4
> <P
> Should build the sources and install the binaries (to the
directory defined by the BT_BUILD_DIR environment variable).</P
> </DIV
> <DIV
CLASS="section"
> <H4
CLASS="section"
> <A
NAME="AEN310"
> </A
> clean</H4
> <P
> This should clean up all files created during the compile</P
> </DIV
> </DIV
> <DIV
CLASS="section"
> <H3
CLASS="section"
> <A
NAME="AEN313"
> </A
> Environment variables</H3
> <P
> The following environment variables are defined when the mk file
is run <P
> </P
> <DIV
CLASS="variablelist"
> <DL
> <DT
> BT_BUILDROOT</DT
> <DD
> <P
> root
dir of buildtool (where buildtool.pl resides)</P
> </DD
> <DT
> BT_SOURCE_DIR</DT
> <DD
> <P
> where
the sources are</P
> </DD
> <DT
> BT_BUILD_DIR/BT_BUILDDIR</DT
> <DD
> <P
> the
directory where the binaries (from sources or packages) get intstalled
to</P
> </DD
> <DT
> BT_STAGING_DIR</DT
> <DD
> <P
> the
directory where the binaries for the toolchaing get installed to</P
> </DD
> <DT
> BT_LINUX_DIR</DT
> <DD
> <P
> directory
of the linux kernel</P
> </DD
> <DT
> BT_PACKAGE_DIR</DT
> <DD
> <P
> where
to put finished packages</P
> </DD
> <DT
> BT_PATCHTOOL</DT
> <DD
> <P
> path
to patchtool</P
> </DD
> <DT
> GNU_TARGET_NAME</DT
> <DD
> <P
> something
like i386-linux</P
> </DD
> <DT
> GNU_HOST_NAME</DT
> <DD
> <P
> something
like i386-linux</P
> </DD
> <DT
> TARGET_CC</DT
> <DD
> <P
> compiler
to use for compiling the binaries</P
> </DD
> <DT
> TARGET_LD</DT
> <DD
> <P
> linker
to use for linking against uClibc</P
> </DD
> <DT
> BT_STRIP</DT
> <DD
> <P
> strip
program (and options) to use for stripping binaries</P
> </DD
> </DL
> </DIV
> </P
> </DIV
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN365"
> </A
> Directory structure</H2
> <P
> A short overview of the subdirectories you find when you checked
out buildtool and have the buildenv finished:
<P
> </P
> <DIV
CLASS="variablelist"
> <DL
> <DT
> <TT
CLASS="filename"
> build</TT
> </DT
> <DD
> <P
> This
is the place where sources can install there files (something you
normally do with a <B
CLASS="command"
> make install DESTDIR=someDir</B
> . From
here you can take the files to build the packages. Use a subdir for
every package.</P
> </DD
> <DT
> <TT
CLASS="filename"
> buildtool</TT
> </DT
> <DD
> <P
> Internal
directory , contains the perl modules/classes.</P
> </DD
> <DT
> <TT
CLASS="filename"
> conf</TT
> </DT
> <DD
> <P
> Global
Config files are in here (<TT
CLASS="filename"
> global.cfg, buildtools.cfg,
installed</TT
> )</P
> </DD
> <DT
> <TT
CLASS="filename"
> doc</TT
> </DT
> <DD
> <P
> you
can find some documentation in here.</P
> </DD
> <DT
> <TT
CLASS="filename"
> log</TT
> </DT
> <DD
> <P
> should
contain at least one file: buildtoollog, which has all the messages in
it you don't want to see on your terminal. Useful for debugging.</P
> </DD
> <DT
> <TT
CLASS="filename"
> make</TT
> </DT
> <DD
> <P
> The
place for the MasterMakefile which should be included by every other
makefile.</P
> </DD
> <DT
> <TT
CLASS="filename"
> package</TT
> </DT
> <DD
> <P
> In
here the actual packages are built. Every package has its own subdir (<TT
CLASS="filename"
> openssl</TT
>
for example) in which the unpacked package can be found. The packed
packages are stored in the <TT
CLASS="filename"
> package</TT
> dir as archives
(like <TT
CLASS="filename"
> openssl.lrp</TT
> ).</P
> </DD
> <DT
> <TT
CLASS="filename"
> source</TT
> </DT
> <DD
> <P
> all
sources are here. Sources means downloaded files as well as the unpacked
and compiled source (which should install its files to the
<TT
CLASS="filename"
> build</TT
> directory described above, and maybe to the
<TT
CLASS="filename"
> staging</TT
> directory from there. One subdir for every
source.</P
> </DD
> <DT
> <TT
CLASS="filename"
> staging</TT
> </DT
> <DD
> <P
> This
directory is primarly for internal use. The uclibc toolchain , the
cross-compiler and all libraries are installed here.</P
> </DD
> <DT
> <TT
CLASS="filename"
> tools</TT
> </DT
> <DD
> <P
> you
will find some tools in here , like upx for compressing the kernel and
(maybe) additional scripts.</P
> </DD
> </DL
> </DIV
> </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="x131.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="c426.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Step by step guide to creating a simple config</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="c108.html"
ACCESSKEY="U"
> Up</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Creating lrp packages with buildpacket</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: x39.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Why bother?</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="UP"
TITLE="Introduction"
HREF="c34.html"><LINK
REL="PREVIOUS"
TITLE="Introduction"
HREF="c34.html"><LINK
REL="NEXT"
TITLE="Installation"
HREF="c44.html"></HEAD
> <BODY
CLASS="section"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="c34.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> Introduction</TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="c44.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN39"
> </A
> Why bother?</H1
> <P
> Granted, the initial setup of a new package takes some time and tweaking, much \
> more so than simply doing the compile manually would. So, for a one time shot, a \
> package that will never be updated or modified, integrating it into buildtool is \
> probably not worth the hassle.
</P
> <P
> But if you have a package that's security related (and therefore likely to \
> receive security updates regularly) or one that is still under heavy development \
> and new revisions are released all the time, the time invested in buildtool will \
> pay off very quickly - since usually, all that's needed to integrate a new version \
> of the software are a couple of changes in the config-files.
</P
> <P
> Besides, creating lrp-packages by hand can be tedious and error prone. And if \
> the developer has to spend less time assembling the package, he can use that time \
> for testing the package (or creating new packages).
</P
> </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="c34.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="c44.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Introduction</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="c34.html"
ACCESSKEY="U"
> Up</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Installation</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: x40.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Why bother?</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="UP"
TITLE="Introduction"
HREF="c35.html"><LINK
REL="PREVIOUS"
TITLE="Introduction"
HREF="c35.html"><LINK
REL="NEXT"
TITLE="Installation"
HREF="c45.html"></HEAD
> <BODY
CLASS="section"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="c35.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> Introduction</TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="c45.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN40"
> </A
> Why bother?</H1
> <P
> Granted, the initial setup of a new package takes some time and tweaking, much \
> more so than simply doing the compile manually would. So, for a one time shot, a \
> package that will never be updated or modified, integrating it into buildtool is \
> probably not worth the hassle.
</P
> <P
> But if you have a package that's security related (and therefore likely to \
> receive security updates regularly) or one that is still under heavy development \
> and new revisions are released all the time, the time invested in buildtool will \
> pay off very quickly - since usually, all that's needed to integrate a new version \
> of the software are a couple of changes in the config-files.
</P
> <P
> Besides, creating lrp-packages by hand can be tedious and error prone. And if \
> the developer has to spend less time assembling the package, he can use that time \
> for testing the package (or creating new packages).
</P
> </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="c35.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="c45.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Introduction</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="c35.html"
ACCESSKEY="U"
> Up</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Installation</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: x433.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Configuration</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="UP"
TITLE="Creating lrp packages with buildpacket"
HREF="c425.html"><LINK
REL="PREVIOUS"
TITLE="Creating lrp packages with buildpacket"
HREF="c425.html"><LINK
REL="NEXT"
TITLE="Creating packages"
HREF="x480.html"></HEAD
> <BODY
CLASS="section"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="c425.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> Creating lrp packages with buildpacket</TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="x480.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN433"
> </A
> Configuration</H1
> <P
> The configuration for this script is integrated into the
buildtool.cfg file that controls the download of the sources. It resides
in its own block called "Package". Sample (comments below):
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> <Package>
<sshd>
Version = 3.6.1p1
Revision = 1
Skeleton = sshd.skel.tgz
Help <<EOF
OpenSSH sshd daemon.
See http://www.openssh.org
LRP package by __PACKAGER__, __BUILDDATE__
EOF
<Permissions>
Files = 644
Directories = 755
</Permissions>
<Owner>
Files = root:root
Directories = root:root
</Owner>
<Contents>
<File>
Filename = etc/init.d/sshd
Description = sshd daemon init file
Type = conf
Type = local
</File>
<File>
Filename = etc/ssh
Type = list
Type = local
</File>
<File>
Filename = etc/ssh/sshd_config
Description = sshd config file
Type = conf
</File>
<File>
Source = usr/local/sbin/sshd
Filename = usr/sbin/sshd
Type = binary
Permissions = 755
</File>
<File>
Source = etc/ssh/moduli
Filename = etc/ssh/moduli
Type = binary
</File>
<File>
Source = usr/local/bin/scp
Filename = usr/bin/scp
Type = binary
Permissions = 755
</File>
</Contents>
</sshd>
<anotherPackageHere>
...
</anotherPackageHere>
</Package></PRE
> </TD
> </TR
> </TABLE
> </P
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN437"
> </A
> Version</H2
> <P
> The version of the source-code used to compile the package</P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN440"
> </A
> Revision</H2
> <P
> Revision of the package (to distinguish different builds of the
same source)</P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN443"
> </A
> Skeleton</H2
> <P
> The skeleton file to build the package</P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN446"
> </A
> Permissions</H2
> <P
> Default permissions to give files/directories</P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN449"
> </A
> Owner</H2
> <P
> Default ownership given to the files/directories</P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN452"
> </A
> Help</H2
> <P
> Text to put into the .help file. If the .help file should only
consist of a single line, you can simply define ist as
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> Help = Text for the help file</PRE
> </TD
> </TR
> </TABLE
> . If you
need more than one line (most likely you will), you can use the
mechanism used in the example.</P
> <P
> The following "tags" that will be replaced at build time
are supported: <P
> </P
> <UL
> <LI
> <P
> __PACKAGER__ The name of
the user who built the package (this is why you need to specify the
packager on the commmand line).</P
> </LI
> <LI
> <P
> __BUILDDATE__
Date the package was created</P
> </LI
> </UL
> </P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN462"
> </A
> Contents</H2
> <P
> List of "File" blocks that define the contents of the
package. <DIV
CLASS="note"
> <P
> </P
> <TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
> <TR
> <TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
> <IMG
SRC="./stylesheet-images/note.gif"
HSPACE="5"
ALT="Note"></TD
> <TD
ALIGN="LEFT"
VALIGN="TOP"
> <P
> Only the files that need special care like binaries
or directories "owned" by the lrp need to be listed here - stuff
that came from the skeleton file or the files automatically generated by
the tool are added automatically (but if they need other
permissions/ownership than the default, you still need to specify them -
as "LIST", for example). A file can be of more than one type -
in this case, simply specify more than one "Type = xxx" line.</P
> </TD
> </TR
> </TABLE
> </DIV
> </P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN467"
> </A
> File</H2
> <P
> Filename (including relative path) of the file in the package
Source: relative (to buildtools staging-dir) path/filename to the file
generated by buildtool. Possible file-types are:
<P
> </P
> <UL
> <LI
> <P
> binary: (for files that are copied from
the staging_dir of buildtool - not neccessarily a <I
CLASS="emphasis"
> binary</I
> )</P
> </LI
> <LI
> <P
> list:
file (or pattern) to add to the packagename.list file</P
> </LI
> <LI
> <P
> conf:file
to add to packagename.conf</P
> </LI
> <LI
> <P
> local: file
to add to packagename.local (for partial backups). At this point only
the type "I" (for including the file in the local backup) is
supported, type "X" (for excluding a file from the local backup)
is not.</P
> </LI
> </UL
> </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="c425.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="x480.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Creating lrp packages with buildpacket</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="c425.html"
ACCESSKEY="U"
> Up</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Creating packages</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: x434.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Configuration</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="UP"
TITLE="Creating lrp packages with buildpacket"
HREF="c426.html"><LINK
REL="PREVIOUS"
TITLE="Creating lrp packages with buildpacket"
HREF="c426.html"><LINK
REL="NEXT"
TITLE="Creating packages"
HREF="x481.html"></HEAD
> <BODY
CLASS="section"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="c426.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> Creating lrp packages with buildpacket</TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="x481.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN434"
> </A
> Configuration</H1
> <P
> The configuration for this script is integrated into the
buildtool.cfg file that controls the download of the sources. It resides
in its own block called "Package". Sample (comments below):
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> <Package>
<sshd>
Version = 3.6.1p1
Revision = 1
Skeleton = sshd.skel.tgz
Help <<EOF
OpenSSH sshd daemon.
See http://www.openssh.org
LRP package by __PACKAGER__, __BUILDDATE__
EOF
<Permissions>
Files = 644
Directories = 755
</Permissions>
<Owner>
Files = root:root
Directories = root:root
</Owner>
<Contents>
<File>
Filename = etc/init.d/sshd
Description = sshd daemon init file
Type = conf
Type = local
</File>
<File>
Filename = etc/ssh
Type = list
Type = local
</File>
<File>
Filename = etc/ssh/sshd_config
Description = sshd config file
Type = conf
</File>
<File>
Source = usr/local/sbin/sshd
Filename = usr/sbin/sshd
Type = binary
Permissions = 755
</File>
<File>
Source = etc/ssh/moduli
Filename = etc/ssh/moduli
Type = binary
</File>
<File>
Source = usr/local/bin/scp
Filename = usr/bin/scp
Type = binary
Permissions = 755
</File>
</Contents>
</sshd>
<anotherPackageHere>
...
</anotherPackageHere>
</Package></PRE
> </TD
> </TR
> </TABLE
> </P
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN438"
> </A
> Version</H2
> <P
> The version of the source-code used to compile the package</P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN441"
> </A
> Revision</H2
> <P
> Revision of the package (to distinguish different builds of the
same source)</P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN444"
> </A
> Skeleton</H2
> <P
> The skeleton file to build the package</P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN447"
> </A
> Permissions</H2
> <P
> Default permissions to give files/directories</P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN450"
> </A
> Owner</H2
> <P
> Default ownership given to the files/directories</P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN453"
> </A
> Help</H2
> <P
> Text to put into the .help file. If the .help file should only
consist of a single line, you can simply define ist as
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> Help = Text for the help file</PRE
> </TD
> </TR
> </TABLE
> . If you
need more than one line (most likely you will), you can use the
mechanism used in the example.</P
> <P
> The following "tags" that will be replaced at build time
are supported: <P
> </P
> <UL
> <LI
> <P
> __PACKAGER__ The name of
the user who built the package (this is why you need to specify the
packager on the commmand line).</P
> </LI
> <LI
> <P
> __BUILDDATE__
Date the package was created</P
> </LI
> </UL
> </P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN463"
> </A
> Contents</H2
> <P
> List of "File" blocks that define the contents of the
package. <DIV
CLASS="note"
> <P
> </P
> <TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
> <TR
> <TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
> <IMG
SRC="./stylesheet-images/note.gif"
HSPACE="5"
ALT="Note"></TD
> <TD
ALIGN="LEFT"
VALIGN="TOP"
> <P
> Only the files that need special care like binaries
or directories "owned" by the lrp need to be listed here - stuff
that came from the skeleton file or the files automatically generated by
the tool are added automatically (but if they need other
permissions/ownership than the default, you still need to specify them -
as "LIST", for example). A file can be of more than one type -
in this case, simply specify more than one "Type = xxx" line.</P
> </TD
> </TR
> </TABLE
> </DIV
> </P
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN468"
> </A
> File</H2
> <P
> Filename (including relative path) of the file in the package
Source: relative (to buildtools staging-dir) path/filename to the file
generated by buildtool. Possible file-types are:
<P
> </P
> <UL
> <LI
> <P
> binary: (for files that are copied from
the staging_dir of buildtool - not neccessarily a <I
CLASS="emphasis"
> binary</I
> )</P
> </LI
> <LI
> <P
> list:
file (or pattern) to add to the packagename.list file</P
> </LI
> <LI
> <P
> conf:file
to add to packagename.conf</P
> </LI
> <LI
> <P
> local: file
to add to packagename.local (for partial backups). At this point only
the type "I" (for including the file in the local backup) is
supported, type "X" (for excluding a file from the local backup)
is not.</P
> </LI
> </UL
> </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="c426.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="x481.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Creating lrp packages with buildpacket</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="c426.html"
ACCESSKEY="U"
> Up</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Creating packages</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: x480.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Creating packages</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="UP"
TITLE="Creating lrp packages with buildpacket"
HREF="c425.html"><LINK
REL="PREVIOUS"
TITLE="Configuration"
HREF="x433.html"></HEAD
> <BODY
CLASS="section"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="x433.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> Creating lrp packages with buildpacket</TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN480"
> </A
> Creating packages</H1
> <P
> Usage: <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> buildpackage --package=packagename --packager=name_of_packager
[--target=packagefile] [-lrp=existing.lrp] [--verbose]</PRE
> </TD
> </TR
> </TABLE
>
Example:</P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> ./buildpacket.pl --package=zlip --packager="Martin Hejl" --verbose</PRE
> </TD
> </TR
> </TABLE
> <DIV
CLASS="caution"
> <P
> </P
> <TABLE
CLASS="caution"
WIDTH="100%"
BORDER="0"
> <TR
> <TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
> <IMG
SRC="./stylesheet-images/caution.gif"
HSPACE="5"
ALT="Caution"></TD
> <TD
ALIGN="LEFT"
VALIGN="TOP"
> <P
> Currently, buildpacket does not check, wether the sources have
already been installed. This is something that will be done later on,
when buildpacket is more integrated into builtool</P
> </TD
> </TR
> </TABLE
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN487"
> </A
> Options</H2
> <P
> <P
> </P
> <UL
> <LI
> <P
> --package The name of the package
you compiled using <B
CLASS="command"
> ./buildtool.pl build packagename</B
> </P
> </LI
> <LI
> <P
> --packager:
The name of the user who created the package. The string you enter here
is added to the .help file (if the help section contains the
__PACKAGER__ tag)</P
> </LI
> <LI
> <P
> --target: For
packages that create more than one lrp-file (like openssh), this
specifies which lrp to create. If this option is omitted, the value of
--package is used</P
> </LI
> <LI
> <P
> --lrp: If you already
have an existing lrp file and you want to migrate your configuration to
the new package, specify the lrp file here and it will be integrated
into the package (if the .cfg file is set up correctly, the config will
be migrated, but all binaries will be replaced with the new versions).
This needs more work (it's pretty crude at this point), probably the
lck-scripts by Alex Rhomberg will be integrated/used to take care of
this.</P
> </LI
> <LI
> <P
> --verbose: Turns on verbose
logging</P
> </LI
> </UL
> </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="x433.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Configuration</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="c425.html"
ACCESSKEY="U"
> Up</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> </TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: x481.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Creating packages</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="UP"
TITLE="Creating lrp packages with buildpacket"
HREF="c426.html"><LINK
REL="PREVIOUS"
TITLE="Configuration"
HREF="x434.html"></HEAD
> <BODY
CLASS="section"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="x434.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> Creating lrp packages with buildpacket</TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN481"
> </A
> Creating packages</H1
> <P
> Usage: <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> buildpackage --package=packagename --packager=name_of_packager
[--target=packagefile] [-lrp=existing.lrp] [--verbose]</PRE
> </TD
> </TR
> </TABLE
>
Example:</P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> ./buildpacket.pl --package=zlip --packager="Martin Hejl" --verbose</PRE
> </TD
> </TR
> </TABLE
> <DIV
CLASS="caution"
> <P
> </P
> <TABLE
CLASS="caution"
WIDTH="100%"
BORDER="0"
> <TR
> <TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
> <IMG
SRC="./stylesheet-images/caution.gif"
HSPACE="5"
ALT="Caution"></TD
> <TD
ALIGN="LEFT"
VALIGN="TOP"
> <P
> Currently, buildpacket does not check, wether the sources have
already been installed. This is something that will be done later on,
when buildpacket is more integrated into builtool</P
> </TD
> </TR
> </TABLE
> </DIV
> <DIV
CLASS="section"
> <H2
CLASS="section"
> <A
NAME="AEN488"
> </A
> Options</H2
> <P
> <P
> </P
> <UL
> <LI
> <P
> --package The name of the package
you compiled using <B
CLASS="command"
> ./buildtool.pl build packagename</B
> </P
> </LI
> <LI
> <P
> --packager:
The name of the user who created the package. The string you enter here
is added to the .help file (if the help section contains the
__PACKAGER__ tag)</P
> </LI
> <LI
> <P
> --target: For
packages that create more than one lrp-file (like openssh), this
specifies which lrp to create. If this option is omitted, the value of
--package is used</P
> </LI
> <LI
> <P
> --lrp: If you already
have an existing lrp file and you want to migrate your configuration to
the new package, specify the lrp file here and it will be integrated
into the package (if the .cfg file is set up correctly, the config will
be migrated, but all binaries will be replaced with the new versions).
This needs more work (it's pretty crude at this point), probably the
lck-scripts by Alex Rhomberg will be integrated/used to take care of
this.</P
> </LI
> <LI
> <P
> --verbose: Turns on verbose
logging</P
> </LI
> </UL
> </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="x434.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Configuration</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="c426.html"
ACCESSKEY="U"
> Up</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> </TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: x53.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Perl</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="UP"
TITLE="Installation"
HREF="c44.html"><LINK
REL="PREVIOUS"
TITLE="Installation"
HREF="c44.html"><LINK
REL="NEXT"
TITLE="Initial configuration"
HREF="x58.html"></HEAD
> <BODY
CLASS="section"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="c44.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> Installation</TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="x58.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN53"
> </A
> Perl</H1
> <P
> Buildtool requires Perl 5.6 (or newer). It may work with Perl 5.0
(I'm not aware of any 5.6 features being used in buildtool), but this
has not been tested so far. Additionally, you need the Perl package
<TT
CLASS="filename"
> Config::General</TT
> . This can be either be installed the
"traditional" way (download it from CPAN, untar, perl Makefile.PL,
make, make test and (as root) make install), or by running
<TT
CLASS="userinput"
> <B
> perl -MCPAN -e 'install Config::General'</B
> </TT
> </P
> </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="c44.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="x58.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Installation</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="c44.html"
ACCESSKEY="U"
> Up</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Initial configuration</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: x54.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Perl</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="UP"
TITLE="Installation"
HREF="c45.html"><LINK
REL="PREVIOUS"
TITLE="Installation"
HREF="c45.html"><LINK
REL="NEXT"
TITLE="Initial configuration"
HREF="x59.html"></HEAD
> <BODY
CLASS="section"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="c45.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> Installation</TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="x59.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN54"
> </A
> Perl</H1
> <P
> Buildtool requires Perl 5.6 (or newer). It may work with Perl 5.0
(I'm not aware of any 5.6 features being used in buildtool), but this
has not been tested so far. Additionally, you need the Perl package
<TT
CLASS="filename"
> Config::General</TT
> . This can be either be installed the
"traditional" way (download it from CPAN, untar, perl Makefile.PL,
make, make test and (as root) make install), or by running
<TT
CLASS="userinput"
> <B
> perl -MCPAN -e 'install Config::General'</B
> </TT
> </P
> </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="c45.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="x59.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Installation</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="c45.html"
ACCESSKEY="U"
> Up</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Initial configuration</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: x58.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Initial configuration</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="UP"
TITLE="Installation"
HREF="c44.html"><LINK
REL="PREVIOUS"
TITLE="Perl"
HREF="x53.html"><LINK
REL="NEXT"
TITLE="Toolchain download/build"
HREF="x64.html"></HEAD
> <BODY
CLASS="section"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="x53.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> Installation</TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="x64.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN58"
> </A
> Initial configuration</H1
> <P
> Edit the file <TT
CLASS="filename"
> conf/buildtool.conf</TT
> (using your
favourite text editor). It should look similar to this:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> # version number
# $Id: x58.html,v 1.1 2003/07/25 18:52:30 hejl Exp $
Version = 0.3pre2
#####################################################################
# files&directories
# Adjust to your needs
# note that the dir or file entries can be relative (to the dir buildtool.pl
# resides in) or absolute
#
#################################################
#
# where to log
Logfile = log/buildtoollog
# name of the conf file with the source/package definitions
GlobalConffile = conf/global.cfg
# Name of the source Directory
Source_Dir = source
# where to log what we have installed/compiled
InstalledFile = conf/installed
# debugging
DebugToConsole = 0
DebugToLogfile = 1
# good if you want to develop files
# in here and not to overwrite buildtool any files
# this means, if a file exists and its size is > 0,
# it will not be overwritten unless you delete it!
OverwriteFiles = 0
# how are the files named we use for each package:
Buildtool_Makefile = buildtool.mk
Buildtool_Config = buildtool.cfg
# some directories, these will be deleted if you make a buildtool.pl distclean
Buildenv_Dir=log
Buildenv_Dir=staging
Buildenv_Dir=source
Buildenv_Dir=build
Buildenv_Dir=package
# Stuff needed for buildpacket ---
gzip_options=-9
# Name of the packager - please put your real name in here
# (so people will know who created the package)
Packager=anonymous</PRE
> </TD
> </TR
> </TABLE
> </P
> <P
> Normally, the defaults in this config file are fine. The only
setting that should be changed is the setting for the Packager. Enter your
name here (this entry will be shown in the .help-files when creating
packages - and I guess it is a good idea to let the user know who
assembled the package).</P
> </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="x53.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="x64.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Perl</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="c44.html"
ACCESSKEY="U"
> Up</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Toolchain download/build</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: x59.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Initial configuration</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="UP"
TITLE="Installation"
HREF="c45.html"><LINK
REL="PREVIOUS"
TITLE="Perl"
HREF="x54.html"><LINK
REL="NEXT"
TITLE="Toolchain download/build"
HREF="x65.html"></HEAD
> <BODY
CLASS="section"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="x54.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> Installation</TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="x65.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN59"
> </A
> Initial configuration</H1
> <P
> Edit the file <TT
CLASS="filename"
> conf/buildtool.conf</TT
> (using your
favourite text editor). It should look similar to this:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> # version number
# $Id: x59.html,v 1.1 2003/07/25 18:52:30 hejl Exp $
Version = 0.3pre2
#####################################################################
# files&directories
# Adjust to your needs
# note that the dir or file entries can be relative (to the dir buildtool.pl
# resides in) or absolute
#
#################################################
#
# where to log
Logfile = log/buildtoollog
# name of the conf file with the source/package definitions
GlobalConffile = conf/global.cfg
# Name of the source Directory
Source_Dir = source
# where to log what we have installed/compiled
InstalledFile = conf/installed
# debugging
DebugToConsole = 0
DebugToLogfile = 1
# good if you want to develop files
# in here and not to overwrite buildtool any files
# this means, if a file exists and its size is > 0,
# it will not be overwritten unless you delete it!
OverwriteFiles = 0
# how are the files named we use for each package:
Buildtool_Makefile = buildtool.mk
Buildtool_Config = buildtool.cfg
# some directories, these will be deleted if you make a buildtool.pl distclean
Buildenv_Dir=log
Buildenv_Dir=staging
Buildenv_Dir=source
Buildenv_Dir=build
Buildenv_Dir=package
# Stuff needed for buildpacket ---
gzip_options=-9
# Name of the packager - please put your real name in here
# (so people will know who created the package)
Packager=anonymous</PRE
> </TD
> </TR
> </TABLE
> </P
> <P
> Normally, the defaults in this config file are fine. The only
setting that should be changed is the setting for the Packager. Enter your
name here (this entry will be shown in the .help-files when creating
packages - and I guess it is a good idea to let the user know who
assembled the package).</P
> </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="x54.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="x65.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Perl</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="c45.html"
ACCESSKEY="U"
> Up</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Toolchain download/build</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: x64.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Toolchain download/build</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="UP"
TITLE="Installation"
HREF="c44.html"><LINK
REL="PREVIOUS"
TITLE="Initial configuration"
HREF="x58.html"><LINK
REL="NEXT"
TITLE="Buildtool usage"
HREF="c78.html"></HEAD
> <BODY
CLASS="section"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="x58.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> Installation</TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="c78.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN64"
> </A
> Toolchain download/build</H1
> <DIV
CLASS="note"
> <P
> </P
> <TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
> <TR
> <TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
> <IMG
SRC="./stylesheet-images/note.gif"
HSPACE="5"
ALT="Note"></TD
> <TD
ALIGN="LEFT"
VALIGN="TOP"
> <P
> Unless otherwise noted, you should <I
CLASS="emphasis"
> never</I
> run buildtool as root. Errors in the makefile might otherwise screw up your host \
> system (I've done it, trying to build ncurses...).</P </TD
> </TR
> </TABLE
> </DIV
> <P
> You will probably want to open a new xterm (or whatever terminal emulator you \
> prefer) , go to the buildtool root directory (which is <TT
CLASS="filename"
> buildtool/</TT
> starting from where you made the cvs checkout) and enter <TT
CLASS="userinput"
> <B
> tail -f log/buildtoollog</B
> </TT
>
in it. Go back to the other xterm, change to the buildtool root dir and enter \
(hopefully on a fast internet connection - there'll be several large downloads): \
<TT CLASS="userinput"
> <B
> ./buildtool.pl build buildenv</B
> </TT
> </P
> <P
> Finally, (and this must be done as root) create a link
<TT
CLASS="filename"
> /lib/ld-uClibc.so.0</TT
> pointing to <TT
CLASS="filename"
> $(Root_Dir)/staging/lib/ld-uClibc.so.0</TT
>
(where $(Root_Dir) is what you defined above in <TT
CLASS="filename"
> buildtool.conf</TT
> ).
If you forget that step, you will sooner or later get a configure error (openssh \
is one of those candidates), claiming that cc cannot create binaries. This happens \
because configure compiles a test program and tries to execute it. The test program \
expects the uClibc library to be in <TT CLASS="filename"
> /lib</TT
> , if it is not found the program can not be executed (and this position is \
> hardcoded while compiling the buildenv and can not be changed with ldconfig).</P \
> </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="x58.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="c78.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Initial configuration</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="c44.html"
ACCESSKEY="U"
> Up</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Buildtool usage</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: x65.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Toolchain download/build</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="UP"
TITLE="Installation"
HREF="c45.html"><LINK
REL="PREVIOUS"
TITLE="Initial configuration"
HREF="x59.html"><LINK
REL="NEXT"
TITLE="Buildtool usage"
HREF="c79.html"></HEAD
> <BODY
CLASS="section"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="x59.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> Installation</TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="c79.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN65"
> </A
> Toolchain download/build</H1
> <DIV
CLASS="note"
> <P
> </P
> <TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
> <TR
> <TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
> <IMG
SRC="./stylesheet-images/note.gif"
HSPACE="5"
ALT="Note"></TD
> <TD
ALIGN="LEFT"
VALIGN="TOP"
> <P
> Unless otherwise noted, you should <I
CLASS="emphasis"
> never</I
> run buildtool as root. Errors in the makefile might otherwise screw up your host \
> system (I've done it, trying to build ncurses...).</P </TD
> </TR
> </TABLE
> </DIV
> <P
> You will probably want to open a new xterm (or whatever terminal emulator you \
> prefer) , go to the buildtool root directory (which is <TT
CLASS="filename"
> buildtool/</TT
> starting from where you made the cvs checkout) and enter <TT
CLASS="userinput"
> <B
> tail -f log/buildtoollog</B
> </TT
>
in it. Go back to the other xterm, change to the buildtool root dir and enter \
(hopefully on a fast internet connection - there'll be several large downloads): \
<TT CLASS="userinput"
> <B
> ./buildtool.pl build buildenv</B
> </TT
> </P
> <P
> Finally, (and this must be done as root) create a link
<TT
CLASS="filename"
> /lib/ld-uClibc.so.0</TT
> pointing to <TT
CLASS="filename"
> $(Root_Dir)/staging/lib/ld-uClibc.so.0</TT
>
(where $(Root_Dir) is what you defined above in <TT
CLASS="filename"
> buildtool.conf</TT
> ).
If you forget that step, you will sooner or later get a configure error (openssh \
is one of those candidates), claiming that cc cannot create binaries. This happens \
because configure compiles a test program and tries to execute it. The test program \
expects the uClibc library to be in <TT CLASS="filename"
> /lib</TT
> , if it is not found the program can not be executed (and this position is \
> hardcoded while compiling the buildenv and can not be changed with ldconfig).</P \
> </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="x59.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="c79.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Initial configuration</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="c45.html"
ACCESSKEY="U"
> Up</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Buildtool usage</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: x84.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Getting information about the sources that can be built</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="UP"
TITLE="Buildtool usage"
HREF="c78.html"><LINK
REL="PREVIOUS"
TITLE="Buildtool usage"
HREF="c78.html"><LINK
REL="NEXT"
TITLE="The difference between sources and packages"
HREF="x89.html"></HEAD
> <BODY
CLASS="section"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="c78.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> Buildtool usage</TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="x89.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN84"
> </A
> Getting information about the sources that can be built</H1
> <P
> Buildtool can only build sources/packages that is has a
configuration for (see the next chapter on how to create such a
configuration). To get a listing about the sources that are configured for
buildtool type <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> ./buildtool.pl describe</PRE
> </TD
> </TR
> </TABLE
> This
will give you a list (and a short description) of all sources/packages
that can be built. An example output looks like this:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> ./buildtool.pl describe
The following packages and sources are available:
Sources:
---------------------------------------------------------
openssh openssh
tcp_wrappers Wietse Venema's TCP wrappers library
helloworld classical example
openssl Secure Sockets Layer and cryptography libraries and tools
zlib zLib shared libraries
linux kernel source only package
Packages:
---------------------------------------------------------
buildenv this holds everything to build cross build env
kernel kernel pseudo package</PRE
> </TD
> </TR
> </TABLE
> </P
> </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="c78.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="x89.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Buildtool usage</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="c78.html"
ACCESSKEY="U"
> Up</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> The difference between sources and packages</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: x85.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Getting information about the sources that can be built</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="UP"
TITLE="Buildtool usage"
HREF="c79.html"><LINK
REL="PREVIOUS"
TITLE="Buildtool usage"
HREF="c79.html"><LINK
REL="NEXT"
TITLE="The difference between sources and packages"
HREF="x90.html"></HEAD
> <BODY
CLASS="section"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="c79.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> Buildtool usage</TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="x90.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN85"
> </A
> Getting information about the sources that can be built</H1
> <P
> Buildtool can only build sources/packages that is has a
configuration for (see the next chapter on how to create such a
configuration). To get a listing about the sources that are configured for
buildtool type <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> ./buildtool.pl describe</PRE
> </TD
> </TR
> </TABLE
> This
will give you a list (and a short description) of all sources/packages
that can be built. An example output looks like this:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> ./buildtool.pl describe
The following packages and sources are available:
Sources:
---------------------------------------------------------
openssh openssh
tcp_wrappers Wietse Venema's TCP wrappers library
helloworld classical example
openssl Secure Sockets Layer and cryptography libraries and tools
zlib zLib shared libraries
linux kernel source only package
Packages:
---------------------------------------------------------
buildenv this holds everything to build cross build env
kernel kernel pseudo package</PRE
> </TD
> </TR
> </TABLE
> </P
> </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="c79.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="x90.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Buildtool usage</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="c79.html"
ACCESSKEY="U"
> Up</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> The difference between sources and packages</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: x89.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> The difference between sources and packages</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="UP"
TITLE="Buildtool usage"
HREF="c78.html"><LINK
REL="PREVIOUS"
TITLE="Getting information about the sources that can be built"
HREF="x84.html"><LINK
REL="NEXT"
TITLE="Downloading the sources for a package"
HREF="x92.html"></HEAD
> <BODY
CLASS="section"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="x84.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> Buildtool usage</TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="x92.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN89"
> </A
> The difference between sources and packages</H1
> <P
> You might be a bit confused why in the above output there are
Sources and Packages. The main reason for having sources and packages
seperatly is that there are some sources out there that produce programs
used in several packages. Or another word it sometimes make sense to just
build the sources (like util-linux for example) only once and create
several packages out of the resulting binaries.</P
> </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="x84.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="x92.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Getting information about the sources that can be built</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="c78.html"
ACCESSKEY="U"
> Up</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Downloading the sources for a package</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: x90.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> The difference between sources and packages</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="UP"
TITLE="Buildtool usage"
HREF="c79.html"><LINK
REL="PREVIOUS"
TITLE="Getting information about the sources that can be built"
HREF="x85.html"><LINK
REL="NEXT"
TITLE="Downloading the sources for a package"
HREF="x93.html"></HEAD
> <BODY
CLASS="section"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="x85.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> Buildtool usage</TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="x93.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN90"
> </A
> The difference between sources and packages</H1
> <P
> You might be a bit confused why in the above output there are
Sources and Packages. The main reason for having sources and packages
seperatly is that there are some sources out there that produce programs
used in several packages. Or another word it sometimes make sense to just
build the sources (like util-linux for example) only once and create
several packages out of the resulting binaries.</P
> </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="x85.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="x93.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> Getting information about the sources that can be built</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="c79.html"
ACCESSKEY="U"
> Up</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Downloading the sources for a package</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: x92.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Downloading the sources for a package</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="UP"
TITLE="Buildtool usage"
HREF="c78.html"><LINK
REL="PREVIOUS"
TITLE="The difference between sources and packages"
HREF="x89.html"><LINK
REL="NEXT"
TITLE="Compiling the sources for a package"
HREF="x101.html"></HEAD
> <BODY
CLASS="section"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="x89.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> Buildtool usage</TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="x101.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN92"
> </A
> Downloading the sources for a package</H1
> <P
> Running <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> ./buildtool.pl source somepackageName</PRE
> </TD
> </TR
> </TABLE
>
will cause the sources of <I
CLASS="emphasis"
> somepackageName</I
> (and before
that, all its dependencies, if there are any that haven't been
downloaded yet) to be downloaded. After that, the makefile
<TT
CLASS="filename"
> buildtool.mk</TT
> for this source is executed for target
<I
CLASS="emphasis"
> source</I
> . This has the effect that the sources will be
extracted, and patches (if there are any) are applied.</P
> <P
> If all this completes without error, the sources of
<I
CLASS="emphasis"
> somepackageName</I
> are ready to be compiled.</P
> </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="x89.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="x101.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> The difference between sources and packages</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="c78.html"
ACCESSKEY="U"
> Up</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Compiling the sources for a package</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
--- NEW FILE: x93.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
> <HEAD
> <TITLE
> Downloading the sources for a package</TITLE
> <META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Buildtool getting started guide"
HREF="book1.html"><LINK
REL="UP"
TITLE="Buildtool usage"
HREF="c79.html"><LINK
REL="PREVIOUS"
TITLE="The difference between sources and packages"
HREF="x90.html"><LINK
REL="NEXT"
TITLE="Compiling the sources for a package"
HREF="x102.html"></HEAD
> <BODY
CLASS="section"
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"
> Buildtool getting started guide</TH
> </TR
> <TR
> <TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
> <A
HREF="x90.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
> Buildtool usage</TD
> <TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> <A
HREF="x102.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> </TABLE
> <HR
ALIGN="LEFT"
WIDTH="100%"></DIV
> <DIV
CLASS="section"
> <H1
CLASS="section"
> <A
NAME="AEN93"
> </A
> Downloading the sources for a package</H1
> <P
> Running <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
> <TR
> <TD
> <PRE
CLASS="programlisting"
> ./buildtool.pl source somepackageName</PRE
> </TD
> </TR
> </TABLE
>
will cause the sources of <I
CLASS="emphasis"
> somepackageName</I
> (and before
that, all its dependencies, if there are any that haven't been
downloaded yet) to be downloaded. After that, the makefile
<TT
CLASS="filename"
> buildtool.mk</TT
> for this source is executed for target
<I
CLASS="emphasis"
> source</I
> . This has the effect that the sources will be
extracted, and patches (if there are any) are applied.</P
> <P
> If all this completes without error, the sources of
<I
CLASS="emphasis"
> somepackageName</I
> are ready to be compiled.</P
> </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="x90.html"
ACCESSKEY="P"
> <<< Previous</A
> </TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="book1.html"
ACCESSKEY="H"
> Home</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> <A
HREF="x102.html"
ACCESSKEY="N"
> Next >>></A
> </TD
> </TR
> <TR
> <TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
> The difference between sources and packages</TD
> <TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> <A
HREF="c79.html"
ACCESSKEY="U"
> Up</A
> </TD
> <TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> Compiling the sources for a package</TD
> </TR
> </TABLE
> </DIV
> </BODY
> </HTML
>
Index: bt_install.xml
===================================================================
RCS file: /cvsroot/leaf/devel/hejl/bt_install.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** bt_install.xml 29 Jun 2003 20:17:39 -0000 1.1
--- bt_install.xml 25 Jul 2003 18:52:30 -0000 1.2
***************
*** 1,31 ****
! <chapter id="buildtool_install"><title>Installation</title>
! <section id="buildtool_checkout"><title>CVS checkout</title>
! <para>Check out buildtool from CVS using:
! <programlisting>
! export CVS_RSH=ssh
cvs -z3 -d:ext:developername@cvs.sourceforge.net:/cvsroot/leaf \
! co src/bering-uclibc/buildtool</programlisting>
! </para>
! </section>
! <section><title>Perl</title>
! <para>Buildtool requires Perl 5.6 (or newer). It may work with Perl 5.0 (I'm not \
aware of any 5.6 features being used in buildtool), but this has not been tested so \
far.
! Additionally, you need the Perl package <filename>Config::General</filename>.
! This can be either be installed the "traditional" way (download it from \
CPAN, untar, perl Makefile.PL, make, make test and (as root) make install), or by \
running
! <userinput><![CDATA[perl -MCPAN -e 'install Config::General']]></userinput>
</para>
! </section>
! <section><title>Initial configuration</title>
! <para>
! Edit the file <filename>conf/buildtool.conf</filename> (using your favourite text \
editor). It should look similar to this:
! <programlisting>
! <![CDATA[# version number
# $Id$
Version = 0.3pre2
#####################################################################
! # files&directories
# Adjust to your needs
! # note that the dir or file entries can be relative (to the dir buildtool.pl \
resides in)
! # or absolute
#
--- 1,47 ----
! <?xml version="1.0" encoding="UTF-8"?>
! <chapter id="buildtool_install">
! <title>Installation</title>
!
! <section id="buildtool_checkout">
! <title>CVS checkout</title>
!
! <para>You can check out buildtool from thr sourceforge CVS Server. If you have \
an sourceforge user account use:
! <programlisting>export CVS_RSH=ssh
cvs -z3 -d:ext:developername@cvs.sourceforge.net:/cvsroot/leaf \
! co src/bering-uclibc/buildtool</programlisting></para>
! <para>If you don't have an account use anonymous access to the repository:
! <programlisting>cvs -d :pserver:anonymous@cvs.sourceforge.net:/cvsroot/leaf \
login</programlisting>
! Just press return if you see the password prompt. After login checkout with:
! <programlisting>cvs -z3 -d :pserver:anonymous@cvs.sourceforge.net:/cvsroot/leaf co \
src/bering-uclibc/buildtool</programlisting> </para>
!
! </section>
!
! <section>
! <title>Perl</title>
!
! <para>Buildtool requires Perl 5.6 (or newer). It may work with Perl 5.0
! (I'm not aware of any 5.6 features being used in buildtool), but this
! has not been tested so far. Additionally, you need the Perl package
! <filename>Config::General</filename>. This can be either be installed the
! "traditional" way (download it from CPAN, untar, perl Makefile.PL,
! make, make test and (as root) make install), or by running
! <userinput>perl -MCPAN -e 'install Config::General'</userinput></para>
! </section>
!
! <section>
! <title>Initial configuration</title>
!
! <para>Edit the file <filename>conf/buildtool.conf</filename> (using your
! favourite text editor). It should look similar to this:
! <programlisting># version number
# $Id$
Version = 0.3pre2
#####################################################################
! # files&directories
# Adjust to your needs
! # note that the dir or file entries can be relative (to the dir buildtool.pl
! # resides in) or absolute
#
***************
*** 50,54 ****
# good if you want to develop files
# in here and not to overwrite buildtool any files
! # this means, if a file exists and its size is > 0,
# it will not be overwritten unless you delete it!
OverwriteFiles = 0
--- 66,70 ----
# good if you want to develop files
# in here and not to overwrite buildtool any files
! # this means, if a file exists and its size is > 0,
# it will not be overwritten unless you delete it!
OverwriteFiles = 0
***************
*** 72,96 ****
# Name of the packager - please put your real name in here
# (so people will know who created the package)
! Packager=anonymous
! ]]></programlisting>
! </para>
! <para>
! Normally, the defaults in this config file are fine. The only setting that should \
be changed is the setting for the Packager. Enter your name here (this entry will be \
shown in the .help-files when creating packages - and I guess it is a good idea to \
let the user know who assembled the package).
! </para>
! </section>
! <section><title>Toolchain download/build</title>
! <para>
! Note: unless otherwise noted, you should never run buildtool as root. Errors in the \
makefile might otherwise screw up your host system (I've done it, trying to build \
ncurses...).
! </para>
! <para>
! You will probably want to open an new xterm, go to the buildtool root directory and \
enter <userinput><![CDATA[tail -f log/buildtoollog]]></userinput>
! in it. Go back to the other xterm, change to the buildtool root dir and enter \
(hopefully on a fast internet connection - there'll be several large \
downloads):
! <userinput><![CDATA[./buildtool.pl build buildenv]]></userinput>
! </para>
! <para>
! Finally, (and this must be done as root) create a link \
<filename>/lib/ld-uClibc.so.0</filename> pointing to \
<filename>$(Root_Dir)/staging/lib/ld-uClibc.so.0</filename> (where $(Root_Dir) is \
what you defined above in <filename>buildtool.conf</filename>).
! If you forget that step, you will sooner or later get a configure error (openssh is \
one of those candidates), claiming that cc cannot create binaries.
! </para>
! </section>
</chapter>
--- 88,113 ----
# Name of the packager - please put your real name in here
# (so people will know who created the package)
! Packager=anonymous</programlisting></para>
! <para>Normally, the defaults in this config file are fine. The only
! setting that should be changed is the setting for the Packager. Enter your
! name here (this entry will be shown in the .help-files when creating
! packages - and I guess it is a good idea to let the user know who
! assembled the package).</para>
! </section>
!
! <section>
! <title>Toolchain download/build</title>
!
! <note><para>Unless otherwise noted, you should <emphasis>never</emphasis> run \
buildtool as root. Errors in the makefile might otherwise screw up your host system \
(I've done it, trying to build ncurses...).</para></note>
!
! <para>You will probably want to open a new xterm (or whatever terminal emulator \
you prefer) , go to the buildtool root directory (which is \
<filename>buildtool/</filename> starting from where you made the cvs checkout) and \
enter <userinput><![CDATA[tail -f log/buildtoollog]]></userinput>
! in it. Go back to the other xterm, change to the buildtool root dir and enter \
(hopefully on a fast internet connection - there'll be several large \
downloads):
! <userinput><![CDATA[./buildtool.pl build buildenv]]></userinput></para>
!
! <para>Finally, (and this must be done as root) create a link
! <filename>/lib/ld-uClibc.so.0</filename> pointing to \
<filename>$(Root_Dir)/staging/lib/ld-uClibc.so.0</filename>
! (where $(Root_Dir) is what you defined above in \
<filename>buildtool.conf</filename>).
! If you forget that step, you will sooner or later get a configure error \
(openssh is one of those candidates), claiming that cc cannot create binaries. This \
happens because configure compiles a test program and tries to execute it. The test \
program expects the uClibc library to be in <filename>/lib</filename> , if it is not \
found the program can not be executed (and this position is hardcoded while compiling \
the buildenv and can not be changed with ldconfig).</para>
! </section>
</chapter>
Index: bt_sources.xml
===================================================================
RCS file: /cvsroot/leaf/devel/hejl/bt_sources.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** bt_sources.xml 24 Jul 2003 21:26:26 -0000 1.1
--- bt_sources.xml 25 Jul 2003 18:52:30 -0000 1.2
***************
*** 11,16 ****
and the packages/sources themselves as well as the dependencies of a given
package. All other files that are part of a package and should be
! downloaded from somewhere have to be explicitly named in the buildtool.cfg
! file of that package.</para></listitem></varlistentry><varlistentry><term>buildtool.cfg</term><listitem><para>(package
specific - will be downloaded with the information from
<filename>conf/global.cfg</filename>). Defines where to get the
--- 11,19 ----
and the packages/sources themselves as well as the dependencies of a given
package. All other files that are part of a package and should be
! downloaded from somewhere have to be explicitly named in the
! <filename>buildtool.cfg</filename> which is specific to the package. The
! file <filename>conf/global.cfg</filename> is the same for all
! packages/sources, you can find it in the <filename>conf</filename> subdir
! in your Buildtool root \
directory.</para></listitem></varlistentry><varlistentry><term>buildtool.cfg</term><listitem><para>(package
specific - will be downloaded with the information from
<filename>conf/global.cfg</filename>). Defines where to get the
***************
*** 48,54 ****
and dosfstools in <filename>conf/global.cfg</filename> will already be
there. You can decide to either just skip that section, or (for the sake
! of learning something) delete that part of <filename>conf/global.cfg and
! enter the information again manually. The following sections will assume
! that buildtool knows nothing about syslinux, util-linux and \
dosfstools.</filename></para>
<section>
--- 51,58 ----
and dosfstools in <filename>conf/global.cfg</filename> will already be
there. You can decide to either just skip that section, or (for the sake
! of learning something) delete that part of <filename>conf/global.cfg</filename>
! and enter the information again manually. The following sections will
! assume that buildtool knows nothing about syslinux, util-linux and
! dosfstools.</para>
<section>
***************
*** 111,127 ****
</File></programlisting></para>
! <para>The two server definitions tell buildtool which servers we will
! download files from. In this case it is the leaf-cvs repository for
! <filename>buildtool.mk</filename> and kernel.org for the syslinux
! sources. Next we define the file definitiones themselves - specifying
! HEAD for revision of buildtool.mk is convenient during development of a
! package (since the revision number can change often while one is trying
! to correct some bugs).</para>
! <para>Note the <filename>envname</filename> parameter - whith this
definition in the cfg-file, buildtool will set an environment variable
! (names <filename>SYSLINUX_SOURCE</filename> in this case) containing the
filename of the syslinux sources (<filename>syslinux-2.04.tar.bz2</filename>
! in this case). This will keep us from having to hardcode any
version-specific information into the makefile. Specifying
<filename>envname</filename> is not mandatory, but it keeps things
--- 115,131 ----
</File></programlisting></para>
! <para>The two server definitions tell buildtool which server it should
! use to dowload the files from. In this case it is the leaf-cvs
! repository for <filename>buildtool.mk</filename> and kernel.org for the
! syslinux sources. Next we define the file definitiones themselves -
! specifying HEAD for revision of buildtool.mk is convenient during
! development of a package (since the revision number can change often
! while one is trying to correct some bugs).</para>
! <para>Note the <filename>envname</filename> parameter - with this
definition in the cfg-file, buildtool will set an environment variable
! (named <filename>SYSLINUX_SOURCE</filename> in this case) containing the
filename of the syslinux sources (<filename>syslinux-2.04.tar.bz2</filename>
! in our example). This saves us from having to hardcode any
version-specific information into the makefile. Specifying
<filename>envname</filename> is not mandatory, but it keeps things
***************
*** 150,162 ****
source:
bzcat $(SYSLINUX_SOURCE) | tar -xvf -
! - mkdir $(SYSLINUX_TARGET_DIR)
build:
! # hack for RH 9 systems - perl seems to have a problem with UTF8
! export LANG=en_US
$(MAKE) CC=$(TARGET_CC) -C $(SYSLINUX_DIR) syslinux
-$(BT_STRIP) --strip-unneeded $(SYSLINUX_DIR)/syslinux
$(MAKE) CC=$(TARGET_CC) -C $(SYSLINUX_DIR) INSTALLROOT=$(SYSLINUX_TARGET_DIR) \
install cp $(SYSLINUX_DIR)/mbr.bin $(SYSLINUX_TARGET_DIR)/usr/bin/mbr.bin
clean:
--- 154,168 ----
source:
bzcat $(SYSLINUX_SOURCE) | tar -xvf -
! -mkdir $(SYSLINUX_TARGET_DIR)
build:
! export LANG=en_US # Hack for Redhat 9
$(MAKE) CC=$(TARGET_CC) -C $(SYSLINUX_DIR) syslinux
-$(BT_STRIP) --strip-unneeded $(SYSLINUX_DIR)/syslinux
$(MAKE) CC=$(TARGET_CC) -C $(SYSLINUX_DIR) INSTALLROOT=$(SYSLINUX_TARGET_DIR) \
install cp $(SYSLINUX_DIR)/mbr.bin $(SYSLINUX_TARGET_DIR)/usr/bin/mbr.bin
+ mkdir -p $(BT_STAGING_DIR)/usr/bin
+ -cp $(SYSLINUX_TARGET_DIR)/usr/bin/syslinux $(BT_STAGING_DIR)/usr/bin/
+ -cp $(SYSLINUX_DIR)/usr/bin/mbr.bin $(BT_STAGING_DIR)/usr/bin/
clean:
***************
*** 226,237 ****
perl -i -p -e 's,HAVE_SLANG=yes,HAVE_SLANG=no,' $(UTIL_LINUX_DIR)/MCONFIG
perl -i -p -e 's,LIBSLANG=-lslang,LIBSLANG=,' $(UTIL_LINUX_DIR)/MCONFIG
build:
! $(MAKE) CC=$(TARGET_CC) -C $(UTIL_LINUX_DIR) fdisk
$(MAKE) CC=$(TARGET_CC) -C $(UTIL_LINUX_DIR) disk-utils
-$(BT_STRIP) --strip-unneeded $(UTIL_LINUX_DIR)/fdisk/fdisk
-$(BT_STRIP) --strip-unneeded $(UTIL_LINUX_DIR)/disk-utils/mkfs.minix
! $(MAKE) -C $(UTIL_LINUX_DIR) install
!
clean:
rm -rf $(UTIL_LINUX_TARGET_DIR)
--- 232,249 ----
perl -i -p -e 's,HAVE_SLANG=yes,HAVE_SLANG=no,' $(UTIL_LINUX_DIR)/MCONFIG
perl -i -p -e 's,LIBSLANG=-lslang,LIBSLANG=,' $(UTIL_LINUX_DIR)/MCONFIG
+ -mkdir $(UTIL_LINUX_TARGET_DIR)
build:
! $(MAKE) CC=$(TARGET_CC) -C $(UTIL_LINUX_DIR) misc-utils
$(MAKE) CC=$(TARGET_CC) -C $(UTIL_LINUX_DIR) disk-utils
+ $(MAKE) CC=$(TARGET_CC) -C $(UTIL_LINUX_DIR) fdisk fdisk
-$(BT_STRIP) --strip-unneeded $(UTIL_LINUX_DIR)/fdisk/fdisk
-$(BT_STRIP) --strip-unneeded $(UTIL_LINUX_DIR)/disk-utils/mkfs.minix
! -cp $(UTIL_LINUX_DIR)/fdisk/fdisk $(UTIL_LINUX_TARGET_DIR)/
! -cp $(UTIL_LINUX_DIR)/disk-utils/mkfs.minix $(UTIL_LINUX_TARGET_DIR)/
! mkdir -p $(BT_STAGING_DIR)/sbin
! -cp $(UTIL_LINUX_DIR)/fdisk/fdisk $(BT_STAGING_DIR)/sbin/
! -cp $(UTIL_LINUX_DIR)/disk-utils/mkfs.minix $(BT_STAGING_DIR)/sbin/
!
clean:
rm -rf $(UTIL_LINUX_TARGET_DIR)
***************
*** 316,324 ****
$(MAKE) CC=$(TARGET_CC) -C $(DOSFSTOOLS_DIR) install
-$(BT_STRIP) --strip-unneeded $(DOSFSTOOLS_TARGET_DIR)/sbin/mkdosfs
clean:
rm -rf $(DOSFSTOOLS_TARGET_DIR)
! $(MAKE) -C $(DOSFSTOOLS_DIR) clean
! </programlisting>
</section>
--- 328,338 ----
$(MAKE) CC=$(TARGET_CC) -C $(DOSFSTOOLS_DIR) install
-$(BT_STRIP) --strip-unneeded $(DOSFSTOOLS_TARGET_DIR)/sbin/mkdosfs
+ mkdir -p $(BT_STAGING_DIR)/sbin
+ -cp $(DOSFSTOOLS_TARGET_DIR)/sbin/mkfs.msdos $(BT_STAGING_DIR)/sbin/
+
clean:
rm -rf $(DOSFSTOOLS_TARGET_DIR)
! $(MAKE) -C $(DOSFSTOOLS_DIR) clean</programlisting>
</section>
***************
*** 350,353 ****
--- 364,372 ----
Directory = hdsupp
Description = HD-Support package containing the tools needed to make a harddisc \
or compact flash bootable + <Requires>
+ Name = syslinux
+ Name = util-linux
+ Name = dosfstools
+ </Requires>
</Package></programlisting>
***************
*** 360,364 ****
and enter the following information to \
<filename>buildtool.cfg</filename>:</para>
! <para></para>
</section>
</section>
--- 379,437 ----
and enter the following information to \
<filename>buildtool.cfg</filename>:</para>
! <programlisting><Server cvs-sourceforge>
! Type = viewcvs
! Name = cvs.sourceforge.net/cgi-bin/viewcvs.cgi
! Serverpath = /leaf/src/bering-uclibc/apps
! </Server>
!
! <File buildtool.mk>
! Server = cvs-sourceforge
! Revision = HEAD
! Directory = hdsupp
! </File></programlisting>
!
! <para>As you can see, this one is extremely simple. Since hdsupp
! doesn't provide any sources, we only need to specify \
buildtool.mk.</para>
!
! <para>This is not all we need to add here - there's more to get
! <filename>buildpacket</filename> to work. But this will be taken care
! of in the "Step by step" section of the buildpacket chapter.
! (TODO add link)</para>
! </section>
!
! <section>
! <title>Hdsupp makefile</title>
!
! <para>You may be wondering why we need a makefile at all, since hdsupp
! does not provide any sources. You are right - we don't
! <emphasis>need</emphasis> a makefile. But to keep buildtool happy (and
! to make sure that buildpacket can verify that hdsupp has actually been
! build), we will provide one that simply does nothing. </para>
!
! <para>As before create a new file called <filename>buildtool.mk</filename>
! in <filename>sources/hdsupp</filename> and enter the following
! contents:</para>
!
! <programlisting>#############################################################
! #
! # hdsupp
! #
! #############################################################
!
! include $(MASTERMAKEFILE)
!
! source:
! # nothing to be done
!
! build:
! # nothing to be done
!
! clean:
! # nothing to be done</programlisting>
!
! <para>That's it. You can now enter ./buildtool.pl build hdsupp and
! (hopefully) buildtool will download and compile everything needed. If
! something goes wrong, have a look at the buildtool-logfile (usually
! the the error-messages are pretty clear about what's wrong).</para>
</section>
</section>
Index: bt_usage.xml
===================================================================
RCS file: /cvsroot/leaf/devel/hejl/bt_usage.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** bt_usage.xml 24 Jul 2003 22:26:27 -0000 1.2
--- bt_usage.xml 25 Jul 2003 18:52:30 -0000 1.3
***************
*** 6,22 ****
<title>Options</title>
! <para><programlisting>
! usage: ./buildtool.pl command [pkgname]|[srcname] [...]
commands:
! describe [pkgname]|[srcname] shows descriptionlines of package
! [-f] source [pkgname]|[srcname] downloads, unpacks and patches
! the wanted package/source
! [-f] build [pkgname]|[srcname] the same as source, but builds
! and installs sources/packages also
! [-f] clean [pkgname]|[srcname] make a 'make clean' in srcdir
! [-f] dlclean [pkgname]|[srcname] remove everything from dldir
! distclean remove everything
! maketar make a tar for distribution
The -f switch allows you to force building sourcing and cleaning
--- 6,22 ----
<title>Options</title>
! <para><programlisting>usage: ./buildtool.pl command [pkgname]|[srcname] [...]
commands:
! describe [pkgname]|[srcname] shows descriptionlines of package
! [-f] source [pkgname]|[srcname] downloads, unpacks and patches
! the wanted package/source
! [-f] build [pkgname]|[srcname] the same as source, but builds
! and installs sources/packages also
! [-f] clean [pkgname]|[srcname] make a 'make clean' in srcdir
! [-f] dlclean [pkgname]|[srcname] remove everything from dldir
! [-f] srcclean [pkgname]|[srcname] make a 'make srcclean' in srcdir
! distclean remove everything
! maketar make a tar for distribution
The -f switch allows you to force building sourcing and cleaning
***************
*** 30,36 ****
configuration for (see the next chapter on how to create such a
configuration). To get a listing about the sources that are configured for
! buildtool type <programlisting>
! ./buildtool.pl describe</programlisting> This will give you a list (and a
! short description) of all sources/packages that can be built.</para>
</section>
--- 30,64 ----
configuration for (see the next chapter on how to create such a
configuration). To get a listing about the sources that are configured for
! buildtool type <programlisting> ./buildtool.pl describe</programlisting>This
! will give you a list (and a short description) of all sources/packages
! that can be built. An example output looks like this:
! <programlisting> ./buildtool.pl describe
!
! The following packages and sources are available:
!
! Sources:
! ---------------------------------------------------------
! openssh openssh
! tcp_wrappers Wietse Venema's TCP wrappers library
! helloworld classical example
! openssl Secure Sockets Layer and cryptography libraries and tools
! zlib zLib shared libraries
! linux kernel source only package
!
! Packages:
! ---------------------------------------------------------
! buildenv this holds everything to build cross build env
! kernel kernel pseudo package</programlisting></para>
! </section>
!
! <section>
! <title>The difference between sources and packages</title>
!
! <para>You might be a bit confused why in the above output there are
! Sources and Packages. The main reason for having sources and packages
! seperatly is that there are some sources out there that produce programs
! used in several packages. Or another word it sometimes make sense to just
! build the sources (like util-linux for example) only once and create
! several packages out of the resulting binaries.</para>
</section>
***************
*** 38,49 ****
<title>Downloading the sources for a package</title>
! <para>Running <programlisting>
! ./buildtool.pl source somepackageName</programlisting> will cause the sources
! of <emphasis>somepackageName</emphasis> (and before that, all its
! dependencies, if there are any that haven't been downloaded yet) to be
! downloaded. After that, the makefile <filename>buildtool.mk</filename> for
! this source is executed for target <emphasis>source</emphasis>. This has
! the effect that the sources will be extracted, and patches (if there are
! any) are applied.</para>
<para>If all this completes without error, the sources of
--- 66,76 ----
<title>Downloading the sources for a package</title>
! <para>Running <programlisting>./buildtool.pl source \
somepackageName</programlisting>
! will cause the sources of <emphasis>somepackageName</emphasis> (and before
! that, all its dependencies, if there are any that haven't been
! downloaded yet) to be downloaded. After that, the makefile
! <filename>buildtool.mk</filename> for this source is executed for target
! <emphasis>source</emphasis>. This has the effect that the sources will be
! extracted, and patches (if there are any) are applied.</para>
<para>If all this completes without error, the sources of
***************
*** 54,63 ****
<title>Compiling the sources for a package</title>
! <para>Running <programlisting>
! ./buildtool.pl build somepackageName</programlisting> will cause buildtool to
! actually compile the source and install it to the <filename>build</filename>
! directory (and all its dependencies). After this has completed
! successfully, all binaries required for the lrp package (linked against
! uClibc) reside in the <filename>build</filename> directory.</para>
</section>
</chapter>
--- 81,90 ----
<title>Compiling the sources for a package</title>
! <para>Running <programlisting>./buildtool.pl build \
somepackageName</programlisting>
! will cause buildtool to actually compile the source and install it to the
! <filename>build</filename> directory (and all its dependencies). After
! this has completed successfully, all binaries required for the lrp package
! (linked against uClibc) reside in the <filename>build</filename>
! directory.</para>
</section>
</chapter>
Index: buildpacket.xml
===================================================================
RCS file: /cvsroot/leaf/devel/hejl/buildpacket.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** buildpacket.xml 29 Jun 2003 20:17:39 -0000 1.1
--- buildpacket.xml 25 Jul 2003 18:52:30 -0000 1.2
***************
*** 1,212 ****
! <chapter><title>Creating lrp packages with buildpacket</title>
! <section><title>Step by step guide to setting up the configuration for \
hdsupp.lrp</title>
! <para>TODO</para>
! </section>
! <section><title>Configuration</title>
! <para>
! The configuration for this script is integrated into the buildtool.cfg
! file that controls the download of the sources. It resides in its own
! block called "Package". Sample (comments below):
! <programlisting><![CDATA[<Package>
! <sshd>
! Version = 3.6.1p1
! Revision = 1
! Skeleton = sshd.skel.tgz
! Help <<EOF
! OpenSSH sshd daemon.
! See http://www.openssh.org
! LRP package by __PACKAGER__, __BUILDDATE__
! EOF
! <Permissions>
! Files = 644
! Directories = 755
! </Permissions>
! <Owner>
! Files = root:root
! Directories = root:root
! </Owner>
! <Contents>
! <File>
! Filename = etc/init.d/sshd
! Description = sshd daemon init file
! Type = conf
! Type = local
! </File>
! <File>
! Filename = etc/ssh
! Type = list
! Type = local
! </File>
! <File>
! Filename = etc/ssh/sshd_config
! Description = sshd config file
! Type = conf
! </File>
! <File>
! Source = usr/local/sbin/sshd
! Filename = usr/sbin/sshd
! Type = binary
! Permissions = 755
! </File>
! <File>
! Source = etc/ssh/moduli
! Filename = etc/ssh/moduli
! Type = binary
! </File>
! <File>
! Source = usr/local/bin/scp
! Filename = usr/bin/scp
! Type = binary
! Permissions = 755
! </File>
! </Contents>
! </sshd>
! <anotherPackageHere>
! ...
! </anotherPackageHere>
! </Package>]]></programlisting>
! </para>
! <section><title>Version</title>
! <para>
! The version of the source-code used to compile the package
! </para>
! </section>
! <section><title>Revision</title>
! <para>
! Revision of the package (to distinguish different builds of the same source)
! </para>
! </section>
! <section><title>Skeleton</title>
! <para>
! The skeleton file to build the package
! </para>
! </section>
! <section><title>Permissions</title>
! <para>
! Default permissions to give files/directories
! </para>
! </section>
! <section><title>Owner</title>
! <para>
! Default ownership given to the files/directories
! </para>
! </section>
! <section><title>Help</title>
! <para>
! Text to put into the .help file. If the .help file should only consist of a single \
line, you can simply define ist as
! <programlisting>Help = Text for the help file</programlisting>. If you need more \
than one line (most likely you will), you
! can use the mechanism used in the example.
! </para>
! <para>
! The following "tags" that will be
! replaced at build time are supported:
! <itemizedlist>
! <listitem><para>
! __PACKAGER__ The name of the user who built the package (this is why you need to \
specify the packager on the commmand line).
! </para>
! </listitem>
! <listitem><para>
! __BUILDDATE__ Date the package was created
! </para>
! </listitem>
! </itemizedlist>
! </para>
! </section>
! <section><title>Contents</title>
! <para>
! List of "File" blocks that define the contents of the package.
! <note><para>Only the files that need special care like binaries or
! directories "owned" by the lrp need to be listed here - stuff that
! came from the skeleton file or the files automatically generated by
! the tool are added automatically (but if they need other
! permissions/ownership than the default, you still need to specify
! them - as "LIST", for example). A file can be of more than one type - in
! this case, simply specify more than one "Type = xxx" line.
! </para>
! </note>
! </para>
! </section>
! <section><title>File</title>
! <para>
! Filename (including relative path) of the file in the
! package Source: relative (to buildtools staging-dir) path/filename
! to the file generated by buildtool. Possible file-types are:
! <itemizedlist>
! <listitem><para>
! binary: (for files that are copied from the staging_dir of buildtool - not \
neccessarily a <emphasis>binary</emphasis>)
! </para>
! </listitem>
! <listitem><para>
! list: file (or pattern) to add to the packagename.list file
! </para>
! </listitem>
! <listitem><para>
! conf:file to add to packagename.conf
! </para>
! </listitem>
! <listitem><para>local: file to add to packagename.local (for partial backups). At
! this point only the type "I" (for including the file in the
! local backup) is supported, type "X" (for excluding a file
! from the local backup) is not.
! </para>
! </listitem>
! </itemizedlist>
! </para>
! </section>
! </section>
! <section><title>Creating packages</title>
! <para>
! Usage:
! <programlisting>buildpackage --package=packagename --packager=name_of_packager
[--target=packagefile] [-lrp=existing.lrp] [--verbose]</programlisting>
! Example:
! <programlisting>./buildpacket.pl --package=zlip --packager="Martin Hejl" \
--verbose</programlisting>
! <caution><para>Currently, buildpacket does not check, wether the sources have \
already been installed. This is something that will be done later on, when \
buildpacket is more integrated into builtool</para></caution>
! </para>
! <section><title>Options</title>
! <para>
! <itemizedlist>
! <listitem><para>
! --package The name of the package you compiled using <command>./buildtool.pl build \
packagename</command></para>
! </listitem>
! <listitem><para>
! --packager:
! The name of the user who created the package. The string you enter
! here is added to the .help file (if the help section contains the \
__PACKAGER__ tag)</para>
! </listitem>
! <listitem><para>
! --target:
! For packages that create more than one lrp-file (like openssh), this
! specifies which lrp to create. If this option is omitted, the value
! of --package is used</para>
! </listitem>
! <listitem><para>
! --lrp:
! If you already have an existing lrp file and you want to migrate
! your configuration to the new package, specify the lrp file here and
! it will be integrated into the package (if the .cfg file is set up
! correctly, the config will be migrated, but all binaries will be
! replaced with the new versions). This needs more work (it's pretty crude at \
this point), probably the lck-scripts by Alex Rhomberg will be integrated/used to \
take care of this.</para>
! </listitem>
! <listitem><para>
! --verbose:
! Turns on verbose logging</para>
! </listitem>
! </itemizedlist>
! </para>
! </section>
! </section>
! </chapter>
!
--- 1,284 ----
! <?xml version="1.0" encoding="UTF-8"?>
! <chapter>
! <title>Creating lrp packages with buildpacket</title>
! <section>
! <title>Step by step guide to setting up the configuration for \
hdsupp.lrp</title>
! <para>In this section, we will finish up the hdsupp package, so
! buildpacket will be able to create an lrp-file from the sources buildtool
! created. To do this, open source/hdsupp/buildtool.cfg and append the
! following text:</para>
! <programlisting><Package>
! <hdsupp>
! Version = 1.0
! Revision = 1
! Help <<EOF
! Tools to be create a bootable partition from within Bering-uClibc.
! The procedure to get a plain syslinux partition (if you want to use lilo,
! you're on your own) is something like this:
! 1. make sure your Bering install actually supports your harddrive
! (i.e. insert the appropriate modules)
! 2. Run fdisk to create the partitions. I usually create an empty DOS
! partition table (using the 'o' command) create a primary partition, \
make
! that bootable (using the 'a' command)
! 3. Run mkfs.msdos on the newly created partition (e.g. mkfs.msdos /dev/hda1)
! 4. Copy the MBR to the drive using (assuming your harddrive is /dev/hda)
! dd if=/usr/bin/mbr.bin of=/dev/hda bs=512 count=1
! 5. Mount the drive and copy the bering files onto the drive (please read
! the bering users guide, section "Booting from an IDE device", it has \
some
! vital info for that part of the process)
! Remember to change the 'boot' and 'PKGPATH' to point to your \
harddrive.
! 6. run syslinux (e.g. syslinux /dev/hda1) This is usually the last thing I do
! (after unmounting the partition again, of course), because that way, I can
! simply copy everything from the floppy without having to worry about leaving \
! ldlinux.sys alone (since that gets overwritten with the correct version by
! running syslinux)
! EOF
! <Permissions>
! Files = 644
! Directories = 755
! </Permissions>
! <Owner>
! Files = root:root
! Directories = root:root
! </Owner>
! <Contents>
! <File>
! Source = sbin/fdisk
! Filename = sbin/fdisk
! Type = binary
! Permissions = 755
! </File>
!
! <File>
! Source = sbin/mkfs.minix
! Filename = sbin/mkfs.minix
! Type = binary
! Permissions = 755
! </File>
!
! <File>
! Source = sbin/mkfs.msdos
! Filename = sbin/mkfs.msdos
! Type = binary
! Permissions = 755
! </File>
!
! <File>
! Source = usr/sbin/syslinux
! Filename = usr/sbin/syslinux
! Type = binary
! Permissions = 755
! </File>
!
! <File>
! Source = usr/sbin/mbr.bin
! Filename = usr/sbin/mbr.bin
! Type = binary
! # We don't neet to specify permissions here, since the default 644 will \
do just fine
! </File>
! </Contents>
! </hdsupp>
! </Package></programlisting>
! <para></para>
! <para></para>
! </section>
! <section>
! <title>Configuration</title>
! <para>The configuration for this script is integrated into the
! buildtool.cfg file that controls the download of the sources. It resides
! in its own block called "Package". Sample (comments below):
! <programlisting><Package>
! <sshd>
! Version = 3.6.1p1
! Revision = 1
! Skeleton = sshd.skel.tgz
! Help <<EOF
! OpenSSH sshd daemon.
! See http://www.openssh.org
! LRP package by __PACKAGER__, __BUILDDATE__
! EOF
! <Permissions>
! Files = 644
! Directories = 755
! </Permissions>
!
! <Owner>
! Files = root:root
! Directories = root:root
! </Owner>
!
! <Contents>
!
! <File>
! Filename = etc/init.d/sshd
! Description = sshd daemon init file
! Type = conf
! Type = local
! </File>
!
! <File>
! Filename = etc/ssh
! Type = list
! Type = local
! </File>
!
! <File>
! Filename = etc/ssh/sshd_config
! Description = sshd config file
! Type = conf
! </File>
!
! <File>
! Source = usr/local/sbin/sshd
! Filename = usr/sbin/sshd
! Type = binary
! Permissions = 755
! </File>
!
! <File>
! Source = etc/ssh/moduli
! Filename = etc/ssh/moduli
! Type = binary
! </File>
!
! <File>
! Source = usr/local/bin/scp
! Filename = usr/bin/scp
! Type = binary
! Permissions = 755
! </File>
!
! </Contents>
! </sshd>
!
! <anotherPackageHere>
! ...
! </anotherPackageHere>
! </Package></programlisting></para>
!
! <section>
! <title>Version</title>
!
! <para>The version of the source-code used to compile the package</para>
! </section>
!
! <section>
! <title>Revision</title>
!
! <para>Revision of the package (to distinguish different builds of the
! same source)</para>
! </section>
!
! <section>
! <title>Skeleton</title>
!
! <para>The skeleton file to build the package</para>
! </section>
!
! <section>
! <title>Permissions</title>
!
! <para>Default permissions to give files/directories</para>
! </section>
!
! <section>
! <title>Owner</title>
!
! <para>Default ownership given to the files/directories</para>
! </section>
!
! <section>
! <title>Help</title>
!
! <para>Text to put into the .help file. If the .help file should only
! consist of a single line, you can simply define ist as
! <programlisting>Help = Text for the help file</programlisting>. If you
! need more than one line (most likely you will), you can use the
! mechanism used in the example.</para>
!
! <para>The following "tags" that will be replaced at build time
! are supported: <itemizedlist><listitem><para>__PACKAGER__ The name of
! the user who built the package (this is why you need to specify the
! packager on the commmand \
line).</para></listitem><listitem><para>__BUILDDATE__
! Date the package was created</para></listitem></itemizedlist></para>
! </section>
!
! <section>
! <title>Contents</title>
!
! <para>List of "File" blocks that define the contents of the
! package. <note><para>Only the files that need special care like binaries
! or directories "owned" by the lrp need to be listed here - stuff
! that came from the skeleton file or the files automatically generated by
! the tool are added automatically (but if they need other
! permissions/ownership than the default, you still need to specify them -
! as "LIST", for example). A file can be of more than one type -
! in this case, simply specify more than one "Type = xxx" \
line.</para></note></para>
! </section>
!
! <section>
! <title>File</title>
!
! <para>Filename (including relative path) of the file in the package
! Source: relative (to buildtools staging-dir) path/filename to the file
! generated by buildtool. Possible file-types are:
! <itemizedlist><listitem><para>binary: (for files that are copied from
! the staging_dir of buildtool - not neccessarily a \
<emphasis>binary</emphasis>)</para></listitem><listitem><para>list:
! file (or pattern) to add to the packagename.list \
file</para></listitem><listitem><para>conf:file
! to add to packagename.conf</para></listitem><listitem><para>local: file
! to add to packagename.local (for partial backups). At this point only
! the type "I" (for including the file in the local backup) is
! supported, type "X" (for excluding a file from the local backup)
! is not.</para></listitem></itemizedlist></para>
! </section>
! </section>
!
! <section>
! <title>Creating packages</title>
!
! <para>Usage: <programlisting>buildpackage --package=packagename \
--packager=name_of_packager
[--target=packagefile] [-lrp=existing.lrp] [--verbose]</programlisting>
! Example:</para>
!
! <programlisting>./buildpacket.pl --package=zlip --packager="Martin \
Hejl" --verbose</programlisting>
!
! <caution>
! <para>Currently, buildpacket does not check, wether the sources have
! already been installed. This is something that will be done later on,
! when buildpacket is more integrated into builtool</para>
! </caution>
!
! <section>
! <title>Options</title>
!
! <para><itemizedlist><listitem><para>--package The name of the package
! you compiled using <command>./buildtool.pl build \
packagename</command></para></listitem><listitem><para>--packager:
! The name of the user who created the package. The string you enter here
! is added to the .help file (if the help section contains the
! __PACKAGER__ tag)</para></listitem><listitem><para>--target: For
! packages that create more than one lrp-file (like openssh), this
! specifies which lrp to create. If this option is omitted, the value of
! --package is used</para></listitem><listitem><para>--lrp: If you already
! have an existing lrp file and you want to migrate your configuration to
! the new package, specify the lrp file here and it will be integrated
! into the package (if the .cfg file is set up correctly, the config will
! be migrated, but all binaries will be replaced with the new versions).
! This needs more work (it's pretty crude at this point), probably the
! lck-scripts by Alex Rhomberg will be integrated/used to take care of
! this.</para></listitem><listitem><para>--verbose: Turns on verbose
! logging</para></listitem></itemizedlist></para>
! </section>
! </section>
! </chapter>
\ No newline at end of file
Index: buildtool_gsg.xml
===================================================================
RCS file: /cvsroot/leaf/devel/hejl/buildtool_gsg.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** buildtool_gsg.xml 24 Jul 2003 22:26:27 -0000 1.3
--- buildtool_gsg.xml 25 Jul 2003 18:52:30 -0000 1.4
***************
*** 34,50 ****
<revnumber>0.1</revnumber>
<date>2003-05-29</date>
! <revremark>Initial release</revremark>
</revision>
<revision>
<revnumber>0.2</revnumber>
<date>2003-06-01</date>
! <revremark>Added info on directory structure and makefile sample, minor \
cleanups</revremark> </revision>
<revision>
<revnumber>0.3</revnumber>
<date>2003-06-29</date>
! <revremark>Started writing step-by-step chapter</revremark>
</revision>
!
</revhistory>
</bookinfo>
--- 34,55 ----
<revnumber>0.1</revnumber>
<date>2003-05-29</date>
! <revremark>Initial release (Martin Hejl)</revremark>
</revision>
<revision>
<revnumber>0.2</revnumber>
<date>2003-06-01</date>
! <revremark>Added info on directory structure and makefile sample, minor cleanups \
(Arne Bernin)</revremark> </revision>
<revision>
<revnumber>0.3</revnumber>
<date>2003-06-29</date>
! <revremark>Started writing step-by-step chapter (Martin Hejl)</revremark>
</revision>
! <revision>
! <revnumber>0.4</revnumber>
! <date>2003-07-25</date>
! <revremark>Completed first revision of step-by-step chapter (Martin Hejl),
! corrections/additions (Arne Bernin)</revremark>
! </revision>
</revhistory>
</bookinfo>
***************
*** 52,56 ****
<section><title>What is buildtool?</title>
<para>
! Buildtool is a set of perl-scripts/packages to build lrp-packages from source. \
Everything in the build process is automated, from downloading the sources and \
applying patches to configureing/building the source and creating the lrp-package. \
</para> </section>
--- 57,61 ----
<section><title>What is buildtool?</title>
<para>
! Buildtool is a set of perl-scripts/packages to build lrp/leaf-packages from source. \
Everything in the build process is automated, from downloading the sources and \
applying patches to configuring/building the source and creating the lrp-package. \
</para> </section>
-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
Leaf-cvs-commits mailing list
Leaf-cvs-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/leaf-cvs-commits
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic