File: dpkg-gensymbols.1

package info (click to toggle)
dpkg 1.17.12
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 39,500 kB
  • ctags: 4,699
  • sloc: ansic: 30,021; perl: 18,661; sh: 14,600; cpp: 4,676; makefile: 1,165; lex: 227; sed: 16
file content (533 lines) | stat: -rw-r--r-- 26,596 bytes parent folder | download | duplicates (5)
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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
.\" dpkg manual page - dpkg-gensymbols(1)
.\"
.\" Copyright © 2007-2011 Raphaël Hertzog <hertzog@debian.org>
.\" Copyright © 2009-2010 Modestas Vainius <modestas@vainius.eu>
.\" Copyright © 2012-2013 Guillem Jover <guillem@debian.org>
.\"
.\" This is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
.\" the Free Software Foundation; either version 2 of the License, or
.\" (at your option) any later version.
.\"
.\" This is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public License
.\" along with this program.  If not, see <https://www.gnu.org/licenses/>.
.
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH dpkg\-gensymbols 1 2013\-09\-06 "Proyecto Debian" "Herramientas de dpkg"
.SH NOMBRE
dpkg\-gensymbols \- Generacin de ficheros symbols (informacin de
dependencia de bibliotecas compartidas)
.
.SH SINOPSIS
\fBdpkg\-gensymbols\fP [\fIopcin\fP...]
.
.SH DESCRIPCIN
\fBdpkg\-gensymbols\fP analiza un rbol temporal de construccin (debian/tmp
por omisin) en busca de bibliotecas para generar un fichero \fIsymbols\fP que
los describa. Este fichero, si no est vaco, se instala en el subdirectorio
DEBIAN del rbol de construccin, para despus incluir el contenido en la
informacin de control del paquete.
.P
Al generar estos ficheros, usa algunos ficheros symbols como entrada
proporcionados por el desarrollador. Busca los siguientes ficheros,
utilizando el primero que encuentra.
.IP \(bu 4
debian/\fIpackage\fP.symbols.\fIarch\fP
.IP \(bu 4
debian/symbols.\fIarch\fP
.IP \(bu 4
debian/\fIpackage\fP.symbols
.IP \(bu 4
debian/symbols
.P
The main interest of those files is to provide the minimal version
associated to each symbol provided by the libraries. Usually it corresponds
to the first version of that package that provided the symbol, but it can be
manually incremented by the maintainer if the ABI of the symbol is extended
without breaking backwards compatibility. It's the responsibility of the
maintainer to keep those files up\-to\-date and accurate, but
\fBdpkg\-gensymbols\fP helps with that.
.P
Cuando los ficheros symbols generados difieren del proporcionado por el
desarrollador, \fBdpkg\-gensymbols\fP mostrar las diferencias entre ambas
versiones. Ms an, puede que falle si la diferencia es demasiado grande,
(puede configurar cuanta diferencia tolerar, consulte la opcin \fB\-c\fP).
.SH "MANTENER FICHEROS SYMBOLS"
The symbols files are really useful only if they reflect the evolution of
the package through several releases. Thus the maintainer has to update them
every time that a new symbol is added so that its associated minimal version
matches reality.  The diffs contained in the build logs can be used as a
starting point, but the maintainer, additionally, has to make sure that the
behaviour of those symbols has not changed in a way that would make anything
using those symbols and linking against the new version, stop working with
the old version.  In most cases, the diff applies directly to the
debian/\fIpackage\fP.symbols file. That said, further tweaks are usually
needed: it's recommended for example to drop the Debian revision from the
minimal version so that backports with a lower version number but the same
upstream version still satisfy the generated dependencies.  If the Debian
revision can't be dropped because the symbol really got added by the Debian
specific change, then one should suffix the version with "~".
.P
Antes de aplicar un parche al fichero symbols el desarrollador debera
revisar nuevamente que es adecuado. Se espera que los smbolos pblicos no
desaparezcan as que, idealmente, el parche slo debera aadir lneas
nuevas.
.P
Tenga en cuenta que puede aadir comentarios en los ficheros de smbolos:
cualquier lnea que comienza con el carcter # es un comentario, a menos
que empiece con #include (consulte la seccin \fBUsar include\fP. Las
lneas que comienzan con #MISSING: son comentarios especiales que
documentan los smbolos que han desaparecido.
.P
Do not forget to check if old symbol versions need to be increased.  There
is no way \fBdpkg\-gensymbols\fP can warn about this. Blindly applying the diff
or assuming there is nothing to change if there is no diff, without checking
for such changes, can lead to packages with loose dependencies that claim
they can work with older packages they cannot work with. This will introduce
hard to find bugs with (partial)  upgrades.
.SS "Usar la sustitucin de #PACKAGE#"
.P
En algunos casos aislados el nombre de la biblioteca vara segn la
arquitectura. Puede utilizar el marcador \fI#PACKAGE#\fP para evitar incrustar
(hardcode) el nombre del paquete en el fichero symbols. Se reemplazar
por el nombre real del paquete durante la instalacin de los ficheros
symbols. A diferencia del marcador \fI#MINVER#\fP, \fI#PACKAGE#\fP nunca
aparecer en un fichero symbols contenido en un paquete binario.
.SS "Usar etiquetas de smbolos"
.P
Symbol tagging is useful for marking symbols that are special in some way.
Any symbol can have an arbitrary number of tags associated with it. While
all tags are parsed and stored, only some of them are understood by
\fBdpkg\-gensymbols\fP and trigger special handling of the symbols. See
subsection \fBStandard symbol tags\fP for reference of these tags.
.P
La especificacin de la etiqueta aparece a continuacin del nombre del
smbolo (no se permite un espacio vaco entre estos). Siempre comienza con
un parntesis de apertura \fB(\fP, finaliza con un parntesis de cierre \fB)\fP, y
debe contener al menos una etiqueta. Varias etiquetas se separan con un
carcter \fB|\fP. Opcionalmente, cada etiqueta puede tener un valor separado
del nombre de la etiqueta mediante el carcter \fB=\fP. Los nombres de etiqueta
y valores pueden ser cadenas arbitrarias, a excepcin de que no pueden
contener ningn carcter especial: \fB)\fP, \fB|\fP y \fB=\fP. Los nombres de smbolo
a continuacin de una especificacin de etiqueta se pueden entrecomillar con
caracteres \fB'\fP o \fB"\fP, permitiendo as espacios vacos. Por otra parte, de
no existir ninguna etiqueta definida para el smbolo, las comillas se
tratarn como parte del nombre del smbolo, continuando hasta el primer
espacio.
.P
 (tag1=tengo una marca|nombre de etiqueta con espacio)"smbolo
 entrecomillado y etiquetado"@Base 1.0
 (optional)smbolo_sin_comillas_y_etiquetado@Base 1.0 1
 smbolo_sin_etiquetar@Base 1.0
.P
El primer smbolo del ejemplo se llama \fIsmbolo entrecomillado y
etiquetado\fP, y tiene dos etiquetas: \fItag1\fP, con el valor \fItengo una marca\fP
y \fInombre de etiqueta con espacio\fP, que no tiene valor. El segundo smbolo
se llama \fIsmbolo_sin_comillas_y_etiquetado\fP, y slo tiene una etiqueta
llamada \fIoptional\fP. El ltimo smbolo es un ejemplo de un smbolo normal
sin etiquetar.
.P
Since symbol tags are an extension of the \fBdeb\-symbols\fP(5) format, they can
only be part of the symbols files used in source packages (those files
should then be seen as templates used to build the symbols files that are
embedded in binary packages). When \fBdpkg\-gensymbols\fP is called without the
\fB\-t\fP option, it will output symbols files compatible to the
\fBdeb\-symbols\fP(5) format: it fully processes symbols according to the
requirements of their standard tags and strips all tags from the output. On
the contrary, in template mode (\fB\-t\fP) all symbols and their tags (both
standard and unknown ones)  are kept in the output and are written in their
original form as they were loaded.
.SS "Etiquetas de smbolo estndar"
.TP 
\fBoptional\fP
Un smbolo marcado como opcional puede desaparecer de la biblioteca en
cualquier momento sin causar un fallo de \fBdpkg\-gensymbols\fP. Por otra parte,
los smbolos opcionales desaparecidos aparecern continuamente como
MISSING (ausente) en el diff de cada nueva revisin del paquete. Este
comportamiento sirve como un recordatorio para el desarrollador para
informar de la necesidad de eliminar tal smbolo del fichero symbols, o de
aadir ste nuevamente a la biblioteca. Cuando el smbolo opcional declarado
previamente como MISSING reaparece de sbito en la siguiente revisin, se
actualizara a un estado existente sin modificar la versin mnima.

Esta etiqueta es til para aquellos smbolos privados cuya desaparicin no
rompe la ABI. Por ejemplo, la mayora de plantillas de produccin de un
objeto definido ms especficamente por medio del reemplazo de ciertas
variables por valores (instantiation) de C++ se encuentran dentro de esta
categora. Al igual que con cualquier otra etiqueta, ste puede tener un
valor arbitrario: se puede utilizar para indicar porqu el smbolo se
considera opcional.
.TP 
\fBarch=\fP\fIlista\-de\-arquitecturas\fP
Esta etiqueta permite limitar el conjunto de arquitecturas dnde se supone
que el smbolo existe. Cuando la lista de smbolos se actualiza con los
smbolos descubiertos en la biblioteca, todos los smbolos especficos de la
arquitectura que no son relevantes para la arquitectura anfitrin se toman
como no existentes. Si un smbolo especfico a la arquitectura que concuerda
con la arquitectura anfitrin presente no existe en la biblioteca, se
aplicarn los procedimientos normales para smbolos desaparecidos, llevando
a que \fBdpkg\-gensymbols\fP falle. Por otra parte, si el smbolo especfico a
la arquitectura se encuentra cuando se supona que no existe (porque la
arquitectura anfitrin presente no est listada en la etiqueta), pasa a ser
neutral a la arquitectura (por ejemplo, se elimina la etiqueta de
arquitectura, apareciendo el smbolo en el diff debido a la modificacin),
pero no se toma como un nuevo smbolo.

Al operar en el modo por omisin (sin plantilla) slo se escribirn al
fichero symbols aquellos smbolos especficos a la arquitectura que
coinciden con la arquitectura anfitrin. Por otra parte, en el modo
plantilla todos los smbolos especficos a la arquitectura (incluyendo
arquitecturas alternativas) siempre se escribirn al fichero symbols.

The format of \fIarchitecture list\fP is the same as the one used in the
\fBBuild\-Depends\fP field of \fIdebian/control\fP (except the enclosing square
brackets []). For example, the first symbol from the list below will be
considered only on alpha, any\-amd64 and ia64 architectures, the second only
on linux architectures, while the third one anywhere except on armel.

 (arch=alpha any\-amd64 ia64)a_64bit_smbolo_especfico@Base 1.0
 (arch=linux\-any)smbolo_especfico_linux@Base 1.0
 (arch=!armel)smbolo_ausente_en_armel@Base 1.0
.TP 
\fBignore\-blacklist\fP
dpkg\-gensymbols tiene una lista negra interna de smbolos que no deberan
aparecer en los ficheros symbols, ya que habitualmente son slo efectos
secundarios de los detallas de implementacin de la cadena de
herramientas. Si por alguna razn desea incluir uno de esos smbolos en el
fichero symbols debera etiquetar el smbolo con
\fBignore\-blacklist\fP. Puede ser necesario con alguna cadena de herramientas
de bajo nivel como libgcc.
.TP 
\fBc++\fP
Denota el patrn \fIc++\fP\- Consulte la subseccin a continuacin \fBUsar
patrones de smbolos\fP.
.TP 
\fBsymver\fP
Denota el patrn de smbolos \fIsymver\fP (versin del smbolo). Consulte la
sub\-seccin a continuacin \fBUsar patrones de smbolos\fP.
.TP 
\fBregex\fP
Denota el patrn de smbolos \fIregex\fP (expresin regular). Consulte la
sub\-seccin a continuacin \fBUsar patrones de smbolos\fP.
.SS "Usar patrones de smbolos"
.P
A diferencia de cualquier definicin de smbolo estndar un patrn puede
cubrir varios smbolos reales de la biblioteca. \fBdpkg\-gensymbols\fP intentar
emparejar cada patrn con cada smbolo real que \fIno\fP tiene un smbolo
especfico de contrapartida definido en el fichero de smbolos. En el
momento que se encuentre el primer patrn que coincida se usarn todas sus
etiquetas y propiedades como un definicin bsica del smbolo. Si ninguno de
los patrones encaja, el smbolo se considerar nuevo.

A pattern is considered lost if it does not match any symbol in the
library. By default this will trigger a \fBdpkg\-gensymbols\fP failure under
\fB\-c1\fP or higher level. However, if the failure is undesired, the pattern
may be marked with the \fIoptional\fP tag. Then if the pattern does not match
anything, it will only appear in the diff as MISSING. Moreover, like any
symbol, the pattern may be limited to the specific architectures with the
\fIarch\fP tag. Please refer to \fBStandard symbol tags\fP subsection above for
more information.

Patterns are an extension of the \fBdeb\-symbols\fP(5) format hence they are
only valid in symbol file templates. Pattern specification syntax is not any
different from the one of a specific symbol. However, symbol name part of
the specification serves as an expression to be matched against
\fIname@version\fP of the real symbol. In order to distinguish among different
pattern types, a pattern will typically be tagged with a special tag.

A da de hoy, \fBdpkg\-gensymbols\fP es compatible con tres tipos de patrones
bsicos:
.TP  3
\fBc++\fP
Este patrn se indica con la etiqueta \fIc++\fP. Slo encaja con el nombre
demangled de smbolos C++ (tal y como muestra la herramienta
\fBc++filt\fP(1)). Este patrn es de utilidad para emparejar smbolos con
nombres mangled que pueden variar segn la arquitectura, mientras que sus
nombres demangled permanecen sin cambios. Un grupo de estos smbolos son
los \fIthunk no virtuales\fP, que tienen direcciones relativas (offsets)
especficas a la arquitectura integradas en sus nombres mangled. Un
ejemplo comn de este caso es un destructor virtual, que bajo una herencia
de diamante necesita un smbolo thunk no virtual. Por ejemplo, incluso si
_ZThn8_N3NSB6ClassDD1Ev@Base en arquitecturas de 32bit es
_ZThn16_N3NSB6ClassDD1Ev@Base en arquitecturas de 64bit, puede emparejarlo
con un nico patrn \fIc++\fP:
.RS
.PP
libdummy.so.1 libdummy1 #MINVER#
 [...]
 (c++)"non\-virtual thunk to NSB::ClassD::~ClassD()@Base" 1.0
 [...]
.P
Puede obtener el nombre demangled del ejemplo anterior ejecutando la
siguiente orden:
.PP
 $ echo '_ZThn8_N3NSB6ClassDD1Ev@Base' | c++filt
.P
Observe que aunque el nombre mangled sea por definicin nico en la
biblioteca, no es necesariamente cierto para nombres demangled. Puede que
dos smbolos reales y distintos tengan el mismo nombre demangled. Por
ejemplo, en caso de existir smbolos thunk no virtuales en complejas
configuraciones de herencia, o con la mayora de constructores y
destructores (ya que habitualmente g++ genera dos smbolos para ellos). Por
otra parte, estas colisiones aparecen al nivel de la ABI, y por ello no
deberan degradar la calidad del fichero de smbolos.
.RE
.TP 
\fBsymver\fP
La etiqueta \fIsymver\fP indica este patrn. Las bibliotecas bien mantenidas
tienen smbolos con versin, donde cada versin corresponde con la versin
del autor original en la que se aadi el smbolo. De ser as, puede
utilizar un patrn \fIsymver\fP para emparejar el smbolo asociado con una
versin en particular. Por ejemplo:
.RS
.PP
libc.so.6 libc6 #MINVER#
 (symver)GLIBC_2.0 2.0
 [...]
 (symver)GLIBC_2.7 2.7
 access@GLIBC_2.0 2.2
.PP
Todos los smbolos asociados con las versiones GLIBC_2.0 y GLIBC_2.7
llevan a una versin mnima de 2.0 y 2.7 respectivamente, con la excepcin
del smbolo access@GLIBC_2.0. El segundo lleva a una dependencia mnima
sobre la versin 2.2 de libc6, a pesar de estar en el rango del patrn
(symver)GLIBC_2.0, debido a que los smbolos especficos tiene precedencia
sobre los patrones.
.P
Tenga en cuanta que los patrones de comodn antiguos (indicados por
*@versio en el campo del nombre del smbolo) son an compatibles, aunque
han quedado obsoletos por el nuevo estilo de sintaxis
(symver|optional)versin. Por ejemplo, debera escribir *@GLIBC_2.0 2.0
como (symver|optional)GLIBC_2.0 2.0 si desea el mismo comportamiento.
.RE
.TP 
\fBregex\fP
Los patrones de expresiones regulares se indican con la etiqueta
\fIregex\fP. Buscan coincidencias con la expresin regular de perl definido en
el campo de nombre del smbolo. Una expresin regular se empareja tal cual,
por ello no olvide insertar \fI^\fP al inicio de la misma o puede que coincida
con cualquier parte de la cadena real del smbolo \fInombre@versin\fP. Por
ejemplo:
.RS
.PP
libdummy.so.1 libdummy1 #MINVER#
 (regex)"^mystack_.*@Base$" 1.0
 (regex|optional)"private" 1.0
.P
Los smbolos como mystack_new@Base, mystack_push@Base,
mystack_pop@Base y similares encajaran con el primer patrn, mientras que
otros como ng_mystack_new@Base no lo haran. El segundo patrn encaja con
todos los smbolos con private en su nombre, y las coincidencias heredarn
de este patrn la etiqueta \fIoptional\fP.
.RE
.P
Puede combinar los patrones listados anteriormente, cuando tenga sentido. En
tal caso, se procesan en el orden de las etiquetas definidas. Por ejemplo,
ambos
.PP
 (c++|regex)"^NSA::ClassA::Private::privmethod\ed\e(int\e)@Base" 1.0
 (regex|c++)N3NSA6ClassA7Private11privmethod\edEi@Base 1.0
.P
encaja con _ZN3NSA6ClassA7Private11privmethod1Ei@Base y
_ZN3NSA6ClassA7Private11privmethod2Ei@Base. Al comparar el primer patrn
se demangle el smbolo sin procesar como smbolo C++, para despus
comparar el nombre demangled con la expresin regular. Por otra parte, al
comparar el segundo patrn la expresin regular se compara con el nombre sin
procesar del smbolo, para despus confirmar si es un smbolo de C++
mediante demangle. Un fallo de un patrn bsico lleva a un fallo de todo
el patrn. Por ejemplo, __N3NSA6ClassA7Private11privmethod\edEi@Base no
encajara con ningn patrn porque no es un smbolo vlido de C++.
.P
En general, todos los patrones se dividen en dos grupos: aliases (los
bsicos \fIc++\fP y \fIsymver\fP) y patrones genricos (\fIregex\fP, todas las
combinaciones de varios patrones bsicos). Establecer coincidencias con
patrones basados en alias es rpido (0(1)) mientras que los patrones
genricos son 0(N) (N \- cuenta genrica del patrn) para cada
smbolo. Debido a ello, se recomienda no abusar de los patrones genricos.
.P
Los alias (primero \fIc++\fP, despus \fIsymver\fP) tienen prioridad sobre los
patrones genricos. stos se emparejan por orden de aparicin en la
plantilla del fichero de smbolos hasta el primer resultado de xito. Tenga
en cuenta, no obstante, que no se recomienda la reorganizacin manual de las
entradas en plantillas de fichero ya que \fBdpkg\-gensymbols\fP genera diffs
basados en el orden alfanumrico de sus nombres.
.SS "Usar include"
.P
Hay casos en los que utilizar un slo fichero de smbolos es
contraproducente cuando el conjunto de smbolos exportados difiere segn la
arquitectura. En estos casos, una directiva include puede ser til de un
par de maneras:
.IP \(bu 4
Puede factorizar la parte comn en algn fichero externo, e incluir ese
fichero en su fichero \fIpaquete\fP.symbols.\fIarq\fP usando una directiva
include como esta:

#include "\fIpackages\fP.symbols.common"
.IP \(bu
Al igual que con cualquier smbolo, puede etiquetar la directiva include:

(etiqueta|...|etiquetaN)#include "fichero\-para\-include"

Como resultado, se considerar que todos los smbolos incluidos en
\fIfichero\-para\-include\fP estn etiquetados con \fIetiqueta\fP ... \fIetiquetaN\fP
por omisin. Puede utilizar esta caracterstica para crear un fichero comn
\fIpackage\fP.symbols, que incluye ficheros de smbolos especficos a la
arquitectura.

  common_symbol1@Base 1.0
 (arch=amd64 ia64 alpha)#include "package.symbols.64bit"
 (arch=!amd64 !ia64 !alpha)#include "package.symbols.32bit"
  common_symbol2@Base 1.0
.P
Los ficheros de smbolos se leen lnea a lnea, y las directivas include
se procesan por orden de aparicin. Esto significa que el contenido del
fichero incluido puede sustituir cualquier contenido aparecido antes de la
directiva include, y que todo contenido a continuacin de la directiva
puede sustituir cualquier contenido del fichero incluido. Todo smbolo (o
incluso otra directiva #include) en el fichero incluido puede especificar
etiquetas adicionales, o sustituir valores de las etiquetas heredadas en la
especificacin de etiqueta. Por otra parte, el smbolo no puede eliminar
ninguna de las etiquetas heredadas.
.P
Un fichero incluido puede repetir la lnea de cabecera que contiene el
SONAME de la biblioteca. En tal caso, sustituye cualquier lnea de
cabecera leda anteriormente. Por otra parte, generalmente es mejor evitar
duplicar las lneas de cabecera. A continuacin puede ver una manera de
realizar esto:
.PP
#include "libsomething1.symbols.common"
 arch_specific_symbol@Base 1.0
.SS "Buena gestin de bibliotecas"
.P
Una biblioteca mantenida adecuadamente tiene las siguientes caractersticas:
.IP \(bu 4
su API es estable (los smbolos pblicos nunca se eliminan, sino que slo se
aaden smbolos nuevos), y los cambios pueden introducir una
incompatibilidad slo cuando el SONAME cambia;
.IP \(bu 4
Idealmente, usa el versionado de smbolos para alcanzar la estabilidad de la
ABI, a pesar de cambios internos y la extensin de la API;
.IP \(bu 4
No exporta smbolos privados (tales como smbolos etiquetados como
opcionales para evitar un problema).
.P
Al mantener un fichero symbols es sencillo notar la aparicin y
desaparicin de smbolos. Pero es ms difcil notar cambios incompatibles en
las API y ABI. Por ello, el responsable del paquete debera leer
cuidadosamente el registro de cambios de la fuente original en busca de
casos en los que se ha roto la correcta gestin de bibliotecas. Se debera
notificar al autor original en caso de encontrar problemas potenciales, ya
que un arreglo en la fuente original del software es siempre preferible a un
arreglo especfico de Debian.
.SH OPCIONES
.TP 
\fB\-P\fP\fIdirectorio\-compilacin\-paquete\fP
Analiza \fIdirectorio\-compilacin\-paquete\fP en lugar de debian/tmp.
.TP 
\fB\-p\fP\fIpaquete\fP
Define el nombre del paquete. Es necesario si aparece ms de un paquete
binario en debian/control (o si no existe ningn fichero
debian/control).
.TP 
\fB\-v\fP\fIversin\fP
Define la versin del paquete. El valor por omisin es la versin extrada
de debian/changelog. Necesario en caso de una ejecucin externa al rbol
del paquete fuente.
.TP 
\fB\-e\fP\fIfichero\-biblioteca\fP
Only analyze libraries explicitly listed instead of finding all public
libraries. You can use shell patterns used for pathname expansions (see the
\fBFile::Glob\fP(3perl) manual page for details) in \fIlibrary\-file\fP to match
multiple libraries with a single argument (otherwise you need multiple
\fB\-e\fP).
.TP 
\fB\-I\fP\fInombre\-fichero\fP
Usa \fInombre\-fichero\fP como un fichero de referencia para generar el fichero
symbols integrado en el mismo paquete.
.TP 
\fB\-O\fP[\fIfilename\fP]
Print the generated symbols file to standard output or to \fIfilename\fP if
specified, rather than to \fBdebian/tmp/DEBIAN/symbols\fP (or
\fIpackage\-build\-dir\fP\fB/DEBIAN/symbols\fP if \fB\-P\fP was used). If \fIfilename\fP is
pre\-existing, its contents are used as basis for the generated symbols
file.  You can use this feature to update a symbols file so that it matches
a newer upstream version of your library.
.TP 
\fB\-t\fP
Write the symbol file in template mode rather than the format compatible
with \fBdeb\-symbols\fP(5). The main difference is that in the template mode
symbol names and tags are written in their original form contrary to the
post\-processed symbol names with tags stripped in the compatibility mode.
Moreover, some symbols might be omitted when writing a standard
\fBdeb\-symbols\fP(5) file (according to the tag processing rules) while all
symbols are always written to the symbol file template.
.TP 
\fB\-c\fP\fI[0\-4]\fP
Define las comprobaciones a realizar al comparar el fichero symbols
generado usando como base el fichero de plantilla. El nivel predefinido es
1. Aumentar los niveles conlleva ms comprobaciones, as como la inclusin
de todos los niveles inferiores. El nivel 0 nunca falla. El nivel 1 falla si
algunos smbolos han desaparecido. El nivel 2 falla si se han introducido
smbolos nuevos. El nivel 3 falla si han desaparecido algunas
bibliotecas. El nivel 4 falla si se han introducido bibliotecas nuevas.

This value can be overridden by the environment variable
\fBDPKG_GENSYMBOLS_CHECK_LEVEL\fP.
.TP 
\fB\-q\fP
Keep quiet and never generate a diff between generated symbols file and the
template file used as starting point or show any warnings about new/lost
libraries or new/lost symbols. This option only disables informational
output but not the checks themselves (see \fB\-c\fP option).
.TP 
\fB\-a\fP\fIarquitectura\fP
Toma \fIarquitectura\fP como la arquitectura anfitrin al procesar ficheros
symbols. Use esta opcin para generar un fichero symbols o un diff
para cualquier arquitectura, siempre y cuando sus binarios ya estn
disponibles.
.TP 
\fB\-d\fP
Activa el modo de depuracin. Se muestran numerosos mensajes que explican
las acciones de \fBdpkg\-gensymbols\fP.
.TP 
\fB\-V\fP
Activa el modo verboso. El fichero symbols generado contiene smbolos
obsoletos en la forma de comentarios. Adems, en modo plantilla los patrones
de smbolo anteceden a los comentarios que listan los smbolos reales que
coinciden con el patrn.
.TP 
\fB\-?\fP, \fB\-\-help\fP
Muestra el modo de uso y termina.
.TP 
\fB\-\-version\fP
Muestra la versin y termina.
.
.SH "VASE TAMBIN"
\fBhttps://people.redhat.com/drepper/symbol\-versioning\fP
.br
\fBhttps://people.redhat.com/drepper/goodpractice.pdf\fP
.br
\fBhttps://people.redhat.com/drepper/dsohowto.pdf\fP
.br
\fBdeb\-symbols\fP(5), \fBdpkg\-shlibdeps\fP(1).
.SH TRADUCTOR
Rudy Godoy <rudy@kernel\-panik.org>,
Rubn Porras <nahoo@inicia.es>,
Bruno Barrera C. <bruno.barrera@igloo.cl>,
Carlos Izquierdo <gheesh@ertis.net>,
Esteban Manchado y
NOK.
Debian L10n Spanish <debian\-l10n\-spanish@lists.debian.org>.
.br
Revisiones por Santiago Vila <sanvila@unex.es>,
Javier Fernndez\-Sanguino, Rubn Porras,
Luis Uribe y Omar Campagne.