Package: dpkg-dev
Version: 1.15.5.5
Severity: wishlist
Tags: patch

Hello,

This bug is more like a follow up of the message #61 [1] in bug #533916. I have
finally finished implementing symbol patterns to full extent, i.e. the code has
undergone clean up and it is as nice as I can write it. What is more, manual
page update and a complete test suite are included.

To make reviewing a lot easier and faster for you, all my work is split into 14
mostly self-contained commits (the last being copyright update). Please note
that they are not my typical work tree. On the contrary, they are much more
polished and each of them is supposedly bug-free. However, from now on, I'll
fix bugs if any are found on top of those initial 14 patches so don't be
surprised if you see more commits in the remote branch.

All my work is in 'symbol-patterns' branch. Remote repository is located at:

  git://git.debian.org/users/modax/dpkg.git
  
http://git.debian.org/?p=users/modax/dpkg.git;a=shortlog;h=refs/heads/symbol-patterns

Oneline log:

 $ git log --oneline master..symbol-patterns

2761109 Bump copyright years and use @debian.org address.
b55f6b3 Document patterns in the manual page.
090873a Add testsuite for symbol patterns functionality.
12ea63a Collection of tweaks to the existing Dpkg_Shlibs tests and codebase.
93168fc Improve dpkg-gensymbols output, add "verbose output" option.
9676657 Improve SymbolFile::dump() output.
5f58c24 Fix indentation style in SymbolFile::dump().
40ca127 Implement pattern matching.
0b7ef8e Simplify and shorten get_new_symbols().
77a9b89 Split SymbolFile::merge_symbols().
c268d0d Initialize patterns.
c206e18 Add pattern related subs to Symbol interface.
76b077b Replace Symbol::clone() with dclone() and sclone().
a7533ad Add Cppfilt module - interface to the c++filt utility.

In order to know more what this feature is about, I recommend to read manual
page update first:

  $ git show b55f6b3

I recommend the following debian/changelog entries when closing this bug (where
#nnnnnn is a number of this bug):

  [ Modestas Vainius ]
  * Implement symbol patterns (Closes: #nnnnnn). From now on, it is possible to
    match multiple symbols with a single entry in the symbol file template.
    While the concept is not new (wildcards also match multiple symbols),
    patterns cover much more ground and are a lot more flexible. Together with
    the framework, 3 atomic pattern types are supported:
    - c++ - matching C++ symbols by their demangled name (as emitted by
      c++filt);
    - wildcard - matching by symbol version. Wildcard pattern is not new, but
      it has been reimplemented on top of the patterns framework;
    - regexp - matching perl regular expression against raw symbol names.
    What is more, atomic patterns may be combined where it makes sence.
  * As a positive side effect of the new symbol patterns implementation,
    patterns are now treated like normal symbols whenever possible, e.g. a
    pattern is MISSING if it does not match anything. As a result,
    dpkg-gensymbols is now able to detect NEW/MISSING symbols when patterns are
    present in the symbol file (Closes: #541464). Please note, however, that
    there is no way to detect symbol changes in the pattern match sets.

Consider #533916 blocked by this bug. I still think substs (except vt of
course) are useful even with symbol pattern support. I'll will probably
re-implement them once/if symbol patterns get accepted.

It would be great to see this feature in squeeze...

1. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=533916#61

-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (101, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.31-1-amd64 (SMP w/1 CPU core)
Locale: LANG=lt_LT.UTF-8, LC_CTYPE=lt_LT.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages dpkg-dev depends on:
ii  base-files        5.0.0                  Debian base system miscellaneous f
ii  binutils          2.20-4                 The GNU assembler, linker and bina
ii  bzip2             1.0.5-3                high-quality block-sorting file co
ii  dpkg              1.15.5.5               Debian package management system
ii  libtimedate-perl  1.1900-1               Time and date functions for Perl
ii  lzma              4.43-14                Compression method of 7z format in
ii  make              3.81-7                 An utility for Directing compilati
ii  patch             2.6-2                  Apply a diff file to an original
ii  perl [perl5]      5.10.1-8               Larry Wall's Practical Extraction 
ii  perl-modules      5.10.1-8               Core Perl modules
ii  xz-utils          4.999.9beta+20091116-1 XZ-format compression utilities

Versions of packages dpkg-dev recommends:
ii  build-essential               11.4       Informational list of build-essent
ii  fakeroot                      1.14.4-1   Gives a fake root environment
ii  gcc [c-compiler]              4:4.4.2-2  The GNU C compiler
ii  gcc-4.4 [c-compiler]          4.4.2-8    The GNU C compiler
ii  gnupg                         1.4.10-2   GNU privacy guard - a free PGP rep
ii  gpgv                          1.4.10-2   GNU privacy guard - signature veri

Versions of packages dpkg-dev suggests:
pn  debian-keyring                <none>     (no description available)
pn  debian-maintainers            <none>     (no description available)

-- no debconf information




-- 
To UNSUBSCRIBE, email to debian-dpkg-bugs-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to