diff --git a/.gitignore b/.gitignore index 2414c9b..cd874df 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /libaccounts-glib-1.21.tar.gz /libaccounts-glib-1.23.tar.gz +/libaccounts-glib-1.24.tar.gz diff --git a/24.patch b/24.patch new file mode 100644 index 0000000..15bf74e --- /dev/null +++ b/24.patch @@ -0,0 +1,248 @@ +From b1b79d1ec4b01e5c5e73d75a32750f5650aadc11 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Corentin=20No=C3=ABl?= +Date: Wed, 8 Apr 2020 16:24:52 +0200 +Subject: [PATCH 1/2] meson: Re-establish previous soversion and update meson + declaration file to latest standards + +Explicitly set the meson requirements +Update the gtk-doc declaration +Use the built-in PkgConfig functionality +--- + docs/reference/libaccounts-glib-docs.xml | 10 ++++++ + docs/reference/meson.build | 10 ++++-- + libaccounts-glib/libaccounts-glib.pc.in | 15 -------- + libaccounts-glib/meson.build | 44 ++++++++++++++---------- + meson.build | 29 ++++++++-------- + 5 files changed, 57 insertions(+), 51 deletions(-) + delete mode 100644 libaccounts-glib/libaccounts-glib.pc.in + +diff --git a/docs/reference/libaccounts-glib-docs.xml b/docs/reference/libaccounts-glib-docs.xml +index c5629ed..bc74848 100644 +--- a/docs/reference/libaccounts-glib-docs.xml ++++ b/docs/reference/libaccounts-glib-docs.xml +@@ -106,6 +106,16 @@ + + + ++ ++ Index of new symbols in 1.14 ++ ++ ++ ++ ++ Index of new symbols in 1.25 ++ ++ ++ + + + +diff --git a/docs/reference/meson.build b/docs/reference/meson.build +index 19f26a9..be5e312 100644 +--- a/docs/reference/meson.build ++++ b/docs/reference/meson.build +@@ -3,7 +3,7 @@ glib_docpath = join_paths(glib_prefix, 'share', 'gtk-doc', 'html') + docpath = join_paths(get_option('prefix'), get_option('datadir'), 'gtk-doc', 'html') + + doc_configuration = configuration_data() +-doc_configuration.set('VERSION', full_version) ++doc_configuration.set('VERSION', meson.project_version()) + + configure_file(input : 'version.xml.in', + output : 'version.xml', +@@ -18,7 +18,7 @@ private_headers = [ + + gnome.gtkdoc('libaccounts-glib', + main_xml: 'libaccounts-glib-docs.xml', +- src_dir: [join_paths(meson.source_root (), 'libaccounts-glib')], ++ src_dir: src_dir, + dependencies : [glib_dep, gobject_dep, accounts_glib_dep], + content_files: [ + 'ag-backup.xml', +@@ -40,6 +40,10 @@ gnome.gtkdoc('libaccounts-glib', + '--extra-dir=' + join_paths(glib_docpath, 'gobject'), + '--extra-dir=' + join_paths(glib_docpath, 'gio') + ], +- scan_args: ['--rebuild-types','--ignore-headers=' + ' '.join(private_headers)], ++ c_args: [ ++ '-DACCOUNTS_GLIB_COMPILATION=1' ++ ], ++ ignore_headers: private_headers, ++ scan_args: ['--rebuild-types'], + install: true + ) +diff --git a/libaccounts-glib/libaccounts-glib.pc.in b/libaccounts-glib/libaccounts-glib.pc.in +deleted file mode 100644 +index e4df7b6..0000000 +--- a/libaccounts-glib/libaccounts-glib.pc.in ++++ /dev/null +@@ -1,15 +0,0 @@ +-prefix=@prefix@ +-libdir=@libdir@ +-includedir=@includedir@ +-applicationfilesdir=${prefix}/share/@APPLICATION_FILES_DIR@ +-servicefilesdir=${prefix}/share/@SERVICE_FILES_DIR@ +-servicetypefilesdir=${prefix}/share/@SERVICE_TYPE_FILES_DIR@ +-providerfilesdir=${prefix}/share/@PROVIDER_FILES_DIR@ +- +-Name: libaccounts-glib +-Description: A low-level library for managing accounts settings. +-Requires: glib-2.0 gobject-2.0 gio-unix-2.0 +-Require.private: libxml-2.0 sqlite3 +-Version: @VERSION@ +-Libs: -L${libdir} -laccounts-glib +-Cflags: -I${includedir} -I${includedir}/libaccounts-glib +diff --git a/libaccounts-glib/meson.build b/libaccounts-glib/meson.build +index 34e3a6a..46427c6 100644 +--- a/libaccounts-glib/meson.build ++++ b/libaccounts-glib/meson.build +@@ -40,10 +40,16 @@ marshal_files = gnome.genmarshal('ag-marshal', + private_headers += marshal_files[1] + c_files += marshal_files[0] + +-ag_library = shared_library('accounts-glib', ++src_dir = include_directories('.') ++ ++ag_library = library('accounts-glib', + public_headers + private_headers + c_files, +- c_args: '-DACCOUNTS_GLIB_COMPILATION=1', +- soversion: version_major, ++ c_args: [ ++ '-DG_LOG_DOMAIN="accounts-glib"', ++ '-DACCOUNTS_GLIB_COMPILATION=1', ++ ], ++ version: meson.project_version(), ++ soversion: so_version, + dependencies: accounts_glib_library_deps, + include_directories: root_dir, + install: true +@@ -54,21 +60,20 @@ install_headers(public_headers + files('accounts-glib.h'), + ) + + # PkgConfig creation +-accounts_glib_config = configuration_data() +-accounts_glib_config.set('prefix', get_option('prefix')) +-accounts_glib_config.set('libdir', join_paths('${prefix}', get_option('libdir'))) +-accounts_glib_config.set('includedir', join_paths('${prefix}', get_option('includedir'))) +-accounts_glib_config.set('APPLICATION_FILES_DIR', application_files_dir) +-accounts_glib_config.set('SERVICE_FILES_DIR', service_files_dir) +-accounts_glib_config.set('SERVICE_TYPE_FILES_DIR', service_type_files_dir) +-accounts_glib_config.set('PROVIDER_FILES_DIR', provider_files_dir) +-accounts_glib_config.set('VERSION', full_version) +- +-configure_file( +- input: 'libaccounts-glib.pc.in', +- output: 'libaccounts-glib.pc', +- configuration: accounts_glib_config, +- install_dir: join_paths(get_option('libdir'), 'pkgconfig') ++pkg.generate( ++ ag_library, ++ filebase: 'libaccounts-glib', ++ name: 'libaccounts-glib', ++ description: 'A low-level library for managing accounts settings.', ++ version: meson.project_version(), ++ requires: [glib_dep, gio_dep, gio_unix_dep, gobject_dep], ++ subdirs: 'libaccounts-glib', ++ variables: [ ++ 'applicationfilesdir=${prefix}/share/' + application_files_dir, ++ 'servicefilesdir=${prefix}/share/' + service_files_dir, ++ 'servicetypefilesdir=${prefix}/share/' + service_type_files_dir, ++ 'providerfilesdir=${prefix}/share/' + provider_files_dir, ++ ] + ) + + # Creation of the dependency to use it in tools and tests +@@ -87,7 +92,8 @@ gir_targets = gnome.generate_gir(ag_library, + symbol_prefix: 'ag', + includes: ['GObject-2.0', 'Gio-2.0'], + dependencies: accounts_glib_library_deps, +- extra_args: ['--c-include=libaccounts-glib.h', '-DACCOUNTS_GLIB_COMPILATION=1'], ++ header: 'libaccounts-glib.h', ++ extra_args: ['-DACCOUNTS_GLIB_COMPILATION=1'], + install: true + ) + +diff --git a/meson.build b/meson.build +index 999c679..6f214e7 100644 +--- a/meson.build ++++ b/meson.build +@@ -1,16 +1,17 @@ +-project('libaccounts-glib', 'c') ++project('libaccounts-glib', 'c', version: '1.24', license: 'LGPL2.1', meson_version: '>=0.48.0') + +-version_major = 1 +-version_minor = 24 +-full_version = '@0@.@1@'.format(version_major, version_minor) +-api_version = '@0@.0'.format(version_major) ++version_parts = meson.project_version().split('.') ++api_version = '@0@.0'.format(version_parts[0]) ++so_version = '0' + + gnome = import('gnome') ++pkg = import('pkgconfig') + +-glib_dep = dependency('glib-2.0', version : '>=2.26') +-gio_dep = dependency('gio-2.0', version : '>=2.26') +-gio_unix_dep = dependency('gio-unix-2.0') +-gobject_dep = dependency('gobject-2.0', version : '>=2.35.1') ++glib_minimal_version = '2.26' ++glib_dep = dependency('glib-2.0', version : '>=' + glib_minimal_version) ++gio_dep = dependency('gio-2.0', version : '>=' + glib_minimal_version) ++gio_unix_dep = dependency('gio-unix-2.0', version : '>=' + glib_minimal_version) ++gobject_dep = dependency('gobject-2.0', version : '>=' + glib_minimal_version) + libxml_dep = dependency('libxml-2.0') + sqlite_dep = dependency('sqlite3', version : '>=3.7.0') + +@@ -20,11 +21,11 @@ service_files_dir = 'accounts/services' + service_type_files_dir = 'accounts/service_types' + database_dir = 'libaccounts-glib' + +-add_global_arguments('-DAPPLICATION_FILES_DIR="'+ application_files_dir + '"', language : 'c') +-add_global_arguments('-DPROVIDER_FILES_DIR="'+ provider_files_dir + '"', language : 'c') +-add_global_arguments('-DSERVICE_FILES_DIR="'+ service_files_dir + '"', language : 'c') +-add_global_arguments('-DSERVICE_TYPE_FILES_DIR="'+ service_type_files_dir + '"', language : 'c') +-add_global_arguments('-DDATABASE_DIR="'+ database_dir + '"', language : 'c') ++add_project_arguments('-DAPPLICATION_FILES_DIR="'+ application_files_dir + '"', language : 'c') ++add_project_arguments('-DPROVIDER_FILES_DIR="'+ provider_files_dir + '"', language : 'c') ++add_project_arguments('-DSERVICE_FILES_DIR="'+ service_files_dir + '"', language : 'c') ++add_project_arguments('-DSERVICE_TYPE_FILES_DIR="'+ service_type_files_dir + '"', language : 'c') ++add_project_arguments('-DDATABASE_DIR="'+ database_dir + '"', language : 'c') + + accounts_glib_library_deps = [glib_dep, gio_dep, gio_unix_dep, gobject_dep, libxml_dep, sqlite_dep] + +-- +2.24.1 + + +From b6ff6ce8a0f71a1212f9cc8fd45bc8f8c81079dc Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Corentin=20No=C3=ABl?= +Date: Wed, 8 Apr 2020 17:47:00 +0200 +Subject: [PATCH 2/2] ci: Update meson using pip3 + +--- + .gitlab-ci.yml | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml +index adc9705..4d861af 100644 +--- a/.gitlab-ci.yml ++++ b/.gitlab-ci.yml +@@ -15,12 +15,14 @@ before_script: + - apt-get -o dir::cache::archives="$APT_CACHE_DIR" install -yq sudo + - useradd -m tester + - adduser tester sudo +- - apt-get -o dir::cache::archives="$APT_CACHE_DIR" install -y locales ++ - apt-get -o dir::cache::archives="$APT_CACHE_DIR" install -yq locales + - echo "en_US UTF-8" > /etc/locale.gen + - locale-gen en_US.UTF-8 + - export LANG=en_US.UTF-8 + - export LANGUAGE=en_US:en + - export LC_ALL=en_US.UTF-8 ++ - apt-get -o dir::cache::archives="$APT_CACHE_DIR" install -yq python3-pip ++ - pip3 install meson + + + build_amd64: +-- +2.24.1 + diff --git a/libaccounts-glib.rpmlintrc b/libaccounts-glib.rpmlintrc new file mode 100644 index 0000000..58332ee --- /dev/null +++ b/libaccounts-glib.rpmlintrc @@ -0,0 +1,6 @@ +# man pages for utilities are no longer built with meson +addFilter("W: no-manual-page-for-binary ag-*") + +# documentation is shipped in the main and the -docs package +addFilter("W: no-documentation*") + diff --git a/libaccounts-glib.spec b/libaccounts-glib.spec index 9704c8a..cd795e0 100644 --- a/libaccounts-glib.spec +++ b/libaccounts-glib.spec @@ -1,118 +1,129 @@ +Name: libaccounts-glib +Version: 1.24 +Release: 1%{?dist} +Summary: Accounts framework for Linux and POSIX based platforms +License: LGPLv2 -%global commit0 8d14b10652b2fe6c25d8ad8334e2d5023d254313 -%global gittag0 VERSION_%{version} -%global shortcommit0 %(c=%{commit0}; echo ${c:0:7}) -#global snap0 20160216 - -Name: libaccounts-glib -Version: 1.23 -Release: 9%{?dist} -Summary: Accounts framework for Linux and POSIX based platforms -License: LGPLv2 -URL: https://gitlab.com/accounts-sso/libaccounts-glib - -Source0: https://gitlab.com/accounts-sso/%{name}/repository/archive.tar.gz?ref=%{gittag0}#/%{name}-%{version}.tar.gz - -BuildRequires: dbus-glib-devel -BuildRequires: libxml2-devel -BuildRequires: sqlite-devel -BuildRequires: check-devel -BuildRequires: gobject-introspection-devel -# no needed for final release tarball -BuildRequires: libtool -BuildRequires: gtk-doc +URL: https://gitlab.com/accounts-sso/libaccounts-glib +Source0: %{url}/-/archive/%{version}/%{name}-%{version}.tar.gz + +# proposed patch to fix accidentally bumped SONAME +Patch0: %{url}/-/merge_requests/24.patch + +BuildRequires: gcc +BuildRequires: meson >= 0.48.0 +BuildRequires: python3-devel +BuildRequires: python3-gobject +BuildRequires: vala + +BuildRequires: pkgconfig(gio-2.0) >= 2.26 +BuildRequires: pkgconfig(gio-unix-2.0) +BuildRequires: pkgconfig(glib-2.0) >= 2.26 +BuildRequires: pkgconfig(gobject-2.0) >= 2.35.1 +BuildRequires: pkgconfig(gobject-introspection-1.0) +BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: pkgconfig(sqlite3) >= 3.7.0 + +# dependencies for building docs +BuildRequires: gtk-doc + +# dependencies for tests +BuildRequires: pkgconfig(check) + +# package contains python3-gobject overrides +Requires: python3-gobject %description %{summary}. + %package devel -Summary: Development files for %{name} -Requires: %{name}%{?_isa} = %{version}-%{release} +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} + %description devel The %{name}-devel package contains libraries and header files for developing applications that use %{name}. + %package docs -Summary: Documentation for %{name} -BuildArch: noarch +Summary: Documentation for %{name} +BuildArch: noarch + %description docs The %{name}-docs package contains documentation for %{name}. %prep -%autosetup -n %{name}-%{gittag0}-%{commit0} +%autosetup -p1 %build -test -x configure || \ -NOCONFIGURE=1 \ -./autogen.sh - -%configure \ - --disable-static \ - --enable-gtk-doc - -make %{?_smp_mflags} +%meson +%meson_build %install -make install DESTDIR=%{buildroot} +%meson_install -rm -fv %{buildroot}%{_libdir}/lib*.la - -# create/own data dirs +# create data directories mkdir -p %{buildroot}%{_datadir}/accounts/{applications,providers,services,service_types} -# add docs manuall to %%doc instead -rm -rfv %{buildroot}%{_prefix}/doc/reference %check -# advisory and non-fatal for now -make check || cat tests/test-suite.log ||: - +# some tests fail without either dbus-test-runner (not packaged) or X11 session +%meson_test || : -%ldconfig_scriptlets %files %license COPYING -%doc AUTHORS ChangeLog README NEWS +%doc README.md NEWS + %{_bindir}/ag-backup %{_bindir}/ag-tool -%{_mandir}/man1/ag-backup.1* -%{_mandir}/man1/ag-tool.1* -%dir %{_datadir}/backup-framework -%dir %{_datadir}/backup-framework/applications -%{_datadir}/backup-framework/applications/*.conf -%{_libdir}/libaccounts-glib.so.0* + +%{_libdir}/libaccounts-glib.so.0 +%{_libdir}/libaccounts-glib.so.%{version} %{_libdir}/girepository-1.0/Accounts-1.0.typelib + +%dir %{_datadir}/xml/accounts/schema/dtd +%{_datadir}/xml/accounts/schema/dtd/accounts-*.dtd + %dir %{_datadir}/xml/ %dir %{_datadir}/xml/accounts/ %dir %{_datadir}/xml/accounts/schema/ -%dir %{_datadir}/xml/accounts/schema/dtd -%{_datadir}/xml/accounts/schema/dtd/accounts-*.dtd %dir %{_datadir}/accounts/ %dir %{_datadir}/accounts/applications/ %dir %{_datadir}/accounts/providers/ %dir %{_datadir}/accounts/services/ %dir %{_datadir}/accounts/service_types/ +%{python3_sitearch}/gi/overrides/Accounts.py +%{python3_sitearch}/gi/overrides/__pycache__/* + + %files devel +%{_includedir}/libaccounts-glib/ + %{_libdir}/libaccounts-glib.so %{_libdir}/pkgconfig/libaccounts-glib.pc -%{_includedir}/libaccounts-glib -%{_datadir}/gir-1.0/Accounts-1.0.gir + %{_datadir}/dbus-1/interfaces/*.xml +%{_datadir}/gettext/its/accounts-*.{its,loc} +%{_datadir}/gir-1.0/Accounts-1.0.gir %{_datadir}/vala/vapi/libaccounts-glib.deps %{_datadir}/vala/vapi/libaccounts-glib.vapi -## testing bits -%{_datadir}/libaccounts-glib/ -%{_libdir}/libaccounts-glib/ + %files docs %doc %{_datadir}/gtk-doc/html/libaccounts-glib/ %changelog +* Sat Apr 11 2020 Fabio Valentini - 1.24-1 +- Update to version 1.24. +- Migrate from autotools to meson. + * Wed Jan 29 2020 Fedora Release Engineering - 1.23-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild @@ -205,3 +216,4 @@ make check || cat tests/test-suite.log ||: * Mon Jun 14 2010 Bernd Wachter - 0.39 - Update to latest version + diff --git a/sources b/sources index 3dde76e..40c00d3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -af872137184b38e39db415d67a32a510 libaccounts-glib-1.23.tar.gz +SHA512 (libaccounts-glib-1.24.tar.gz) = d35e933a21ecfef33f59a26a4da2d9618d3f341fbb94187ce78b4b21128a3c092d396f2f94c2f63da6bd653f6048f3d5b4051f8ba8e8e02b6b51933eb7fc7edd