Merge lp:~muktupavels/compiz/config into lp:compiz/0.9.13

Proposed by Alberts Muktupāvels
Status: Merged
Approved by: Dmitry Shachnev
Approved revision: 4210
Merged at revision: 4209
Proposed branch: lp:~muktupavels/compiz/config
Merge into: lp:compiz/0.9.13
Diff against target: 441 lines (+150/-120)
15 files modified
cmake/CompizCommon.cmake (+0/-17)
compizconfig/CMakeLists.txt (+3/-0)
compizconfig/libcompizconfig/config/CMakeLists.txt (+2/-8)
compizconfig/libcompizconfig/config/config (+0/-8)
compizconfig/libcompizconfig/config/config.conf (+27/-0)
compizconfig/libcompizconfig/libcompizconfig.pc.in (+3/-1)
compizconfig/libcompizconfig/src/CMakeLists.txt (+2/-2)
compizconfig/libcompizconfig/src/ccs_config_file.c (+105/-47)
compizconfig/libcompizconfig/src/main.c (+2/-2)
compizconfig/libcompizconfig/tests/CMakeLists.txt (+1/-1)
compizconfig/libcompizconfig/tests/compizconfig_test_ccs_context.cpp (+3/-3)
debian/compizconfig (+0/-27)
debian/libcompizconfig0.install (+1/-1)
debian/libcompizconfig0.maintscript (+1/-0)
debian/rules (+0/-3)
To merge this branch: bzr merge lp:~muktupavels/compiz/config
Reviewer Review Type Date Requested Status
Dmitry Shachnev Approve
Marco Trevisan (Treviño) Pending
Khurshid Alam Pending
Review via email: mp+362799@code.launchpad.net

Commit message

Add support for loading configuration from multiple files.

Description of the change

Add support for loading configuration from multiple files.

This is needed to allow external / other projects provide their own configuration without adding them to compiz. This is preparation to move unity config and upgrade files to unity.

To post a comment you must log in.
Revision history for this message
Dmitry Shachnev (mitya57) :
review: Approve
lp:~muktupavels/compiz/config updated
4210. By Alberts Muktupāvels

Remove old config file.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'cmake/CompizCommon.cmake'
--- cmake/CompizCommon.cmake 2019-02-05 20:39:56 +0000
+++ cmake/CompizCommon.cmake 2019-02-08 11:43:36 +0000
@@ -958,23 +958,6 @@
958958
959endmacro (compiz_test)959endmacro (compiz_test)
960960
961#### optional file install
962
963function (compiz_opt_install_file _src _dst)
964 install (CODE
965 "message (\"-- Installing: ${_dst}\")
966 execute_process (
967 COMMAND ${CMAKE_COMMAND} -E copy_if_different \"${_src}\" \"$ENV{DESTDIR}${_dst}\"
968 RESULT_VARIABLE _result
969 OUTPUT_QUIET ERROR_QUIET
970 )
971 if (_result)
972 message (\"-- Failed to install: ${_dst}\")
973 endif ()
974 "
975 )
976endfunction ()
977
978#### uninstall961#### uninstall
979962
980function (compiz_add_code_to_uninstall_target CODE WORKING_DIRECTORY)963function (compiz_add_code_to_uninstall_target CODE WORKING_DIRECTORY)
981964
=== modified file 'compizconfig/CMakeLists.txt'
--- compizconfig/CMakeLists.txt 2016-05-12 10:14:55 +0000
+++ compizconfig/CMakeLists.txt 2019-02-08 11:43:36 +0000
@@ -4,6 +4,9 @@
4set (COMPIZCONFIG_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/libcompizconfig/include)4set (COMPIZCONFIG_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/libcompizconfig/include)
5set (COMPIZCONFIG_LIBRARY_DIRS ${CMAKE_CURRENT_BINARY_DIR}/libcompizconfig)5set (COMPIZCONFIG_LIBRARY_DIRS ${CMAKE_CURRENT_BINARY_DIR}/libcompizconfig)
66
7set (COMPIZCONFIG_CONFIG_DIR ${CMAKE_INSTALL_FULL_SYSCONFDIR}/compizconfig)
8set (COMPIZCONFIG_UPGRADES_DIR ${CMAKE_INSTALL_FULL_DATAROOTDIR}/compizconfig/upgrades)
9
7if (COMPIZ_PACKAGING_ENABLED)10if (COMPIZ_PACKAGING_ENABLED)
8 set (libcompizconfig_prefix ${CMAKE_INSTALL_PREFIX} CACHE PATH "prefix")11 set (libcompizconfig_prefix ${CMAKE_INSTALL_PREFIX} CACHE PATH "prefix")
9 set (libcompizconfig_libdir ${CMAKE_INSTALL_FULL_LIBDIR} CACHE PATH "libdir")12 set (libcompizconfig_libdir ${CMAKE_INSTALL_FULL_LIBDIR} CACHE PATH "libdir")
1013
=== modified file 'compizconfig/libcompizconfig/config/CMakeLists.txt'
--- compizconfig/libcompizconfig/config/CMakeLists.txt 2012-07-23 06:22:04 +0000
+++ compizconfig/libcompizconfig/config/CMakeLists.txt 2019-02-08 11:43:36 +0000
@@ -1,13 +1,7 @@
1set (_config_file1set (_config_file
2 config)2 config.conf)
33
4configure_file (${CMAKE_CURRENT_SOURCE_DIR}/config_test4configure_file (${CMAKE_CURRENT_SOURCE_DIR}/config_test
5 ${CMAKE_CURRENT_BINARY_DIR}/compiz-1/compizconfig/config)5 ${CMAKE_CURRENT_BINARY_DIR}/compiz-1/compizconfig/config)
66
7compiz_opt_install_file (${CMAKE_CURRENT_SOURCE_DIR}/${_config_file} ${COMPIZ_SYSCONFDIR}/compizconfig/${_config_file})7install (FILES ${_config_file} DESTINATION ${COMPIZCONFIG_CONFIG_DIR})
8
9add_custom_target (
10 config_install
11 ${CMAKE_COMMAND} -E make_directory ${CMAKE_ROOT}/Modules &&
12 ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/config/${_config_file} ${COMPIZ_SYSCONFDIR}/compizconfig/${_config_file}
13 )
148
=== removed file 'compizconfig/libcompizconfig/config/config'
--- compizconfig/libcompizconfig/config/config 2019-02-04 20:24:41 +0000
+++ compizconfig/libcompizconfig/config/config 1970-01-01 00:00:00 +0000
@@ -1,8 +0,0 @@
1[gnome_session]
2backend = gconf
3integration = true
4plugin_list_autosort = true
5
6[general]
7backend = ini
8plugin_list_autosort = true
90
=== added file 'compizconfig/libcompizconfig/config/config.conf'
--- compizconfig/libcompizconfig/config/config.conf 1970-01-01 00:00:00 +0000
+++ compizconfig/libcompizconfig/config/config.conf 2019-02-08 11:43:36 +0000
@@ -0,0 +1,27 @@
1[general]
2backend = ini
3plugin_list_autosort = true
4
5[gnome_session]
6backend = gsettings
7integration = true
8plugin_list_autosort = true
9profile = Default
10
11[general_mate]
12backend = gsettings
13integration = false
14plugin_list_autosort = true
15profile = mate
16
17[general_ubuntu]
18backend = gsettings
19integration = true
20plugin_list_autosort = true
21profile = unity
22
23[general_ubuntu-lowgfx]
24backend = gsettings
25integration = true
26plugin_list_autosort = true
27profile = unity-lowgfx
028
=== modified file 'compizconfig/libcompizconfig/libcompizconfig.pc.in'
--- compizconfig/libcompizconfig/libcompizconfig.pc.in 2012-05-23 12:15:16 +0000
+++ compizconfig/libcompizconfig/libcompizconfig.pc.in 2019-02-08 11:43:36 +0000
@@ -3,6 +3,9 @@
3libdir=@libcompizconfig_libdir@3libdir=@libcompizconfig_libdir@
4includedir=@libcompizconfig_includedir@4includedir=@libcompizconfig_includedir@
55
6configdir=@COMPIZCONFIG_CONFIG_DIR@
7upgradesdir=@COMPIZCONFIG_UPGRADES_DIR@
8
6Name: libcompizconfig9Name: libcompizconfig
7Description: Compiz configuration system10Description: Compiz configuration system
8Version: @VERSION@11Version: @VERSION@
@@ -10,4 +13,3 @@
10Requires: compiz13Requires: compiz
11Libs: -L@libcompizconfig_libdir@ -lcompizconfig14Libs: -L@libcompizconfig_libdir@ -lcompizconfig
12Cflags: -I@libcompizconfig_includedir@15Cflags: -I@libcompizconfig_includedir@
13
1416
=== modified file 'compizconfig/libcompizconfig/src/CMakeLists.txt'
--- compizconfig/libcompizconfig/src/CMakeLists.txt 2018-07-24 09:36:54 +0000
+++ compizconfig/libcompizconfig/src/CMakeLists.txt 2019-02-08 11:43:36 +0000
@@ -27,8 +27,8 @@
27 -DPLUGINDIR="${COMPIZ_PLUGINDIR}"27 -DPLUGINDIR="${COMPIZ_PLUGINDIR}"
28 -DIMAGEDIR="${COMPIZ_IMAGEDIR}"28 -DIMAGEDIR="${COMPIZ_IMAGEDIR}"
29 -DMETADATADIR="${COMPIZ_METADATADIR}"29 -DMETADATADIR="${COMPIZ_METADATADIR}"
30 -DSYSCONFDIR="${COMPIZ_SYSCONFDIR}"30 -DCONFIGDIR="${COMPIZCONFIG_CONFIG_DIR}"
31 -DDATADIR="${COMPIZ_DATADIR}"31 -DUPGRADESDIR="${COMPIZCONFIG_UPGRADES_DIR}"
32 -DLIBDIR="${COMPIZ_LIBDIR}"32 -DLIBDIR="${COMPIZ_LIBDIR}"
33)33)
3434
3535
=== modified file 'compizconfig/libcompizconfig/src/ccs_config_file.c'
--- compizconfig/libcompizconfig/src/ccs_config_file.c 2015-10-26 17:15:43 +0000
+++ compizconfig/libcompizconfig/src/ccs_config_file.c 2019-02-08 11:43:36 +0000
@@ -26,6 +26,9 @@
26#ifndef _GNU_SOURCE26#ifndef _GNU_SOURCE
27#define _GNU_SOURCE27#define _GNU_SOURCE
28#endif28#endif
29
30#include <dirent.h>
31#include <errno.h>
29#include <stdio.h>32#include <stdio.h>
30#include <stdlib.h>33#include <stdlib.h>
31#include <string.h>34#include <string.h>
@@ -92,56 +95,111 @@
92}95}
9396
94static Bool97static Bool
98ccsReadGlobalConfigFromFile (const char *file,
99 ConfigOption option,
100 char **value)
101{
102 IniDictionary *iniFile;
103 char *entry = NULL;
104 char *section;
105 Bool ret;
106
107 iniFile = ccsIniOpen (file);
108 if (!iniFile)
109 return FALSE;
110
111 switch (option)
112 {
113 case OptionProfile:
114 entry = "profile";
115 break;
116 case OptionBackend:
117 entry = "backend";
118 break;
119 case OptionIntegration:
120 entry = "integration";
121 break;
122 case OptionAutoSort:
123 entry = "plugin_list_autosort";
124 break;
125 default:
126 break;
127 }
128
129 if (!entry)
130 {
131 ccsIniClose (iniFile);
132 return FALSE;
133 }
134
135 *value = NULL;
136 section = getSectionName();
137 ret = ccsIniGetString (iniFile, section, entry, value);
138 free (section);
139 ccsIniClose (iniFile);
140
141 return ret;
142}
143
144static int
145configFilter (const struct dirent *entry)
146{
147 const char *suffix;
148 size_t suffixLen;
149 size_t nameLen;
150
151 suffix = ".conf";
152 suffixLen = strlen (suffix);
153 nameLen = strlen (entry->d_name);
154
155 if (nameLen < suffixLen)
156 return 0;
157
158 if (strcmp (entry->d_name + nameLen - suffixLen, suffix) == 0)
159 return 1;
160
161 return 0;
162}
163
164static Bool
95ccsReadGlobalConfig (ConfigOption option,165ccsReadGlobalConfig (ConfigOption option,
96 char **value)166 char **value)
97{167{
98 IniDictionary *iniFile;168 Bool ret;
99 char *entry = NULL;169 const char *configDir;
100 char *section;170 struct dirent **nameList;
101 Bool ret;171 int num;
102 FILE *fp;172 int i;
103173
104 /* check if the global config file exists - if it doesn't, exit174 ret = FALSE;
105 to avoid it being created by ccsIniOpen */175 configDir = CONFIGDIR;
106 fp = fopen (SYSCONFDIR "/compizconfig/config", "r");176
107 if (!fp)177 num = scandir (configDir, &nameList, configFilter, alphasort);
108 return FALSE;178
109 fclose (fp);179 if (num == -1)
110180 {
111 iniFile = ccsIniOpen (SYSCONFDIR "/compizconfig/config");181 ccsError ("error occurred during scandir(%s): %s", configDir, strerror (errno));
112 if (!iniFile)182 return FALSE;
113 return FALSE;183 }
114184
115 switch (option)185 for (i = 0; i < num; i++)
116 {186 {
117 case OptionProfile:187 char *filename;
118 entry = "profile";188
119 break;189 if (asprintf (&filename, "%s/%s", configDir, nameList[i]->d_name) == -1)
120 case OptionBackend:190 continue;
121 entry = "backend";191
122 break;192 ret = ccsReadGlobalConfigFromFile (filename, option, value);
123 case OptionIntegration:193 free (filename);
124 entry = "integration";194
125 break;195 if (ret)
126 case OptionAutoSort:196 break;
127 entry = "plugin_list_autosort";197 }
128 break;198
129 default:199 for (i = 0; i < num; i++)
130 break;200 free (nameList[i]);
131 }201 free (nameList);
132202
133 if (!entry)
134 {
135 ccsIniClose (iniFile);
136 return FALSE;
137 }
138
139 *value = NULL;
140 section = getSectionName();
141 ret = ccsIniGetString (iniFile, section, entry, value);
142 free (section);
143 ccsIniClose (iniFile);
144
145 return ret;203 return ret;
146}204}
147205
148206
=== modified file 'compizconfig/libcompizconfig/src/main.c'
--- compizconfig/libcompizconfig/src/main.c 2018-06-27 16:01:19 +0000
+++ compizconfig/libcompizconfig/src/main.c 2019-02-08 11:43:36 +0000
@@ -3344,7 +3344,7 @@
3344void3344void
3345ccsSetProfileDefault (CCSContext * context, const char *name)3345ccsSetProfileDefault (CCSContext * context, const char *name)
3346{3346{
3347 const char *globalProfileDir = SYSCONFDIR "/compizconfig";3347 const char *globalProfileDir = CONFIGDIR;
3348 CCSStringList availableInBackend = NULL;3348 CCSStringList availableInBackend = NULL;
3349 CCSStringList availableInSysconfDir = NULL;3349 CCSStringList availableInSysconfDir = NULL;
33503350
@@ -4911,7 +4911,7 @@
4911 ccsFreeUpgrade (upgrade);4911 ccsFreeUpgrade (upgrade);
4912}4912}
49134913
4914static const char * CCS_UPGRADE_PATH = DATADIR "/compizconfig/upgrades";4914static const char * CCS_UPGRADE_PATH = UPGRADESDIR;
49154915
4916static void4916static void
4917ccsApplyUnappliedUpgrades (CCSContext *context,4917ccsApplyUnappliedUpgrades (CCSContext *context,
49184918
=== modified file 'compizconfig/libcompizconfig/tests/CMakeLists.txt'
--- compizconfig/libcompizconfig/tests/CMakeLists.txt 2018-07-24 09:36:54 +0000
+++ compizconfig/libcompizconfig/tests/CMakeLists.txt 2019-02-08 11:43:36 +0000
@@ -11,7 +11,7 @@
1111
12set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")12set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
1313
14add_definitions (-DSYSCONFDIR="${COMPIZ_SYSCONFDIR}")14add_definitions (-DCONFIGDIR="${COMPIZCONFIG_CONFIG_DIR}")
1515
16add_executable (compizconfig_test_ccs_object16add_executable (compizconfig_test_ccs_object
17 ${CMAKE_CURRENT_SOURCE_DIR}/compizconfig_test_ccs_object.cpp)17 ${CMAKE_CURRENT_SOURCE_DIR}/compizconfig_test_ccs_object.cpp)
1818
=== modified file 'compizconfig/libcompizconfig/tests/compizconfig_test_ccs_context.cpp'
--- compizconfig/libcompizconfig/tests/compizconfig_test_ccs_context.cpp 2013-02-21 16:41:49 +0000
+++ compizconfig/libcompizconfig/tests/compizconfig_test_ccs_context.cpp 2019-02-08 11:43:36 +0000
@@ -303,7 +303,7 @@
303 * just load the profile and end up with an empty config */303 * just load the profile and end up with an empty config */
304TEST_F (CCSContextTestWithMockedBackendProfile, ImportProfileIfNotAvailableInBackend)304TEST_F (CCSContextTestWithMockedBackendProfile, ImportProfileIfNotAvailableInBackend)
305{305{
306 const std::string sysconfProfile (std::string (SYSCONFDIR) + "/compizconfig/" + unavailableProfileStr);306 const std::string sysconfProfile (std::string (CONFIGDIR) + "/" + unavailableProfileStr);
307307
308 ExistingProfile (availableProfileStr);308 ExistingProfile (availableProfileStr);
309 AddAvailableSysconfProfile (sysconfProfile);309 AddAvailableSysconfProfile (sysconfProfile);
@@ -316,7 +316,7 @@
316316
317TEST_F (CCSContextTestWithMockedBackendProfile, ImportProfileDotIni)317TEST_F (CCSContextTestWithMockedBackendProfile, ImportProfileDotIni)
318{318{
319 const std::string sysconfProfile (std::string (SYSCONFDIR) + "/compizconfig/" + unavailableProfileStr + ".ini");319 const std::string sysconfProfile (std::string (CONFIGDIR) + "/" + unavailableProfileStr + ".ini");
320320
321 ExistingProfile (availableProfileStr);321 ExistingProfile (availableProfileStr);
322 AddAvailableSysconfProfile (sysconfProfile);322 AddAvailableSysconfProfile (sysconfProfile);
@@ -329,7 +329,7 @@
329329
330TEST_F (CCSContextTestWithMockedBackendProfile, ImportProfileDotProfile)330TEST_F (CCSContextTestWithMockedBackendProfile, ImportProfileDotProfile)
331{331{
332 const std::string sysconfProfile (std::string (SYSCONFDIR) + "/compizconfig/" + unavailableProfileStr + ".profile");332 const std::string sysconfProfile (std::string (CONFIGDIR) + "/" + unavailableProfileStr + ".profile");
333333
334 ExistingProfile (availableProfileStr);334 ExistingProfile (availableProfileStr);
335 AddAvailableSysconfProfile (sysconfProfile);335 AddAvailableSysconfProfile (sysconfProfile);
336336
=== removed file 'debian/compizconfig'
--- debian/compizconfig 2016-07-04 10:12:34 +0000
+++ debian/compizconfig 1970-01-01 00:00:00 +0000
@@ -1,27 +0,0 @@
1[general]
2backend = ini
3plugin_list_autosort = true
4
5[gnome_session]
6backend = gsettings
7integration = true
8plugin_list_autosort = true
9profile = Default
10
11[general_mate]
12backend = gsettings
13integration = false
14plugin_list_autosort = true
15profile = mate
16
17[general_ubuntu]
18backend = gsettings
19integration = true
20plugin_list_autosort = true
21profile = unity
22
23[general_ubuntu-lowgfx]
24backend = gsettings
25integration = true
26plugin_list_autosort = true
27profile = unity-lowgfx
280
=== modified file 'debian/libcompizconfig0.install'
--- debian/libcompizconfig0.install 2014-11-24 22:25:07 +0000
+++ debian/libcompizconfig0.install 2019-02-08 11:43:36 +0000
@@ -1,4 +1,4 @@
1config /etc/compizconfig1etc/compizconfig
2usr/lib/*/compizconfig/backends/libini.so2usr/lib/*/compizconfig/backends/libini.so
3usr/lib/*/compiz/libccp.so3usr/lib/*/compiz/libccp.so
4usr/lib/*/libcompizconfig.so.04usr/lib/*/libcompizconfig.so.0
55
=== added file 'debian/libcompizconfig0.maintscript'
--- debian/libcompizconfig0.maintscript 1970-01-01 00:00:00 +0000
+++ debian/libcompizconfig0.maintscript 2019-02-08 11:43:36 +0000
@@ -0,0 +1,1 @@
1rm_conffile /etc/compizconfig/config 1:0.9.13.1+19.04.20190208-0ubuntu1~ libcompizconfig0
02
=== modified file 'debian/rules'
--- debian/rules 2019-02-05 13:11:07 +0000
+++ debian/rules 2019-02-08 11:43:36 +0000
@@ -51,9 +51,6 @@
51 # remove acceptance test binary51 # remove acceptance test binary
52 rm -f debian/tmp/usr/bin/compiz_autopilot_acceptance_tests52 rm -f debian/tmp/usr/bin/compiz_autopilot_acceptance_tests
5353
54 # work around having a file with a conflicted special name (#1156294)
55 cp debian/compizconfig debian/tmp/config
56
57 dh_install --fail-missing54 dh_install --fail-missing
5855
59 # remove the compizconfig dev file from compiz-dev56 # remove the compizconfig dev file from compiz-dev

Subscribers

People subscribed via source and target branches