Bug 1172800 - Review Request: dwgrep - A tool for querying Dwarf (debuginfo) graphs
Summary: Review Request: dwgrep - A tool for querying Dwarf (debuginfo) graphs
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Zbigniew Jędrzejewski-Szmek
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-12-10 18:57 UTC by Petr Machata
Modified: 2015-05-05 01:38 UTC (History)
5 users (show)

Fixed In Version: dwgrep-0.1-6.fc20
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-01-17 05:38:41 UTC
Type: ---
Embargoed:
zbyszek: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Petr Machata 2014-12-10 18:57:58 UTC
Spec URL: https://pmachata.fedorapeople.org/dwgrep.spec
SRPM URL: https://pmachata.fedorapeople.org/dwgrep-0.1-1.fc20.src.rpm

Description:

Dwgrep is a tool, an associated language (called Zwerg) and a library
(libzwerg) for querying Dwarf (debuginfo) graphs.

You can think of dwgrep expressions as instructions describing a path
through a graph, with assertions about the type of nodes along the
way: that a node is of given type, that it has a given attribute,
etc. There are also means of expressing sub-conditions,
i.e. assertions that a given node is acceptable if a separate
expression matches (or does not match) a different path through the
graph.

Fedora Account System Username: pmachata

Comment 1 Petr Machata 2014-12-10 19:16:53 UTC
rpmlint:

dwgrep.src: W: spelling-error Summary(en_US) debuginfo -> debug info, debug-info, debugging
dwgrep.src: W: spelling-error %description -l en_US libzwerg -> liberalize
dwgrep.src: W: spelling-error %description -l en_US debuginfo -> debug info, debug-info, debugging
dwgrep.x86_64: W: spelling-error Summary(en_US) debuginfo -> debug info, debug-info, debugging
dwgrep.x86_64: W: spelling-error %description -l en_US libzwerg -> liberalize
dwgrep.x86_64: W: spelling-error %description -l en_US debuginfo -> debug info, debug-info, debugging
dwgrep-libzwerg.x86_64: W: spelling-error Summary(en_US) debuginfo -> debug info, debug-info, debugging
dwgrep-libzwerg.x86_64: W: shared-lib-calls-exit /usr/lib64/libzwerg.so.0.1 exit.5
dwgrep-libzwerg-devel.x86_64: W: only-non-binary-in-usr-lib
dwgrep-libzwerg-devel.x86_64: W: no-documentation
dwgrep-doc.noarch: W: spelling-error Summary(en_US) libzwerg -> liberalize
6 packages and 1 specfiles checked; 0 errors, 11 warnings.

About that exit call in libzwerg, there's no naked call, but:

$ dwgrep ./64/libzwerg/libzwerg.so.0.1 -e '
    entry (name == "exit") parent @AT_decl_file'
/home/petr/proj/dwgrep/64/libzwerg/lexer.cc

... it turns out that one is hidden in flex-generated code.  I don't think I can do anything about that.

Comment 2 Petr Machata 2014-12-10 21:54:22 UTC
Added some missing dependencies.  New SRPM link is:
https://pmachata.fedorapeople.org/dwgrep-0.1-2.fc20.src.rpm

Comment 3 Dan Horák 2014-12-10 22:13:51 UTC
Hi Petr,

a couple notes
- you should drop the %defattr()s from %files, rpmbuild sets them automagically
- similar for rm -rf $BUILDROOT" in %install, rpmbuild takes care of it
- my personal preference is having each BuildRequires on its own line, it is easier to track the changes in BRs
- add %dir %{_includedir}/libzwerg to %files libzwerg-devel, otherwise the dir will be unowned

Nice to see using package's own tool to explain the exit() call :-)

Comment 4 Petr Machata 2014-12-10 23:16:28 UTC
Thanks.

Fun little thing with those defattrs.  I remember having been corrected that they should be put in a couple years back :)

Updated SRPM:
https://pmachata.fedorapeople.org/dwgrep-0.1-3.fc20.src.rpm

Comment 5 Zbigniew Jędrzejewski-Szmek 2014-12-17 21:39:49 UTC
The way the version is defined is unusual. Why not simply remove %{commit} and use %{version} everywhere instead?

Use %license not %doc for COPYING COPYING-LGPLV3. You could also duplicate that in the -devel package, without depending on an implicit dependency. 

Not strictly necessary, but it would save a few lines to do:
   make -C build install ...
   
   make -C build test

Requires: elfutils-devel%{?_isa} = %{version}-%{release} is bad. This makes it impossible to e.g. fix a packaging bug in just one of those packages without requiring a spurious rebuild of the other one. Also elfutils-devel has version 0.160 here, so it actually makes the package uninstallable.

I think the "dwgrep-" component in library subpackages is unnecessary. Just call them libzwerg, libzwerg-devel (use %package -n libzwerg, etc.).

You must add Provides: bundled(jquery).

Comment 6 Petr Machata 2014-12-19 18:26:28 UTC
(In reply to Zbigniew Jędrzejewski-Szmek from comment #5)
> The way the version is defined is unusual. Why not simply remove %{commit}
> and use %{version} everywhere instead?

Done.  This was a remnant of when I started working on the package using an as-yet-untagged GIT tree.

> Use %license not %doc for COPYING COPYING-LGPLV3. You could also duplicate

Done.

> that in the -devel package, without depending on an implicit dependency. 

I know.  I chose not to in accordance with packaging guidelines.

> Not strictly necessary, but it would save a few lines to do:
>    make -C build install ...
>    
>    make -C build test

I actually like how pushd/popd is used consistently to handle this across sections.

> Requires: elfutils-devel%{?_isa} = %{version}-%{release} is bad. This makes

Oops, yeah, that's probably too much copy-paste.

> I think the "dwgrep-" component in library subpackages is unnecessary. Just
> call them libzwerg, libzwerg-devel (use %package -n libzwerg, etc.).

Oh, cool, I didn't know this was allowed.

> You must add Provides: bundled(jquery).

I don't think I bundle jquery.  Do I bundle jquery?

Thanks for review.  I'll push an updated package shortly, spinning a test build now.

Comment 7 Petr Machata 2014-12-19 18:33:57 UTC
(In reply to Petr Machata from comment #6)
> I don't think I bundle jquery.  Do I bundle jquery?

Oh, of course I do, in the Sphinx doco.  Will fix this.

Comment 8 Petr Machata 2014-12-19 19:18:58 UTC
Updated package:
https://pmachata.fedorapeople.org/dwgrep-0.1-4.fc20.src.rpm

Hopefully I didn't miss anything.

> that in the -devel package, without depending on an implicit dependency.

I actually added them to libzwerg now, since the names are different, it sort of makes more sense this way.  -devel still relies on implicit dep.

Comment 9 Zbigniew Jędrzejewski-Szmek 2014-12-20 14:36:55 UTC
Two questions:
- how is libzwerg headers supposed to be used? Currently it'd be #include <libzwerg/libzwerg.h>. Shouldn't the headers be installed directly in /usr/include, so it is enough to say #include <libzwerg.h>? (Really an upstream question, but still worth answering).

- maybe move the documentation from /usr/share/doc/dwgrep-doc/ to /usr/share/doc/dwgrep/html?

Comment 10 Petr Machata 2014-12-20 23:42:16 UTC
Mostly this is modeled after elfutils.  I like the idea of keeping the headers of a project together in a directory.  libzwerg is also fairly easily extensible, so someone could come up with their own set of words for navigating stuff that they are interested in.  They would then naturally use this directory as well.  This possibility is somewhat remote, as there is no public API for this, but at some point it likely will be.  The whole Dwarf module could then be converted to a separate DSO and provided as an independent module which just uses core libzwerg API.  Those are all blue-sky plans though.  Near-term there are more pressing issues (see the fairly extensive TODO in the source tarball).

A user could pass -I /usr/include/libzwerg if they wish to use the simple inclusion scheme.

But the whole API is experimental at this point, and undocumented (unlike the query language itself, which I'd like to keep fairly stable), so this can all change in arbitrary ways.  Even though I have symbol versioning in, it will likely not be used seriously until some later release.  E.g. note the function named zw_stack_dump_xxx, which is actually exported by the version script.

(In reply to Zbigniew Jędrzejewski-Szmek from comment #9)
> - maybe move the documentation from /usr/share/doc/dwgrep-doc/ to
> /usr/share/doc/dwgrep/html?

That makes sense.  But wouldn't then dwgrep-doc have to depend on dwgrep?

Comment 11 Zbigniew Jędrzejewski-Szmek 2014-12-25 04:17:37 UTC
(In reply to Petr Machata from comment #10)
> Mostly this is modeled after elfutils [...]
Makes sense. Now that I think about it, keeping even two files in one dir
seems nicer.

> (In reply to Zbigniew Jędrzejewski-Szmek from comment #9)
> > - maybe move the documentation from /usr/share/doc/dwgrep-doc/ to
> > /usr/share/doc/dwgrep/html?
> 
> That makes sense.  But wouldn't then dwgrep-doc have to depend on dwgrep?
They can co-own the directory. Especially owning the same directory (or file) by two subpackages built from the same source packages is totally not an issue.
(I think you'll have to add an %exclude %{_pkgdocdir}/html to the master package's %files, because of the way that %doc works.)

Comment 12 Petr Machata 2015-01-02 16:38:29 UTC
OK, I made it as you say.  Both the core package and the doc subpackage now own the docdir.  Only the subpackage owns and deploys the html though:

# rpm -qlp /builddir/rpmbuild/RPMS/x86_64/dwgrep-0.1-5.fc20.x86_64.rpm | grep /doc/
/usr/share/doc/dwgrep
/usr/share/doc/dwgrep/NEWS
/usr/share/doc/dwgrep/README
# rpm -qlp /builddir/rpmbuild/RPMS/noarch/dwgrep-doc-0.1-5.fc20.noarch.rpm | grep /doc/
/usr/share/doc/dwgrep
/usr/share/doc/dwgrep/html
/usr/share/doc/dwgrep/html/_sources
/usr/share/doc/dwgrep/html/_sources/cli.txt
[... etc ...]

The updated SRPM is at:
https://pmachata.fedorapeople.org/dwgrep-0.1-5.fc20.src.rpm

Comment 13 Zbigniew Jędrzejewski-Szmek 2015-01-05 15:25:43 UTC
===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: Header files in -devel subpackage, if present.
[x]: ldconfig called in %post and %postun if required.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.
[x]: Development (unversioned) .so files in -devel subpackage, if present.

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "GPL (v3.1)", "GPL (v2)", "GPL (v3 or later)", "Unknown or generated". 98
     files have unknown license. Detailed output of licensecheck in
     /var/tmp/1172800-dwgrep/licensecheck.txt
GPLv3+ and (GPLv2+ or LGPLv3+)

[x]: License file installed when any subpackage combination is installed.
[x]: If the package is under multiple licenses, the licensing breakdown must
     be documented in the spec.
[x]: Package does not own files or directories owned by other packages.
     Note: Dirs in package are owned also by: /usr/include/libzwerg(dwgrep-
     libzwerg-devel)
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[x]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 10240 bytes in 2 files.
[x]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least one
     supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: All build dependencies are listed in BuildRequires, except for any that
     are listed in the exceptions section of Packaging Guidelines.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package use %makeinstall only when make install' ' DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package do not use a name that already exist
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as provided
     in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[-]: If the source package does not include license text(s) as a separate file
     from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[x]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in libzwerg ,
     libzwerg-devel , dwgrep-doc
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Scriptlets must be sane, if used.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[x]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed files.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: Dist tag is present (not strictly required in GL).
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Uses parallel make %{?_smp_mflags} macro.
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Large data in /usr/share should live in a noarch subpackage if package is
     arched.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: dwgrep-0.1-5.fc22.x86_64.rpm
          libzwerg-0.1-5.fc22.x86_64.rpm
          libzwerg-devel-0.1-5.fc22.x86_64.rpm
          dwgrep-doc-0.1-5.fc22.noarch.rpm
          dwgrep-0.1-5.fc22.src.rpm
dwgrep.x86_64: W: spelling-error Summary(en_US) debuginfo -> debug info, debug-info, debugging
dwgrep.x86_64: W: spelling-error %description -l en_US libzwerg -> liberalize
dwgrep.x86_64: W: spelling-error %description -l en_US debuginfo -> debug info, debug-info, debugging
libzwerg.x86_64: W: spelling-error Summary(en_US) debuginfo -> debug info, debug-info, debugging
libzwerg.x86_64: W: shared-lib-calls-exit /usr/lib64/libzwerg.so.0.1 exit.5
libzwerg.x86_64: W: no-documentation
libzwerg-devel.x86_64: W: only-non-binary-in-usr-lib
libzwerg-devel.x86_64: W: no-documentation
dwgrep-doc.noarch: W: spelling-error Summary(en_US) libzwerg -> liberalize
dwgrep-doc.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/dwgrep/html/_static/jquery.js
dwgrep.src: W: spelling-error Summary(en_US) debuginfo -> debug info, debug-info, debugging
dwgrep.src: W: spelling-error %description -l en_US libzwerg -> liberalize
dwgrep.src: W: spelling-error %description -l en_US debuginfo -> debug info, debug-info, debugging
dwgrep.src:23: W: unversioned-explicit-provides bundled(jquery)
5 packages and 0 specfiles checked; 0 errors, 14 warnings.




Rpmlint (installed packages)
----------------------------
]0;<mock-chroot><mock-chroot>[root@bupkis /]# rpmlint libzwerg dwgrep libzwerg-devel dwgrep-doc
libzwerg.x86_64: W: spelling-error Summary(en_US) debuginfo -> debug info, debug-info, debugging
libzwerg.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libzwerg.so.0.1 /lib64/libm.so.6
libzwerg.x86_64: W: shared-lib-calls-exit /usr/lib64/libzwerg.so.0.1 exit.5
libzwerg.x86_64: W: no-documentation
dwgrep.x86_64: W: spelling-error Summary(en_US) debuginfo -> debug info, debug-info, debugging
dwgrep.x86_64: W: spelling-error %description -l en_US libzwerg -> liberalize
dwgrep.x86_64: W: spelling-error %description -l en_US debuginfo -> debug info, debug-info, debugging
libzwerg-devel.x86_64: W: only-non-binary-in-usr-lib
libzwerg-devel.x86_64: W: no-documentation
dwgrep-doc.noarch: W: spelling-error Summary(en_US) libzwerg -> liberalize
dwgrep-doc.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/dwgrep/html/_static/jquery.js
4 packages and 0 specfiles checked; 0 errors, 11 warnings.
]0;<mock-chroot><mock-chroot>[root@bupkis /]# echo 'rpmlint-done:'



Requires
--------
libzwerg (rpmlib, GLIBC filtered):
    /sbin/ldconfig
    libc.so.6()(64bit)
    libdw.so.1()(64bit)
    libdw.so.1(ELFUTILS_0.122)(64bit)
    libdw.so.1(ELFUTILS_0.130)(64bit)
    libdw.so.1(ELFUTILS_0.143)(64bit)
    libdw.so.1(ELFUTILS_0.157)(64bit)
    libdw.so.1(ELFUTILS_0.159)(64bit)
    libdw.so.1(ELFUTILS_0.160)(64bit)
    libelf.so.1()(64bit)
    libelf.so.1(ELFUTILS_1.0)(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libm.so.6()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    rtld(GNU_HASH)

dwgrep (rpmlib, GLIBC filtered):
    libc.so.6()(64bit)
    libdw.so.1()(64bit)
    libelf.so.1()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libm.so.6()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.8)(64bit)
    libzwerg.so.0.1()(64bit)
    libzwerg.so.0.1(LIBZWERG_0.1)(64bit)
    rtld(GNU_HASH)

libzwerg-devel (rpmlib, GLIBC filtered):
    elfutils-devel(x86-64)
    libzwerg(x86-64)
    libzwerg.so.0.1()(64bit)

dwgrep-doc (rpmlib, GLIBC filtered):



Provides
--------
libzwerg:
    libzwerg
    libzwerg(x86-64)
    libzwerg.so.0.1()(64bit)
    libzwerg.so.0.1(LIBZWERG_0.1)(64bit)

dwgrep:
    bundled(jquery)
    dwgrep
    dwgrep(x86-64)

libzwerg-devel:
    libzwerg-devel
    libzwerg-devel(x86-64)

dwgrep-doc:
    dwgrep-doc



Source checksums
----------------
https://github.com/pmachata/dwgrep/archive/0.1/dwgrep-0.1.tar.gz :
  CHECKSUM(SHA256) this package     : e5ffc4658f05498df0fd09053e5bb01a490578aa36e29f902a154ec46b2279f8
  CHECKSUM(SHA256) upstream package : e5ffc4658f05498df0fd09053e5bb01a490578aa36e29f902a154ec46b2279f8


Generated by fedora-review 0.5.2 (63c24cb) last change: 2014-07-14
Command line :/usr/bin/fedora-review -b 1172800
Buildroot used: fedora-rawhide-x86_64
Active plugins: Generic, Shell-api, C/C++
Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP, Ruby
Disabled flags: EXARCH, EPEL5, BATCH, DISTTAG



Package is APPROVED.

Comment 14 Petr Machata 2015-01-05 16:35:15 UTC
Thanks!

Comment 15 Petr Machata 2015-01-05 16:42:13 UTC
New Package SCM Request
=======================
Package Name: dwgrep
Short Description: A tool for querying Dwarf (debuginfo) graphs
Upstream URL: http://pmachata.github.io/dwgrep/
Owners: pmachata
Branches: f20 f21 f22
InitialCC:

Comment 16 Gwyn Ciesla 2015-01-05 18:10:21 UTC
Git done (by process-git-requests).

Comment 17 Fedora Update System 2015-01-06 04:22:27 UTC
dwgrep-0.1-5.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/dwgrep-0.1-5.fc21

Comment 18 Fedora Update System 2015-01-06 04:23:32 UTC
dwgrep-0.1-5.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/dwgrep-0.1-5.fc20

Comment 19 Fedora Update System 2015-01-07 01:24:38 UTC
dwgrep-0.1-5.fc21 has been pushed to the Fedora 21 testing repository.

Comment 20 Dan Horák 2015-01-07 08:31:48 UTC
dwgrep fails to build on s390 (32 bit) due the size_t == unsigned long (opposed to the common size_t == unsigned int) problem

...
[ 16%] Building CXX object libzwerg/CMakeFiles/LibzwergCore.dir/parser.cc.o
cd /builddir/build/BUILD/dwgrep-0.1/build/libzwerg && /usr/bin/c++    -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -m31 -march=z9-109 -mtune=z10  -std=c++11 -Wall -Wnon-virtual-dtor -O2 -g -I/builddir/build/BUILD/dwgrep-0.1/libzwerg -I/builddir/build/BUILD/dwgrep-0.1/build -I/builddir/build/BUILD/dwgrep-0.1/build/libzwerg    -fPIC -o CMakeFiles/LibzwergCore.dir/parser.cc.o -c /builddir/build/BUILD/dwgrep-0.1/build/libzwerg/parser.cc
In file included from /builddir/build/BUILD/dwgrep-0.1/libzwerg/tree.hh:36:0,
                 from parser.yy:35,
                 from parser.yy:30:
/builddir/build/BUILD/dwgrep-0.1/libzwerg/constant.hh: In instantiation of 'constant::constant(const T&, const constant_dom*, brevity) [with T = long unsigned int]':
parser.yy:475:49:   required from here
/builddir/build/BUILD/dwgrep-0.1/libzwerg/constant.hh:113:17: error: call of overloaded 'mpz_class(const long unsigned int&)' is ambiguous
     , m_brv {brv}
                 ^
/builddir/build/BUILD/dwgrep-0.1/libzwerg/constant.hh:113:17: note: candidates are:
In file included from /builddir/build/BUILD/dwgrep-0.1/libzwerg/constant.hh:36:0,
                 from /builddir/build/BUILD/dwgrep-0.1/libzwerg/tree.hh:36,
                 from parser.yy:35,
                 from parser.yy:30:
/builddir/build/BUILD/dwgrep-0.1/libzwerg/int.hh:75:3: note: mpz_class::mpz_class(int32_t)
   mpz_class (int32_t value)
   ^
/builddir/build/BUILD/dwgrep-0.1/libzwerg/int.hh:71:3: note: mpz_class::mpz_class(int64_t)
   mpz_class (int64_t value)
   ^
/builddir/build/BUILD/dwgrep-0.1/libzwerg/int.hh:67:3: note: mpz_class::mpz_class(uint32_t)
   mpz_class (uint32_t value)
   ^
/builddir/build/BUILD/dwgrep-0.1/libzwerg/int.hh:63:3: note: mpz_class::mpz_class(uint64_t)
   mpz_class (uint64_t value)
   ^
/builddir/build/BUILD/dwgrep-0.1/libzwerg/int.hh:61:3: note: constexpr mpz_class::mpz_class(const mpz_class&)
   mpz_class (mpz_class const &that) = default;
   ^
make[2]: Leaving directory '/builddir/build/BUILD/dwgrep-0.1/build'
/usr/bin/cmake -E cmake_progress_report /builddir/build/BUILD/dwgrep-0.1/build/CMakeFiles  45
[ 16%] Built target TestStub
...


for full log please see http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=1682034

Comment 21 Petr Machata 2015-01-07 09:49:52 UTC
Ah, uint32_t is unsigned int, uint64_t is unsigned long long int, but size_t is unsigned int.  The mpz_class ctor needs a different set of overloads.

Comment 22 Petr Machata 2015-01-07 13:02:27 UTC
(In reply to Petr Machata from comment #21)
> size_t is unsigned int

unsigned long int is what I had in mind.  Building a fixed package.

Comment 23 Fedora Update System 2015-01-17 05:38:41 UTC
dwgrep-0.1-6.fc21 has been pushed to the Fedora 21 stable repository.

Comment 24 Fedora Update System 2015-01-17 05:48:24 UTC
dwgrep-0.1-6.fc20 has been pushed to the Fedora 20 stable repository.


Note You need to log in before you can comment on or make changes to this bug.