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

debian-scala HOWTO v0.2: Debian on non-Linux systems




This is a howto I started when I got too sick of being on solaris, 
downloading source tarballs, compiling them and installing them.  What I'd 
like this to become is the 'how to use apt to make your life on non-linux 
systems easier' howto.  I'm not sure if that means creating a 
/usr/local/debian on other systems and adding parts of that tree to your 
path, or trying to use the undebianized versions of packages (just the 
.orig.tar.gz tarballs and compiling) or what.

That's why I'm posting this already.  The apt and dpkg parts work, but I'm 
not sure where to go next, so I'm looking for discussion and input and 
people willing to test the ideas we come up with.  Long term, other goals 
may pop up, but for now I think that the goal is big enough.

Comment season is open.

Regards, Nils.




-------------------------------------------------------------------------
-- debian-scala HOWTO 
-- version 0.2 2000-01-06
-- automatic package source retrieval, compilation, and installation
--  on non-linux architectures
-- comments: lohner@debian.org, debian-devel@lists.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
/////////////////////////////////////////////////////////////////////////
apt-get source binutils


### Misc info for building packages

 dpkg-source -x and dpkg-buildpackage -B

 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


apt-get source <PKG>; cd `ls -1`; ./debian/rules binary; dpkg -i ../*.deb
(or) dpkg -BOGiE ../*.deb









Reply to: