summaryrefslogtreecommitdiffstats
path: root/docs/HACKING
blob: 1d205bcf6a089c47bb89e9bd6a3d7698371ab126 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
-=-=--
DrakX is a very big project, and it needs special setups to work.
The purpose of this file is to explain how you can setup your box to make it
compile and run.
-=-=--

Beware, don't try this on a production machine with important data.


--------------------------------------------------------------------------
Sources installation:

First grab the gi.tar.bz2 archive and untar it in your home directory, for 
example from DrakX-*.src.rpm on your Mandrakelinux distribution.

Fix a few things:
% find gi -name "*/CVS/root/*" | xargs perl -pi -e 's/prigaux/anoncvs/'

Then, log yourself into the cvs:
% export CVS_RSH=ssh
% export CVSROOT=:ext:anoncvs@cvs.mandrakesoft.com:/cooker
% cvs checkout gi
        (the passwd is: 'cvs')

And update the gi package:
% cvs update -P -d gi


--------------------------------------------------------------------------
Preparing the compilation process:

(1) target directory

Create a top level directory called /export and give write permissions to 
the user/group that will be compiling DrakX.  It is also suggested that you 
copy a recent Mandrakelinux CD in there. (You don't have to put have all 
the RPMS...) ; you'll need roughly 1.5 Gbytes for a full install. (It is 
possible to not have a copy of Mandrakelinux there, if all you desire is to 
compile gi)


(2) support directories

You will need to create a top level /RPMS directory.  This directory needs 
to be populated with the following RPMS:
locales-ja locales-ko locales-zh

GI needs to be informed about which kernel(s) is/are to be used.
Most of the time, no manual install is needed. Just be sure to
have the BOOT kernel(s) in /RPMS, and typing make later on will
extract the package(s) and build stuff from it.

FYI, for each kernel, directories will be populated as follows:

gi/kernel/all.kernels/2.6.0
        special files containing 
        - vmlinuz, modules.dep
        - modules for stage1 (*.mar, *.tar)
        - modules for stage2 (modules.cz)


(3) required rpm packages

You need quite a number of rpm packages installed on your system
to build gi properly. Roughly:

emacs gcc make glibc-devel glibc-static-devel perl-devel XFree86
xorg-x11-Xvfb x11-devel glib2-devel
gtk+2-devel ldetect ldetect-devel ldetect-lst
ldetect-lst-devel libslang-devel libnewt-devel e2fsprogs
ext2fs2-devel dosfstools rpm-devel rpmtools bzip2_1-devel
ncurses5-devel setserial telnet
parted raidtools pciutils pciutils-devel perl-doc mt-st gpart reiserfsprogs jfsprogs
xfsprogs extipl pcmcia-cs gettext perl-Gtk2 perl-Glib perl-XML-Parser ash imlib
fb2png ntfsprogs lm_sensors galaxy-gnome perl-PerlIO-gzip brltty
lvm2 mkcd perl-URPM glibc-i18ndata cloop-utils partimage syslinux
memtest86+ dmraid dietlibc-devel xfsdump dump mdadm mailman

You may need a few others I forgot to mention. If the compilation fails, try 
to understand the message and install any necessary remaining package.


(4)

NEVER build or run Drakx as root.  Install sudo and setup the following 
permissions in /etc/sudoers:

user ALL=(root)
NOPASSWD:/usr/bin/patch,NOPASSWD:/bin/rpm,NOPASSWD:/bin/mount,NOPASSWD:/bin/cp,NOPASSWD:/bin/umount,NOPASSWD:/usr/bin/install,NOPASSWD:/bin/rm,NOPASSWD:/bin/mv,NOPASSWD:/bin/tar,NOPASSWD:/bin/cpio,NOPASSWD:/bin/chown,NOPASSWD:/bin/mkdir,NOPASSWD:/usr/bin/strip,NOPASSWD:/bin/mknod


(5)

pray

[gc@obiwan ~/cvs/gi] make


---------------------------------------------------------------------------
The comments written with #- are automatically stripped out at install.


---------------------------------------------------------------------------
testing all:

  go to the perl-install directory and execute ./install2 --testing

  NEVER execute DrakX as root! You might need to allow all users
  to read the block devices of your hard-disks, though (chmod a+w
  /dev/hda* for example).



Here is how I (dams) made it work on my computer.
-------------------------------------------------

- get the sources
- install the librairies needed included newt-devel gtk+-devel popt-devel popt gtk-engines
- cd path/to/gi
- make
- mkdir /usr/share/gtk
- ln -s path/to/gi/perl-install/share/themes /usr/share/gtk
- ln -s path/to/gi/perl-install/share/step-* /usr/share
- ln -s path/to/gi/perl-install/share/help.xpm /usr/share
- ln -s path/to/gi/perl-install/share/isdn* /etc/sysconfdir/network-scripts
- have a cd architecture linked on /export
- ln -s /export /tmp/rhimage
- export PERL_INSTALL_TEST=1
- cd path/to/gi/perl-install
- gendistrib --noclean --distrib /export
- ./install2 in root (dangerous) or chmod a+r /dev/hd* and ./install2 in user



address all bugreports to dave@null.com

info has been added by sunny@opencurve.org