Permalink
Browse files

Disable unmaintained products from release builds

-DBUILD_UNMAINTAINED=TRUE can inofficially be used to override this,
but only targetted at developers
  • Loading branch information...
kossebau committed Oct 27, 2016
1 parent 6db0142 commit bd0468f636985b3e4ce6ba0350d0581592936a9e
Showing with 43 additions and 5 deletions.
  1. +6 −0 CMakeLists.txt
  2. +5 −5 CalligraProducts.cmake
  3. +16 −0 README.PACKAGERS
  4. +16 −0 cmake/modules/CalligraProductSetMacros.cmake
@@ -140,8 +140,14 @@ endif()

if (RELEASE_BUILD)
set(CALLIGRA_SHOULD_BUILD_STAGING FALSE)
if(BUILD_UNMAINTAINED)
set(CALLIGRA_SHOULD_BUILD_UNMAINTAINED TRUE)
else()
set(CALLIGRA_SHOULD_BUILD_UNMAINTAINED FALSE)
endif()
else ()
set(CALLIGRA_SHOULD_BUILD_STAGING TRUE)
set(CALLIGRA_SHOULD_BUILD_UNMAINTAINED TRUE)
endif ()

# finally choose products/features to build
@@ -75,8 +75,8 @@ calligra_define_product(LIB_MSO "libmso" REQUIRES LIB_CALLIGRA)
calligra_define_product(LIB_KOMSOOXML "libkomsooxml" REQUIRES LIB_CALLIGRA LIB_KOODF2 LIB_KOMAIN)

# features
calligra_define_feature(FEATURE_SCRIPTING "Scripting feature")
calligra_define_feature(FEATURE_RDF "RDF feature")
calligra_define_feature(FEATURE_SCRIPTING UNMAINTAINED "Scripting feature")
calligra_define_feature(FEATURE_RDF UNMAINTAINED "RDF feature")

# plugins
calligra_define_product(PLUGIN_TEXTSHAPE "Text shape plugin" REQUIRES LIB_CALLIGRA)
@@ -90,12 +90,12 @@ calligra_define_product(PART_COMPONENTS "QtQuick2 Plugin that provides Calligra

# apps
calligra_define_product(APP_WORDS "Words app (for Desktop)" REQUIRES PART_WORDS)
calligra_define_product(APP_STAGE "Stage app (for Desktop)" REQUIRES PART_STAGE)
calligra_define_product(APP_STAGE "Stage app (for Desktop)" UNMAINTAINED REQUIRES PART_STAGE)
calligra_define_product(APP_SHEETS "Sheets app (for Desktop)" REQUIRES PART_SHEETS)
calligra_define_product(APP_KARBON "Karbon app (for Desktop)" REQUIRES LIB_CALLIGRA LIB_KOMAIN)
calligra_define_product(APP_KARBON "Karbon app (for Desktop)" UNMAINTAINED REQUIRES LIB_CALLIGRA LIB_KOMAIN)
calligra_define_product(APP_FLOW "Flow app (for Desktop)" UNPORTED REQUIRES LIB_CALLIGRA LIB_KOMAIN LIB_KOPAGEAPP)
calligra_define_product(APP_PLAN "Plan app (for Desktop)" REQUIRES LIB_CALLIGRA LIB_KOMAIN)
calligra_define_product(APP_BRAINDUMP "Braindump app (for Desktop)" REQUIRES LIB_CALLIGRA LIB_KOMAIN)
calligra_define_product(APP_BRAINDUMP "Braindump app (for Desktop)" UNMAINTAINED REQUIRES LIB_CALLIGRA LIB_KOMAIN)
calligra_define_product(DOC "Calligra Documentations")

# staging apps
@@ -22,6 +22,7 @@ Table Of Contents
5.1. Runtime dependency of the Okular ODP plugin
5.2. Support for PPT, PPTX and more runtime dependency
5.3. Support for DOC, DOCX, WPD and more runtime dependency
6. Adding unmaintained applications/modules


1. Debug information
@@ -176,3 +177,18 @@ will be installed from the filters/word/{msword-odf,docx/import,wordperfect/impo

So with those desktop files and the Okular ODT plugin installed there is a
runtime dependency on the respective filters.


6. Adding unmaintained applications/modules
===========================================

A few applications and modules do not have maintainers. So there is noone
to handle bugs experienced by users or discuss new features/improvements.

Still those applications & modules are usable for certain needs. If you want
to provide the users of your packages also with those unmaintained applications
and modules, you will need to create a custom patch to the file CalligraProducts.cmake
and remove the respective "UNMAINTAINED" tags from the product definitions.

When doing so, please state the unmaintained state in the package description,
so the users are aware about the lack of support at the current time.
@@ -8,6 +8,7 @@
# CALLIGRA_NEEDED_PRODUCTS - list of internal needed products
# CALLIGRA_WANTED_PRODUCTS - list of internal wanted products
# CALLIGRA_STAGING_PRODUCTS - list of products only in staging mode
# CALLIGRA_UNMAINTAINED_PRODUCTS - list of products basically working but without maintainer
# temporary during qt5 port, remove after:
# CALLIGRA_UNPORTED_PRODUCTS - list of products not yet ported
# SHOULD_BUILD_${product_id} - boolean if product should be build
@@ -97,6 +98,13 @@ macro(calligra_drop_unbuildable_products)
endforeach(_product_id)
endif(NOT CALLIGRA_SHOULD_BUILD_STAGING)

# drop all unmaintainted products if not enabled
if(NOT CALLIGRA_SHOULD_BUILD_UNMAINTAINED)
foreach(_product_id ${CALLIGRA_UNMAINTAINED_PRODUCTS})
calligra_disable_product(${_product_id} "No maintainer currently")
endforeach(_product_id)
endif()

# can assume calligra_all_products has products in down-up order
# 1. check all wanted products and see if they will be built,
# if not then drop their required products
@@ -207,7 +215,9 @@ endmacro()
# Usage:
# calligra_define_product(<product_id>
# [NAME] <product_name>
# [UNMAINTAINED]
# [STAGING]
# [UNPORTED]
# [REQUIRES <product_id1> <feature_id1> ...]
# )
macro(calligra_define_product _product_id)
@@ -230,6 +240,8 @@ macro(calligra_define_product _product_id)
if(${_current_arg_type} STREQUAL "name")
if(${_arg} STREQUAL "STAGING")
list(APPEND CALLIGRA_STAGING_PRODUCTS ${_product_id})
elseif(${_arg} STREQUAL "UNMAINTAINED")
list(APPEND CALLIGRA_UNMAINTAINED_PRODUCTS ${_product_id})
elseif(${_arg} STREQUAL "UNPORTED")
# temporary during qt5 port, remove after
list(APPEND CALLIGRA_UNPORTED_PRODUCTS ${_product_id})
@@ -259,7 +271,9 @@ endmacro(calligra_define_product)
# Usage:
# calligra_define_feature(<feature_id>
# [NAME] <feature_name>
# [UNMAINTAINED]
# [STAGING]
# [UNPORTED]
# [REQUIRES <product_id1> <feature_id1> ...]
# )
macro(calligra_define_feature _product_id)
@@ -282,6 +296,8 @@ macro(calligra_define_feature _product_id)
if(${_current_arg_type} STREQUAL "name")
if(${_arg} STREQUAL "STAGING")
list(APPEND CALLIGRA_STAGING_PRODUCTS ${_product_id})
elseif(${_arg} STREQUAL "UNMAINTAINED")
list(APPEND CALLIGRA_UNMAINTAINED_PRODUCTS ${_product_id})
elseif(${_arg} STREQUAL "UNPORTED")
# temporary during qt5 port, remove after
list(APPEND CALLIGRA_UNPORTED_PRODUCTS ${_product_id})

0 comments on commit bd0468f

Please sign in to comment.