Provided by: dpkg-dev_1.18.4ubuntu1.7_all bug

NAZWA

       dpkg-gensymbols   -   generuje   pliki   symboli  (informacje  o  zależnościach  bibliotek
       współdzielonych)

SKŁADNIA

       dpkg-gensymbols [opcja...]

OPIS

       dpkg-gensymbols skanuje tymczasowe drzewo budowania (domyślnie debian/tmp) w  poszukiwaniu
       bibliotek  i  generuje  opisujący  je  plik  symbols. Plik ten, jeśli nie jest pusty, jest
       następnie instalowany do podkatalogu DEBIAN drzewa budowania, tak więc  na  końcu  zawiera
       informacje kontrolne pakietu.

       Podczas  tworzenia  wspomnianych plików, jako wejście są używane pliki symboli dostarczone
       przez opiekuna. Szukane są następujące pliki (używany jest pierwszy ze znalezionych):

       •   debian/pakiet.symbols.arch

       •   debian/symbols.arch

       •   debian/pakiet.symbols

       •   debian/symbols

       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
       dpkg-gensymbols helps with that.

       Gdy wygenerowane pliki symboli różnią się od dostarczonych przez opiekuna, dpkg-gensymbols
       wypisze różnicę pomiędzy dwoma wersjami. Co więcej, jeśli różnica jest zbyt duża, zakończy
       się niepowodzeniem (można dostosować wielkość tolerowanej różnicy, patrz opcja -c).

ZARZĄDZANIE PLIKAMI SYMBOLI

       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/package.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 ‘~’.

       Przed dodaniem jakiejkolwiek łatki do pliku symboli, opiekun powinien dwa razy  sprawdzić,
       czy  jest  ona  poprawna.  Publiczne symbole nie mogą znikać, więc najlepiej jeśli jedynie
       dodaje ona nowe wiersze.

       Note that you can put comments in symbols files: any line with ‘#’ as the first  character
       is  a  comment  except  if  it starts with ‘#include’ (see section Using includes).  Lines
       starting with ‘#MISSING:’ are special comments documenting symbols that have disappeared.

       Do not forget to check if old symbol versions need to  be  increased.   There  is  no  way
       dpkg-gensymbols  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.

   Używanie podstawień #PACKAGE#
       W niektórych rzadkich przypadkach, nazwa biblioteki różni się między  architekturami.  Aby
       zapobiec kodowaniu nazwy pakietu na sztywno w pliku symboli, można użyć markera #PACKAGE#.
       Zostanie ona zastąpiona prawdziwą nazwą pakietu podczas instalacji tych plików symboli.  W
       przeciwieństwie  do  markera  #MINVER#,  #PACKAGE#  nigdy  nie  pojawi się w pliku symboli
       wewnątrz pakietu binarnego.

   Używanie znaczników symboli
       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 dpkg-gensymbols and trigger special  handling  of  the
       symbols. See subsection Standard symbol tags for reference of these tags.

       Określenie  znacznika  powinno znaleźć się zaraz przed nazwą symbolu (nie ma pomiędzy nimi
       spacji). Zawsze rozpoczyna się nawiasem otwierającym (, kończy nawiasem  zamykającym  )  i
       musi zawierać przynajmniej jeden znacznik. Poszczególne znaczniki są oddzielone znakiem |.
       Każdy znacznik może posiadać wartość (opcjonalnie), która jest oddzielona od jego nazwy za
       pomocą  znaku  =.  Nazwy  i  wartości znaczników mogą zawierać dowolne znaki, poza znakami
       specjalnymi ) | =. Nazwy symboli, które znajdują się za określeniem znacznika, mogą zostać
       opcjonalnie  ujęte  w  znaki  ' lub ". Jednak jeśli symbol nie określa żadnych znaczników,
       cudzysłowy są traktowane jako część nazwy symbolu, która kończy się na pierwszej spacji.

        (tag1=i am marked|tag name with space)"tagged quoted symbol"@Base 1.0
        (optional)tagged_unquoted_symbol@Base 1.0 1
        untagged_symbol@Base 1.0

       Pierwszy symbol w przykładzie jest nazwany tagged quoted symbol i  posiada  dwa  znaczniki
       tag1  z  wartością  i  am  marked i tag name with space, który nie posiada wartości. Drugi
       symbol ma nazwę  tagged_unquoted_symbol  jest  jego  jedynym  znacznikiem  jest  optional.
       Ostatni symbol jest przykładem zwykłego symbolu bez znacznika.

       Since  symbol tags are an extension of the deb-symbols(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
       dpkg-gensymbols is called without the -t option, it will output symbols  files  compatible
       to  the deb-symbols(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
       (-t)  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.

   Standardowe znaczniki symboli
       optional
              A symbol marked as optional can disappear from the library at  any  time  and  that
              will  never  cause  dpkg-gensymbols  to fail. However, disappeared optional symbols
              will continuously appear as MISSING in the diff in each new package revision.  This
              behaviour  serves  as  a reminder for the maintainer that such a symbol needs to be
              removed from the symbol file or readded to the library. When the  optional  symbol,
              which  was previously declared as MISSING, suddenly reappears in the next revision,
              it will be upgraded  back  to  the  “existing”  status  with  its  minimum  version
              unchanged.

              Znacznik ten jest przydatny do symboli prywatnych, gdy ich zniknięcie nie spowoduje
              złamania ABI.  Przykładowo,  większość  szablonów  C++  należy  do  tej  kategorii.
              Podobnie  jak  każdy inny znacznik, może mieć on również dowolną wartość: można jej
              użyć do określenia powodu, dla którego symbol jest opcjonalny.

       arch=architecture-list
       arch-bits=architecture-bits
       arch-endian=architecture-endianness
              These tags allow one to restrict the set  of  architectures  where  the  symbol  is
              supposed  to  exist.  The  arch-bits  and arch-endian tags are supported since dpkg
              1.18.0. When the symbols list  is  updated  with  the  symbols  discovered  in  the
              library,   all  arch-specific  symbols  which  do  not  concern  the  current  host
              architecture are treated as if they did  not  exist.  If  an  arch-specific  symbol
              matching  the  current  host  architecture  does  not  exist in the library, normal
              procedures for missing symbols apply and it may cause dpkg-gensymbols to  fail.  On
              the  other  hand,  if the arch-specific symbol is found when it was not supposed to
              exist (because the current host architecture is not listed in the tag or  does  not
              match  the  endianness and bits), it is made arch neutral (i.e. the arch, arch-bits
              and arch-endian tags are dropped and the symbol will appear in the diff due to this
              change), but it is not considered as new.

              Podczas  działania w domyślnym trybie nieszablonowym, spośród symboli specyficznych
              dla architektury tylko te, które pasują  do  architektury  bieżącego  komputera  są
              zapisywane  do  pliku  symboli. Odwrotnie jest w trybie szablonu: wszystkie symbole
              specyficzne dla architektury (łącznie z tymi, należącymi do obcych architektur)  są
              zawsze zapisywane do pliku symboli.

              The  format  of  architecture-list is the same as the one used in the Build-Depends
              field of debian/control (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_specific_symbol@Base 1.0
               (arch=linux-any)linux_specific_symbol@Base 1.0
               (arch=!armel)symbol_armel_does_not_have@Base 1.0

              The architecture-bits is either 32 or 64.

               (arch-bits=32)a_32bit_specific_symbol@Base 1.0
               (arch-bits=64)a_64bit_specific_symbol@Base 1.0

              The architecture-endianness is either little or big.

               (arch-endian=little)a_little_endian_specific_symbol@Base 1.0
               (arch-endian=big)a_big_endian_specific_symbol@Base 1.0

              Multiple restrictions can be chained.

               (arch-bits=32|arch-endian=little)a_32bit_le_symbol@Base 1.0

       ignore-blacklist
              dpkg-gensymbols posiada wewnętrzną, czarną listę symboli, które nie powinny pojawić
              się w plikach symboli, ponieważ są one z reguły  jedynie  efektem  ubocznym  detali
              implementacyjnych  toolchainu.  Jeśli  z  jakiegoś powodu naprawdę chce się włączyć
              jeden z tych symboli do pliku  symboli,  należy  oznaczyć  ten  symbol  znacznikiem
              ignore-blacklist.  Może  być  potrzebny  do  niektórych  niskopoziomowych bibliotek
              toolchainu, takich jak libgcc.

       c++    Oznacza wzorzec symbolu c++. Patrz podsekcja Używanie wzorców symboli poniżej.

       symver Oznacza wzorzec symbolu symver (wersja symbolu). Patrz podsekcja  Używanie  wzorców
              symboli poniżej.

       regex  Oznacza wzorzec symbolu regex. Patrz podsekcja Używanie wzorców symboli poniżej.

   Używanie wzorców symboli
       W  przeciwieństwie  do  standardowej  specyfikacji  symboli,  wzorzec  może pokrywać wiele
       symboli rzeczywistych z biblioteki. dpkg-gensymbols postara się dopasować każdy wzorzec do
       każdego  symbolu  rzeczywistego,  który  nie  posiada zdefiniowanego odpowiedniego symbolu
       specyficznego w pliku symboli. Gdy tylko znaleziony zostanie pierwszy pasujący wzorzec, to
       wszystkie  jego  znaczniki  i  właściwości  będą używane jako podstawa określenia symbolu.
       Jeśli żaden ze wzorców nie zostanie dopasowany, to symbol zostanie uznany za nowy.

       A pattern is considered lost if it does not match any symbol in the  library.  By  default
       this  will  trigger  a  dpkg-gensymbols failure under -c1 or higher level. However, if the
       failure is undesired, the pattern may be marked with the optional 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 arch tag. Please
       refer to Standard symbol tags subsection above for more information.

       Patterns are an extension of the deb-symbols(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 name@version  of  the  real  symbol.  In  order  to  distinguish  among
       different pattern types, a pattern will typically be tagged with a special tag.

       Obecnie dpkg-gensymbols obsługuje trzy proste typy symboli:

       c++
          Ten wzorzec jest oznaczony znacznikiem c++. Dopasowuje on jedynie symbole C++ za pomocą
          ich odkodowanych nazw symboli (takich, jak wypisywanych  przez  narzędzie  c++filt(1)).
          Wzorzec  jest  bardzo  przydatny  do dopasowania symboli, których zakodowane nazwy mogą
          różnić się między różnymi architekturami, podczas gdy odkodowane nazwy pozostają  takie
          same. Jedną z grup takich symboli jest non-virtual thunks, które posiadają przesunięcia
          (offsety)  specyficzne  dla  architektury,  dołączone  do  zakodowanych  nazw.  Częstym
          przypadkiem  tego przykładu jest wirtualny destruktor, który w wirtualnym dziedziczeniu
          (ang. diamond inheritance) wymaga niewirtualnego symbolu thunk. Na przykład nawet jeśli
          _ZThn8_N3NSB6ClassDD1Ev@Base  na  architekturze  32-bitowej  stanie  się prawdopodobnie
          _ZThn16_N3NSB6ClassDD1Ev@Base na 64-bitowej, może zostać dopasowany pojedynczym wzorcem
          c++:

          libdummy.so.1 libdummy1 #MINVER#
           [...]
           (c++)"non-virtual thunk to NSB::ClassD::~ClassD()@Base" 1.0
           [...]

          Powyższą, odkodowaną nazwę można uzyskać wykonując następujące polecenie:

           $ echo '_ZThn8_N3NSB6ClassDD1Ev@Base' | c++filt

          Proszę zauważyć, że o ile zakodowana nazwa jest, z definicji, unikatowa w bibliotece, o
          tyle nie musi być to  prawdą  dla  nazw  odkodowanych.  Kilka  różniących  się  symboli
          rzeczywistych  może  mieć  tę  samą  nazwę  odkodowaną.  Na  przykład  dzieje się tak w
          przypadku niewirtualnych symboli thunk w złożonych konfiguracjach dziedziczenia  lub  w
          przypadku  większości  konstruktorów  i  desktruktorów  (ponieważ g++ tworzy dla nich z
          reguły dwa symbole rzeczywiste). Jednak, ponieważ konflikty zachodzą na  poziomie  ABI,
          nie powinny one obniżyć jakości pliku symboli.

       symver
          Wzorzec  jest  oznaczany  znacznikiem  symver.  Dobrze  zarządzane biblioteki posiadają
          wersjonowane symbole, a każda wersja odpowiada wersji oryginalnej, gdzie symbol  został
          dodany.  W  takim  przypadku  można użyć wzorca symver, aby dopasować symbol związany z
          określoną wersją np.:

          libc.so.6 libc6 #MINVER#
           (symver)GLIBC_2.0 2.0
           [...]
           (symver)GLIBC_2.7 2.7
           access@GLIBC_2.0 2.2

          Wszystkie symbole związane z wersjami GLIBC_2.0 i GLIBC_2.7 prowadzą  do,  odpowiednio,
          minimalnej wersji 2.0 i 2.7 z wyjątkiem symbolu access@GLIBC_2.0. Ostatnie, prowadzi do
          minimalnej zależności na libc6 w wersji 2.2 pomimo, że znajduje się w  zakresie  wzorca
          "(symver)GLIBC_2.0", ponieważ specyficzne symbole mają pierwszeństwo przed wzorcami.

          Proszę  zauważyć,  że  o  ile wzorca masek starego stylu (oznaczane przez "*@version" w
          polu nazwy symbolu są wciąż obsługiwane, to są obecnie zastąpione przez  nową  składnię
          "(symver|optional)version".  Na  przykład  "*@GLIBC_2.0  2.0" powinno być zapisane jako
          "(symver|optional)GLIBC_2.0 2.0", jeśli potrzebne jest takie samo znaczenie.

       regex
          Wyrażenia regularne są oznaczane znacznikiem regex. Są  dopasowane  za  pomocą  wyrażeń
          regularnych   perla,  określonych  w  polu  nazwy  symbolu.  Wyrażenie  regularne  jest
          dopasowane "jak jest", nie należy jednak zapominać rozpocząć go znakiem ^, w przeciwnym
          wypadku dopasuje ono dowolną część łańcucha symbolu rzeczywistego nazwa@wersja np.:

          libdummy.so.1 libdummy1 #MINVER#
           (regex)"^mystack_.*@Base$" 1.0
           (regex|optional)"private" 1.0

          Symbole  takie  jak  "mystack_new@Base",  :mystack_push@Base",  "mystack_pop@Base" itd.
          zostaną dopasowane przez pierwszy wzorzec, natomiast np. "ng_mystack_new@Base"  -  nie.
          Drugi wzorzec dopasuje wszystkie symbole posiadające łańcuch "private" w swych nazwach,
          a dopasowania odziedziczą znacznik optional z wzorca.

       Podane wyżej wzorce proste mogą być łączone tam, gdzie ma to sens. W  takim  przypadku  są
       one przetwarzane w takiej kolejności, w jakiej podano znaczniki np. oba

        (c++|regex)"^NSA::ClassA::Private::privmethod\d\(int\)@Base" 1.0
        (regex|c++)N3NSA6ClassA7Private11privmethod\dEi@Base 1.0

       dopasują          symbole          "_ZN3NSA6ClassA7Private11privmethod1Ei@Base"          i
       "_ZN3NSA6ClassA7Private11privmethod2Ei@Base".  Podczas  dopasowywania  pierwszego  wzorca,
       symbol  surowy  jest  najpierw odkodowany jako symbol C++, a odkodowana nazwa symbolu jest
       dopasowywana do wyrażenia regularnego. Z  drugiej  strony,  gdy  dopasowywany  jest  drugi
       wzorzec,  wyrażenie  regularne  jest  dopasowywane  do  surowej  nazwy  symbolu, następnie
       sprawdzane jest, czy symbol jest symbolem C++ przez próbę  odkodowania  go.  Niepowodzenie
       każdego  symbolu  prostego  spowoduje  niepowodzenie  całego  wzorca.  Z  tego  powodu np.
       "__N3NSA6ClassA7Private11privmethod\dEi@Base" nie będzie pasować do  żadnego  ze  wzorców,
       ponieważ nie jest poprawnym symbolem C++.

       Ogólnie,  wszystkie  wzorce  są  podzielone  na dwie grupy: aliasy (proste c++ i symver) i
       wzorce ogólne (regex, wszystkie kombinacje wielu prostych wzorców).  Dopasowanie  prostych
       wzorców  opartych  na  aliasach jest szybkie (0(1)), a wzorce ogólne mają 0(N) (N - liczba
       wzorców ogólnych) na każdy symbol. Z  tego  powodu  nie  zaleca  się  nadużywania  wzorców
       ogólnych.

       Gdy  wiele  symboli  pasuje  do  tego  samego symbolu rzeczywistego, aliasy (najpierw c++,
       następnie symver) są  preferowane  w  stosunku  do  wzorców  ogólnych.  Wzorce  ogólne  są
       dopasowywane  w takiej kolejności, w jakiej zostaną odnalezione w szablonie pliku symboli,
       aż do pierwszego sukcesu. Proszę jednak zwrócić uwagę, że ręczna zmiana kolejności  wpisów
       pliku  szablonu  nie  jest  zalecana,  ponieważ  dpkg-gensymbols  tworzy diffy w oparciu o
       alfanumeryczną kolejność ich nazw.

   Używanie include (dołączeń)
       Gdy zestaw eksportowanych symboli różni się między architekturami,  może  okazać  się,  że
       używanie  pojedynczego  pliku  symboli  nie  jest wygodne. W takich przypadkach, dyrektywa
       dołączenia może okazać się przydatna na kilka sposobów:

       •   Można przenieść część wspólną do pliku zewnętrznego i dołączyć  go  do  swojego  pliku
           pakiet.symbols.arch używając dyrektywy dołączenia podobnej do poniższej:

           #include "pakiet.symbols.common"

       •   Dyrektywa dołączenia może zostać otagowana podobnie jak każdy symbol:

           (tag|...|tagN)#include "plik-do-dołączenia"

           W  rezultacie,  wszystkie  symbole  z  pliku-do-dołączenia zostaną domyślnie oznaczone
           przez tag ... tagN. Można użyć tej funkcji, aby utworzyć wspólny plik  pakiet.symbols,
           który dołącza pliki symboli specyficzne dla architektury:

             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

       Pliki  symboli  są czytane wiersz po wierszu, a dyrektywy dołączenia są przetwarzane zaraz
       po ich wystąpieniu. Oznacza to, że  zawartość  załączonego  pliku  może  przesłonić  każdą
       zawartość,  która pojawi się przed dyrektywą dołączenia, i że zawartość po dyrektywie może
       przesłonić wszystko, co znajduje się w dołączanym pliku.  Każdy  symbol  (lub  nawet  inna
       dyrektywa  #include)  w  dołączanym pliku może określić dodatkowe znaczniki lub przesłonić
       wartości dziedziczonych znaczników w ich określeniach znaczników. Nie ma  jednak  sposobu,
       aby symbol usunąć jakikolwiek z dziedziczonych znaczników.

       Dołączone  pliki  mogą  powtórzyć wiersz nagłówkowy zawierający SONAME biblioteki. W takim
       przypadku, przesłoni on wszystkie odczytane wcześniej wiersze nagłówkowe.  Najlepiej  jest
       jednak zapobiegać duplikowaniu wierszy nagłówkowych. Oto jeden ze sposobów:

       #include "libsomething1.symbols.common"
        arch_specific_symbol@Base 1.0

   Dobre zarządzanie biblioteką
       Dobrze zarządzana biblioteka ma następujące cechy:

       •   jej  API  jest  stabilne  (symbole publiczne nie są nigdy porzucane, dodawane są tylko
           nowe symbole publiczne), a niekompatybilne zmiany są wykonywane  tylko  przy  zmianach
           SONAME;

       •   idealnie,  używa  wersjonowania  symboli,  aby  osiągnąć stabilność ABI niezależnie od
           zmian wewnętrznych i rozszerzeń API;

       •   nie eksportuje symboli prywatnych (takie symbole mogą być  tagowane  jako  opcjonalne,
           jako obejście).

       Podczas  zarządzania  plikiem  symboli  łatwo  jest zauważyć pojawienie się lub zniknięcie
       symboli. Znacznie trudniej jednak wyłapać niekompatybilną zmianę API i ABI.  W  związku  z
       tym,   opiekun   pakietu   powinien   dokładnie   sprawdzić  w  dzienniku  zmian  projektu
       macierzystego, czy istnieje przypadek, że zasady dobrego  zarządzania  biblioteką  zostały
       złamane.  Jeśli  odkryje  się  potencjalne  problemy,  macierzysty  autor  powinien zostać
       poinformowany, jako że poprawka w projekcie macierzystym jest zawsze lepsza, niż  obejście
       problemu w samym Debianie.

OPCJE

       -Pkatalog-budowania-pakietu
              Przeszukuje katalog-budowania-pakietu zamiast debian/tmp.

       -ppakiet
              Definiuje  nazwę  pakietu.  Wymagane,  jeśli  więcej  niż jeden pakiet binarny jest
              wypisany w debian/control (lub nie ma tego pliku).

       -vwersja
              Definiuje wersję pakietu. Domyślnie  jest  to  wersja  wzięta  z  debian/changelog.
              Wymagane, jeśli wywołanie ma miejsce spoza drzewa pakietu źródłowego.

       -eplik-biblioteki
              Only  analyze  libraries explicitly listed instead of finding all public libraries.
              You can use shell patterns used for pathname expansions (see the  File::Glob(3perl)
              manual  page for details) in library-file to match multiple libraries with a single
              argument (otherwise you need multiple -e).

       -Inazwa-pliku
              Używa nazwy-pliku jako pliku odniesienia do generowania pliku symboli,  który  jest
              integrowany w samym pakiecie.

       -O[filename]
              Print  the  generated  symbols file to standard output or to filename if specified,
              rather than to debian/tmp/DEBIAN/symbols (or package-build-dir/DEBIAN/symbols if -P
              was  used).  If  filename  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.

       -t     Write  the  symbol  file  in  template  mode rather than the format compatible with
              deb-symbols(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  deb-symbols(5)  file  (according  to  the  tag
              processing rules) while all symbols are always written to the symbol file template.

       -c[0-4]
              Definiuje  sprawdzenia  do  wykonania  podczas  porównywania  wygenerowanego  pliku
              symboli  z  plikiem  szablonu  używanym  na  początku.  Domyślnym  poziomem jest 1.
              Zwiększanie poziomu wykonuje więcej sprawdzeń i  zawiera  wszystkie  sprawdzenia  z
              niższego  poziomu.  Poziom  0  nigdy  nie kończy się błędem. Poziom 1 sprawdza, czy
              jakieś symbole nie zniknęły. Poziom 2 zawodzi, gdy wprowadzono jakieś nowe symbole.
              Poziom  3  zwraca  błąd, gdy zniknęły jakieś biblioteki. Poziom 4 - gdy wprowadzono
              biblioteki.

              This    value    can    be    overridden    by     the     environment     variable
              DPKG_GENSYMBOLS_CHECK_LEVEL.

       -q     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 -c option).

       -aarchitektura
              Zakłada architekturę jako architekturę hosta w czasie przetwarzania plików symboli.
              Opcji  można użyć, aby wygenerować plik symboli lub diff dla którejś z architektur,
              zakładając że jej pliki binarne są już dostępne.

       -d     Włącza  tryb  debugowania.  Wyświetlanych  jest  wiele   komunikatów   tłumaczących
              działanie dpkg-gensymbols.

       -V     Włącza  tryb  szczegółowy.  Wygenerowany  plik symboli zawiera przestarzałe symbole
              jako komentarze. Co  więcej,  w  trybie  szablonu  po  wzorcach  symboli  występują
              komentarze opisujące symbole rzeczywiste, które dopasowano do wzorca.

       -?, --help
              Wyświetla informację o użytkowaniu i kończy działanie.

       --version
              Wyświetla informację o wersji i pomyślnie kończy działanie.

ZOBACZ TAKŻE

       https://people.redhat.com/drepper/symbol-versioning
       https://people.redhat.com/drepper/goodpractice.pdf
       https://people.redhat.com/drepper/dsohowto.pdf
       deb-symbols(5), dpkg-shlibdeps(1).

TŁUMACZE

       Piotr Roszatycki <dexter@debian.org>, 1999
       Bartosz Feński <fenio@debian.org>, 2004-2005
       Robert Luberda <robert@debian.org>, 2006-2008
       Wiktor Wandachowicz <siryes@gmail.com>, 2008
       Michał Kułach <michal.kulach@gmail.com>, 2012