[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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

1999-12-13 added details in apt section
1999-12-10 Created


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)

- check out on which systems it works
- smooth out wringles in apt and debian installation (too much done by hand 
- 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:

-- 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

-- 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)

-- 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/";;
   State "/u/lohner/apt/aptdata"
      Status "status";
   Cache "/u/lohner/apt/aptdata";
   Etc "/u/lohner/apt/aptdata";
      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

-- 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

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 
   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: