...
 
Commits (787)
image: claudioandre/settings:fedora.dev
image: registry.gitlab.gnome.org/gnome/gnome-control-center:fedora.dev
stages:
- build
- test
- delivery
- manual
- review
- deploy
.Log files: &log_files [./*.log, _build/meson-logs/]
.Build logs: &save_build_logs
artifacts:
name: log
when: always
paths: *log_files
.Git Untracked files: &save_untracked_files
artifacts:
name: untracked
paths: [$(pwd)]
expire_in: 3h30min
.Show Info: &environment_information
build-aux/ci/ci-helper.sh "INFO" &&
build-aux/ci/ci-helper.sh "GIT_INFO"
.Build procedure: &build_procedure
echo "== Building ==" &&
rm -rf _build/ &&
meson . _build ${BUILD_OPTS} &&
ninja -C _build 2>&1 | tee compilation.log
.Run Tests: &run_tests
echo "== Testing ==" &&
ninja -C _build test
##
# Stage: Build
......@@ -12,20 +42,14 @@ stages:
# any of them.
##
build:
<<: *save_untracked_files
stage: build
artifacts:
name: builded
untracked: true
expire_in: 3h30min
script:
- echo "== Info =="
- build-aux/ci/ci-helper.sh "INFO"
- build-aux/ci/ci-helper.sh "GIT_INFO"
- dnf -y install libudisks2-devel # FIXME: Remove when new images built
- echo "== Building =="
- meson . _build
- ninja -C _build 2>&1 | tee compilation.log
- *environment_information
- *build_procedure
- echo "== Installing =="
- ninja -C _build install
......@@ -33,51 +57,113 @@ build:
- echo "== Report =="
- build-aux/ci/ci-helper.sh "WARNINGS"
# Save all but git-related files
- rm -rf .git .gitignore .gitmodules
except:
variables:
- $CI_PIPELINE_SOURCE == "schedule"
##
# Stage: Test
#
# Runs the unit tests.
##
test:
<<: *save_build_logs
stage: test
artifacts:
name: log
when: always
paths:
- $(pwd)/*.log
dependencies:
- build
script:
- echo "== Info =="
- build-aux/ci/ci-helper.sh "INFO"
- build-aux/ci/ci-helper.sh "GIT_INFO"
- *environment_information
- dnf -y install libudisks2-devel # FIXME: Remove when new images built
- |
if [[ -n "${CI_COMMIT_TAG}" ]]; then
*run_tests
echo "== Distro Test =="
meson test -C _build
ninja dist -C _build
else
echo "== Testing =="
meson test -C _build --verbose --no-stdsplit
fi
except:
variables:
- $CI_PIPELINE_SOURCE == "schedule"
- $CI_COMMIT_TITLE =~ /^Update.*translation$/
# Runs the coverage test.
coverage:
<<: *save_build_logs
stage: test
variables:
BUILD_OPTS: "-Db_coverage=true"
coverage: '/^Lines:.\d+.\d+.(\d+\.\d+\%)/'
only:
- master@GNOME/gnome-control-center
script:
- *environment_information
- *build_procedure
- *run_tests
- ninja -C _build coverage-html
# Parse the report to get the coverage result
- |
echo == Coverage ==
sed -e 's/<[^>]*>//g' _build/meson-logs/coveragereport/index.html | tr -d ' \t' | grep -A3 -P '^Lines:$' | tr '\n' ' '; echo
except:
variables:
- $CI_PIPELINE_SOURCE == "schedule"
- $CI_COMMIT_TITLE =~ /^Update.*translation$/
# Runs the address sanitizer.
# - below, at the "sanitizers section"
##
# Stage: Deploy
#
# Publishes the Coverage Report generated above
##
pages:
stage: deploy
dependencies:
- coverage
script:
- mv _build/meson-logs/coveragereport/ public/
artifacts:
paths:
- public
only:
- master@GNOME/gnome-control-center
except:
variables:
- $CRON_TASK == "BUILD_CI_IMAGES"
- $CI_COMMIT_TITLE =~ /^Update.*translation$/
##
# Stage: Delivery
# Stage: Manual
#
# Create a flatpak
# Creates a flatpak
##
packaging:
stage: delivery
image: registry.gitlab.gnome.org/gnome/gnome-nightly-oci/nightly:master
flatpak:
stage: manual
image: registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:master
artifacts:
name: package
paths:
- $(pwd)/*.flatpak
expire_in: 7 days
variables:
OLD_APPID: "org.gnome.Settings"
APPID: "org.gnome.SettingsDevel"
BUNDLE: "org.gnome.SettingsDevel.flatpak"
MANIFEST_PATH: "org.gnome.Settings.json"
......@@ -107,10 +193,215 @@ packaging:
- sed -i "s,<<ID>>,$APPID,g" ${MANIFEST_PATH}
- sed -i "s,<<current>>,origin/$CI_COMMIT_REF_NAME,g" ${MANIFEST_PATH}
# Update the icon name
- mv data/icons/hicolor/scalable/apps/$OLD_APPID.svg data/icons/hicolor/scalable/apps/$APPID.svg
- mv data/icons/hicolor/symbolic/apps/$OLD_APPID-symbolic.svg data/icons/hicolor/symbolic/apps/$APPID-symbolic.svg
- flatpak-builder --bundle-sources --repo=devel build ${MANIFEST_PATH}
- flatpak build-bundle devel ${BUNDLE} --runtime-repo=${RUNTIME_REPO} ${APPID}
cache:
paths:
- .flatpak-builder/cache
when: manual
except:
- tags
- gnome-3-.*
- master@GNOME/gnome-control-center
##
# Review
#
# Stage: review
#
# Starts the Flatpak review process.
##
review:
stage: review
dependencies:
- flatpak
when: manual
variables:
BUNDLE: "org.gnome.SettingsDevel.flatpak"
script:
- echo "Generating flatpak deployment"
artifacts:
paths:
- ${BUNDLE}
expire_in: 30 days
environment:
name: review/$CI_COMMIT_REF_NAME
url: https://gitlab.gnome.org/$CI_PROJECT_PATH/-/jobs/$CI_JOB_ID/artifacts/raw/${BUNDLE}
on_stop: stop_review
except:
- tags
- gnome-3-.*
- master@GNOME/gnome-control-center
##
# Stop Review
#
# Stage: review
#
# Stops the Flatpak review process.
##
stop_review:
stage: review
script:
- echo "Stopping flatpak deployment"
when: manual
environment:
name: review/$CI_COMMIT_REF_NAME
action: stop
except:
variables:
- $CI_PIPELINE_SOURCE == "schedule"
# Runs the sanitizers [address, thread, undefined, and memory].
.sanitizer: &sanitizer
<<: *save_build_logs
stage: manual
when: manual
script:
- dnf -y install libudisks2-devel # FIXME: Remove when new images built
- *environment_information
- *build_procedure
- *run_tests
except:
variables:
- $CI_PIPELINE_SOURCE == "schedule"
- $CI_COMMIT_TITLE =~ /^Update.*translation$/
asan:
<<: *sanitizer
stage: test
when: on_success
variables:
BUILD_OPTS: "-Db_sanitize=address"
LSAN_OPTIONS: "suppressions=${CI_PROJECT_DIR}/build-aux/ci/lsan.supp"
tsan:
<<: *sanitizer
variables:
BUILD_OPTS: "-Db_sanitize=thread"
ubsan:
<<: *sanitizer
variables:
BUILD_OPTS: "-Db_sanitize=undefined"
msan:
<<: *sanitizer
variables:
BUILD_OPTS: "-Db_sanitize=memory"
CC: "clang"
# Runs multiarch build test.
.qemu: &multiarch
<<: *save_build_logs
image: docker:latest
services:
- docker:dind
script:
# Register QEMU archs
- docker run --rm --privileged multiarch/qemu-user-static:register --reset
# Run the multiarch test job using QEMU
- 'docker run -v $(pwd):/cwd $IMAGE bash -e -c "cd /cwd &&
echo == Building == &&
rm -rf _build/ &&
meson . _build ${BUILD_OPTS} &&
ninja -C _build 2>&1 | tee compilation.log &&
echo == Testing == &&
ninja -C _build test"
'
except:
variables:
- $CI_PIPELINE_SOURCE == "schedule"
- $CI_COMMIT_TITLE =~ /^Update.*translation$/
armv8:
<<: *multiarch
stage: manual
when: manual
variables:
DOCKER_DRIVER: overlay
IMAGE: "registry.gitlab.gnome.org/gnome/gnome-control-center:fedora.aarch64"
ppc64le:
<<: *multiarch
stage: manual
when: manual
allow_failure: true
variables:
DOCKER_DRIVER: overlay
IMAGE: "registry.gitlab.gnome.org/gnome/gnome-control-center:fedora.ppc64le"
#############################################
# Create CI Docker Images #
#############################################
.Docker image template: &create_docker_image
image: docker:latest
stage: deploy
services:
- docker:dind
only:
variables:
- $CRON_TASK == "BUILD_CI_IMAGES"
script:
# Skip the build (if requested)
- |
if [[ -z "${CI_COMMIT_MESSAGE##*'[skip images]'*}" ]]; then
echo "== Nothing to do =="
exit 0
fi
# Get multiarch stuff
- |
if [[ -n "${TARGET_ARCH}" ]]; then
docker run --rm --privileged multiarch/qemu-user-static:register --reset
wget https://github.com/multiarch/qemu-user-static/releases/download/v2.12.0/x86_64_qemu-${TARGET_ARCH}-static.tar.gz
fi
# Build using the Dockerfile
- docker build -f "$DOCKERFILE" -t "$CI_REGISTRY_IMAGE:$NAME" .
# Prepare to publish
- docker tag "$CI_REGISTRY_IMAGE:$NAME" "$CI_REGISTRY_IMAGE:job-"$CI_JOB_ID"_$NAME"
- docker images
- docker login ${CI_REGISTRY} -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD}
# Publish (if running on a schedule)
- |
if [[ "${CI_PIPELINE_SOURCE}" == "schedule" ]]; then
docker push "$CI_REGISTRY_IMAGE"
fi
fedora.dev:
<<: *create_docker_image
variables:
DOCKER_DRIVER: overlay
DOCKERFILE: "build-aux/ci/Dockerfile.fedora.rawhide"
NAME: "fedora.dev"
fedora.aarch64:
<<: *create_docker_image
variables:
DOCKER_DRIVER: overlay
DOCKERFILE: "build-aux/ci/Dockerfile.arm64v8.fedora.rawhide"
NAME: "fedora.aarch64"
TARGET_ARCH: "aarch64"
fedora.ppc64le:
<<: *create_docker_image
variables:
DOCKER_DRIVER: overlay
DOCKERFILE: "build-aux/ci/Dockerfile.ppc64le.fedora.rawhide"
NAME: "fedora.ppc64le"
TARGET_ARCH: "ppc64le"
[submodule "subprojects/gvc"]
path = subprojects/gvc
url = git://git.gnome.org/libgnome-volume-control
url = https://gitlab.gnome.org/GNOME/libgnome-volume-control.git
[submodule "subprojects/libhandy"]
path = subprojects/libhandy
url = https://source.puri.sm/Librem5/libhandy.git
Jonathan Blandford <jrb@redhat.com>
The ChangeLog is auto-generated when releasing. If you are seeing this, use
'git log' for a detailed list of changes.
See gnome-control-center.doap file
===============
Version 3.31.90
===============
- Make Settings and various panels responsive
- Various accessibility fixes
- Translation updates
Printers:
- Various cleanups
Region and Language:
- Make rows reordetable with drag and drop
Sound:
- Redesign the Sound panel
User Accounts:
- Allow Remove User button to be focused
- Round user images
===============
Version 3.31.4
===============
- Introduce the new Applications panel
- Panels can now expose a custom sidebar widget
- Improve CI image building scripts
- Translation updates
Applications:
- Introduce the new Applications panel
Bluetooth:
- Cleanup and reorganize code
Display:
- Add Night Light slider to set temperature
Network:
- Allow Wi-Fi panel to reach narrower sizes
- Cleanups and smaller performance improvement preparations
Notifications:
- Use libhandy's HdyColumn
Online Accounts:
- Use libhandy's HdyColumn
Power:
- Label PENDING_CHARGE state as "Not Charging"
Printers:
- Cleanups and memory leaks plugs
Privacy:
- Use libhandy's HdyColumn
Thunderbolt:
- Fix double-free
User Accounts:
- Rename classes
Wacom:
- Map Wacom-driver-specific generic IDs to 0
===============
Version 3.31.2
===============
- Use X-GNOME-UsesNotifications on various desktop files
- Introduce new icon
- Add interative test panels
- Translation updates
Date & Time:
- Grey out automatic timezone
Display:
- Correctly add minor axis to snapping
- Correctly snap on various situations
Network:
- Cleanup many classes
Online Accounts:
- Track lifecycle of CcGoaPanel across async calls
Privacy:
- Use templates
Region and Language:
- Use a popover instead of a dialog for input options
- Redesign language chooser widget
- Plug various leaks
- Major cleanups
Sharing:
- Bind hostname entry
User Accounts:
- Use templates
- Do not crash when libpwquality fails
Wacom:
- Port calibrator UI to GTK
- Remove clutter-gtk dependency
===============
Version 3.30.0
===============
- Translation updates
===============
Version 3.29.92
===============
- Fix a couple of memory leaks in the tests
- Don't hardcode Python path in tests
- Stop aggressively caching D-Bus objects not related to hardware
CI:
- Improve Flatpak job
User Accounts:
- Silence some compiler warnings
- Remove stub string from translation
Wacom
- Remove unused widgets from the .ui file
Wi-Fi:
- Fix a potential crash
===============
Version 3.29.90
===============
- Use symbolic icons in Shell search
Network:
- Better device names
Power:
- Improve wording of some strings
Region & Language:
- Make Language Chooser dialog implement mockups
Wi-Fi:
- Improve Airplane Mode
==============
Version 3.29.4
==============
- Introduce Dynamic Panel
- Many code cleanups and modernizations
CI:
- Support for multiarch builds (ARMv8 and PPC64)
- Support generating Flatpaks on demand
Display:
- Improve display arrangement widget
Network:
- Add a testsuite
Sharing:
- Expose Remote Desktop work on Wayland
User Accounts:
- Use term "Confirm" instead of "Verify"
- Use the same phrase when passwords do not match
Wacom:
- Hide when no Wacom devices are connected
- Remove deprecated APIs
Wi-Fi:
- Hide when no Wi-Fi adapters are available
==============
Version 3.29.2
==============
- Improve logging engine
- Add an object caching mechanism
- Add a development Flatpak manifest
- Vastly improve CI
- Organize tests
- Add Network tests
- Translation updates
Display:
- Fix a few crashers
Power:
- Fix showing approximate percentages
Thunderbolt:
- Introduce new Thunderbolt panel
User Accounts:
- Port to GTask
- Fix hint for wrong enterprise user/password
===============
Version 3.27.92
===============
......
[![Build Status](https://gitlab.gnome.org/GNOME/gnome-control-center/badges/master/build.svg)](https://gitlab.gnome.org/GNOME/gnome-control-center/pipelines)
[![Coverage report](https://gitlab.gnome.org/GNOME/gnome-control-center/badges/master/coverage.svg)](https://gnome.pages.gitlab.gnome.org/gnome-control-center/)
[![License](https://img.shields.io/badge/License-GPL%20v2-blue.svg)](https://gitlab.gnome.org/GNOME/gnome-control-center/blob/master/COPYING)
GNOME Settings
====================
GNOME Settings is GNOME's main interface for configuration of various aspects of
your desktop.
GNOME Settings is GNOME's main interface for configuration of various aspects of your desktop.
## Contributing
......@@ -26,27 +26,33 @@ the latest GNOME version in your host system.
Bugs should be reported to the GNOME bug tracking system under the product
gnome-control-center. It is available at [GitLab Issues](https://gitlab.gnome.org/GNOME/gnome-control-center/issues).
In the report please include the following information -
Operating system and version
For Linux, version of the C library
How to reproduce the bug if possible
If the bug was a crash, include the exact text that was printed out
A stacktrace where possible [see below]
### How to get a stack trace
If the crash is reproducible, it is possible to get a stack trace and
attach it to the bug report. The following steps are used to obtain a
stack trace -
Run the program in gdb [the GNU debugger] or any other debugger
ie. gdb gnome-keyboard-properties
Start the program
ie. (gdb) run
Reproduce the crash and the program will exit to the gdb prompt
Get the back trace
ie. (gdb) bt full
Once you have the backtrace, copy and paste this either into the
'Comments' field or attach a file with it included.
In the report please include the following information:
* Operating system and version
* For Linux, version of the C library
* Exact error message
* Steps to reproduce the bug
* If the bug is a visual defect, attach a screenshot
* If the bug is a crash, attach a backtrace if possible [see below]
### How to get a backtrace
If the crash is reproducible, follow the steps to obtain a
backtrace:
Install debug symbols for gnome-control-center.
Run the program in gdb [the GNU debugger] or any other debugger.
gdb gnome-control-center
Start the program.
(gdb) run
Reproduce the crash and when the program exits to (gdb) prompt, get the backtrace.
(gdb) bt full
Once you have the backtrace, copy and paste it into the 'Comments' field or attach it as
a file to the bug report.
FROM arm64v8/fedora:rawhide
MAINTAINER Claudio André (c) 2018 V1.0
LABEL architecture="aarch64"
LABEL version="1.0"
LABEL description="Multiarch Docker image to run CI for GNOME Settings."
ADD x86_64_qemu-aarch64-static.tar.gz /usr/bin
RUN dnf -y --nogpgcheck upgrade && \
dnf -y install \
@c-development @development-tools clang libasan gcovr \
accountsservice-devel cheese-libs-devel chrpath colord-devel \
colord-gtk-devel cups-devel desktop-file-utils docbook-style-xsl flatpak-devel gdk-pixbuf2-devel \
gettext git glib2-devel gnome-bluetooth-libs-devel gnome-desktop3-devel \
gnome-online-accounts-devel gnome-settings-daemon-devel grilo-devel \
gsettings-desktop-schemas-devel gsound-devel gtk3-devel ibus-devel intltool libcanberra-devel \
libgtop2-devel libgudev-devel libnma-devel libpwquality-devel libsmbclient-devel \
libsoup-devel libudisks2-devel libwacom-devel libX11-devel libXi-devel libxml2-devel libxslt \
libXxf86misc-devel meson ModemManager-glib-devel NetworkManager-libnm-devel \
polkit-devel pulseaudio-libs-devel upower-devel \
python3-dbusmock xorg-x11-server-Xvfb mesa-dri-drivers libsecret-devel && \
dnf -y clean all
CMD ["/bin/bash"]
FROM fedora:rawhide
MAINTAINER Claudio André (c) 2018 V1.0
LABEL architecture="x86_64"
LABEL version="1.0"
LABEL description="Docker image to run CI for GNOME Settings."
RUN dnf -y --nogpgcheck upgrade && \
dnf -y install \
@c-development @development-tools clang libasan gcovr \
accountsservice-devel cheese-libs-devel chrpath colord-devel \
colord-gtk-devel cups-devel desktop-file-utils docbook-style-xsl flatpak-devel gdk-pixbuf2-devel \
gettext git glib2-devel gnome-bluetooth-libs-devel gnome-desktop3-devel \
gnome-online-accounts-devel gnome-settings-daemon-devel grilo-devel \
gsettings-desktop-schemas-devel gsound-devel gtk3-devel ibus-devel intltool libcanberra-devel \
libgtop2-devel libgudev-devel libnma-devel libpwquality-devel libsmbclient-devel \
libsoup-devel libwacom-devel libX11-devel libXi-devel libxml2-devel libxslt \
libXxf86misc-devel meson ModemManager-glib-devel NetworkManager-libnm-devel \
polkit-devel pulseaudio-libs-devel upower-devel \
python3-dbusmock xorg-x11-server-Xvfb mesa-dri-drivers libsecret-devel llvm && \
dnf -y clean all
CMD ["/bin/bash"]
FROM ppc64le/fedora:rawhide
MAINTAINER Claudio André (c) 2018 V1.0
LABEL architecture="ppc64le"
LABEL version="1.0"
LABEL description="Multiarch Docker image to run CI for GNOME Settings."
ADD x86_64_qemu-ppc64le-static.tar.gz /usr/bin
RUN dnf -y --nogpgcheck upgrade && \
dnf -y install \
@c-development @development-tools clang libasan gcovr \
accountsservice-devel cheese-libs-devel chrpath colord-devel \
colord-gtk-devel cups-devel desktop-file-utils docbook-style-xsl flatpak-devel gdk-pixbuf2-devel \
gettext git glib2-devel gnome-bluetooth-libs-devel gnome-desktop3-devel \
gnome-online-accounts-devel gnome-settings-daemon-devel grilo-devel \
gsettings-desktop-schemas-devel gsound-devel gtk3-devel ibus-devel intltool libcanberra-devel \
libgtop2-devel libgudev-devel libnma-devel libpwquality-devel libsmbclient-devel \
libsoup-devel libwacom-devel libX11-devel libXi-devel libxml2-devel libxslt \
libXxf86misc-devel meson ModemManager-glib-devel NetworkManager-libnm-devel \
polkit-devel pulseaudio-libs-devel upower-devel \
python3-dbusmock xorg-x11-server-Xvfb mesa-dri-drivers libsecret-devel && \
dnf -y clean all
CMD ["/bin/bash"]
# https://bugs.freedesktop.org/show_bug.cgi?id=105466
leak:libfontconfig.so.1
# Unknown and unreported bugs
leak:__GI___vasprintf_chk
leak:__interceptor_malloc
leak:__alloc_dir
leak:libglib-2.0.so.0
# Needing attention
leak:<unknown module>
leak:test_timezone_gfx
########
# __GI___vasprintf_chk /usr/src/debug/glibc-2.27.9000-432-g104502102c/debug/vasprintf_chk.c:80
# __alloc_dir ../sysdeps/posix/opendir.c:118
# g_malloc (/lib64/libglib-2.0.so.0+0x523c5)
# g_realloc (/lib64/libglib-2.0.so.0+0x5247d)
########
......@@ -4,8 +4,7 @@
"runtime-version" : "master",
"sdk" : "org.gnome.Sdk",
"command" : "gnome-control-center",
"rename-desktop-file": "gnome-control-center.desktop",
"rename-icon": "gnome-control-center",
"rename-desktop-file" : "gnome-control-center.desktop",
"tags" : [
"devel"
],
......@@ -57,6 +56,43 @@
}
]
},
{
"name" : "mozjs52",
"build-options" : {
"arch" : {
"i386" : {
"config-opts" : [
"--host=i586-unknown-linux-gnu"
]
},
"arm" : {
"config-opts" : [
"--host=arm-unknown-linux-gnueabi"
]
}
}
},
"config-opts": [
"--enable-posix-nspr-emulation",
"--with-system-zlib",
"--without-system-icu",
"--with-intl-api",
"--disable-jemalloc",
"AUTOCONF=autoconf"
],
"builddir" : true,
"subdir" : "js/src",
"sources" : [
{
"type" : "archive",
"url" : "https://download.gnome.org/teams/releng/tarballs-needing-help/mozjs/mozjs-52.2.1gnome1.tar.gz",
"sha256" : "31697943b1dbbb51ba9aee35b8269a353c487d7af4d336010b90054dc4f9b0af"
}
],
"cleanup" : [
"libjs_static.ajs"
]
},
{
"name" : "polkit",
"buildsystem" : "autotools",
......@@ -73,10 +109,14 @@
},
{
"name" : "accountservice",
"buildsystem" : "autotools",
"buildsystem" : "meson",
"config-opts" : [
"--disable-systemd",
"--disable-elogind"
"-Ddocbook=false",
"-Delogind=false",
"-Dgtk_doc=false",
"-Dintrospection=false",
"-Dsystemd=false"