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

new port: and the winner is....




hi

  ---the name of the game

I have reread dpkg-*/archtable a few times and I have
seen that the name of the ports have been chosen, in the past,
without following any rigorous rule; e.g,
i386 means 'linux kernel on Intel 32 bit 386 compatible processors' 
m68k means 'linux kernel on Macintosh and atari and sun3 and amiga'
etc,etc

I have then read all the (many) replies
(and the ones on debianplanet, too); there were many ideas; thanks.

I have then decided for the name of the new port: I have
decided to stick to 
 canonical Debian architecture name= win
 full name=  Debian GNU/win


Why? well, there was no big consenous on any name; so I looked at the
problem the other way around, and saw that nobody was actually against
'win', but for
 jsbien@mimuw.edu.pl (Janusz S. Biee?), who said that
 
> In hacker language, calling something a "win" is a form of praise.  We
> don't want to praise a non-free Microsoft system, so we don't call it
> "win".

but this does not apply here; I indeed hope that 'Debian GNU/win'
will be a 'win' :-)

 -----why is the 'win' port important? 

because there are many people that use a PC and cannot, or don't want,
to completely abandon their usual O.S. (you know which O.S. :-}  )

e.g. some friends of mine have expressed some concern
when I proposed to install Debian: they are quite productive
using  Micro$oft window$, and, if they would boot a linux system;
they would not even be able to configure their usual e-mail provider

and yet they may enjoy using Debian; their knowledge of Debian may start
from using some powerful tool (think of the findutils !), 
and extend smoothly; and when they really start enjoying it,
they may even decide to 'boot in the brave new world'

 ---- what has been done

I have patched dpkg to add the new architecture.

I have already cross compiled a first version of some packages, namely:
 zlib1g libtiff libjpeg libpng glib-gtk1.3 gdk-pixbuf gtkmorph;

I copied manually the latter into a windows system, with all the libs,
and it really works.

I have sent many bugs regarding this port; in particular, I hope
to have a version of dpkg-cross that will work with the new port , to
speed things up

I have written an .html that explains the port, and it explains 
how to adapt packages to cross-compile properly

 ----what needs to be discussed

1) I need a web page, linked  under www.debian.org/ports,
 to put the description of the new port; where do I put it?
  I also need some web space to put the material (.debs, etc)

2) I have a  big problem with shared libs; I am clueless;
 I dont understand if I should generate them as  
 a) libfoo.so
 b) libfoo.dll 
 c) both of the above
 I dont know enough of the problem, please help.
 
 does 'libfoo.so'  work with cygwin ? 
 
 do we have versioned dll's ? 
 if so, when the package  generates libfoo.so.1 , the 'win' port should ship
 libfoo.so.1.dll , since I dont think that libfoo.dll.1 would ever work
 
 if we choose b) or c) , we will need to
 patch a lot of things: e.g., we may patch dh-movefile so that
 it automatically prints a warn and moves libfoo.*.dll when
 it  moves libfoo.*.so; nonetheless, we will need to patch
 a lot of 'install libfoo.so' lines in debian/rules
 (adding 'ifeq ($(DEB_HOST_ARCH),win), install libfoo.dll, else ....)

 we also need to modify dpkg-shlibs

3) since , to cross compile, it is useful to have the variables
DEB_BUILD_ARCH=i386
....
DEB_HOST_GNU_TYPE=...

properly set in debian/rules, I have a proposal: we may add
a makefile  /usr/share/dpkg/rules.std  to dpkg-dev
that defines many useful variables, that is, containing
---
DEB_BUILD_ARCH := $(shell dpkg-architecture -qDEB_BUILD_ARCH)
....
DEB_HOST_GNU_TYPE:= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
 DEB_CONFIGURE := --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)
 DEB_CC := $(DEB_HOST_GNU_TYPE)-gcc
 DEB_CXX := $(DEB_HOST_GNU_TYPE)-g++
 ....
else
 DEB_CC := gcc
 DEB_CXX := g++
 ...
endif 
---

 then, to prepare a package to cross compile ok, the first thing would be
 to add an 'include /usr/share/dpkg/rules.std' into debian/rules;
 and then to add some lines here and there, e.g., CC=$(DEB_CC) before a make

4) what about ncurses? do these work in windows' terminals? 

--------from here on

from here on, I think that we may restrict the discussion on 'win'
into the win32@lists.debian.org mailing list.

if someone wishes to collaborate, please subscribe there: we will then
divide the tasks; next things in line are: 

0) port the important libraries; in particular, to port dpkg and apt-get, 
 I need to port libstdc++ (which is 16Mb!)
1) port the base packages
2) port all the build tools
3) port anything we like

------------

bye

a.


-- 
A Mennucc
 "È un mondo difficile. Che vita intensa!" (Renato Carotone)



Reply to: