summaryrefslogtreecommitdiffstats
path: root/docs/HACKING
blob: 3d22a785f19e0975945abbb306c242d561709258 (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
-=-=--
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 Mandrake Linux 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


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

(1) target directory

Create a /export directory and give write permissions to the user/group that 
will be compiling DrakX.  It is also suggested that you copy a recent 
Mandrake Linux 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 Mandrake Linux there, if all you desire is to compile gi)


(2) support directories

You will need to create an /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.  A 
directory with the following structure and files is needed for each kernel 
you want to use:  (2.6.0 is the example kernel)

gi/kernel/all.kernels/2.6.0
                           /boot
                                System.map-2.6.0
                                vmlinuz-2.6.0
                           /lib/modules/2.6.0
                                (the module directory for the current 
kernel)

Note:  the modules must not be in compressed form (*.gz *.bz2 etc)


(3) required rpm packages

You need quite a number of rpm packages to build gi properly. Roughly:
emacs gcc make glibc-devel glibc-static-devel perl-devel XFree86 
XFree86-FBDev XFree86-VGA16 XFree86-devel libglib-devel libgtk+-devel 
perl-GTK ldetect ldetect-devel ldetect-lst ldetect-lst-devel libslang-devel 
libnewt-devel e2fsprogs libext2fs2-devel dosfstools rpm-devel rpmtools 
libbzip2_1 libbzip2_1-devel libncurses5 libncurses5-devel setserial telnet 
parted raidtools pciutils mt-st gpart reiserfsprogs jfsprogs xfsprogs 
extipl pcmcia-cs gettext perl-Gtk2 perl-Glib ash imlib fb2png ntfsprogs 
lm_sensors galaxy-gnome perl-PerlIO-gzip brltty lvm2 mkcd

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

  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