File: HACKING

package info (click to toggle)
kdissert 0.3.8-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 1,580 kB
  • ctags: 876
  • sloc: cpp: 9,132; python: 519; sh: 52; makefile: 25
file content (157 lines) | stat: -rw-r--r-- 5,388 bytes parent folder | download
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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
----------------------
KDissert development :
----------------------

If you are reading this file, it means that you 
either have too much time on your arms, or that you are
actually interested in improving kdissert :)

Most of the features that are being implemented are
listed in the ROADMAP file. Volunteers are encouraged to
look carefully into it to avoid duplicating efforts, 
code or features.

If you can spot a usability issue or a misfeature,
first make sure that it is not already listed there,
and contact the author (-> me <-) to report the issues 
encountered and the solution(s) suggested.

Patches are always welcome, and are very likely to
get integrated. It is also possible to discuss the
features that are marked as not feasible or useless
(refer to the end of the ROADMAP file).

------------------------
Source code repository :
------------------------

WARNING : the repository cannot be held up-to-date currently

kdissert uses arch (www.gnuarch.org) for managing the files, 
it sounds a bit complicated at a glance, but it is much more
powerful than cvs or subversion, and allows to work without
a central repository (usb key, cds - tla is only a few Kb big).
Here is a quick summary - replace myname@myisp.com) :

## Setup a local repository with a copy of kdissert
# 1. Make your own repository
tla my-id 'TOM JON <myname@myisp.com>'
tla make-archive myname@myisp.com--2005 ~/code/archive
tla my-default-archive myname@myisp.com--2005
# 2. Get the official kdissert tree
tla register-archive http://freehackers.org/~tnagy/kdissert/2005/
tla archive-setup myname@myisp.com--2005/kdissert--main--0.4
tla tag tnagytwofivesix@yahoo.fr--2005/kdissert--main--0.4 kdissert--main--0.4

## Work on kdissert (and commit in your own local repository)
tla get myname@myisp.com--2005/kdissert--main--0.4 kdissert
cd kdissert # make some changes in that directory
vi `tla make-log` # write a quick changelog
tla commit; # commit to your own repository

## Merge the changes from kdissert official repository (star merge is 'cvs up' on steroids)
tla star-merge tnagytwofivesix@yahoo.fr--2005/kdissert--main--0.4

## Mirror your changes on a public location
tla make-archive --listing --mirror myname@myisp.com--2005 sftp://myisp.com/home/me/public_html/archive
tla archive-mirror myname@myisp.com--2005


 -- Detailed instructions --

Get the development version :
-----------------------------

get the archive
* tla register-archive http://freehackers.org/~tnagy/kdissert/2005/
* tla get tnagytwofivesix@yahoo.fr--2005/kdissert--main--0.4

updating the local copy
* tla update

to see what is in the archive
* tla abrowse get tnagytwofivesix@yahoo.fr--2005/kdissert--main--0.4

Participate to the development :
--------------------------------

set one's identity with tla
* tla my-id 'TOM JON <myname@myisp.com>'

set one's archive path
* tla make-archive myname@myisp.com--2005 ~/code/archive

get the kdissert archive
* tla register-archive http://freehackers.org/~tnagy/kdissert/2005/
* tla get tnagytwofivesix@yahoo.fr--2005/kdissert--main--0.4

create a new kdissert branch for work
* tla archive-setup myname@myisp.com--2005/kdissert--main--0.4
* tla tag tnagytwofivesix@yahoo.fr--2005/kdissert--main--0.4 myname@myisp.com--2005/kdissert--main--0.4
* tla get myname@myisp.com--2005/kdissert--main--0.4 kdissert

this will create a directory named kdissert, you can work in it and commit
* vi `tla make-log`
* tla commit

merge the changes from the main tree
* tla star-merge tnagytwofivesix@yahoo.fr--2005/kdissert--main--0.4

publish the changes for inclusion of the local changes to the main kdissert tree
those who have a local repository will be able to merge your changes by star-merge :
* tla make-archive --listing --mirror myname@myisp.com--2005 sftp://myisp.com/home/me/public_html/archive
* tla archive-mirror myname@myisp.com--2005
(the first of the previous two commands needs to be done only once)

-------------
File format :
-------------

A kdissert file is a tar.gz archive containing :

* the main document file in xml format (named maindoc.xml)
* a number of pictures, named "pic.ID.png" - the ID (eg: 1, 2, ..) is unique

The kdissert files have the extension ".kdi".

The main filter for saving/loading a document is in DDataControl.cpp.

---------------------------------
Miscalleneous tricks with scons :
---------------------------------

In a subdirectory, it is necessary to launch scons with the -u flag :
scons -u
In practice, one should add this to his .bashrc and forget about it :
export SCONSFLAGS=-u

To compile a specific target, use scons like this
scons kdissert
scons libkdisshtmldoc.so

To install the targets you can also use
scons / 

The bksys project contains more information about that,
you can find it on http://www.kde-apps.org/

-----------------------------------
Making packages with checkinstall :
-----------------------------------

use :
checkinstall --fstrans=no --nodoc scons install

Note : the file signatures.dblite 
       is not to be included in the package



Finally mind that I am a heretic - Scons is much better for compiling 
kdissert than the admin/ scripts, and Arch is much more
convenient for managing kdissert source code than cvs or subversion
(it is kept on my usb key and mirrorred from times to times).

---------------------------------------------
Thomas Nagy, 2005 <tnagy2^8@yahoo.fr>