debian-scala HOWTO: Debian on non-Linux systems
Here's the HOWTO as it currently stands. I don't have a lot of time in the
coming weeks (lots of Real Work) so I wanted to give you guys a chance to
look it ofer, try it, and comment on it before I release it on debian-devel.
I assume a lot of people will be interested in it, so I'd rather have more
than less info in it before I post it there.
Please mail comments etc. I want to send it out thursday if possible.
Regards, Nils.
-------------------------------------------------------------------------
-- debian-scala HOWTO
-- automatic source retrieval, compilation, and installation
-- on non-linux architectures
-- comments: lohner@debian.org
-------------------------------------------------------------------------
HISTORY:
1999-12-13 added details in apt section
1999-12-10 Created
OBJECTIVE
The purpose of this document is to show how to set up a system that allows
the user to 'apt-get source' a package, compile it, and install it on any
operating system and any architecture.
Once this is basically working, it could lead to a 'make world' of Debian on
non-linux systems, and other fun goals.
Mailing Lists are:
deity@lists.debian.org (for any apt related problems _only_)
debian-dpkg@lists.debian.org (for any dpkg related problems _only_)
debian-devel@lists.debian.org (for discussion)
TODO:
- check out on which systems it works
- smooth out wringles in apt and debian installation (too much done by hand
ATM)
- try actually compiling packages after apt-get source'ing (some comments at
bottom of howto)
- decide how the packages should install on non linux systems
(/usr/local/debian hierarchy, for example?)
/////////////////////////////////////////////////////////////////////////
### STEP 1: get and compile apt
/////////////////////////////////////////////////////////////////////////
Apt is currently known to work on the following non-Linux architectures:
solaris
openbsd
hp-ux
-- get apt from CVS
cvs -d :pserver:anonymous@localhost:/cvs/deity login
(blank password)
cvs -d :pserver:anonymous@localhost:/cvs/deity co /cvs/deity
-- configure the build tree
make startup
-- build
make
-- if there are any configure or build problems
mail -complete- details to: deity@lists.debian.org
-- install the binaries and methods somewhere
-- tell apt where to find its configuration file (not sure how atm)
apt-config
-- Create an apt configuration file
vi ~/.apt.conf
// Content:
// (modify as needed...)
// check doc/examples/configure-index for other settings
acquire::http::proxy "http://wwwproxy.teradyne.com:80/";
dir
{
State "/u/lohner/apt/aptdata"
{
Status "status";
}
Cache "/u/lohner/apt/aptdata";
Etc "/u/lohner/apt/aptdata";
Bin
{
methods "/u/lohner/misc/debian/apt/build/bin/methods";
}
}
-- Create a sources.list file
vi ~/apt/aptdata/sources.list
# Content:
# just one of the main mirrors... pick one more local to you.
deb-src http://samosa.debian.org/debian potato main contrib non-free
-- Create the directory hierarchy that you need for APT to work
mkdir ~/apt
mkdir ~/apt/aptdata
mkdir ~/apt/aptdata/lists
mkdir ~/apt/aptdata/lists/partial
mkdir ~/apt/aptdata/archives
mkdir ~/apt/aptdata/archives/partial
-- touch the status file
touch /u/lohner/apt/aptdata/status
-- and get the packages files
apt-get update
-- you're ready to use it.
apt-get source dpkg
/////////////////////////////////////////////////////////////////////////
### STEP 2: get and compile dpkg
/////////////////////////////////////////////////////////////////////////
-- get dpkg from CVS
cvs -d :pserver:anonymous@localhost:/cvs/dpkg login
(blank password)
cvs -d :pserver:anonymous@localhost:/cvs/dpkg co dpkg
-- configure the build tree
./autogen.sh
-- if you don't want dselect built (some c++ problems...)
add '--without-dselect to the configure line in debian/build
-- build
make -f debian/rules build
--install
make DESTDIR=<your_favorite_root_path> install
CAUTION: This will create an ENTIRE TREE with dpkg installed in it for you!
/////////////////////////////////////////////////////////////////////////
### STEP 3: get and compile packages
/////////////////////////////////////////////////////////////////////////
###Misc info
dpkg-source -x and dpkg-buildpackage -B
<Espy> at the lowest level you make a tree of files in somedir the same as
they are to be in the package, put maintainer scripts and other control
stuff in somedir/DEBIAN, use dpkg-gencontrol to make
somedir/DEBIAN/control
and dpkg-deb --build to make the deb
<Manoj> CQ:
apt-get source <PKG>; cd `ls -1`; ./debian/rules binary; dpkg -i ../*.deb
<Manoj> CQ: what is lacking from dpkg -BOGiE ../*.deb; apart from a little
error checking?
Reply to: