Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 7 additions & 0 deletions .dir-locals.el
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
((c-mode . ((indent-tabs-mode . t)
(c-basic-offset . 8)
(tab-width . 8)))
(c++-mode . ((indent-tabs-mode . t)
(c-basic-offset . 8)
(tab-width . 8)))
)
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
build
_build
.build
*.orig
*.rej
88 changes: 77 additions & 11 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,62 @@
stages:
- test
- build
- pages
- tarball
- release

variables:
TARBALL_PATH_PREFIX: ${CI_PROJECT_NAME}-${CI_COMMIT_TAG}
TARBALL_NAME: ${TARBALL_PATH_PREFIX}.tar.xz

include:
- component: gitlab.gnome.org/GNOME/citemplates/release-service@master
inputs:
job-stage: release
dist-job-name: "tarball"
tarball-artifact-path: "${TARBALL_NAME}"

fedora:
image: registry.gitlab.gnome.org/gnome/evolution/fedora:v1
stage: build
script:
- export SOURCE=$PWD
- export PREFIX=$HOME/_prefix
- mkdir $PREFIX
- pushd po/ >/dev/null && export TXT=`intltool-update -m 2>&1` && popd >/dev/null
- if [ ! -z "$TXT" ]; then echo -e "\\033[1;31m" 1>&2; echo "$TXT" 1>&2; echo -e "\\033[0m" 1>&2; exit 1; fi
- mkdir _build && cd _build
- cmake -G "Ninja" \
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX=$PREFIX
-DENABLE_GOA=ON
-DENABLE_GTK=ON
-DENABLE_GTK4=ON
-DENABLE_EXAMPLES=ON
-DENABLE_TESTS=ON
-DENABLE_INTROSPECTION=ON
-DENABLE_VALA_BINDINGS=ON
-DENABLE_INSTALLED_TESTS=ON
-DENABLE_GTK_DOC=ON
-DENABLE_GI_DOCGEN=ON
-DWITH_PRIVATE_DOCS=ON
-DWITH_LIBDB=OFF
-DWITH_PHONENUMBER=ON
..
- ninja
- ninja install
- ctest --force-new-ctest-process --output-on-failure
- cp $SOURCE/docs/*.html ./docs/
- cp $SOURCE/docs/*.js ./docs/
artifacts:
name: "${CI_PROJECT_NAME}-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
when: always
paths:
- "_build/evolution-data-server-config.h"
- "_build/docs"

flatpak:
image: "quay.io/gnome_infrastructure/gnome-runtime-images:gnome-master"
stage: test
stage: build
tags:
- flatpak
variables:
Expand All @@ -13,6 +65,7 @@ flatpak:
FLATPAK_MODULE: "evolution-data-server"
APP_ID: "org.gnome.EvolutionDataServer.Devel"
RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
when: manual
before_script:
- export PATH="/usr/lib/ccache:$PATH"
- export CCACHE_BASEDIR="$PWD"
Expand All @@ -21,9 +74,8 @@ flatpak:
- jq -M '(.modules[] | select(.name=="evolution-data-server")).sources[0].url = env.CI_REPOSITORY_URL' ${MANIFEST_PATH} > tmp.json && mv tmp.json ${MANIFEST_PATH}
- jq -M 'del((.modules[] | select(.name=="evolution-data-server")).sources[0].branch)' ${MANIFEST_PATH} > tmp.json && mv tmp.json ${MANIFEST_PATH}
- jq -M '(.modules[] | select(.name=="evolution-data-server")).sources[0].commit = env.CI_COMMIT_SHA' ${MANIFEST_PATH} > tmp.json && mv tmp.json ${MANIFEST_PATH}
- >
xvfb-run -a -s "-screen 0 1024x768x24"
flatpak-builder --keep-build-dirs --user --disable-rofiles-fuse flatpak_app --repo=repo --ccache ${BRANCH:+--default-branch=$BRANCH} ${MANIFEST_PATH}

- flatpak-builder --verbose --keep-build-dirs --user --disable-rofiles-fuse flatpak_app --repo=repo --ccache ${BRANCH:+--default-branch=$BRANCH} ${MANIFEST_PATH}
- flatpak build-bundle repo ${BUNDLE} --runtime-repo=${RUNTIME_REPO} ${APP_ID} ${BRANCH}
cache:
paths:
Expand All @@ -35,25 +87,39 @@ flatpak:
when: "always"
paths:
- "${BUNDLE}"
- ".flatpak-builder/build/${FLATPAK_MODULE}/evolution-data-server-config.h"
- ".flatpak-builder/build/${FLATPAK_MODULE}/CMakeFiles/CMakeError.log"
- ".flatpak-builder/build/${FLATPAK_MODULE}/CMakeFiles/CMakeOutput.log"
- ".flatpak-builder/build/${FLATPAK_MODULE}/docs/"
expire_in: 14 days

pages:
image: registry.gitlab.gnome.org/gnome/evolution/fedora:v1
stage: pages
dependencies:
- flatpak
- fedora
interruptible: false
variables:
FLATPAK_MODULE: "evolution-data-server"
script:
- "mkdir public"
- "mv .flatpak-builder/build/${FLATPAK_MODULE}/docs/* ./public"
- "mv _build/docs/* ./public"
- "rm -R ./public/reference"
artifacts:
paths:
- public
rules:
- if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH

tarball:
stage: tarball
image: "quay.io/gnome_infrastructure/gnome-runtime-images:gnome-master"
dependencies:
- fedora
allow_failure: false
script:
- git config --global --add safe.directory `pwd`
- git archive --prefix=${TARBALL_PATH_PREFIX}/ HEAD | xz -z > ${TARBALL_NAME}
artifacts:
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
expire_in: 14 days
paths:
- "${TARBALL_NAME}"
rules:
- if: $CI_COMMIT_TAG && $CI_COMMIT_REF_PROTECTED
40 changes: 25 additions & 15 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
# Evolution-Data-Server build script

cmake_minimum_required(VERSION 3.1)
cmake_policy(VERSION 3.1)
cmake_minimum_required(VERSION 3.15)
cmake_policy(VERSION 3.15)

project(evolution-data-server
VERSION 3.50.1
VERSION 3.56.2
LANGUAGES C CXX)
set(PROJECT_BUGREPORT "https://gitlab.gnome.org/GNOME/evolution-data-server/issues/")

# Base Version: This is for API/version tracking for things like
# D-Bus server files. This should always be the major/minor of
# the stable version or stable version to be.
set(BASE_VERSION 3.50)
set(BASE_VERSION 3.56)

# This number is meaningless, but we're now stuck with it in our
# library names for backward compatibility.
Expand Down Expand Up @@ -43,6 +43,7 @@ set(ADDRESS_BOOK_DBUS_SERVICE_NAME "org.gnome.evolution.dataserver.AddressBook10
set(CALENDAR_DBUS_SERVICE_NAME "org.gnome.evolution.dataserver.Calendar8")
set(SOURCES_DBUS_SERVICE_NAME "org.gnome.evolution.dataserver.Sources5")
set(USER_PROMPTER_DBUS_SERVICE_NAME "org.gnome.evolution.dataserver.UserPrompter0")
set(OAUTH2_RESPONSE_DBUS_SERVICE_NAME "org.gnome.evolution.dataserver.OAuth2Response0")

# ******************************
# Library versioning
Expand Down Expand Up @@ -80,7 +81,7 @@ set(LIBEDATABOOK_CURRENT 27)
set(LIBEDATABOOK_REVISION 0)
set(LIBEDATABOOK_AGE 0)

set(LIBECAL_CURRENT 2)
set(LIBECAL_CURRENT 3)
set(LIBECAL_REVISION 0)
set(LIBECAL_AGE 0)

Expand Down Expand Up @@ -119,12 +120,11 @@ set(libical_glib_minimum_version 3.0.7)
set(libsecret_minimum_version 0.5)
set(libxml_minimum_version 2.0.0)
set(sqlite_minimum_version 3.7.17)
set(uuid_minimum_version 2.0)

# Optional Packages
set(goa_minimum_version 3.8)
set(gweather_minimum_version 3.91)
set(libaccounts_glib_minimum_version 1.4)
set(libsignon_glib_minimum_version 1.8)
set(json_glib_minimum_version 1.0.4)
set(webkit2gtk_minimum_version 2.34.0)
set(webkit2gtk4_minimum_version 2.36.0)
Expand Down Expand Up @@ -189,6 +189,7 @@ if(NOT ("${DBUS_SERVICES_PREFIX}" STREQUAL ""))
set(CALENDAR_DBUS_SERVICE_NAME "${DBUS_SERVICES_PREFIX}.${CALENDAR_DBUS_SERVICE_NAME}")
set(SOURCES_DBUS_SERVICE_NAME "${DBUS_SERVICES_PREFIX}.${SOURCES_DBUS_SERVICE_NAME}")
set(USER_PROMPTER_DBUS_SERVICE_NAME "${DBUS_SERVICES_PREFIX}.${USER_PROMPTER_DBUS_SERVICE_NAME}")
set(OAUTH2_RESPONSE_DBUS_SERVICE_NAME "${DBUS_SERVICES_PREFIX}.${OAUTH2_RESPONSE_DBUS_SERVICE_NAME}")
else(NOT ("${DBUS_SERVICES_PREFIX}" STREQUAL ""))
unset(DBUS_SERVICES_PREFIX)
endif(NOT ("${DBUS_SERVICES_PREFIX}" STREQUAL ""))
Expand Down Expand Up @@ -313,6 +314,7 @@ setup_build_flags(${ENABLE_MAINTAINER_MODE})

CHECK_INCLUDE_FILE(com_err.h HAVE_COM_ERR_H)
CHECK_INCLUDE_FILE(et/com_err.h HAVE_ET_COM_ERR_H)
CHECK_INCLUDE_FILE(sys/param.h HAVE_SYS_PARAM_H)
CHECK_INCLUDE_FILE(sys/wait.h HAVE_SYS_WAIT_H)
CHECK_INCLUDE_FILE(wspiapi.h HAVE_WSPIAPI_H)
CHECK_INCLUDE_FILE(zlib.h HAVE_ZLIB_H)
Expand Down Expand Up @@ -374,13 +376,13 @@ endif(WIN32)
# ICU started shipping pkg-config files but it's not present
# on many systems, if we don't find the pkg-config
# file then let's fallback on a manual check
pkg_check_modules(ICU icu-i18n)
pkg_check_modules(ICU icu-i18n icu-uc)

if(NOT ICU_FOUND)
CHECK_INCLUDE_FILE(unicode/ucol.h HAVE_UNICODE_UCOL_H)
if(NOT HAVE_UNICODE_UCOL_H)
message(FATAL_ERROR "ICU unicode/ucol.h not found; icu-i18n is required")
endif(HAVE_UNICODE_UCOL_H)
endif(NOT HAVE_UNICODE_UCOL_H)

set(CMAKE_REQUIRED_LIBRARIES "-licui18n -licuuc -licudata")
CHECK_C_SOURCE_COMPILES("#include <unicode/ucol.h>
Expand All @@ -391,7 +393,7 @@ if(NOT ICU_FOUND)
set(ICU_CFLAGS -D_REENTRANT)
set(ICU_LIBS "-licui18n -licuuc -licudata")
else(HAVE_UCOL_OPEN)
message(FATAL_ERROR "Failed to find icu-i18n, install its development files or build them first")
message(FATAL_ERROR "Failed to find icui18n, icuuc and icudata, install its development files or build them first")
endif(HAVE_UCOL_OPEN)
endif(NOT ICU_FOUND)

Expand Down Expand Up @@ -419,6 +421,7 @@ endif(ENABLE_GTK4)
# **************************************************************

pkg_check_modules(JSON_GLIB REQUIRED json-glib-1.0>=${json_glib_minimum_version})
pkg_check_modules(UUID REQUIRED uuid>=${uuid_minimum_version})

if(ENABLE_GTK)
add_printable_option(ENABLE_OAUTH2_WEBKITGTK "Enable WebKitGTK gtk3 for built-in OAuth2 authentications" ON)
Expand Down Expand Up @@ -532,11 +535,11 @@ if(WITH_LIBDB)
endif(("${WITH_LIBDB_CFLAGS}" STREQUAL "") AND ("${WITH_LIBDB_LIBS}" STREQUAL ""))
endif(NOT (WITH_LIBDB OR ("${WITH_LIBDB}" STREQUAL "YES")))

set(CMAKE_REQUIRED_FLAGS ${LIBDB_CFLAGS})
set(CMAKE_REQUIRED_DEFINITIONS ${LIBDB_CFLAGS})
set(CMAKE_REQUIRED_LIBRARIES ${LIBDB_LIBS})
CHECK_C_SOURCE_COMPILES("#include <db.h>
int main(void) { db_create(NULL, NULL, 0); return 0; }" HAVE_LIBDB)
unset(CMAKE_REQUIRED_FLAGS)
unset(CMAKE_REQUIRED_DEFINITIONS)
unset(CMAKE_REQUIRED_LIBRARIES)

if(NOT HAVE_LIBDB)
Expand Down Expand Up @@ -910,13 +913,13 @@ endif(ENABLE_LARGEFILE)
# Miscellaneous checks
# ******************************

set(CMAKE_REQUIRED_FLAGS ${GNOME_PLATFORM_CFLAGS})
set(CMAKE_REQUIRED_DEFINITIONS ${GNOME_PLATFORM_CFLAGS})
set(CMAKE_REQUIRED_INCLUDES ${GNOME_PLATFORM_INCLUDE_DIRS})
set(CMAKE_REQUIRED_LIBRARIES ${GNOME_PLATFORM_LDFLAGS})
CHECK_C_SOURCE_COMPILES("#include <gio/gio.h>
int main(void) { GPowerProfileMonitor *monitor = g_power_profile_monitor_dup_default (); g_clear_object (&monitor); return 0; }" HAVE_GPOWERPROFILEMONITOR)
CHECK_SYMBOL_EXISTS(soup_message_set_force_http1 libsoup/soup.h HAVE_SOUP_MESSAGE_SET_FORCE_HTTP1)
unset(CMAKE_REQUIRED_FLAGS)
unset(CMAKE_REQUIRED_DEFINITIONS)
unset(CMAKE_REQUIRED_INCLUDES)
unset(CMAKE_REQUIRED_LIBRARIES)

Expand Down Expand Up @@ -961,13 +964,20 @@ set(CMAKE_REQUIRED_LIBRARIES ${CALENDAR_LDFLAGS})
CHECK_C_SOURCE_COMPILES("#define LIBICAL_GLIB_UNSTABLE_API 1
#include <libical-glib/libical-glib.h>
int main(void) {
icalparameter *param;
ICalParameter *param;
param = i_cal_property_get_first_parameter (NULL, I_CAL_EMAIL_PARAMETER);
i_cal_parameter_get_email (param);
i_cal_parameter_new_email (NULL);
return 0;
}" HAVE_I_CAL_EMAIL_PARAMETER)

CHECK_C_SOURCE_COMPILES("#define LIBICAL_GLIB_UNSTABLE_API 1
#include <libical-glib/libical-glib.h>
int main(void) {
i_cal_recurrence_get_by (NULL, I_CAL_BY_MONTH, 0);
return 0;
}" HAVE_I_CAL_RECURRENCE_GET_BY)

unset(CMAKE_REQUIRED_DEFINITIONS)
unset(CMAKE_REQUIRED_INCLUDES)
unset(CMAKE_REQUIRED_LIBRARIES)
Expand Down
2 changes: 1 addition & 1 deletion ChangeLog
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@
Get a clone of git repository and list changes with 'git log' there,
$ git clone https://gitlab.gnome.org/GNOME/evolution-data-server.git
or browse changes online at
https://gitlab.gnome.org/GNOME/evolution-data-server/commits/gnome-45
https://gitlab.gnome.org/GNOME/evolution-data-server/commits/gnome-48
Loading
Loading