Bug 1928969 - Review Request: chatty - mobile libpurple messaging client
Summary: Review Request: chatty - mobile libpurple messaging client
Keywords:
Status: ASSIGNED
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
medium
Target Milestone: ---
Assignee: Kevin Fenzi
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 1870890 (view as bug list)
Depends On:
Blocks: mobility
TreeView+ depends on / blocked
 
Reported: 2021-02-15 22:07 UTC by sorensentor
Modified: 2021-03-22 13:23 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: Bug
kevin: fedora-review+


Attachments (Terms of Use)

Description sorensentor 2021-02-15 22:07:28 UTC
Spec URL: https://gitlab.com/fedora-mobile/chatty/-/raw/master/chatty.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/njha/mobile/fedora-rawhide-x86_64/01966623-chatty/chatty-0.2.0-4.fc35.src.rpm
Copr Build: https://copr.fedorainfracloud.org/coprs/njha/mobile/build/1966623/
Description: A mobile libpurple messaging client
Fedora Account System Username: torbuntu

I have been granted permission to take over this package, continueing the review request from here: https://bugzilla.redhat.com/show_bug.cgi?id=1870890

Comment 1 sorensentor 2021-02-15 22:09:34 UTC
*** Bug 1870890 has been marked as a duplicate of this bug. ***

Comment 2 Kevin Fenzi 2021-03-09 00:59:30 UTC
I'll review this. Look for a full review in a while...

Comment 3 Kevin Fenzi 2021-03-13 19:40:55 UTC
Sorry for the delay here.

Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed


Issues:
=======
- Package uses either %{buildroot} or $RPM_BUILD_ROOT
  Note: Using both %{buildroot} and $RPM_BUILD_ROOT
  See: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_macros

- The private library usage is... unfortunate. Is there any way to just disable
the jabber support and not have to use it? Failing that, would it at least be possible
to use the libpurple library at runtime? (currently this package installs the 
kind of generic sounding /usr/lib64/libjabber.so which it gets from libpurple
during build instead of the /usr/lib64/purple-2/libjabber.so). 
Also if you can't use the libpurple one, make sure to add a 
Provides: bundled(libjabber.so) per
https://docs.fedoraproject.org/en-US/packaging-guidelines/#bundling

- rpmlint has:
(a bunch of stuff that can be ignored and)
chatty.src:42: W: unversioned-explicit-provides libjabber
(this related to the above)

chatty.src:21: W: mixed-use-of-spaces-and-tabs (spaces: line 15, tab: line 21)
(might be nice to stick to one or the other of tabs and spaces)

chatty.src: E: specfile-error warning: bogus date in %changelog: Sun Feb 15 2021 Torrey Sorensen <torbuntu@fedoraproject.org> - 0.2.0-4
(The 15th was a monday :) 

A bunch of weak symbols related to libjabber (see above).

===== MUST items =====

C/C++:
[x]: Provides: bundled(gnulib) in place as required.
     Note: Sources not installed
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: Header files in -devel subpackage, if present.
[x]: ldconfig not called in %post and %postun for Fedora 28 and later.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

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: There is no build directory. Running licensecheck on vanilla
     upstream sources. No licenses found. Please check the source files for
     licenses manually.
[x]: License file installed when any subpackage combination is installed.
[x]: Package does not own files or directories owned by other packages.
     Note: Dirs in package are owned also by: /usr/share/bash-
     completion(chocolate-doom, wlogout, driverctl, rtags, mt-st, skim,
     git-annex, nitrokey-app, exa, devscripts-checkbashisms, tealdeer,
     gpaste, fedmod, unar, stress-ng, ripgrep, rpmdevtools, toolbox, nnn,
     beaker-client, yadifa, pipx, libqmi, restic, dotnet-host, git-core,
     falkon, docopt, docker-compose, dnf, zypper, filesystem, rpmlint,
     pdfgrep, clevis, cowsay, libmbim, cobbler, tracker, reprepro,
     etckeeper, mercurial, maven, rpmspectool, fd-find, subversion, kmod,
     alacritty, bodhi-client, gammu, task, bubblewrap, eg, git-delta,
     yadifa-tools, swayidle, ModemManager, devscripts, glib2, python-
     django-bash-completion, hyperfine, smc-tools, dconf-editor, cmake-
     data, fedpkg, hstr, mtr, datamash, sway, monotone, buildah, playerctl,
     source-highlight, vagrant, zeitgeist, lightdm, clufter-cli, lxc, tio,
     golang-github-tdewolff-minify, calf, breezy, swaylock,
     python3-catkin_tools, licensecheck, awscli, lxi-tools, ffsend, zola,
     darcs, flatpak, pbuilder, ldc, policycoreutils, skopeo, stratis-cli,
     rubygem-ronn-ng, tracker3, exercism, ethtool, bash-completion, cpu-x,
     python3-trezor), /usr/share/bash-completion/completions(chocolate-
     doom, wlogout, driverctl, rtags, mt-st, skim, git-annex, nitrokey-app,
     exa, nbdkit-bash-completion, devscripts-checkbashisms, tealdeer,
     gpaste, fedmod, unar, packit, stress-ng, ripgrep, rpmdevtools,
     toolbox, nnn, beaker-client, firejail, yadifa, firewalld, pipx,
     libqmi, flameshot, restic, dotnet-host, git-core, falkon, ndctl,
     docopt, kompose, docker-compose, dnf, zypper, filesystem, rpmlint,
     calibre, pdfgrep, clevis, cowsay, libmbim, cobbler, opensc, tracker,
     reprepro, etckeeper, mercurial, maven, nordugrid-arc-client,
     rpmspectool, fd-find, subversion, kmod, libappstream-glib, alacritty,
     bodhi-client, lastpass-cli, gammu, task, bubblewrap, eg, git-delta,
     yadifa-tools, swayidle, coccinelle-bash-completion, ModemManager,
     devscripts, glib2, python-django-bash-completion, hyperfine, smc-
     tools, dconf-editor, cmake-data, fedpkg, hstr, jo, mtr, tig, datamash,
     sway, python3-pip, monotone, libguestfs-bash-completion, buildah,
     playerctl, source-highlight, vagrant, zeitgeist, lightdm, clufter-cli,
     lxc, tio, golang-github-tdewolff-minify, calf, breezy, swaylock,
     python3-catkin_tools, libnbd-bash-completion, licensecheck, awscli,
     lxi-tools, ffsend, zola, darcs, flatpak, GMT-common, pbuilder, ldc,
     minipro, skopeo, stratis-cli, xss-lock, rubygem-ronn-ng, tracker3,
     exercism, ethtool, bash-completion, cpu-x, python3-trezor)
[x]: %build honors applicable compiler flags or justifies otherwise.
[!]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[x]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: The spec file handles locales properly.
[!]: 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.
[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 10240 bytes in 1 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]: If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %license.
[x]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[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 contains desktop file if it is a GUI application.
[x]: Package installs a %{name}.desktop using desktop-file-install or
     desktop-file-validate if there is such a file.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package must not depend on deprecated() packages.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[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:
[x]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[!]: Final provides and requires are sane (see attachments).
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not 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.
[-]: Packages should try to preserve timestamps of original installed
     files.
[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]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Fully versioned dependency in subpackages if applicable.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

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

Generic:
[x]: Rpmlint is run on debuginfo package(s).
     Note: No rpmlint messages.
[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: chatty-0.2.0-4.fc35.x86_64.rpm
          chatty-debuginfo-0.2.0-4.fc35.x86_64.rpm
          chatty-debugsource-0.2.0-4.fc35.x86_64.rpm
          chatty-0.2.0-4.fc35.src.rpm
chatty.x86_64: W: spelling-error Summary(en_US) libpurple -> lib purple, lib-purple, purple
chatty.x86_64: W: spelling-error %description -l en_US libpurple -> lib purple, lib-purple, purple
chatty.x86_64: W: spelling-error %description -l en_US phosh -> phish, posh, phosphor
chatty.x86_64: W: non-conffile-in-etc /etc/xdg/autostart/sm.puri.Chatty-daemon.desktop
chatty.x86_64: W: no-manual-page-for-binary chatty
chatty.src: W: spelling-error Summary(en_US) libpurple -> lib purple, lib-purple, purple
chatty.src: W: spelling-error %description -l en_US libpurple -> lib purple, lib-purple, purple
chatty.src: W: spelling-error %description -l en_US phosh -> phish, posh, phosphor
chatty.src:42: W: unversioned-explicit-provides libjabber
chatty.src:21: W: mixed-use-of-spaces-and-tabs (spaces: line 15, tab: line 21)
chatty.src: E: specfile-error warning: bogus date in %changelog: Sun Feb 15 2021 Torrey Sorensen <torbuntu@fedoraproject.org> - 0.2.0-4
4 packages and 0 specfiles checked; 1 errors, 10 warnings.




Rpmlint (debuginfo)
-------------------
Checking: chatty-debuginfo-0.2.0-4.fc35.x86_64.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.





Rpmlint (installed packages)
----------------------------
chatty.x86_64: W: spelling-error Summary(en_US) libpurple -> lib purple, lib-purple, purple
chatty.x86_64: W: spelling-error %description -l en_US libpurple -> lib purple, lib-purple, purple
chatty.x86_64: W: spelling-error %description -l en_US phosh -> phish, posh, phosphor
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_marshal_VOID__POINTER
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_txt_response_destroy
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_utf8_strcasecmp
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER_POINTER
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 xmlnode_free
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_marshal_BOOLEAN__POINTER_POINTER_POINTER
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_marshal_VOID__POINTER_POINTER
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_notify_userinfo
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_close
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_url_parse
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_xfer_unref
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 xmlnode_get_attrib_with_namespace
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_utf8_strftime
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_roomlist_room_add
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_blist_node_get_sibling_next
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_notify_uri
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_plugin_action_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_group_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_accepted
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_cipher_context_digest
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 xmlnode_get_next_twin
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_candidate_get_foundation
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_field_list_get_data
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_circ_buffer_destroy
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_manager_get
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_connection_set_display_name
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_field_list_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_account_request_password
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_account_set_bool
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_account_get_password
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_account_get_remember_password
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_signal_register
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_account_set_user_info
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_roomlist_set_fields
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_stream_info
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_proxy_connect_cancel_with_handle
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_ssl_read
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_xfer_get_type
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_field_group_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_imgstore_get_extension
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_xfer_set_start_fnc
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_proxy_get_setup
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_core_get_ui_info
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_buddy_get_contact_alias
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_xfer_cancel_local
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_conv_chat_remove_user
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_dnsquery_destroy
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_xfer_set_request_denied_fnc
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_smileys_get_all
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_util_fetch_url_cancel
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_fields_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 xmlnode_get_data
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_value_set_boolean
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_imgstore_add_with_id
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_strdup_withhtml
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_plugin_ipc_unregister_all
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_network_get_my_ip
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 xmlnode_get_child
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_presence_get_idle_time
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 serv_got_chat_invite
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_prpl_got_user_idle
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_connection_update_progress
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_cipher_context_set_key
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_proxy_info_set_host
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_blist_remove_buddy
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_base64_decode
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_notify_user_info_add_pair
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 xmlnode_insert_child
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_status_is_active
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_notify_user_info_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_get_local_candidates
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_blist_node_get_string
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_buddy_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_serv_got_private_alias
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_xfer_get_bytes_remaining
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_notify_searchresults_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_presence_get_status
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_debug_info
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_codec_add_optional_parameter
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_buddy_get_group
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_timeout_add
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_roomlist_room_add_field
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_buddy_get_presence
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_connection_get_display_name
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_account_set_string
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_status_get_type
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_get_codecs
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_group_get_name
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_codecs_ready
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_field_group_add_field
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_notify_user_info_prepend_section_break
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_conversation_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_blist_add_buddy
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_circ_buffer_mark_read
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_debug_warning
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_account_get_int
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_status_get_attr_string
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_xfer_ref
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_network_listen_cancel
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_imgstore_unref
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_uuid_random
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_account_get_bool
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_proxy_info_get_type
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_notify_emails
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_field_bool_get_value
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_xfer_set_cancel_send_fnc
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_action
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_str_has_prefix
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_field_list_add_icon
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_xfer_set_init_fnc
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_connection_get_prpl
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_conversation_get_gc
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_cmd_register
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_field_list_add_selected
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_xfer_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_xfer_request_accepted
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_set_prpl_data
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_cipher_context_digest_to_str
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_xfer_set_write_fnc
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_fields_get_string
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_xfer_set_completed
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_network_listen_range
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_serv_got_join_chat_failed
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_cipher_context_new_by_name
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_str_to_time
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_field_list_set_multi_select
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_xfer_get_remote_user
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_signal_connect_priority
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_xfer_request
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_candidate_get_username
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 xmlnode_from_str
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_buddy_get_name
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_cmd_unregister
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_srv_resolve_account
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_xfer_get_status
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_roomlist_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_account_get_username
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_cipher_context_set_option
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_strreplace
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_markup_linkify
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_txt_response_destroy
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_debug_is_verbose
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_markup_strip_html
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_candidate_get_ip
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_conversation_get_name
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_buddy_icons_set_for_user
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_conv_chat_user_set_flags
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_fields_get_field
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_circ_buffer_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_find_conversation_with_account
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_conv_custom_smiley_add
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_menu_action_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 serv_got_chat_in
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_notify_user_info_destroy
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_connection_error_reason
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 serv_got_joined_chat
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_buddy_get_account
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_field_choice_get_labels
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_account_get_connection
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_utf8_strcasecmp
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_candidate_list_free
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_conv_custom_smiley_close
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_codec_list_free
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_value_set_int
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_prpl_got_account_actions
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_signal_connect
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_field_bool_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_imgstore_get_size
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 serv_got_alias
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_unescape_text
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_find_buddies
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_srv_cancel
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 serv_set_info
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_notify_searchresults_column_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_find_group
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_conv_chat_set_nick
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_conversation_get_account
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_utf8_strip_unprintables
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_account_disconnect
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_xfer_set_size
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_prpl_got_user_status
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_blist_rename_buddy
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_ip_address_is_valid
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_conversation_get_chat_data
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_smiley_get_stored_image
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_proxy_info_set_port
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_blist_alias_buddy
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_value_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_fields_get_groups
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_field_string_set_masked
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_ssl_connect_with_host_fd
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_account_request_authorization
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_privacy_deny_add
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_field_list_get_selected
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_notify_searchresults_row_add
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_conv_chat_rename_user
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_cipher_context_append
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_error
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_fields_get_bool
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_timeout_add_seconds
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_add_remote_candidates
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_account_get_active_status
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_attention_type_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 serv_got_im
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_status_is_exclusive
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_notify_user_info_get_entries
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_txt_resolve_account
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_codec_get_encoding_name
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_status_type_new_with_attrs
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_conv_custom_smiley_write
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_find_buddy
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_get_attention_type_from_code
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_prpl_got_media_caps
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_circ_buffer_get_max_read
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_cipher_context_destroy
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_presence_is_idle
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_notify_user_info_add_pair_plaintext
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_conv_chat_get_id
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_roomlist_set_in_progress
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_blist_node_get_type
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_get_prpl_data
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_strequal
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_conversation_get_type
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_add_stream
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_manager_get_ui_caps
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_imgstore_unref_by_id
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_proxy_connect_cancel
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_connection_get_password
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_cipher_context_reset
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_account_get_user_info
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_get_tzoff_str
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 xmlnode_new_child
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_proxy_connect
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_util_format_song_info
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_field_choice_add
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_xfer_set_filename
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_buddy_get_alias
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 xmlnode_set_prefix
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_email_is_valid
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_roomlist_unref
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_candidates_prepared
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_conv_chat_add_user
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_field_group_get_fields
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 xmlnode_set_namespace
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_imgstore_get_data
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_ciphers_find_cipher
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_debug_misc
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_strcasestr
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_notify_searchresults
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 serv_got_typing_stopped
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_connections_get_all
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_blist_get_root
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_util_fetch_url_request
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_candidate_get_type
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 xmlnode_free
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_ssl_is_supported
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_account_get_protocol_id
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_notify_user_info_add_section_header
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_account_set_enabled
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_accounts_get_all_active
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_conversation_set_name
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_dnsquery_a_account
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_blist_request_add_buddy
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_xfer_start
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_codec_get_clock_rate
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_ssl_connect
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_conv_chat_write
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_ipv6_address_is_valid
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_notify_user_info_add_section_break
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 xmlnode_set_attrib
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_proxy_info_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_ssl_write
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 serv_got_typing
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_input
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_status_type_get_primitive
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_blist_node_set_string
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_field_string_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_roomlist_room_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_account_get_string
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_field_choice_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_status_get_attr_boolean
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_notify_message
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 xmlnode_insert_data
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_candidate_get_base_ip
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_proxy_connect_socks5_account
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_presence_is_status_primitive_active
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_blist_add_group
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_util_write_data_to_file
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_codec_to_string
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_account_get_check_mail
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_buddy_icons_find_account_icon
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_xfer_set_read_fnc
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_buddy_get_local_buddy_alias
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_candidate_get_candidate_type
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_field_get_id
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_codec_get_id
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 serv_got_chat_left
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_notify_user_info_prepend_pair
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_debug_error
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_status_get_attr_int
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 xmlnode_get_parent
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_connection_ssl_error
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 _purple_network_set_common_socket_flags
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 xmlnode_to_formatted_str
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_fields_add_group
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_codec_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_notify_formatted
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_plugin_ipc_register
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_manager_get_media_by_account
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_candidate_get_port
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 xmlnode_remove_attrib
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_notify_searchresults_button_add
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_presence_get_active_status
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_cipher_context_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_connection_get_protocol_data
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 xmlnode_copy
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_time_format
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_codec_get_optional_parameters
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_signals_unregister_by_instance
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_str_seconds_to_string
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_signal_emit_return_1
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_account_set_remember_password
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_input_remove
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 xmlnode_get_namespace
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 xmlnode_get_child_with_namespace
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_xfer_end
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_base64_encode
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_status_get_id
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_candidate_get_component_id
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_account_get_presence
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_txt_response_get_content
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_conv_chat_find_user
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_set_remote_codecs
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_field_set_required
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 xmlnode_get_attrib
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_account_set_password
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_network_get_port_from_fd
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_network_get_stun_ip
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_codec_get_channels
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_proxy_info_destroy
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_candidate_get_password
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_candidate_get_base_port
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_conv_chat_set_topic
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_privacy_deny_remove
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_core_get_ui
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_network_get_all_local_system_ips
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_field_destroy
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_status_get_attr_value
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_field_label_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 xmlnode_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_field_set_visible
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_account_get_alias
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_timeout_remove
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_candidate_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_cipher_context_set_key_with_len
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_xfer_set_cancel_recv_fnc
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_debug_is_unsafe
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_account_is_connected
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_connection_set_state
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_manager_create_media
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 xmlnode_to_str
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_unescape_html
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_util_read_xml_from_file
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_network_remove_port_mapping
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_candidate_get_protocol
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_field_set_type_hint
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_signal_emit
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_conversation_write
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_end
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_util_fetch_url_request_len
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_conv_chat_get_topic
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_connection_get_account
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_field_choice_get_value
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_ssl_input_add
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_prpl_got_attention
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_xfer_cancel_remote
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_proxy_info_set_type
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_value_new_outgoing
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_chat_get_components
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_prpl_got_user_status_deactive
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_circ_buffer_append
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_presence_is_online
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_xfer_set_end_fnc
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 xmlnode_set_attrib_full
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_chat_get_account
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_ssl_close
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_roomlist_field_new
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_fields
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_buddy_icons_get_checksum_for_user
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_blist_node_get_first_child
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_request_field_string_get_value
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_xfer_prpl_ready
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_input_add
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_account_set_username
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_notify_searchresults_column_add
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_media_candidate_get_priority
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_markup_html_to_xhtml
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_attention_type_get_outgoing_desc
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_markup_escape_text
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_smiley_get_shortcut
chatty.x86_64: W: undefined-non-weak-symbol /usr/lib64/libjabber.so.0 purple_base16_encode
chatty.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libjabber.so.0 /lib64/libgmodule-2.0.so.0
chatty.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libjabber.so.0 /lib64/libgthread-2.0.so.0
chatty.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libjabber.so.0 /lib64/libgadu.so.3
chatty.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libjabber.so.0 /lib64/libm.so.6
chatty.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libjabber.so.0 /lib64/libresolv.so.2
chatty.x86_64: W: non-conffile-in-etc /etc/xdg/autostart/sm.puri.Chatty-daemon.desktop
chatty.x86_64: W: no-manual-page-for-binary chatty
3 packages and 0 specfiles checked; 0 errors, 413 warnings.



Source checksums
----------------
https://source.puri.sm/Librem5/chatty/-/archive/v0.2.0/chatty-v0.2.0.tar.gz :
  CHECKSUM(SHA256) this package     : 16ad0dc53683d02a928184847bd820fccb78cc51189e59455d998671877f3559
  CHECKSUM(SHA256) upstream package : 16ad0dc53683d02a928184847bd820fccb78cc51189e59455d998671877f3559


Requires
--------
chatty (rpmlib, GLIBC filtered):
    hicolor-icon-theme
    libc.so.6()(64bit)
    libcairo.so.2()(64bit)
    libebook-1.2.so.20()(64bit)
    libebook-contacts-1.2.so.3()(64bit)
    libedataserver-1.2.so.26()(64bit)
    libfeedback-0.0.so.0()(64bit)
    libfeedback-0.0.so.0(LIBFEEDBACK_0_0_0)(64bit)
    libgadu.so.3()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libgdk-3.so.0()(64bit)
    libgdk_pixbuf-2.0.so.0()(64bit)
    libgio-2.0.so.0()(64bit)
    libglib-2.0.so.0()(64bit)
    libgmodule-2.0.so.0()(64bit)
    libgobject-2.0.so.0()(64bit)
    libgstreamer-1.0.so.0()(64bit)
    libgthread-2.0.so.0()(64bit)
    libgtk-3.so.0()(64bit)
    libhandy-1.so.0()(64bit)
    libhandy-1.so.0(LIBHANDY_1_0)(64bit)
    libidn.so.12()(64bit)
    libidn.so.12(LIBIDN_1.0)(64bit)
    libjabber.so.0()(64bit)
    libm.so.6()(64bit)
    libpango-1.0.so.0()(64bit)
    libpangocairo-1.0.so.0()(64bit)
    libphonenumber.so.8()(64bit)
    libpthread.so.0()(64bit)
    libpurple.so.0()(64bit)
    libresolv.so.2()(64bit)
    libsasl2.so.3()(64bit)
    libsqlite3.so.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libxml2.so.2()(64bit)
    libxml2.so.2(LIBXML2_2.4.30)(64bit)
    libxml2.so.2(LIBXML2_2.6.0)(64bit)
    rtld(GNU_HASH)

chatty-debuginfo (rpmlib, GLIBC filtered):

chatty-debugsource (rpmlib, GLIBC filtered):



Provides
--------
chatty:
    application()
    application(sm.puri.Chatty.desktop)
    chatty
    chatty(x86-64)
    libjabber
    libjabber.so.0()(64bit)
    metainfo()
    metainfo(sm.puri.Chatty.metainfo.xml)
    mimehandler(x-scheme-handler/sms)

chatty-debuginfo:
    chatty-debuginfo
    chatty-debuginfo(x86-64)

chatty-debugsource:
    chatty-debugsource
    chatty-debugsource(x86-64)



Generated by fedora-review 0.7.6 (b083f91) last change: 2020-11-10
Command line :/usr/bin/fedora-review --name chatty
Buildroot used: fedora-rawhide-x86_64
Active plugins: Shell-api, C/C++, Generic
Disabled plugins: fonts, Python, SugarActivity, Perl, Ocaml, Haskell, R, PHP, Java
Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH

Comment 4 sorensentor 2021-03-13 20:16:36 UTC
Thanks for the review! 

Regarding the libjabber thing, there was an issue opened here https://source.puri.sm/Librem5/chatty/-/issues/266 but seems to have stalled. There was already some discussion about it on previous reviews prior to this one: https://bugzilla.redhat.com/show_bug.cgi?id=1870890

I'll do some playing around with the library and fix up those other issues as soon as possible. 

Thanks again.

Comment 5 sorensentor 2021-03-14 03:17:54 UTC
Spec URL: https://gitlab.com/fedora-mobile/chatty/-/raw/master/chatty.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/njha/mobile/fedora-rawhide-x86_64/02074354-chatty/chatty-0.2.0-5.fc35.src.rpm
Copr Build: https://copr.fedorainfracloud.org/coprs/njha/mobile/build/2074354/

> - Package uses either %{buildroot} or $RPM_BUILD_ROOT
>  Note: Using both %{buildroot} and $RPM_BUILD_ROOT
>  See: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_macros

This has been addressed. 

> - The private library usage is... unfortunate. Is there any way to just disable
> the jabber support and not have to use it? Failing that, would it at least be possible
> to use the libpurple library at runtime? (currently this package installs the 
> kind of generic sounding /usr/lib64/libjabber.so which it gets from libpurple
> during build instead of the /usr/lib64/purple-2/libjabber.so). 
> Also if you can't use the libpurple one, make sure to add a 
> Provides: bundled(libjabber.so) per
> https://docs.fedoraproject.org/en-US/packaging-guidelines/#bundling

So, all other info regarding this being linked, the only thing I could figure out to continue is to resume using the "hacky patch" and to update to use the correct bundled() = [version] addition. 

Various other cleanups from the review as well (tabs/space etc...) 

Thanks again!

Comment 6 Kevin Fenzi 2021-03-16 20:50:33 UTC
Ack on all the other fixes. 

On libjabber, I am confused. Looking at it it looks like it should look for it in the pidgin-2 directory and just work. :(

Instead it's looking up the purple plugin dir, then somehow not using it to check the libjabber.so library (which is there and provided by libpurple). 

Lets meet up on irc and discuss it?

Comment 7 Kevin Fenzi 2021-03-17 16:10:50 UTC
ok. After messing with this a bunch yesterday, I see where I was wrong. :) 
You do have to copy this private lib and modify the meson config to build against it.
However, currently you are shipping it in libdir for everything else to see and use, and it could well get out of date, if say pidgin is updated but chatty isn't yet. 

So, I can offer the following (sadly a bit complex) change: 

Exclude requriing libjabber from the chatty rpm. 
(If we don't do this, it will expect that library to be provided by either itself or libpurple, but we don't want to provide it here (because other things might try and use it and it's not ours) and libpurple doesn't want to provide it as it's a private library.

> %global __requires_exclude ^libjabber\\.so.*$

For build, the existing patch and copying to /tmp works.

In install add a ld.so.conf.d config to have it look in the purple-2 private dir for libs:

> mkdir -p %{buildroot}/%{_sysconfdir}/ld.so.conf.d
> echo "%{_libdir}/chatty" > %{buildroot}/%{_sysconfdir}/ld.so.conf.d/chatty.conf

Add the conf to files:

> %{_sysconfdir}/ld.so.conf.d/chatty.conf

so, this way, chatty doesn't actually provide or have the library, it's still in libpurple, it just looks there when installed. 
I tested this here and it seemed to all work, but worth testing again in case I missed something. 
It's still not ideal, but I think it's better than shipping the pidgin private lib in chatty.

Thoughts?

Comment 8 sorensentor 2021-03-17 20:29:18 UTC
I like that much better actually. I made those changed and did a build on Copr, tested on my phone and it works as expected still, so that's good! 

SPEC URL: https://gitlab.com/fedora-mobile/chatty/-/raw/master/chatty.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/njha/mobile/fedora-rawhide-x86_64/02079947-chatty/chatty-0.2.0-5.fc35.src.rpm
COPR Build: https://copr.fedorainfracloud.org/coprs/njha/mobile/build/2079947/

Comment 9 Kevin Fenzi 2021-03-19 21:24:43 UTC
Looks good to me, this package is APPROVED. 

Before you import it tho, it might be nice to add some comments to the crazy libjabber areas? explain why we exclude (don't want other packages to get it from us), why we copy in build (we have to link against it), why we make a ld.so.conf.d file (to allow us to use the private lib at runtime). Just to avoid confusion from people. :)

Comment 10 sorensentor 2021-03-19 22:41:50 UTC
> Before you import it tho, it might be nice to add some comments to the crazy libjabber areas?

Absolutely! Will get that ready while the package repo is being prepped :) Thanks again for the review!

Comment 11 Gwyn Ciesla 2021-03-22 13:23:54 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/chatty


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