diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index d114b98..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,51 +0,0 @@
-*.bak
-*.lo
-*.o
-*.orig
-*.rej
-*.tab.c
-*~
-.deps
-.gitignore
-.libs
-Makefile
-Makefile.in
-/aclocal.m4
-/ChangeLog
-/autom4te.cache
-/autoscan.log
-/compile
-/config.cache
-/config.guess
-/config.h
-/config.h.in
-/config.log
-/config.lt
-/config.status
-/config.status.lineno
-/config.sub
-/configure
-/configure.lineno
-/configure.scan
-/ltmain.sh
-/depcomp
-/install-sh
-/intltool-extract
-/intltool-extract.in
-/intltool-merge
-/intltool-merge.in
-/intltool-update
-/intltool-update.in
-/libtool
-/missing
-/po/*.gmo
-/po/*.mo
-/po/.intltool-merge-cache
-/po/Makefile
-/po/Makefile.in
-/po/Makefile.in.in
-/po/POTFILES
-/po/gnome-contacts.pot
-/po/stamp-it
-/m4
-/stamp-h1
diff --git a/COPYING b/COPYING
index e206a02..9c73fb1 100644
--- a/COPYING
+++ b/COPYING
@@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
diff --git a/Makefile.am b/Makefile.am
index df1687e..2ce26b7 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,10 +1,13 @@
+ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
NULL=
-SUBDIRS = src vapi data po
+SUBDIRS = vapi src data po
+if BUILD_MAN_PAGES
+SUBDIRS += man
+endif
+DIST_SUBDIRS = vapi src data po man
+
EXTRA_DIST = \
autogen.sh \
- intltool-extract.in \
- intltool-merge.in \
- intltool-update.in \
$(NULL)
ChangeLog:
@@ -26,22 +29,13 @@ distclean-local:
rm -f ChangeLog; \
fi
-
-DISTCLEANFILES = \
-intltool-extract \
-intltool-merge \
-intltool-update
+GITIGNOREFILES = \
+ m4
MAINTAINERCLEANFILES = \
- $(srcdir)/aclocal.m4 \
- $(srcdir)/autoscan.log \
- $(srcdir)/compile \
- $(srcdir)/config.guess \
- $(srcdir)/config.h.in \
- $(srcdir)/config.sub \
- $(srcdir)/configure.scan \
- $(srcdir)/depcomp \
- $(srcdir)/install-sh \
- $(srcdir)/missing \
- $(srcdir)/ChangeLog \
- `find "$(srcdir)" -type f -name Makefile.in -print`
+ $(GITIGNORE_MAINTAINERCLEANFILES_TOPLEVEL) \
+ $(GITIGNORE_MAINTAINERCLEANFILES_MAKEFILE_IN) \
+ $(GITIGNORE_MAINTAINERCLEANFILES_M4_LIBTOOL) \
+ INSTALL
+
+-include $(top_srcdir)/git.mk
diff --git a/NEWS b/NEWS
index b86d00d..68a3a67 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,186 @@
+Starting from 3.25.4, we provide release notes through the
+AppData file. As such, app stores (like GNOME Software)
+can show release notes to users.
+
+Human-readable textual output (similar to this file)
+can easily be generated with the following command:
+
+$ appstream-util appdata-to-news data/org.gnome.Contacts.appdata.xml
+
+
+==================
+
+Major changes in 3.22.1:
+* Translation updates
+
+Major changes in 3.20.0:
+* Translation updates
+
+Major changes in 3.19.90:
+* Translation updates
+* Fixed minor bugs
+
+Major changes in 3.18.1:
+* Translation updates
+* Avoid crash in search provider
+* Remove unused libnotify dependency
+
+Major changes in 3.18.0:
+* Translation updates
+* Avoid dialogs from the search provider
+* Fix desktop file category
+* Support searching by phone number
+
+Major changes in 3.16.1:
+* Updated translations
+
+Major changes in 3.15.90:
+* Finished Contacts - Maps integration
+
+Major changes in 3.15.4:
+* Added maps view for postal address
+
+Major changes in 3.14.1:
+* Remove unneeded logs in SearchProvider
+
+Major changes in 3.14.0:
+* Adapt to shell new search provider API
+
+Major changes in 3.13.92:
+* Fixed change address book bug
+
+Major changes in 3.13.90:
+* Added inline contact creation
+* Updated Avatar dialog UI
+* Improved Adwaita dark variant support
+
+Major changes in 3.13.3:
+* Reworked setup view
+* Reworked modes toggling (edit-mode, selection-mode)
+* Fixed birthday field bug
+* Fixed link field bug
+* Updated dialogs UI
+
+Major changes in 3.12.0:
+* Translation updates
+
+Major changes in 3.11.92:
+* Translation updates
+
+Major changes in 3.11.91 are:
+* Improved Linked Accounts dialog
+
+Major changes in 3.11.90 are:
+* Updated About dialog info
+* Fixed email types in New Contact dialog
+* Removed deprecated gtk+ calls
+* Fixed minor bugs
+
+Major changes in 3.10.1 are:
+* Removed presence widget from ContactPane
+
+Major changes in 3.10 are:
+* Fixed shell-search-provider
+
+Major changes in 3.9.92 are:
+* Added appdata description for Contacts
+* Fixed look in RTL languages
+
+Major changes in 3.9.91 are:
+* Ported to Gtk.Revealer
+* Ported to Gtk.MenuButton
+* Refined avatar size and name aligment
+
+Major changes in 3.9.90 are:
+* Reworked UI to use custom titlebars
+* Reworked select account dialog
+* Fixed background colors all over
+* Fixed "Select a Contact" view
+* Updated to folks 0.9.5
+* Migrated Contacts.Window to use Gtk+ templates
+* Show all contacts everytime now
+
+Major changes in 3.9.5 are:
+* Updated AddressBook dialog
+* Updated Setup window
+* Fixed in-app delete notification bug
+
+Major changes in 3.8.3 are:
+* Fixed in-app notification display
+* Make labels in ContactsPane ellipsize properly
+* Synced webcam related cheese code
+
+Major changes in 3.8.2 are:
+* Updated translations
+* Fixed "new" button height
+* Fix webcam dialog shows blank camera
+* Fix searching when string is empty
+
+Major changes in 3.8.1 are:
+* Updated translations
+* Fixed font color in contacts list
+* Make changing birthdate work
+
+Major changes in 3.8.0 are:
+* Updated translations
+
+Major changes in 3.7.91 are:
+* Updated translations
+* Animate toolbar transition in selection mode
+
+Major changes in 3.7.90 are:
+* Added selection to contacts list
+* Showing a contacts subset (main contacts vs all)
+
+Major changes in 3.7.3 are:
+* Use libgd
+* New contact pane design
+* Fix build with new telepathy-glib
+
+Major changes in 3.6.2 are:
+* Updated translations
+* Keyboard shortcuts for new and help
+* Add keywords to desktop file for better searching
+
+Major changes in 3.6.1 are:
+* Updated translations
+
+Major changes in 3.6.0 are:
+* Added help menu item
+
+Major changes in 3.5.92 are:
+* Use the new gstreamer 1.0 based libcheese
+* Always show search entry
+* Updated translations
+
+Major changes in 3.5.91 are:
+* Port the webcam support to libcheese
+* Updated translations
+
+Major changes in 3.5.90 are:
+* Updated translations
+* EggListBox converted from vala to C
+* Fix icon for birthdays
+* Minor notification themeing fixes
+
+Major changes in 3.5.4.1 are:
+* Rebuilding due to 3.5.4 being built with a broken libtool
+* Bump libfolks dependency to 0.7.3
+
+Major changes in 3.5.4 are:
+* Use new libfolks API for Google address book system groups
+
+Major changes in 3.5.3 are:
+* Ship a search provider for the shell
+
+Major changes in 3.5.2 are:
+* Use the new evolution-data-server APIs for addressbook configuration
+
+Major changes in 3.5.1 are:
+* Make new avatars with webcam
+* Fetch more contact info from telepathy
+* Reimplement sidebar without using GtkTreeView
+
Major changes in 3.4.0 are:
* Updated translations
diff --git a/README b/README
deleted file mode 100644
index 8b13789..0000000
--- a/README
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..e67fbe7
--- /dev/null
+++ b/README.md
@@ -0,0 +1,28 @@
+# GNOME Contacts
+Contacts organizes your contacts information from all your online and offline
+sources, providing a centralized place for managing your contacts.
+
+## Build
+Building Contacts can be done by executing these commands in the directory:
+```sh
+git clone git://git.gnome.org/gnome-contacts
+cd gnome-contacts
+./autogen.sh && make && make install
+```
+
+## Issue tracker
+Contacts uses the GNOME Bugzilla, where you can check the
+[list of open bugs](https://bugzilla.gnome.org/browse.cgi?product=gnome-contacts).
+
+If you'd like to report a bug in Contacts or request an enhancement, please file
+an issue using the
+[appropriate form](https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-contacts).
+
+In case of a bug, please also add reproducible steps and the version of Contacts.
+
+## More information
+Contacts has its own web page on https://wiki.gnome.org/Apps/Contacts.
+
+To discuss issues with developers and other users, you can subscribe to the
+[mailing list](https://mail.gnome.org/mailman/listinfo/gnome-contacts-list)
+or join [#contacts](irc://irc.gnome.org/contacts) on irc.gnome.org.
diff --git a/autogen.sh b/autogen.sh
index 1eeb771..f976de4 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -1,5 +1,39 @@
#!/bin/sh
-mkdir -p m4
-autopoint --force
-AUTOPOINT='intltoolize --automake --copy' autoreconf -fiv -Wall || exit
-./configure --enable-maintainer-mode "$@"
+# Run this to generate all the initial makefiles, etc.
+test -n "$srcdir" || srcdir=$(dirname "$0")
+test -n "$srcdir" || srcdir=.
+
+olddir=$(pwd)
+
+cd $srcdir
+
+(test -f configure.ac) || {
+ echo "*** ERROR: Directory '$srcdir' does not look like the top-level project directory ***"
+ exit 1
+}
+
+# shellcheck disable=SC2016
+PKG_NAME=$(autoconf --trace 'AC_INIT:$1' configure.ac)
+
+if [ "$#" = 0 -a "x$NOCONFIGURE" = "x" ]; then
+ echo "*** WARNING: I am going to run 'configure' with no arguments." >&2
+ echo "*** If you wish to pass any to it, please specify them on the" >&2
+ echo "*** '$0' command line." >&2
+ echo "" >&2
+fi
+
+git submodule update --init --recursive
+
+aclocal --install || exit 1
+autoreconf --verbose --force --install || exit 1
+
+cd "$olddir"
+if [ "$NOCONFIGURE" = "" ]; then
+ $srcdir/configure "$@" || exit 1
+
+ if [ "$1" = "--help" ]; then exit 0 else
+ echo "Now type 'make' to compile $PKG_NAME" || exit 1
+ fi
+else
+ echo "Skipping configure process."
+fi
diff --git a/configure.ac b/configure.ac
index 6653f9e..7b3fc9a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,68 +1,76 @@
AC_PREREQ([2.67])
-AC_INIT([gnome-contacts],[3.5.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-contacts])
+AC_INIT([gnome-contacts],[3.25.4],[http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-contacts])
AC_CONFIG_SRCDIR([src/main.vala])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4])
-AM_INIT_AUTOMAKE
+AM_INIT_AUTOMAKE([foreign tar-ustar dist-xz no-dist-gzip -Wno-portability])
+
# Enable silent rules is available
AM_SILENT_RULES([yes])
-AM_MAINTAINER_MODE([enable])
-AC_CONFIG_FILES([Makefile
- vapi/Makefile
- src/Makefile
- data/Makefile
- po/Makefile.in
- data/gnome-contacts.desktop.in
- ])
-
-LT_INIT
-AC_PROG_CC
-AM_PROG_VALAC([0.14.0])
-AC_PROG_INSTALL
-
-GLIB_GSETTINGS
-
-# i18n stuff
-IT_PROG_INTLTOOL([0.40])
-
-AM_GNU_GETTEXT([external])
-AM_GNU_GETTEXT_VERSION([0.17])
GETTEXT_PACKAGE=gnome-contacts
AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], ["$GETTEXT_PACKAGE"], [Gettext Package])
AC_SUBST(GETTEXT_PACKAGE)
+AM_GNU_GETTEXT_VERSION([0.19.7])
+AM_GNU_GETTEXT([external])
-pkg_modules="gtk+-3.0 >= 3.4.0
- glib-2.0 >= 2.31.10
+LT_INIT
+AC_PROG_CC
+AM_PROG_VALAC([0.24.0])
+AC_PROG_INSTALL
+AC_PATH_PROG([GLIB_GENMARSHAL],[glib-genmarshal])
+AC_PATH_PROG([GLIB_MKENUMS],[glib-mkenums])
+AC_PATH_PROG([GLIB_COMPILE_RESOURCES],[glib-compile-resources])
+GLIB_GSETTINGS
+
+GLIB_REQUIRED=2.44.0
+AC_SUBST(GLIB_REQUIRED)
+
+pkg_modules="gtk+-3.0 >= 3.22.0
+ glib-2.0 >= $GLIB_REQUIRED
+ gmodule-export-2.0
gnome-desktop-3.0
- folks >= 0.6.1.1
+ gio-unix-2.0 >= $GLIB_REQUIRED
+ folks >= 0.11.4
folks-telepathy
folks-eds
- libnotify
- telepathy-glib >= 0.17.5
- libebook-1.2 >= 3.2
- libedataserver-1.2 >= 3.2
+ telepathy-glib >= 0.22.0
+ libebook-1.2 >= 3.13.90
+ libedataserver-1.2 >= 3.13.90
+ libedataserverui-1.2 >= 3.13.90
goa-1.0
- gee-1.0
+ gee-0.8
+ champlain-0.12
+ clutter-gtk-1.0
+ geocode-glib-1.0 >= 3.15.3
"
PKG_CHECK_MODULES(CONTACTS, [$pkg_modules])
-CONTACTS_PACKAGES="--pkg gtk+-3.0 --pkg gio-2.0 --pkg folks --pkg folks-telepathy --pkg folks-eds --pkg libnotify"
+CONTACTS_PACKAGES="--pkg gtk+-3.0 --pkg gio-2.0 --pkg gio-unix-2.0 --pkg gnome-desktop-3.0 --pkg folks --pkg folks-telepathy --pkg folks-eds --pkg clutter-1.0 --pkg clutter-gtk-1.0 --pkg champlain-0.12 --pkg geocode-glib-1.0"
+
+# Optional dependency for the user accounts panel
+AC_ARG_WITH([cheese],
+ AS_HELP_STRING([--with-cheese], [enable cheese webcam support]),,
+ with_cheese=auto)
+
+if test x"$with_cheese" != x"no" ; then
+ PKG_CHECK_MODULES(CHEESE, cheese-gtk >= 3.3.91 cheese, [have_cheese=yes], [have_cheese=no])
+ if test x${have_cheese} = xyes; then
+ AC_DEFINE(HAVE_CHEESE, 1, [Define to 1 to enable cheese webcam support])
+ CONTACTS_PACKAGES+=" --pkg cheese --pkg cheese-gtk"
+ fi
+ if test x${with_cheese} = xyes && test x${have_cheese} = xno; then
+ AC_MSG_ERROR([Cheese configured but not found])
+ fi
+else
+ have_cheese=no
+fi
+AM_CONDITIONAL(BUILD_CHEESE, test x${have_cheese} = xyes)
+
+
AC_SUBST(CONTACTS_PACKAGES)
-gstreamers_modules="gdk-x11-3.0
- gstreamer-0.10
- gstreamer-interfaces-0.10
- "
-PKG_CHECK_MODULES(CONTACTS_GSTREAMER,
- [$gstreamers_modules],
- AM_CONDITIONAL(USE_GSTREAMER, true),
- AM_CONDITIONAL(USE_GSTREAMER, false))
-
-CONTACTS_GSTREAMER_PACKAGES="--pkg gdk-x11-3.0 --pkg gstreamer-0.10 --pkg gstreamer-interfaces-0.10"
-AC_SUBST(CONTACTS_GSTREAMER_PACKAGES)
-
#############
# Resources #
#############
@@ -70,4 +78,40 @@ AC_SUBST(CONTACTS_GSTREAMER_PACKAGES)
GLIB_COMPILE_RESOURCES=`$PKG_CONFIG --variable glib_compile_resources gio-2.0`
AC_SUBST(GLIB_COMPILE_RESOURCES)
+#################
+# Documentation #
+#################
+
+AC_ARG_ENABLE([man-pages],
+ [AS_HELP_STRING([--disable-man-pages],
+ [disable building man pages])])
+AS_IF([test "x$enable_man_pages" != "xno"],
+ [AC_PATH_PROG([XSLTPROC], [xsltproc])
+ AS_IF([test "xac_cv_path_XSLTPROC" = "x"], [have_xsltproc=no],
+ [have_xsltproc=yes])
+ JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.2//EN],
+ [DocBook XML DTD V4.2], [have_docbookdtd=yes],
+ [have_docbookdtd=no])
+ JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl/current/html/refentry.xsl],
+ [DocBook XSL Stylesheets], [have_docbookxsl=yes],
+ [have_docbookxsl=no])
+ AS_IF([test "x$have_xsltproc" = "xyes" -a "x$have_docbookdtd" = "xyes" \
+ -a "x$have_docbookxsl" = "xyes"],
+ [have_manutils=yes],
+ [AS_IF([test "x$enable_man_pages" = "xyes"],
+ [AC_MSG_ERROR([man page requested but required utilities were not found])])
+ have_manutils=no])],
+ [have_manutils=no])
+
+AM_CONDITIONAL([BUILD_MAN_PAGES], [test "x$have_manutils" = "xyes"])
+
+AC_CONFIG_FILES([Makefile
+ vapi/Makefile
+ src/Makefile
+ man/Makefile
+ data/Makefile
+ data/icons/Makefile
+ po/Makefile.in
+ ])
+
AC_OUTPUT
diff --git a/data/Makefile.am b/data/Makefile.am
index 287c1b1..28e5191 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -1,14 +1,63 @@
-NULL=
+NULL =
+SUBDIRS = icons
+
+org.gnome.Contacts.desktop: org.gnome.Contacts.desktop.in
+ $(AM_V_GEN)$(MSGFMT) --desktop --template $< -d $(top_srcdir)/po -o $@
desktopdir = $(datadir)/applications
-desktop_in_files = gnome-contacts.desktop.in
-desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
-@INTLTOOL_DESKTOP_RULE@
+desktop_DATA = org.gnome.Contacts.desktop
+
+org.gnome.Contacts.appdata.xml: org.gnome.Contacts.appdata.xml.in
+ $(AM_V_GEN)$(MSGFMT) --xml --template $< -d $(top_srcdir)/po -o $@
+appdatadir = $(datadir)/appdata
+appdata_DATA = org.gnome.Contacts.appdata.xml
+
+searchproviderdir = $(datadir)/gnome-shell/search-providers
+searchprovider_DATA = org.gnome.Contacts.search-provider.ini
+
+servicedir = $(datadir)/dbus-1/services
+service_DATA = \
+ org.gnome.Contacts.SearchProvider.service \
+ org.gnome.Contacts.service
+
+%.service: %.service.in Makefile
+ $(AM_V_GEN) [ -d $(@D) ] || $(mkdir_p) $(@D) ; \
+ sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@.tmp && mv $@.tmp $@
+
+org.gnome.Contacts.service:
+ $(AM_V_GEN) (echo '[D-BUS Service]'; \
+ echo 'Name=org.gnome.Contacts'; \
+ echo 'Exec=${bindir}/gnome-contacts --gapplication-service') > $@.tmp && \
+ mv $@.tmp $@
EXTRA_DIST = \
- gnome-contacts.desktop.in.in \
+ org.gnome.Contacts.desktop.in \
+ org.gnome.Contacts.appdata.xml.in \
+ org.gnome.Contacts.search-provider.ini \
+ org.gnome.Contacts.SearchProvider.service.in \
+ contacts.gresource.xml \
+ ui/app-menu.ui \
+ ui/contacts-address-map.ui \
+ ui/contacts-avatar-dialog.ui \
+ ui/contacts-contact-editor.ui \
+ ui/contacts-contact-pane.ui \
+ ui/contacts-in-app-notification.ui \
+ ui/contacts-list-pane.ui \
+ ui/contacts-window.ui \
+ ui/style.css \
$(NULL)
+CLEANFILES = \
+ $(service_DATA) \
+ org.gnome.Contacts.desktop \
+ org.gnome.Contacts.appdata.xml \
+ org.gnome.Contacts.SearchProvider.service \
+ $(appdata_DATA)
+
DISTCLEANFILES = \
- gnome-contacts.desktop \
- gnome-contacts.desktop.in
+ org.gnome.Contacts.desktop \
+ org.gnome.Contacts.appdata.xml \
+ org.gnome.Contacts.SearchProvider.service
+
+
+-include $(top_srcdir)/git.mk
diff --git a/data/contacts.gresource.xml b/data/contacts.gresource.xml
new file mode 100644
index 0000000..52be8a9
--- /dev/null
+++ b/data/contacts.gresource.xml
@@ -0,0 +1,14 @@
+
+
+ Contacts keeps and organize your contacts information. You can create,
+ edit, delete and link together pieces of information about your contacts.
+ Contacts aggregates the details from all your sources providing a
+ centralized place for managing your contacts.
+
+ Contacts will also integrate with online address books and automatically
+ link contacts from different online sources.
+
+ This is an unstable release in the 3.25 development series,
+ with the following improvements:
+
+ The following bugs are also fixed:
+ This release also updates translations in several languages.
+
+
+
+