Mega update of poky, kernel, Gnome 3.36

This commit is contained in:
David McKinney 2020-07-08 10:42:25 -04:00 committed by Bruce Leidl
parent 34a2bad374
commit 1bbbe3ebbc
204 changed files with 27537 additions and 52312 deletions

3
.gitmodules vendored
View File

@ -7,3 +7,6 @@
[submodule "meta-intel"] [submodule "meta-intel"]
path = meta-intel path = meta-intel
url = https://git.yoctoproject.org/git/meta-intel url = https://git.yoctoproject.org/git/meta-intel
[submodule "meta-clang"]
path = meta-clang
url = https://github.com/kraj/meta-clang

View File

@ -11,4 +11,5 @@ BBLAYERS ?= " \
##OEROOT##/../meta-rust \ ##OEROOT##/../meta-rust \
##OEROOT##/../meta-citadel \ ##OEROOT##/../meta-citadel \
##OEROOT##/../meta-gnome \ ##OEROOT##/../meta-gnome \
##OEROOT##/../meta-clang \
" "

View File

@ -5,13 +5,14 @@ BBPATH =. "${LAYERDIR}:"
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend" ${LAYERDIR}/recipes-*/*/*.bbappend"
BBMASK += "meta-intel/dynamic-layers/clang-layer/recipes-devtools/clang/llvm-project-source.bbappend"
LICENSE_PATH += "${LAYERDIR}/licenses" LICENSE_PATH += "${LAYERDIR}/licenses"
BBFILE_COLLECTIONS += "citadel" BBFILE_COLLECTIONS += "citadel"
BBFILE_PATTERN_citadel = "^${LAYERDIR}/" BBFILE_PATTERN_citadel = "^${LAYERDIR}/"
BBFILE_PRIORITY_citadel = "5" BBFILE_PRIORITY_citadel = "5"
LAYERSERIES_COMPAT_citadel = "thud warrior" LAYERSERIES_COMPAT_citadel = "thud warrior zeus"
# This should only be incremented on significant changes that will # This should only be incremented on significant changes that will
# cause compatibility issues with other layers # cause compatibility issues with other layers

View File

@ -49,7 +49,8 @@ SRC_URI = "\
file://iptables-flush.sh \ file://iptables-flush.sh \
file://systemd/zram-swap.service \ file://systemd/zram-swap.service \
file://systemd/iptables.service \ file://systemd/iptables.service \
file://systemd/session-switcher.service \ file://systemd/sway-session-switcher.service \
file://systemd/x11-session-switcher.service \
file://systemd/citadel-setpassword.service \ file://systemd/citadel-setpassword.service \
file://skel/profile \ file://skel/profile \
file://skel/bashrc \ file://skel/bashrc \
@ -68,11 +69,11 @@ USERADD_PARAM_${PN} = "-m -u 1000 -s /bin/bash citadel"
INHIBIT_PACKAGE_DEBUG_SPLIT = "1" INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
# for citadel-ifconfig.sh citadel-setpassword.sh # for citadel-ifconfig.sh citadel-setpassword.sh
RDEPENDS_${PN} = "bash" RDEPENDS_${PN} = "bash wireless-regdb-static"
inherit allarch systemd useradd inherit allarch systemd useradd
SYSTEMD_SERVICE_${PN} = "zram-swap.service watch-run-user.path iptables.service session-switcher.service citadel-setpassword.service" SYSTEMD_SERVICE_${PN} = "zram-swap.service watch-run-user.path iptables.service sway-session-switcher.service x11-session-switcher.service citadel-setpassword.service"
do_install() { do_install() {
install -m 0755 -d ${D}/storage install -m 0755 -d ${D}/storage
@ -104,7 +105,8 @@ do_install() {
install -m 644 ${WORKDIR}/systemd/zram-swap.service ${D}${systemd_system_unitdir} install -m 644 ${WORKDIR}/systemd/zram-swap.service ${D}${systemd_system_unitdir}
install -m 644 ${WORKDIR}/systemd/iptables.service ${D}${systemd_system_unitdir} install -m 644 ${WORKDIR}/systemd/iptables.service ${D}${systemd_system_unitdir}
install -m 644 ${WORKDIR}/systemd/session-switcher.service ${D}${systemd_system_unitdir} install -m 644 ${WORKDIR}/systemd/sway-session-switcher.service ${D}${systemd_system_unitdir}
install -m 644 ${WORKDIR}/systemd/x11-session-switcher.service ${D}${systemd_system_unitdir}
install -m 644 ${WORKDIR}/systemd/citadel-setpassword.service ${D}${systemd_system_unitdir} install -m 644 ${WORKDIR}/systemd/citadel-setpassword.service ${D}${systemd_system_unitdir}
install -m 644 ${WORKDIR}/systemd/watch-run-user.path ${D}${systemd_system_unitdir} install -m 644 ${WORKDIR}/systemd/watch-run-user.path ${D}${systemd_system_unitdir}

View File

@ -33,7 +33,7 @@ gtk-enable-primary-paste=false
clock-format='12h' clock-format='12h'
[org.gnome.shell] [org.gnome.shell]
enabled-extensions=['dash-to-panel@jderose9.github.com', 'drive-menu@subgraph.com'] enabled-extensions=['dash-to-panel@jderose9.github.com']
[org.gnome.shell.extensions] [org.gnome.shell.extensions]
user-theme-name='Adapta-Eta' user-theme-name='Adapta-Eta'

View File

@ -1,5 +1,5 @@
[Unit] [Unit]
Description=Session Switcher Description=Sway Session Switcher
After=accounts-daemon.service After=accounts-daemon.service
Wants=accounts-daemon.service Wants=accounts-daemon.service

View File

@ -0,0 +1,17 @@
[Unit]
Description=X11 Session Switcher
After=accounts-daemon.service
Wants=accounts-daemon.service
ConditionKernelCommandLine=|citadel.x11
[Service]
Type=oneshot
RemainAfterExit=no
ExecStartPre=-/usr/bin/plymouth message --text="Setting session to Gnome X11"
ExecStart=/usr/bin/busctl call org.freedesktop.Accounts /org/freedesktop/Accounts/User1000 org.freedesktop.Accounts.User SetXSession s "gnome-xorg"
[Install]
WantedBy=graphical.target

View File

@ -5,4 +5,4 @@ CITADEL_IMAGE_VERSION_rootfs = "1"
CITADEL_IMAGE_VERSION_extra = "1" CITADEL_IMAGE_VERSION_extra = "1"
CITADEL_IMAGE_VERSION_kernel = "1" CITADEL_IMAGE_VERSION_kernel = "1"
CITADEL_KERNEL_VERSION = "5.2.9" CITADEL_KERNEL_VERSION = "5.6.2"

View File

@ -19,6 +19,8 @@ RDEPENDS_${PN} = "\
base-files \ base-files \
base-passwd \ base-passwd \
systemd \ systemd \
systemd-conf \
systemd-container \
syslinux \ syslinux \
syslinux-extlinux \ syslinux-extlinux \
keymaps \ keymaps \
@ -42,7 +44,6 @@ RDEPENDS_${PN} = "\
tar \ tar \
pciutils \ pciutils \
sysfsutils \ sysfsutils \
wpa-supplicant \
vim-tiny \ vim-tiny \
nano \ nano \
tzdata \ tzdata \

View File

@ -13,7 +13,6 @@ RDEPENDS_${PN} = "\
accountsservice \ accountsservice \
upower \ upower \
colord \ colord \
colord-plugins \
gdm \ gdm \
plymouth \ plymouth \
shared-mime-info \ shared-mime-info \

View File

@ -23,8 +23,12 @@ RDEPENDS_${PN} = "\
gnome-session \ gnome-session \
gnome-shell \ gnome-shell \
hicolor-icon-theme \ hicolor-icon-theme \
xf86-video-vesa \
xf86-video-intel \
xf86-video-modesetting \
xserver-xorg-extension-glx \
libdrm-amdgpu \
dash-to-panel \ dash-to-panel \
gnome-shell-extension-drive-menu \
citadel-config-gnome \ citadel-config-gnome \
" "

View File

@ -1,5 +1,5 @@
# Append recipe from meta-openembedded/meta-networking # Append recipe from meta-openembedded/meta-networking
PACKAGECONFIG = "gnutls dhclient systemd wifi glib" PACKAGECONFIG = "gnutls dhclient systemd wifi"
EXTRA_OECONF_remove = "--with-nmtui=yes" EXTRA_OECONF_remove = "--with-nmtui=yes"
EXTRA_OECONF += "--disable-ovs --with-nmtui=no" EXTRA_OECONF += "--disable-ovs --with-nmtui=no"

View File

@ -6,9 +6,14 @@ dirs755="/boot /dev /usr/bin /usr/sbin /usr/lib /etc /etc/default /etc/skel /usr
volatiles = "" volatiles = ""
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
SRC_URI += "file://profile"
do_install_append () { do_install_append () {
rm ${D}${sysconfdir}/fstab rm ${D}${sysconfdir}/fstab
rm ${D}${sysconfdir}/skel/.bashrc rm ${D}${sysconfdir}/skel/.bashrc
rm ${D}${sysconfdir}/skel/.profile rm ${D}${sysconfdir}/skel/.profile
install -m 0644 ${WORKDIR}/profile ${D}${sysconfdir}/profile
sed -i 's#ROOTHOME#${ROOT_HOME}#' ${D}${sysconfdir}/profile
sed -i 's#@BINDIR@#${bindir}#g' ${D}${sysconfdir}/profile
} }

View File

@ -0,0 +1,32 @@
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
PATH="/usr/local/bin:/usr/bin:/bin:/sbin"
EDITOR="vi" # needed for packages like cron, git-commit
[ "$TERM" ] || TERM="vt100" # Basic terminal capab. For screen etc.
# Add /sbin & co to $PATH for the root user
[ "$HOME" != "ROOTHOME" ] || PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin
# Set the prompt for bash and ash (no other shells known to be in use here)
[ -z "$PS1" ] || PS1='\u@\h:\w\$ '
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -f $i -a -r $i ]; then
. $i
fi
done
unset i
fi
# Make sure we are on a serial console (i.e. the device used starts with
# /dev/tty[A-z]), otherwise we confuse e.g. the eclipse launcher which tries do
# use ssh
case $(tty 2>/dev/null) in
/dev/tty[A-z]*) [ -x @BINDIR@/resize ] && @BINDIR@/resize >/dev/null;;
esac
export PATH PS1 OPIEDIR QPEDIR QTDIR EDITOR TERM
umask 022

View File

@ -1,4 +1,6 @@
CONFFILES_${PN} += "${sysconfdir}/machine-id"
do_install_append() { do_install_append() {
install -d ${D}${sysconfdir}
echo "a4e415feff81466c925aab34b0c35a3c" > ${D}${sysconfdir}/machine-id echo "a4e415feff81466c925aab34b0c35a3c" > ${D}${sysconfdir}/machine-id
} }

View File

@ -0,0 +1,91 @@
# do not edit this file, it will be overwritten on update
# run a command on remove events
ACTION=="remove", ENV{REMOVE_CMD}!="", RUN+="$env{REMOVE_CMD}"
ACTION=="remove", GOTO="default_end"
SUBSYSTEM=="virtio-ports", KERNEL=="vport*", ATTR{name}=="?*", SYMLINK+="virtio-ports/$attr{name}"
# select "system RTC" or just use the first one
SUBSYSTEM=="rtc", ATTR{hctosys}=="1", SYMLINK+="rtc"
SUBSYSTEM=="rtc", KERNEL=="rtc0", SYMLINK+="rtc", OPTIONS+="link_priority=-100"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", IMPORT{builtin}="usb_id", IMPORT{builtin}="hwdb --subsystem=usb"
ENV{MODALIAS}!="", IMPORT{builtin}="hwdb --subsystem=$env{SUBSYSTEM}"
ACTION!="add", GOTO="default_end"
SUBSYSTEM=="tty", KERNEL=="ptmx", GROUP="tty", MODE="0666"
SUBSYSTEM=="tty", KERNEL=="tty", GROUP="tty", MODE="0666"
SUBSYSTEM=="tty", KERNEL=="tty[0-9]*", GROUP="tty", MODE="0620"
SUBSYSTEM=="tty", KERNEL=="sclp_line[0-9]*", GROUP="tty", MODE="0620"
SUBSYSTEM=="tty", KERNEL=="ttysclp[0-9]*", GROUP="tty", MODE="0620"
SUBSYSTEM=="tty", KERNEL=="3270/tty[0-9]*", GROUP="tty", MODE="0620"
SUBSYSTEM=="vc", KERNEL=="vcs*|vcsa*", GROUP="tty"
KERNEL=="tty[A-Z]*[0-9]|ttymxc[0-9]*|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="dialout"
SUBSYSTEM=="mem", KERNEL=="mem|kmem|port", GROUP="kmem", MODE="0640"
SUBSYSTEM=="input", GROUP="input"
SUBSYSTEM=="input", KERNEL=="js[0-9]*", MODE="0664"
SUBSYSTEM=="video4linux", GROUP="video"
SUBSYSTEM=="graphics", GROUP="video"
SUBSYSTEM=="drm", KERNEL!="renderD*", GROUP="video"
SUBSYSTEM=="dvb", GROUP="video"
SUBSYSTEM=="media", GROUP="video"
SUBSYSTEM=="cec", GROUP="video"
SUBSYSTEM=="drm", KERNEL=="renderD*", GROUP="video", MODE="0666"
SUBSYSTEM=="kfd", GROUP="video", MODE="0666"
# When using static_node= with non-default permissions, also update
# tmpfiles.d/static-nodes-permissions.conf.in to keep permissions synchronized.
SUBSYSTEM=="sound", GROUP="audio", \
OPTIONS+="static_node=snd/seq", OPTIONS+="static_node=snd/timer"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0664"
SUBSYSTEM=="firewire", ATTR{units}=="*0x00a02d:0x00010*", GROUP="video"
SUBSYSTEM=="firewire", ATTR{units}=="*0x00b09d:0x00010*", GROUP="video"
SUBSYSTEM=="firewire", ATTR{units}=="*0x00a02d:0x010001*", GROUP="video"
SUBSYSTEM=="firewire", ATTR{units}=="*0x00a02d:0x014001*", GROUP="video"
KERNEL=="parport[0-9]*", GROUP="lp"
SUBSYSTEM=="printer", KERNEL=="lp*", GROUP="lp"
SUBSYSTEM=="ppdev", GROUP="lp"
KERNEL=="lp[0-9]*", GROUP="lp"
KERNEL=="irlpt[0-9]*", GROUP="lp"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="*:0701??:*", GROUP="lp"
SUBSYSTEM=="block", GROUP="disk"
SUBSYSTEM=="block", KERNEL=="sr[0-9]*", GROUP="cdrom"
SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="4|5", GROUP="cdrom"
KERNEL=="sch[0-9]*", GROUP="cdrom"
KERNEL=="pktcdvd[0-9]*", GROUP="cdrom"
KERNEL=="pktcdvd", GROUP="cdrom"
SUBSYSTEM=="scsi_generic|scsi_tape", SUBSYSTEMS=="scsi", ATTRS{type}=="1|8", GROUP="tape"
SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="0", GROUP="disk"
KERNEL=="qft[0-9]*|nqft[0-9]*|zqft[0-9]*|nzqft[0-9]*|rawqft[0-9]*|nrawqft[0-9]*", GROUP="disk"
KERNEL=="loop-control", GROUP="disk", OPTIONS+="static_node=loop-control"
KERNEL=="btrfs-control", GROUP="disk"
KERNEL=="rawctl", GROUP="disk"
SUBSYSTEM=="raw", KERNEL=="raw[0-9]*", GROUP="disk"
SUBSYSTEM=="aoe", GROUP="disk", MODE="0220"
SUBSYSTEM=="aoe", KERNEL=="err", MODE="0440"
KERNEL=="rfkill", MODE="0664"
KERNEL=="tun", MODE="0666", OPTIONS+="static_node=net/tun"
KERNEL=="fuse", MODE="0666", OPTIONS+="static_node=fuse"
# The static_node is required on s390x and ppc (they are using MODULE_ALIAS)
KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"
KERNEL=="udmabuf", GROUP="kvm"
SUBSYSTEM=="ptp", ATTR{clock_name}=="KVM virtual PTP", SYMLINK += "ptp_kvm"
LABEL="default_end"

View File

@ -12,7 +12,15 @@ PACKAGECONFIG = "\
nss polkit randomseed seccomp timedated utmp timesyncd kmod sysusers gshadow \ nss polkit randomseed seccomp timedated utmp timesyncd kmod sysusers gshadow \
" "
SRC_URI += "\
file://50-udev-default.rules \
"
do_install_append() { do_install_append() {
rm -f ${D}${sysconfdir}/tmpfiles.d/00-create-volatile.conf rm -f ${D}${sysconfdir}/tmpfiles.d/00-create-volatile.conf
ln -s rescue.target ${D}${systemd_unitdir}/system/kbrequest.target ln -s rescue.target ${D}${systemd_unitdir}/system/kbrequest.target
rm -f ${D}${libdir}/udev/rules.d/50-udev-default.rules
install -d ${D}{$libdir}/udev/rules.d
install -m 644 ${WORKDIR}/50-udev-default.rules ${D}{$libdir}/udev/rules.d/
} }

View File

@ -1,8 +1,8 @@
LICENSE = "GPLv2" LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=d791728a073bc009b4ffaf00b7599855" LIC_FILES_CHKSUM = "file://COPYING;md5=d791728a073bc009b4ffaf00b7599855"
SRC_URI = "git://github.com/jderose9/dash-to-panel.git;protocol=https" SRC_URI = "git://github.com/home-sweet-gnome/dash-to-panel.git;protocol=https"
SRCREV="5558eeae574e9ae7b6bf2e1b9f4aacd97f944054" SRCREV="50edcc7e86493017a9f34142ce7ce62f89a4547a"
S = "${WORKDIR}/git" S = "${WORKDIR}/git"
DEPENDS = "gettext-native glib-2.0-native" DEPENDS = "gettext-native glib-2.0-native"

View File

@ -1,16 +1,15 @@
DESCRIPTION = "Citadel linux kernel" DESCRIPTION = "Citadel linux kernel"
LICENSE = "GPLv2" LICENSE = "GPLv2"
SECTION = "kernel" SECTION = "kernel"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
inherit kernel inherit kernel
SRC_URI = "https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.2.9.tar.xz\ SRC_URI = "https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.6.2.tar.xz\
file://0117-WireGuard.patch \
file://defconfig \ file://defconfig \
" "
SRC_URI[md5sum] = "d7162b4421327c756b1d548204fd8fb1" SRC_URI[md5sum] = "8b96e9e8eff865ff84a23b4f858dafa1"
SRC_URI[sha256sum] = "b6f02a4b306ca5cd314d72615bfc2650166969613135da202630e6c4e1b5d4e6" SRC_URI[sha256sum] = "2d4d91d8329c1ed3826c61463650dd4bfbb6ad39dcee6dba4f98a7e94a67b5b9"
LINUX_VERSION ?= "${PV}" LINUX_VERSION ?= "${PV}"
S = "${WORKDIR}/linux-${LINUX_VERSION}" S = "${WORKDIR}/linux-${LINUX_VERSION}"

File diff suppressed because it is too large Load Diff

View File

@ -6,7 +6,7 @@ SECTION = "base"
LICENSE = "GPLv2+" LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3" LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
DEPENDS = "pciutils zlib efivar" DEPENDS = "pciutils zlib efivar popt"
COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux" COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"

View File

@ -1,32 +0,0 @@
From a9115d9e6f0f62d6bb735ce3698858d1f89f8d73 Mon Sep 17 00:00:00 2001
From: Kai Kang <kai.kang@windriver.com>
Date: Fri, 25 Sep 2015 18:14:31 +0800
Subject: [PATCH] efivar: fix for cross compile
It builds and calls elf file makeguids to generate a header file which
doesn't work for cross compile. Fix it.
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Upstream-Status: Pending
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
src/Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/Makefile b/src/Makefile
index 0c16597..dcc7fc8 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -40,8 +40,8 @@ abicheck : $(patsubst %.so,%.abicheck,$(LIBTARGETS))
./guid-symbols.c : include/efivar/efivar-guids.h
./guids.bin : include/efivar/efivar-guids.h
./names.bin : include/efivar/efivar-guids.h
-include/efivar/efivar-guids.h : makeguids guids.txt
- ./makeguids guids.txt guids.bin names.bin \
+include/efivar/efivar-guids.h : guids.txt
+ makeguids guids.txt guids.bin names.bin \
guid-symbols.c include/efivar/efivar-guids.h
makeguids : CPPFLAGS+=-DEFIVAR_BUILD_ENVIRONMENT

View File

@ -1,35 +0,0 @@
From b3d35e7dd27a755df5acbe050837885914dbb28b Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Tue, 10 May 2016 11:34:50 -0400
Subject: [PATCH] fix unknow option for gold linker
- Revert the following patch, since oe-core work with gcc 5
...
commit 3055a3797f16693dfdd855fa68bc57fd900dc408
Author: Peter Jones <pjones@redhat.com>
Date: Mon Feb 15 14:15:40 2016 -0500
Make gcc.specs work with gcc 6 / binutils 2.26
Apparently binutils 2.26 gets real picky about "ld -PIC" vs "ld -fPIC".
Signed-off-by: Peter Jones <pjones@redhat.com>
...
- Remove unknown option '--add-needed'
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
gcc.specs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: git/gcc.specs
===================================================================
--- git.orig/gcc.specs
+++ git/gcc.specs
@@ -14,4 +14,4 @@
+ %{!shared:%{!static:%{!r:-pie}}} %{static:-Wl,-no-fatal-warnings -Wl,-static -static -Wl,-z,relro,-z,now}
*link:
-+ %{!static:--fatal-warnings} --no-undefined-version --no-allow-shlib-undefined --add-needed -z now --build-id %{!static:%{!shared:-pie}} %{shared:-z relro} %{static:%<pie}
++ %{!static:--fatal-warnings} --no-undefined-version --no-allow-shlib-undefined -z now --build-id %{!static:%{!shared:-pie}} %{shared:-z relro} %{static:%<pie}

View File

@ -1,36 +0,0 @@
From c10368b397483a2fc7b493c099d8416d902f8cd8 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Tue, 31 Jul 2018 14:18:35 +0800
Subject: [PATCH] allow multi definitions for native
Upstream-Status: Pending
It fails to create .so file when build efivar-native:
| lib.o:(*IND*+0x0): multiple definition of `efi_set_variable'
| lib.o:lib.c:(.text+0xa0): first defined here
Add link option '-z muldefs' to fix it.
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
Make.rules | 1 +
1 file changed, 1 insertion(+)
diff --git a/Make.rules b/Make.rules
index 042585b..257ba45 100644
--- a/Make.rules
+++ b/Make.rules
@@ -20,6 +20,7 @@ include $(TOPDIR)/Make.version
$(CCLD) $(ccldflags) $(CPPFLAGS) $(SOFLAGS) \
-Wl,-soname,$@.1 \
-Wl,--version-script=$(MAP) \
+ -Wl,-z,muldefs \
-o $@ $^ $(LDLIBS)
ln -vfs $@ $@.1
--
2.7.4

View File

@ -1,43 +0,0 @@
From 3edce6a0019bcb90febc1f654b5b2e2bad5c59bd Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Thu, 26 May 2016 21:50:01 -0400
Subject: [PATCH] fix compile failure with older host gcc (<=4.6)
While host gcc version is 4.6.3 in ubuntu 1204, it
did not recognize -std=gnu11 and -Wmaybe-uninitialized.
While host gcc version is 4.4.7 in centos6, it
did not recognize -std=gnu11, -Wmaybe-uninitialized,
and -flto.
For native build, use -std=gnu99 to replace -std=gnu11,
and directly remove -Wmaybe-uninitialized and -flto.
Upstream-Status: Pending
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
gcc.specs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gcc.specs b/gcc.specs
index 45d43d1..f1c6944 100644
--- a/gcc.specs
+++ b/gcc.specs
@@ -2,13 +2,13 @@
+ -D_GNU_SOURCE
*efivar_cpp_options:
- -Werror -Wall -std=gnu11 -Wextra
+ -Werror -Wall -std=gnu99 -Wextra
*cpp_options:
+ %(efivar_cpp_options)
*cc1_options:
-+ %(efivar_cpp_options) -Wmaybe-uninitialized -fno-merge-constants -fvisibility=hidden %{!r:%{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fPIE}}}}}}
++ %(efivar_cpp_options) -fno-merge-constants -fvisibility=hidden %{!r:%{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fPIE}}}}}}
*self_spec:
+ %{!shared:%{!static:%{!r:-pie}}} %{static:-Wl,-no-fatal-warnings -Wl,-static -static -Wl,-z,relro,-z,now}

View File

@ -0,0 +1,18 @@
Don't use -Werror because newer compilers introduce newer warnings.
Upstream-Status: Inappropriate [https://github.com/rhboot/efivar/issues/131]
Signed-off-by: Ross Burton <ross.burton@intel.com>
diff --git a/gcc.specs b/gcc.specs
index 45d43d1..1baf11a 100644
--- a/gcc.specs
+++ b/gcc.specs
@@ -2,7 +2,7 @@
+ -D_GNU_SOURCE
*efivar_cpp_options:
- -Werror -Wall -std=gnu11 -Wextra
+ -Wall -std=gnu11 -Wextra
*cpp_options:
+ %(efivar_cpp_options)

View File

@ -1,43 +1,40 @@
SUMMARY = "Tools to manipulate UEFI variables" SUMMARY = "Tools to manipulate UEFI variables"
DESCRIPTION = "efivar provides a simple command line interface to the UEFI variable facility" DESCRIPTION = "efivar provides a simple command line interface to the UEFI variable facility"
HOMEPAGE = "https://github.com/rhinstaller/efivar" HOMEPAGE = "https://github.com/rhboot/efivar"
LICENSE = "LGPLv2.1" LICENSE = "LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=6626bb1e20189cfa95f2c508ba286393" LIC_FILES_CHKSUM = "file://COPYING;md5=6626bb1e20189cfa95f2c508ba286393"
DEPENDS = "popt"
DEPENDS_append_class-target = " efivar-native"
inherit pkgconfig
COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux" COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
SRCREV = "c1d6b10e1ed4ba2be07f385eae5bceb694478a10"
SRC_URI = "git://github.com/rhinstaller/efivar.git \ SRC_URI = "git://github.com/rhinstaller/efivar.git \
file://allow-multi-definitions-for-native.patch \ file://no-werror.patch"
" SRCREV = "c1d6b10e1ed4ba2be07f385eae5bceb694478a10"
SRC_URI_append_class-target = " file://0001-efivar-fix-for-cross-compile.patch \
${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', 'file://0004-fix-unknow-option-for-gold-linker.patch', '', d)} \
"
SRC_URI_append_class-native = " file://fix-compile-failure-with-host-gcc-4.6.patch \
"
S = "${WORKDIR}/git" S = "${WORKDIR}/git"
do_compile_prepend() { inherit pkgconfig
sed -i -e s:-Werror::g ${S}/gcc.specs
}
do_compile_class-native() { export CCLD_FOR_BUILD = "${BUILD_CCLD}"
oe_runmake -C src makeguids CC_FOR_BUILD="${BUILD_CC}"
# Upstream uses --add-needed in gcc.specs which gold doesn't support, so
# enforce BFD.
LDFLAGS += "-fuse-ld=bfd"
do_compile_prepend() {
# Remove when https://github.com/rhboot/efivar/issues/130 is fixed
oe_runmake \
CFLAGS="${BUILD_CFLAGS}" \
LDFLAGS="${BUILD_LDFLAGS}" \
-C src makeguids
} }
do_install() { do_install() {
oe_runmake install DESTDIR=${D} oe_runmake install DESTDIR=${D}
} }
do_install_class-native() {
install -D -m 0755 ${B}/src/makeguids ${D}${bindir}/makeguids
}
BBCLASSEXTEND = "native" BBCLASSEXTEND = "native"
RRECOMMENDS_${PN}_class-target = "kernel-module-efivarfs"
CLEANBROKEN = "1"

View File

@ -10,8 +10,6 @@ DEPENDS = " \
dbus-glib \ dbus-glib \
glib-2.0 \ glib-2.0 \
libblockdev \ libblockdev \
intltool-native \
gnome-common-native \
libxslt-native \ libxslt-native \
" "
DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
@ -19,18 +17,25 @@ DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
RDEPENDS_${PN} = "acl" RDEPENDS_${PN} = "acl"
SRC_URI = " \ SRC_URI = " \
git://github.com/storaged-project/udisks.git;branch=2.7.x-branch \ git://github.com/storaged-project/udisks.git;branch=master \
file://non-gnu-libc.patch \
" "
SRCREV = "47bc0141cb84624ba1e2242d596a89a30df1f5ea" PV = "2.8.4+git${SRCREV}"
SRCREV = "db5f487345da2eaa87976450ea51c2c465d9b82e"
S = "${WORKDIR}/git" S = "${WORKDIR}/git"
CVE_PRODUCT = "udisks" CVE_PRODUCT = "udisks"
inherit autotools systemd gtk-doc gobject-introspection inherit autotools systemd gtk-doc gobject-introspection gettext
EXTRA_OECONF = "--disable-man --disable-gtk-doc" EXTRA_OECONF = "--disable-man --disable-gtk-doc"
do_configure_prepend() {
# | configure.ac:656: error: required file 'build-aux/config.rpath' not found
mkdir -p ${S}/build-aux
touch ${S}/build-aux/config.rpath
}
FILES_${PN} += " \ FILES_${PN} += " \
${datadir}/dbus-1/ \ ${datadir}/dbus-1/ \
${datadir}/polkit-1 \ ${datadir}/polkit-1 \
@ -43,6 +48,7 @@ FILES_${PN} += " \
PACKAGES =+ "${PN}-libs" PACKAGES =+ "${PN}-libs"
FILES_${PN}-libs = "${libdir}/lib*${SOLIBS}" FILES_${PN}-libs = "${libdir}/lib*${SOLIBS}"
FILES_${PN} += "${nonarch_libdir}/tmpfiles.d"
SYSTEMD_SERVICE_${PN} = "${BPN}.service" SYSTEMD_SERVICE_${PN} = "${BPN}.service"
SYSTEMD_AUTO_ENABLE = "disable" SYSTEMD_AUTO_ENABLE = "disable"

View File

@ -0,0 +1,27 @@
require wireguard.inc
inherit bash-completion systemd pkgconfig
DEPENDS = "libmnl"
do_compile_prepend () {
cd ${S}/tools
}
do_install () {
cd ${S}/tools
oe_runmake DESTDIR="${D}" PREFIX="${prefix}" SYSCONFDIR="${sysconfdir}" \
SYSTEMDUNITDIR="${systemd_unitdir}" \
WITH_SYSTEMDUNITS=${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'yes', '', d)} \
WITH_BASHCOMPLETION=yes \
WITH_WGQUICK=yes \
install
}
FILES_${PN} = " \
${sysconfdir} \
${systemd_unitdir} \
${bindir} \
"
RDEPENDS_${PN} = "bash"

View File

@ -0,0 +1,27 @@
require wireguard.inc
inherit bash-completion systemd pkgconfig
DEPENDS = "libmnl"
do_compile_prepend () {
cd ${S}
}
do_install () {
cd ${S}
oe_runmake DESTDIR="${D}" PREFIX="${prefix}" SYSCONFDIR="${sysconfdir}" \
SYSTEMDUNITDIR="${systemd_unitdir}" \
WITH_SYSTEMDUNITS=${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'yes', '', d)} \
WITH_BASHCOMPLETION=yes \
WITH_WGQUICK=yes \
install
}
FILES_${PN} = " \
${sysconfdir} \
${systemd_unitdir} \
${bindir} \
"
RDEPENDS_${PN} = "bash"

View File

@ -0,0 +1,16 @@
SUMMARY = "WireGuard is an extremely simple yet fast and modern VPN"
DESCRIPTION="WireGuard is a secure network tunnel, operating at layer 3, \
implemented as a kernel virtual network interface for Linux, which aims to \
replace both IPsec for most use cases, as well as popular user space and/or \
TLS-based solutions like OpenVPN, while being more secure, more performant, \
and easier to use."
SECTION = "networking"
HOMEPAGE = "https://www.wireguard.io/"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://../COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "https://git.zx2c4.com/wireguard-tools/snapshot/wireguard-tools-${PV}.tar.xz"
SRC_URI[md5sum] = "36cd9411f56bc5dcaac29bbab6fd9c67"
SRC_URI[sha256sum] = "757ed31d4d48d5fd7853bfd9bfa6a3a1b53c24a94fe617439948784a2c0ed987"
S = "${WORKDIR}/wireguard-tools-${PV}/src/"

View File

@ -7,9 +7,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
DEPENDS = "autoconf-archive-native glib-2.0" DEPENDS = "autoconf-archive-native glib-2.0"
inherit autotools gnomebase inherit autotools gnomebase gtk-icon-cache mime
SRCREV = "7531b44424f834f193fe7f83fe572084d9c77ad9" SRCREV = "9f6c5624f0dd57a8e301cd84c5525298bb754ed8"
SRC_URI = "git://github.com/flatpak/xdg-dbus-proxy.git;protocol=https" SRC_URI = "git://github.com/flatpak/xdg-dbus-proxy.git;protocol=https"
S = "${WORKDIR}/git" S = "${WORKDIR}/git"

1
meta-clang Submodule

@ -0,0 +1 @@
Subproject commit ee1dcdfbb8d31f168b26c2e3e5be97efea6537df

View File

@ -1,7 +1,7 @@
# We have a conf and classes directory, add to BBPATH # We have a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}" BBPATH .= ":${LAYERDIR}"
LAYERSERIES_COMPAT_meta-gnome = "thud warrior" LAYERSERIES_COMPAT_meta-gnome = "thud warrior zeus"
# We have recipes-* directories, add to BBFILES # We have recipes-* directories, add to BBFILES
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \

View File

@ -0,0 +1,21 @@
From b8687182b9103a1209a6cb553821bb4e4cda5591 Mon Sep 17 00:00:00 2001
From: David McKinney <mckinney@subgraph.com>
Date: Thu, 2 Jul 2020 15:46:40 +0000
Subject: [PATCH] Remove config dir from unit file
---
src/iwd.service.in | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/iwd.service.in b/src/iwd.service.in
index 77819eaf..e33b2f0b 100644
--- a/src/iwd.service.in
+++ b/src/iwd.service.in
@@ -19,7 +19,6 @@ ProtectHome=yes
ProtectSystem=strict
ProtectControlGroups=yes
ProtectKernelModules=yes
-ConfigurationDirectory=iwd
StateDirectory=iwd
StateDirectoryMode=0700

View File

@ -0,0 +1,56 @@
SUMMARY = "Wireless daemon for Linux"
HOMEPAGE = "https://iwd.wiki.kernel.org/"
LICENSE = "LGPL-2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09"
DEPENDS = "ell"
SRC_URI = "git://git.kernel.org/pub/scm/network/wireless/iwd.git \
file://0001-Remove-config-dir-from-unit-file.patch \
"
SRCREV = "ef6084dcb4fe2e00327bb9c7b113ece204042c22"
S = "${WORKDIR}/git"
inherit autotools manpages pkgconfig python3native systemd
PACKAGECONFIG ??= " \
client \
monitor \
${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
"
PACKAGECONFIG[client] = "--enable-client,--disable-client,readline"
PACKAGECONFIG[monitor] = "--enable-monitor,--disable-monitor"
PACKAGECONFIG[manpages] = "--enable-manual-pages,--disable-manual-pages,python3-docutils-native"
PACKAGECONFIG[wired] = "--enable-wired,--disable-wired"
PACKAGECONFIG[ofono] = "--enable-ofono,--disable-ofono"
PACKAGECONFIG[systemd] = "--with-systemd-unitdir=${systemd_system_unitdir},--disable-systemd-service,systemd"
EXTRA_OECONF = "--enable-external-ell"
SYSTEMD_SERVICE_${PN} = " \
iwd.service \
${@bb.utils.contains('PACKAGECONFIG', 'wired', 'ead.service', '', d)} \
"
do_configure_prepend() {
install -d ${S}/build-aux
}
do_install_append() {
# If client and monitor are disabled, bindir is empty, causing a QA error
rmdir --ignore-fail-on-non-empty ${D}/${bindir}
}
FILES_${PN} += " \
${datadir}/dbus-1 \
${nonarch_libdir}/modules-load.d \
${systemd_unitdir}/network \
"
RDEPENDS_${PN} = "dbus"
RRECOMMENDS_${PN} = "\
kernel-module-pkcs7-message \
kernel-module-pkcs8-key-parser \
kernel-module-x509-key-parser \
"

View File

@ -0,0 +1,8 @@
[main]
plugins=keyfile
[keyfile]
path=/var/lib/NetworkManager/system-connections
[device]
wifi.backend=iwd

View File

@ -1,4 +1,4 @@
From 4f000a4a19975d6aba71427e693cd1ed080abda9 Mon Sep 17 00:00:00 2001 From 9eab96351a726e9ce6a15d158f743e35d73a8900 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com> From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Thu, 22 Mar 2018 11:08:30 +0100 Date: Thu, 22 Mar 2018 11:08:30 +0100
Subject: [PATCH] Do not create settings settings/property documentation Subject: [PATCH] Do not create settings settings/property documentation
@ -6,23 +6,29 @@ MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: 8bit
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
It was tried to get this work but gi / GirRepository could not be found by It was tried to get this work but gi / GirRepository could not be found by
python. Anyway it is not necessary for us to have the settings/property docs. python. Anyway it is not necessary for us to have the settings/property docs.
Upstream-Status: Inappropriate [OE specific] Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
--- ---
Makefile.am | 11 ----------- Makefile.am | 11 -----------
configure.ac | 5 ----- configure.ac | 5 -----
2 files changed, 16 deletions(-) 2 files changed, 16 deletions(-)
diff --git a/Makefile.am b/Makefile.am diff --git a/Makefile.am b/Makefile.am
index b180466..1ab4658 100644 index d5cbcf5..2a1819a 100644
--- a/Makefile.am --- a/Makefile.am
+++ b/Makefile.am +++ b/Makefile.am
@@ -1298,9 +1298,7 @@ EXTRA_DIST += \ @@ -1473,9 +1473,7 @@ libnm/libnm.typelib: libnm/libnm.gir
if HAVE_INTROSPECTION INTROSPECTION_GIRS += libnm/NM-1.0.gir
libnm_noinst_data = \ libnm_noinst_data = \
- libnm/nm-property-docs.xml \ - libnm/nm-property-docs.xml \
@ -31,7 +37,7 @@ index b180466..1ab4658 100644
libnm/nm-settings-keyfile-docs.xml \ libnm/nm-settings-keyfile-docs.xml \
libnm/nm-settings-ifcfg-rh-docs.xml libnm/nm-settings-ifcfg-rh-docs.xml
@@ -3930,18 +3928,9 @@ $(clients_common_libnmc_base_la_OBJECTS): $(libnm_lib_h_pub_mkenums) @@ -4236,18 +4234,9 @@ $(clients_common_libnmc_base_la_OBJECTS): $(libnm_lib_h_pub_mkenums)
$(clients_common_libnmc_base_la_OBJECTS): clients/common/.dirstamp $(clients_common_libnmc_base_la_OBJECTS): clients/common/.dirstamp
clients_common_settings_doc_h = clients/common/settings-docs.h clients_common_settings_doc_h = clients/common/settings-docs.h
@ -51,10 +57,10 @@ index b180466..1ab4658 100644
$(clients_common_settings_doc_h) \ $(clients_common_settings_doc_h) \
$(clients_common_settings_doc_h).in $(clients_common_settings_doc_h).in
diff --git a/configure.ac b/configure.ac diff --git a/configure.ac b/configure.ac
index b914219..872c292 100644 index ad4b0fc..0092092 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -1215,11 +1215,6 @@ GTK_DOC_CHECK(1.0) @@ -1201,11 +1201,6 @@ GTK_DOC_CHECK(1.0)
# check if we can build setting property documentation # check if we can build setting property documentation
build_docs=no build_docs=no
if test -n "$INTROSPECTION_MAKEFILE"; then if test -n "$INTROSPECTION_MAKEFILE"; then
@ -66,6 +72,3 @@ index b914219..872c292 100644
AC_PATH_PROG(PERL, perl) AC_PATH_PROG(PERL, perl)
if test -z "$PERL"; then if test -z "$PERL"; then
AC_MSG_ERROR([--enable-introspection requires perl]) AC_MSG_ERROR([--enable-introspection requires perl])
--
2.20.1

View File

@ -0,0 +1,110 @@
#! /bin/sh
### BEGIN INIT INFO
# Provides: network-manager
# Required-Start: $remote_fs dbus udev
# Required-Stop: $remote_fs dbus udev
# Should-Start: $syslog
# Should-Stop: $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: network connection manager
# Description: Daemon for automatically switching network
# connections to the best available connection.
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="network connection manager"
NAME="NetworkManager"
DAEMON=/usr/sbin/$NAME
PIDFILE=/run/$NAME/$NAME.pid
SCRIPTNAME=/etc/init.d/network-manager
. /etc/init.d/functions || exit 1
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
log_daemon_msg() {
echo -n $*
}
log_end_msg() {
if [ $1 -eq 0 ]; then
success
else
failure
fi
echo
}
log_progress_msg () {
if [ -z "${1:-}" ]; then
return 1
fi
echo -n " $@"
}
#
# Function that starts the daemon/service.
#
d_start() {
start-stop-daemon --start --quiet --pidfile $PIDFILE \
--exec $DAEMON -- $DAEMON_OPTS
}
#
# Function that stops the daemon/service.
#
d_stop() {
start-stop-daemon --stop --retry 5 --quiet --pidfile $PIDFILE \
--exec $DAEMON
}
d_reload() {
start-stop-daemon --stop --signal HUP --quiet --pidfile $PIDFILE \
--exec $DAEMON
}
case "$1" in
start)
log_daemon_msg "Starting $DESC" "$NAME"
d_start
case "$?" in
0) log_end_msg 0 ;;
1) log_progress_msg "already started"
log_end_msg 0 ;;
*) log_end_msg 1 ;;
esac
;;
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
d_stop
case "$?" in
0) log_end_msg 0 ;;
1) log_progress_msg "already stopped"
log_end_msg 0 ;;
*) log_end_msg 1 ;;
esac
;;
reload|force-reload)
log_daemon_msg "Reloading $DESC" "$NAME"
d_reload
log_end_msg $?
;;
restart)
$0 stop
$0 start
;;
status)
status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $?
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload|status}" >&2
exit 1
;;
esac
exit 0

View File

@ -1,143 +0,0 @@
SUMMARY = "NetworkManager"
HOMEPAGE = "https://wiki.gnome.org/Projects/NetworkManager"
SECTION = "net/misc"
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=cbbffd568227ada506640fe950a4823b \
file://libnm-util/COPYING;md5=1c4fa765d6eb3cd2fbd84344a1b816cd \
file://docs/api/html/license.html;md5=233931303ef80eded167add1f60a50c1 \
"
DEPENDS = " \
intltool-native \
libxslt-native \
libnl \
libgudev \
util-linux \
libndp \
libnewt \
jansson \
curl \
"
inherit gnomebase gettext systemd bluetooth bash-completion vala gobject-introspection gtk-doc
SRC_URI = " \
${GNOME_MIRROR}/NetworkManager/${@gnome_verdir("${PV}")}/NetworkManager-${PV}.tar.xz \
file://0001-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch \
file://0002-Do-not-create-settings-settings-property-documentati.patch \
file://musl/0001-Do-not-include-net-ethernet.h-and-linux-if_ether.h.patch \
file://musl/0002-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch \
file://musl/0003-musl-basic.patch \
file://musl/0004-musl-dlopen-configure-ac.patch \
file://musl/0005-musl-network-support.patch \
file://musl/0006-musl-process-util.patch \
file://musl/0007-musl-avoid-further-conflicts-by-including-net-ethern.patch \
file://musl/0008-Add-a-strndupa-replacement-for-musl.patch \
"
SRC_URI[md5sum] = "10abacaafb162a67d2942adf03e7e9e4"
SRC_URI[sha256sum] = "8e962833b6ca03edda1bc57ed6614a7b8c2339531b44acef098d05f2324c5d2c"
UPSTREAM_CHECK_URI = "${GNOME_MIRROR}/NetworkManager/1.10/"
UPSTREAM_CHECK_REGEX = "NetworkManager\-(?P<pver>1\.10(\.\d+)+).tar.xz"
S = "${WORKDIR}/NetworkManager-${PV}"
EXTRA_OECONF = " \
--disable-ifcfg-rh \
--disable-more-warnings \
--with-iptables=${sbindir}/iptables \
--with-tests \
--with-nmtui=yes \
--with-udev-dir=${nonarch_base_libdir}/udev \
"
# gobject-introspection related
GI_DATA_ENABLED_libc-musl = "False"
# stolen from https://github.com/voidlinux/void-packages/blob/master/srcpkgs/NetworkManager/template
CFLAGS_libc-musl_append = " \
-DHAVE_SECURE_GETENV -Dsecure_getenv=getenv \
-D__USE_POSIX199309 -DRTLD_DEEPBIND=0 \
"
do_compile_prepend() {
export GIR_EXTRA_LIBS_PATH="${B}/libnm/.libs:${B}/libnm-glib/.libs:${B}/libnm-util/.libs"
}
PACKAGECONFIG ??= "nss ifupdown dhclient dnsmasq \
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d), d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \
${@bb.utils.filter('DISTRO_FEATURES', 'wifi polkit', d)} \
"
PACKAGECONFIG[systemd] = " \
--with-systemdsystemunitdir=${systemd_unitdir}/system --with-session-tracking=systemd, \
--without-systemdsystemunitdir, \
"
PACKAGECONFIG[polkit] = "--enable-polkit --enable-polkit-agent,--disable-polkit --disable-polkit-agent,polkit"
PACKAGECONFIG[bluez5] = "--enable-bluez5-dun,--disable-bluez5-dun,bluez5"
# consolekit is not picked by shlibs, so add it to RDEPENDS too
PACKAGECONFIG[consolekit] = "--with-session-tracking=consolekit,,consolekit,consolekit"
PACKAGECONFIG[modemmanager] = "--with-modem-manager-1=yes,--with-modem-manager-1=no,modemmanager"
PACKAGECONFIG[ppp] = "--enable-ppp,--disable-ppp,ppp,ppp"
# Use full featured dhcp client instead of internal one
PACKAGECONFIG[dhclient] = "--with-dhclient=${base_sbindir}/dhclient,,,dhcp-client"
PACKAGECONFIG[dnsmasq] = "--with-dnsmasq=${bindir}/dnsmasq"
PACKAGECONFIG[nss] = "--with-crypto=nss,,nss"
PACKAGECONFIG[glib] = "--with-libnm-glib,,dbus-glib-native dbus-glib"
PACKAGECONFIG[gnutls] = "--with-crypto=gnutls,,gnutls"
PACKAGECONFIG[wifi] = "--enable-wifi=yes,--enable-wifi=no,,wpa-supplicant"
PACKAGECONFIG[ifupdown] = "--enable-ifupdown,--disable-ifupdown"
PACKAGECONFIG[qt4-x11-free] = "--enable-qt,--disable-qt,qt4-x11-free"
PACKAGES =+ "libnmutil libnmglib libnmglib-vpn \
${PN}-nmtui ${PN}-nmtui-doc \
${PN}-adsl \
"
FILES_libnmutil += "${libdir}/libnm-util.so.*"
FILES_libnmglib += "${libdir}/libnm-glib.so.*"
FILES_libnmglib-vpn += "${libdir}/libnm-glib-vpn.so.*"
FILES_${PN}-adsl = "${libdir}/NetworkManager/libnm-device-plugin-adsl.so"
FILES_${PN} += " \
${libexecdir} \
${libdir}/NetworkManager/${PV}/*.so \
${nonarch_libdir}/NetworkManager/VPN \
${nonarch_libdir}/NetworkManager/conf.d \
${datadir}/polkit-1 \
${datadir}/dbus-1 \
${noarch_base_libdir}/udev/* \
${systemd_unitdir}/system \
${libdir}/pppd \
"
RRECOMMENDS_${PN} += "iptables \
${@bb.utils.filter('PACKAGECONFIG', 'dnsmasq', d)} \
"
RCONFLICTS_${PN} = "connman"
FILES_${PN}-dev += " \
${datadir}/NetworkManager/gdb-cmd \
${libdir}/pppd/*/*.la \
${libdir}/NetworkManager/*.la \
${libdir}/NetworkManager/${PV}/*.la \
"
FILES_${PN}-nmtui = " \
${bindir}/nmtui \
${bindir}/nmtui-edit \
${bindir}/nmtui-connect \
${bindir}/nmtui-hostname \
"
FILES_${PN}-nmtui-doc = " \
${mandir}/man1/nmtui* \
"
SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'NetworkManager.service NetworkManager-dispatcher.service', '', d)}"
do_install_append() {
rm -rf ${D}/run ${D}${localstatedir}/run
}

View File

@ -0,0 +1,170 @@
SUMMARY = "NetworkManager"
HOMEPAGE = "https://wiki.gnome.org/Projects/NetworkManager"
SECTION = "net/misc"
LICENSE = "GPLv2+ & LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c \
"
DEPENDS = " \
intltool-native \
libxslt-native \
libnl \
libgudev \
util-linux \
libndp \
libnewt \
jansson \
curl \
"
inherit gnomebase gettext update-rc.d systemd bash-completion vala gobject-introspection gtk-doc update-alternatives upstream-version-is-even
SRC_URI = " \
${GNOME_MIRROR}/NetworkManager/${@gnome_verdir("${PV}")}/NetworkManager-${PV}.tar.xz \
file://${BPN}.initd \
file://0001-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch \
file://0002-Do-not-create-settings-settings-property-documentati.patch \
file://NetworkManager.conf \
"
SRC_URI_append_libc-musl = " \
file://musl/0001-Fix-build-with-musl-systemd-specific.patch \
file://musl/0002-Fix-build-with-musl.patch \
file://musl/0003-Fix-build-with-musl-for-n-dhcp4.patch \
file://musl/0004-Fix-build-with-musl-systemd-specific.patch \
"
SRC_URI[sha256sum] = "2b29ccc1531ba7ebba95a97f40c22b963838e8b6833745efe8e6fb71fd8fca77"
S = "${WORKDIR}/NetworkManager-${PV}"
EXTRA_OECONF = " \
--disable-ifcfg-rh \
--disable-more-warnings \
--with-iptables=${sbindir}/iptables \
--with-tests \
--with-nmtui=no \
--with-udev-dir=${nonarch_base_libdir}/udev \
--with-iwd \
"
# stolen from https://github.com/void-linux/void-packages/blob/master/srcpkgs/NetworkManager/template
# avoids:
# | ../NetworkManager-1.16.0/libnm-core/nm-json.c:106:50: error: 'RTLD_DEEPBIND' undeclared (first use in this function); did you mean 'RTLD_DEFAULT'?
CFLAGS_append_libc-musl = " \
-DRTLD_DEEPBIND=0 \
"
do_compile_prepend() {
export GIR_EXTRA_LIBS_PATH="${B}/libnm/.libs:${B}/libnm-glib/.libs:${B}/libnm-util/.libs"
}
PACKAGECONFIG ??= "nss ifupdown dhclient dnsmasq \
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d), d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez5', '', d)} \
${@bb.utils.filter('DISTRO_FEATURES', 'wifi polkit', d)} \
"
PACKAGECONFIG[systemd] = " \
--with-systemdsystemunitdir=${systemd_unitdir}/system --with-session-tracking=systemd, \
--without-systemdsystemunitdir, \
"
PACKAGECONFIG[polkit] = "--enable-polkit,--disable-polkit,polkit"
PACKAGECONFIG[bluez5] = "--enable-bluez5-dun,--disable-bluez5-dun,bluez5"
# consolekit is not picked by shlibs, so add it to RDEPENDS too
PACKAGECONFIG[consolekit] = "--with-session-tracking=consolekit,,consolekit,consolekit"
PACKAGECONFIG[modemmanager] = "--with-modem-manager-1=yes,--with-modem-manager-1=no,modemmanager"
PACKAGECONFIG[ppp] = "--enable-ppp,--disable-ppp,ppp,ppp"
# Use full featured dhcp client instead of internal one
PACKAGECONFIG[dhclient] = "--with-dhclient=${base_sbindir}/dhclient,,,dhcp-client"
PACKAGECONFIG[dnsmasq] = "--with-dnsmasq=${bindir}/dnsmasq"
PACKAGECONFIG[nss] = "--with-crypto=nss,,nss"
PACKAGECONFIG[resolvconf] = "--with-resolvconf=${base_sbindir}/resolvconf,,,resolvconf"
PACKAGECONFIG[gnutls] = "--with-crypto=gnutls,,gnutls"
PACKAGECONFIG[wifi] = "--enable-wifi=yes,--enable-wifi=no,,iwd"
PACKAGECONFIG[ifupdown] = "--enable-ifupdown,--disable-ifupdown"
PACKAGECONFIG[qt4-x11-free] = "--enable-qt,--disable-qt,qt4-x11-free"
PACKAGECONFIG[cloud-setup] = "--with-nm-cloud-setup=yes,--with-nm-cloud-setup=no"
PACKAGES =+ " \
${PN}-nmtui ${PN}-nmtui-doc \
${PN}-adsl ${PN}-cloud-setup \
"
SYSTEMD_PACKAGES = "${PN} ${PN}-cloud-setup"
FILES_${PN}-adsl = "${libdir}/NetworkManager/${PV}/libnm-device-plugin-adsl.so"
FILES_${PN}-cloud-setup = " \
${libexecdir}/nm-cloud-setup \
${systemd_system_unitdir}/nm-cloud-setup.service \
${systemd_system_unitdir}/nm-cloud-setup.timer \
${libdir}/NetworkManager/dispatcher.d/90-nm-cloud-setup.sh \
${libdir}/NetworkManager/dispatcher.d/no-wait.d/90-nm-cloud-setup.sh \
"
ALLOW_EMPTY_${PN}-cloud-setup = "1"
SYSTEMD_SERVICE_${PN}-cloud-setup = "${@bb.utils.contains('PACKAGECONFIG', 'cloud-setup', 'nm-cloud-setup.service nm-cloud-setup.timer', '', d)}"
FILES_${PN} += " \
${libexecdir} \
${libdir}/NetworkManager/${PV}/*.so \
${libdir}/NetworkManager \
${nonarch_libdir}/NetworkManager/conf.d \
${nonarch_libdir}/NetworkManager/dispatcher.d \
${nonarch_libdir}/NetworkManager/dispatcher.d/pre-down.d \
${nonarch_libdir}/NetworkManager/dispatcher.d/pre-up.d \
${nonarch_libdir}/NetworkManager/dispatcher.d/no-wait.d \
${nonarch_libdir}/NetworkManager/VPN \
${nonarch_libdir}/NetworkManager/system-connections \
${datadir}/polkit-1 \
${datadir}/dbus-1 \
${nonarch_base_libdir}/udev/* \
${systemd_system_unitdir} \
${libdir}/pppd \
"
RRECOMMENDS_${PN} += "iptables \
${@bb.utils.filter('PACKAGECONFIG', 'dnsmasq', d)} \
"
RCONFLICTS_${PN} = "connman"
FILES_${PN}-dev += " \
${datadir}/NetworkManager/gdb-cmd \
${libdir}/pppd/*/*.la \
${libdir}/NetworkManager/*.la \
${libdir}/NetworkManager/${PV}/*.la \
"
FILES_${PN}-nmtui = " \
${bindir}/nmtui \
${bindir}/nmtui-edit \
${bindir}/nmtui-connect \
${bindir}/nmtui-hostname \
"
FILES_${PN}-nmtui-doc = " \
${mandir}/man1/nmtui* \
"
INITSCRIPT_NAME = "network-manager"
SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'NetworkManager.service NetworkManager-dispatcher.service', '', d)}"
ALTERNATIVE_PRIORITY = "100"
ALTERNATIVE_${PN} = "${@bb.utils.contains('DISTRO_FEATURES','systemd','resolv-conf','',d)}"
ALTERNATIVE_TARGET[resolv-conf] = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${sysconfdir}/resolv-conf.NetworkManager','',d)}"
ALTERNATIVE_LINK_NAME[resolv-conf] = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${sysconfdir}/resolv.conf','',d)}"
do_install_append() {
install -Dm 0755 ${WORKDIR}/${BPN}.initd ${D}${sysconfdir}/init.d/network-manager
rm -rf ${D}/run ${D}${localstatedir}/run
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
# For read-only filesystem, do not create links during bootup
ln -sf ../run/NetworkManager/resolv.conf ${D}${sysconfdir}/resolv-conf.NetworkManager
# systemd v210 and newer do not need this rule file
rm ${D}/${nonarch_base_libdir}/udev/rules.d/84-nm-drivers.rules
fi
install -d ${D}${sysconfdir}/NetworkManager/
install -m 0644 ${WORKDIR}/NetworkManager.conf ${D}${sysconfdir}/NetworkManager/
}

View File

@ -0,0 +1,82 @@
# Auto-Generated by cargo-bitbake 0.3.10
#
inherit cargo
# If this is git based prefer versioned ones if they exist
# DEFAULT_PREFERENCE = "-1"
# how to get cbindgen could be as easy as but default to a git checkout:
# SRC_URI += "crate://crates.io/cbindgen/0.8.7"
SRC_URI += "git://github.com/eqrion/cbindgen.git;protocol=https"
SRCREV = "7b9ea991bdabb442093014d21fde6a192f574f21"
S = "${WORKDIR}/git"
CARGO_SRC_DIR=""
PV_append = ".AUTOINC+7b9ea991bd"
BBCLASSEXTEND = "native"
# please note if you have entries that do not begin with crate://
# you must change them to how that package can be fetched
SRC_URI += " \
crate://crates.io/ansi_term/0.11.0 \
crate://crates.io/atty/0.2.11 \
crate://crates.io/autocfg/0.1.2 \
crate://crates.io/bitflags/1.0.4 \
crate://crates.io/cfg-if/0.1.6 \
crate://crates.io/clap/2.32.0 \
crate://crates.io/cloudabi/0.0.3 \
crate://crates.io/fuchsia-zircon-sys/0.3.3 \
crate://crates.io/fuchsia-zircon/0.3.3 \
crate://crates.io/itoa/0.4.3 \
crate://crates.io/libc/0.2.47 \
crate://crates.io/log/0.4.6 \
crate://crates.io/proc-macro2/0.4.25 \
crate://crates.io/quote/0.6.10 \
crate://crates.io/rand/0.6.4 \
crate://crates.io/rand_chacha/0.1.1 \
crate://crates.io/rand_core/0.3.0 \
crate://crates.io/rand_hc/0.1.0 \
crate://crates.io/rand_isaac/0.1.1 \
crate://crates.io/rand_os/0.1.1 \
crate://crates.io/rand_pcg/0.1.1 \
crate://crates.io/rand_xorshift/0.1.1 \
crate://crates.io/rdrand/0.4.0 \
crate://crates.io/redox_syscall/0.1.50 \
crate://crates.io/redox_termios/0.1.1 \
crate://crates.io/remove_dir_all/0.5.1 \
crate://crates.io/rustc_version/0.2.3 \
crate://crates.io/ryu/0.2.7 \
crate://crates.io/semver-parser/0.7.0 \
crate://crates.io/semver/0.9.0 \
crate://crates.io/serde/1.0.84 \
crate://crates.io/serde_derive/1.0.84 \
crate://crates.io/serde_json/1.0.36 \
crate://crates.io/strsim/0.7.0 \
crate://crates.io/syn/0.15.26 \
crate://crates.io/tempfile/3.0.5 \
crate://crates.io/termion/1.5.1 \
crate://crates.io/textwrap/0.10.0 \
crate://crates.io/toml/0.5.1 \
crate://crates.io/unicode-width/0.1.5 \
crate://crates.io/unicode-xid/0.1.0 \
crate://crates.io/vec_map/0.8.1 \
crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
crate://crates.io/winapi/0.3.6 \
"
LIC_FILES_CHKSUM=" \
file://LICENSE;md5=9741c346eef56131163e13b9db1241b3 \
"
SUMMARY = "A tool for generating C bindings to Rust code."
HOMEPAGE = "https://github.com/eqrion/cbindgen/"
LICENSE = "MPL-2.0"
# includes this file if it exists but does not fail
# this is useful for anything you may want to override from
# what cargo-bitbake generates.
include cbindgen-${PV}.inc
include cbindgen.inc

View File

@ -1,6 +1,6 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/meson:" FILESEXTRAPATHS_prepend := "${THISDIR}/meson:"
SRC_URI += "\ #SRC_URI += "\
file://0001-use-exe-wrapper-for-custom-targets.patch \ # file://0001-use-exe-wrapper-for-custom-targets.patch \
" #"

View File

@ -0,0 +1,22 @@
SUMMARY = "x86 (SSE) assembler supporting NASM and GAS-syntaxes"
LICENSE = "MIT"
HOMEPAGE = "http://www.tortall.net/projects/yasm/"
LIC_FILES_CHKSUM = "file://COPYING;md5=a12d8903508fb6bfd49d8d82c6170dd9"
DEPENDS += "flex-native bison-native xmlto-native"
PV = "1.3.0+git${SRCPV}"
# v1.3.0
SRCREV = "ba463d3c26c0ece2e797b8d6381b161633b5971a"
SRC_URI = "git://github.com/yasm/yasm.git"
S = "${WORKDIR}/git"
inherit autotools gettext python3native
CACHED_CONFIGUREVARS = "CCLD_FOR_BUILD='${CC_FOR_BUILD}'"
BBCLASSEXTEND = "native"
PARALLEL_MAKE = ""

View File

@ -0,0 +1,22 @@
SUMMARY = "D-Bus service for accessing the list of user accounts and information attached to those accounts."
HOMEPAGE = "https://www.freedesktop.org/wiki/Software/AccountsService"
LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
SRC_URI = "https://www.freedesktop.org/software/accountsservice/accountsservice-${PV}.tar.xz"
SRC_URI[md5sum] = "6e4c6fbd490260cfe17de2e76f5d803a"
SRC_URI[sha256sum] = "ff2b2419a7e06bd9cb335ffe391c7409b49a0f0130b890bd54692a3986699c9b"
DEPENDS = "glib-2.0 intltool-native polkit systemd glib-2.0-native dbus"
inherit meson pkgconfig gettext gobject-introspection
FILES_${PN} += "\
${datadir}/dbus-1/interfaces/*.xml \
${datadir}/dbus-1/system-services/org.freedesktop.Accounts.service \
${datadir}/polkit-1/actions/org.freedesktop.accounts.policy \
${systemd_system_unitdir} \
"
EXTRA_OEMESON = "-Dsystemd=true"

View File

@ -0,0 +1,64 @@
require ${BPN}.inc
FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}-native:"
inherit meson native
DEPENDS += " \
meson-native \
glib-2.0-native \
lcms-native \
"
SRC_URI += " \
file://0001-Move-the-function-cd_icc_create_from_edid-to-avoid-u.patch \
file://Makefile;subdir=${BPN}-${PV} \
"
do_configure() {
# we expect meson to fail - but before it extracts project's version in log file
meson ${MESONOPTS} "${MESON_SOURCEPATH}" "${B}" ${MESON_CROSS_FILE} ${EXTRA_OEMESON} > /dev/null 2>&1 || true
# extract and split version
version=`grep 'Project version:' ${B}/meson-logs/meson-log.txt | sed 's|Project version: ||'`
major=`echo $version | cut -d. -f1`
minor=`echo $version | cut -d. -f2`
micro=`echo $version | cut -d. -f3`
echo "Project version: $major.$minor.$micro"
# extract project name
proj_name=`grep 'Project name:' ${B}/meson-logs/meson-log.txt | sed 's|Project name: ||'`
# create cd-version.h
mkdir -p ${B}/colord
sed ${S}/lib/colord/cd-version.h.in \
-e 's:@CD_MAJOR_VERSION_PRIVATE@:1:g' \
-e 's:@CD_MINOR_VERSION_PRIVATE@:4:g' \
-e 's:@CD_MICRO_VERSION_PRIVATE@:4:g' \
> ${B}/colord/cd-version.h
# create config.h based on target build and add what's necessary only
localedir=`echo ${datadir}/locale | sed 's:${prefix}/::g'`
echo "#define LOCALEDIR \"$localedir\"" >> ${B}/config.h
echo "#define GETTEXT_PACKAGE \"colord\"" >> ${B}/config.h
echo "#define PACKAGE_NAME \"$proj_name\"" >> ${B}/config.h
echo "#define PACKAGE_VERSION \"$version\"" >> ${B}/config.h
}
do_compile() {
oe_runmake -C${S} DESTDIR=${B}
}
do_install() {
version=`grep 'Project version:' ${B}/meson-logs/meson-log.txt | sed 's|Project version: ||'`
major=`echo $version | cut -d. -f1`
install -d ${D}${libdir}
install -m 755 ${B}/libcolord.so ${D}${libdir}/libcolord.so.$version
ln -s libcolord.so.$version "${D}/${libdir}/libcolord.so"
ln -s libcolord.so.$version "${D}/${libdir}/libcolord.so.$major"
install -d ${D}${bindir}
install -m 755 ${B}/cd_create_profile ${D}${bindir}/
install -m 755 ${B}/cd_idt8 ${D}${bindir}/
}

View File

@ -0,0 +1,166 @@
From cbb8f5c05fce1d56ae2e5fa9f57fc49c47bed5ab Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Sun, 12 May 2019 21:58:02 +0200
Subject: [PATCH] Move the function cd_icc_create_from_edid to avoid udev
dependeny
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
We do not have udev-native so it is a dependeny we cannot satisfy
Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
lib/colord/cd-edid.c | 63 ++++++++++++++++++++++++++++++++++++++++++++
lib/colord/cd-icc.c | 62 -------------------------------------------
2 files changed, 63 insertions(+), 62 deletions(-)
diff --git a/lib/colord/cd-edid.c b/lib/colord/cd-edid.c
index a5e2328..dec509a 100644
--- a/lib/colord/cd-edid.c
+++ b/lib/colord/cd-edid.c
@@ -687,3 +687,66 @@ cd_edid_new (void)
edid = g_object_new (CD_TYPE_EDID, NULL);
return CD_EDID (edid);
}
+
+/**
+ * cd_icc_create_from_edid_data:
+ * @icc: A valid #CdIcc
+ * @edid: EDID data
+ * @error: A #GError, or %NULL
+ *
+ * Creates an ICC profile from EDID data.
+ *
+ * Return value: %TRUE for success
+ *
+ * Since: 1.1.2
+ **/
+gboolean
+cd_icc_create_from_edid_data (CdIcc *icc, CdEdid *edid, GError **error)
+{
+ CdIccPrivate *priv = GET_PRIVATE (icc);
+ const gchar *data;
+
+ /* not loaded */
+ if (priv->lcms_profile != NULL) {
+ g_set_error_literal (error,
+ CD_ICC_ERROR,
+ CD_ICC_ERROR_FAILED_TO_CREATE,
+ "already loaded or generated");
+ return FALSE;
+ }
+
+ /* create from parsed object */
+ if (!cd_icc_create_from_edid (icc,
+ cd_edid_get_gamma (edid),
+ cd_edid_get_red (edid),
+ cd_edid_get_green (edid),
+ cd_edid_get_blue (edid),
+ cd_edid_get_white (edid),
+ error)) {
+ return FALSE;
+ }
+
+ /* set copyright */
+ cd_icc_set_copyright (icc, NULL,
+ /* deliberately not translated */
+ "This profile is free of known copyright restrictions.");
+
+ /* set 'ICC meta Tag for Monitor Profiles' data */
+ data = cd_edid_get_checksum (edid);
+ if (data != NULL)
+ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MD5, data);
+ data = cd_edid_get_monitor_name (edid);
+ if (data != NULL)
+ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MODEL, data);
+ data = cd_edid_get_serial_number (edid);
+ if (data != NULL)
+ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_SERIAL, data);
+ data = cd_edid_get_pnp_id (edid);
+ if (data != NULL)
+ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MNFT, data);
+ data = cd_edid_get_vendor_name (edid);
+ if (data != NULL)
+ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_VENDOR, data);
+ return TRUE;
+}
+
diff --git a/lib/colord/cd-icc.c b/lib/colord/cd-icc.c
index f231814..2c8fe77 100644
--- a/lib/colord/cd-icc.c
+++ b/lib/colord/cd-icc.c
@@ -3094,68 +3094,6 @@ out:
return ret;
}
-/**
- * cd_icc_create_from_edid_data:
- * @icc: A valid #CdIcc
- * @edid: EDID data
- * @error: A #GError, or %NULL
- *
- * Creates an ICC profile from EDID data.
- *
- * Return value: %TRUE for success
- *
- * Since: 1.1.2
- **/
-gboolean
-cd_icc_create_from_edid_data (CdIcc *icc, CdEdid *edid, GError **error)
-{
- CdIccPrivate *priv = GET_PRIVATE (icc);
- const gchar *data;
-
- /* not loaded */
- if (priv->lcms_profile != NULL) {
- g_set_error_literal (error,
- CD_ICC_ERROR,
- CD_ICC_ERROR_FAILED_TO_CREATE,
- "already loaded or generated");
- return FALSE;
- }
-
- /* create from parsed object */
- if (!cd_icc_create_from_edid (icc,
- cd_edid_get_gamma (edid),
- cd_edid_get_red (edid),
- cd_edid_get_green (edid),
- cd_edid_get_blue (edid),
- cd_edid_get_white (edid),
- error)) {
- return FALSE;
- }
-
- /* set copyright */
- cd_icc_set_copyright (icc, NULL,
- /* deliberately not translated */
- "This profile is free of known copyright restrictions.");
-
- /* set 'ICC meta Tag for Monitor Profiles' data */
- data = cd_edid_get_checksum (edid);
- if (data != NULL)
- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MD5, data);
- data = cd_edid_get_monitor_name (edid);
- if (data != NULL)
- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MODEL, data);
- data = cd_edid_get_serial_number (edid);
- if (data != NULL)
- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_SERIAL, data);
- data = cd_edid_get_pnp_id (edid);
- if (data != NULL)
- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MNFT, data);
- data = cd_edid_get_vendor_name (edid);
- if (data != NULL)
- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_VENDOR, data);
- return TRUE;
-}
-
/**
* cd_icc_create_from_edid:
* @icc: A valid #CdIcc
--
2.20.1

View File

@ -0,0 +1,48 @@
# For native build cd_idt8, cd_create_profile and a tiny version of libcolord.so
# only. By reducing the library to what's necessary, we avoid dependencies on
# naitve udev and libgudev
CFLAGS+=$(shell pkg-config-native --cflags gio-2.0)
CFLAGS+=$(shell pkg-config-native --cflags lcms2)
CFLAGS+=-std=c99 -I./lib -I./lib/colord -I$(DESTDIR) -DCD_COMPILATION
LDFLAGS+=$(shell pkg-config-native --libs gio-2.0)
LDFLAGS+=$(shell pkg-config-native --libs lcms2)
LDFLAGS+=-lm
all: cd_idt8 cd_create_profile
LIBSOURCES = \
lib/colord/cd-it8.c \
lib/colord/cd-color.c \
lib/colord/cd-spectrum.c \
lib/colord/cd-math.c \
lib/colord/cd-interp-akima.c \
lib/colord/cd-context-lcms.c \
lib/colord/cd-interp.c \
lib/colord/cd-interp-linear.c \
lib/colord/cd-it8-utils.c \
lib/colord/cd-enum.c \
lib/colord/cd-icc.c \
lib/colord/cd-icc-utils.c \
lib/colord/cd-dom.c
libcolord.so: $(LIBSOURCES)
$(CC) $(CFLAGS) -L$(DESTDIR) -fPIC -shared -Wl,-soname,$@ $^ -o $(DESTDIR)/$@ $(LDFLAGS)
cd_idt8.o: client/cd-it8.c
$(CC) $(CFLAGS) -c $^ -o $(DESTDIR)/$@
cd_idt8: libcolord.so cd_idt8.o
$(CC) $(DESTDIR)/cd_idt8.o -o $(DESTDIR)/$@ -L$(DESTDIR) -lcolord $(LDFLAGS)
cd_create_profile.o: client/cd-create-profile.c
$(CC) $(CFLAGS) -c $^ -o $(DESTDIR)/$@
cd_create_profile: libcolord.so cd_create_profile.o
$(CC) $(DESTDIR)/cd_create_profile.o -o $(DESTDIR)/$@ -L$(DESTDIR) -lcolord $(LDFLAGS)
.PHONY: clean
clean:
rm -f $(DESTDIR)/libcolord.so $(DESTDIR)/*.o $(DESTDIR)/cd_idt8 $(DESTDIR)/cd_create_profile

View File

@ -0,0 +1,44 @@
require ${BPN}.inc
inherit meson gobject-introspection gsettings gettext bash-completion systemd useradd
# polkit and gobject-introspection are mandatory and cannot be configured
UNKNOWN_CONFIGURE_WHITELIST_append = " introspection"
DEPENDS += " \
${BPN}-native \
glib-2.0 \
lcms \
sqlite3 \
libgusb \
libgudev \
polkit \
"
SRC_URI += " \
file://0001-Run-native-cd_idt8-cd_create_profile.patch \
"
EXTRA_OEMESON = " \
-Dman=false \
-Ddocs=false \
"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
PACKAGECONFIG[systemd] = "-Dsystemd=true, -Dsystemd=false, systemd"
SYSTEMD_SERVICE_${PN} = "colord.service"
FILES_${PN} += " \
${datadir}/dbus-1 \
${datadir}/polkit-1 \
${datadir}/glib-2.0 \
${datadir}/color \
${systemd_user_unitdir} \
${libdir}/tmpfiles.d \
${libdir}/colord-plugins \
${libdir}/colord-sensors \
"
USERADD_PACKAGES = "${PN}"
USERADD_PARAM_${PN} = "--system --user-group -d /var/lib/colord -s /bin/false colord"

View File

@ -0,0 +1,13 @@
SUMMARY = "Making color management just work"
HOMEPAGE = "https://www.freedesktop.org/software/colord/"
LICENSE = "GPLv2 & LGPLv2.1"
LIC_FILES_CHKSUM = " \
file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://meson.build;beginline=3;endline=3;md5=f42198707d793be58b274d34fd5238c3 \
"
PV = "1.4.4"
SRC_URI = "https://www.freedesktop.org/software/colord/releases/${BPN}-${PV}.tar.xz"
SRC_URI[md5sum] = "32c2709a6002d9ee750483aaed6379c8"
SRC_URI[sha256sum] = "9a0fe80160bf88efddb582a9fc0169f56065276dc3882c47dddb9eecd048c0a5"

View File

@ -0,0 +1,59 @@
From 5aad8831c0fb71940d6c4f982b0b30ffb6ae33b3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Sun, 12 May 2019 22:47:05 +0200
Subject: [PATCH] Run native cd_idt8/cd_create_profile
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
data/cmf/meson.build | 2 +-
data/illuminant/meson.build | 2 +-
data/profiles/meson.build | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/data/cmf/meson.build b/data/cmf/meson.build
index a693cd7..1ae3613 100644
--- a/data/cmf/meson.build
+++ b/data/cmf/meson.build
@@ -2,7 +2,7 @@ foreach arg: [ 'CIE1964-10deg-XYZ', 'CIE1931-2deg-XYZ' ]
custom_target(arg,
input: arg + '.csv',
output: arg + '.cmf',
- command: [ cd_idt8, 'create-cmf', '@OUTPUT@', '@INPUT@', '1.0' ],
+ command: [ 'cd_idt8', 'create-cmf', '@OUTPUT@', '@INPUT@', '1.0' ],
install: true,
install_dir: join_paths(datadir, 'colord', 'cmf')
)
diff --git a/data/illuminant/meson.build b/data/illuminant/meson.build
index f8dfa07..ad7dced 100644
--- a/data/illuminant/meson.build
+++ b/data/illuminant/meson.build
@@ -24,7 +24,7 @@ foreach arg: generated_spectra
custom_target(arg,
input: arg + '.csv',
output: arg + '.sp',
- command: [ cd_idt8, 'create-sp', '@OUTPUT@', '@INPUT@', '100.0' ],
+ command: [ 'cd_idt8', 'create-sp', '@OUTPUT@', '@INPUT@', '100.0' ],
install: true,
install_dir: join_paths(datadir, 'colord', 'illuminant')
)
diff --git a/data/profiles/meson.build b/data/profiles/meson.build
index 591b97d..2cef011 100644
--- a/data/profiles/meson.build
+++ b/data/profiles/meson.build
@@ -59,7 +59,7 @@ foreach arg: icc_profiles
generated_icc = custom_target(arg + '.icc',
input: xml_i18n,
output: arg + '.icc',
- command: [ cd_create_profile, '--output=@OUTPUT@', '@INPUT@' ],
+ command: [ 'cd_create_profile', '--output=@OUTPUT@', '@INPUT@' ],
install: true,
install_dir: join_paths(datadir, 'color', 'icc', 'colord'),
)
--
2.20.1

View File

@ -1,36 +0,0 @@
SUMMARY = "System service to manage, install and generate color profiles to color manage input and output devices"
HOMEPAGE ="https://www.freedesktop.org/software/colord/"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "https://www.freedesktop.org/software/colord/releases/colord-${PV}.tar.xz"
SRC_URI[md5sum] = "32c2709a6002d9ee750483aaed6379c8"
SRC_URI[sha256sum] = "9a0fe80160bf88efddb582a9fc0169f56065276dc3882c47dddb9eecd048c0a5"
inherit python3native meson meson-exe-wrapper pkgconfig systemd useradd gettext gobject-introspection
WARN_QA_remove = "unknown-configure-option"
DEPENDS = "glib-2.0-native lcms libgusb libgudev polkit"
EXTRA_OEMESON = "-Dargyllcms_sensor=false -Dman=false -Ddocs=false -Ddaemon_user=colord -Dbash_completion=false -Dtests=false --buildtype=release"
PACKAGES += "${PN}-plugins"
FILES_${PN} += "\
${datadir}/glib-2.0/schemas \
${datadir}/polkit-1 \
${datadir}/dbus-1 \
${datadir}/color/icc/colord \
${libdir}/tmpfiles.d \
${systemd_user_unitdir}/colord-session.service \
"
SYSTEMD_SERVICE_${PN} = "colord.service"
FILES_${PN}-plugins = "\
${libdir}/colord-plugins \
${libdir}/colord-sensors \
"
USERADD_PACKAGES = "${PN}"
USERADD_PARAM_${PN} = "--system --home /var/lib/colord --no-create-home --shell /bin/false --user-group colord"

View File

@ -2,7 +2,7 @@ SUMMARY = "GNOME Authentication Agent for PolicyKit"
DESCRIPTION = "PolicyKit-gnome provides an Authentication Agent for PolicyKit that integrates well with the GNOME desktop environment" DESCRIPTION = "PolicyKit-gnome provides an Authentication Agent for PolicyKit that integrates well with the GNOME desktop environment"
HOMEPAGE = "http://www.packagekit.org/" HOMEPAGE = "http://www.packagekit.org/"
BUGTRACKER = "http://bugzilla.gnome.org/" BUGTRACKER = "http://bugzilla.gnome.org/"
DEPENDS = "polkit dbus-glib gconf gtk+ intltool-native gnome-common" DEPENDS = "polkit dbus-glib gconf gtk+3 glib-2.0-native intltool-native gnome-common"
LICENSE = "LGPLv2+" LICENSE = "LGPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=74579fab173e4c5e12aac0cd83ee98ec \ LIC_FILES_CHKSUM = "file://COPYING;md5=74579fab173e4c5e12aac0cd83ee98ec \
file://src/main.c;beginline=1;endline=20;md5=aba145d1802f2329ba561e3e48ecb795" file://src/main.c;beginline=1;endline=20;md5=aba145d1802f2329ba561e3e48ecb795"
@ -17,8 +17,6 @@ EXTRA_OECONF = "\
--disable-static \ --disable-static \
" "
DEPENDS += "gtk+3 glib-2.0-native"
inherit autotools gtk-doc pkgconfig inherit autotools gtk-doc pkgconfig
FILES_${PN} += " ${datadir}/dbus-1 \ FILES_${PN} += " ${datadir}/dbus-1 \

View File

@ -0,0 +1,232 @@
From 21aa2747e8f0048759aab184b07dd6389666d5e6 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 22 May 2019 13:18:55 -0700
Subject: [PATCH] make netgroup support optional
On at least Linux/musl and Linux/uclibc, netgroup
support is not available. PolKit fails to compile on these systems
for that reason.
This change makes netgroup support conditional on the presence of the
setnetgrent(3) function which is required for the support to work. If
that function is not available on the system, an error will be returned
to the administrator if unix-netgroup: is specified in configuration.
Fixes bug 50145.
Closes polkit/polkit#14.
Signed-off-by: A. Wilcox <AWilcox@Wilcox-Tech.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
configure.ac | 2 +-
src/polkit/polkitidentity.c | 16 ++++++++++++++++
src/polkit/polkitunixnetgroup.c | 3 +++
.../polkitbackendinteractiveauthority.c | 14 ++++++++------
src/polkitbackend/polkitbackendjsauthority.cpp | 2 ++
test/polkit/polkitidentitytest.c | 9 ++++++++-
test/polkit/polkitunixnetgrouptest.c | 3 +++
.../test-polkitbackendjsauthority.c | 2 ++
8 files changed, 43 insertions(+), 8 deletions(-)
--- a/configure.ac
+++ b/configure.ac
@@ -99,7 +99,7 @@ AC_CHECK_LIB(expat,XML_ParserCreate,[EXP
[AC_MSG_ERROR([Can't find expat library. Please install expat.])])
AC_SUBST(EXPAT_LIBS)
-AC_CHECK_FUNCS(clearenv fdatasync)
+AC_CHECK_FUNCS(clearenv fdatasync setnetgrent)
if test "x$GCC" = "xyes"; then
LDFLAGS="-Wl,--as-needed $LDFLAGS"
--- a/src/polkit/polkitidentity.c
+++ b/src/polkit/polkitidentity.c
@@ -182,7 +182,15 @@ polkit_identity_from_string (const gcha
}
else if (g_str_has_prefix (str, "unix-netgroup:"))
{
+#ifndef HAVE_SETNETGRENT
+ g_set_error (error,
+ POLKIT_ERROR,
+ POLKIT_ERROR_FAILED,
+ "Netgroups are not available on this machine ('%s')",
+ str);
+#else
identity = polkit_unix_netgroup_new (str + sizeof "unix-netgroup:" - 1);
+#endif
}
if (identity == NULL && (error != NULL && *error == NULL))
@@ -344,6 +352,13 @@ polkit_identity_new_for_gvariant (GVaria
GVariant *v;
const char *name;
+#ifndef HAVE_SETNETGRENT
+ g_set_error (error,
+ POLKIT_ERROR,
+ POLKIT_ERROR_FAILED,
+ "Netgroups are not available on this machine");
+ goto out;
+#else
v = lookup_asv (details_gvariant, "name", G_VARIANT_TYPE_STRING, error);
if (v == NULL)
{
@@ -353,6 +368,7 @@ polkit_identity_new_for_gvariant (GVaria
name = g_variant_get_string (v, NULL);
ret = polkit_unix_netgroup_new (name);
g_variant_unref (v);
+#endif
}
else
{
--- a/src/polkit/polkitunixnetgroup.c
+++ b/src/polkit/polkitunixnetgroup.c
@@ -194,6 +194,9 @@ polkit_unix_netgroup_set_name (PolkitUni
PolkitIdentity *
polkit_unix_netgroup_new (const gchar *name)
{
+#ifndef HAVE_SETNETGRENT
+ g_assert_not_reached();
+#endif
g_return_val_if_fail (name != NULL, NULL);
return POLKIT_IDENTITY (g_object_new (POLKIT_TYPE_UNIX_NETGROUP,
"name", name,
--- a/src/polkitbackend/polkitbackendinteractiveauthority.c
+++ b/src/polkitbackend/polkitbackendinteractiveauthority.c
@@ -2233,25 +2233,26 @@ get_users_in_net_group (PolkitIdentity
GList *ret;
ret = NULL;
+#ifdef HAVE_SETNETGRENT
name = polkit_unix_netgroup_get_name (POLKIT_UNIX_NETGROUP (group));
-#ifdef HAVE_SETNETGRENT_RETURN
+# ifdef HAVE_SETNETGRENT_RETURN
if (setnetgrent (name) == 0)
{
g_warning ("Error looking up net group with name %s: %s", name, g_strerror (errno));
goto out;
}
-#else
+# else
setnetgrent (name);
-#endif
+# endif /* HAVE_SETNETGRENT_RETURN */
for (;;)
{
-#if defined(HAVE_NETBSD) || defined(HAVE_OPENBSD)
+# if defined(HAVE_NETBSD) || defined(HAVE_OPENBSD)
const char *hostname, *username, *domainname;
-#else
+# else
char *hostname, *username, *domainname;
-#endif
+# endif /* defined(HAVE_NETBSD) || defined(HAVE_OPENBSD) */
PolkitIdentity *user;
GError *error = NULL;
@@ -2282,6 +2283,7 @@ get_users_in_net_group (PolkitIdentity
out:
endnetgrent ();
+#endif /* HAVE_SETNETGRENT */
return ret;
}
--- a/src/polkitbackend/polkitbackendjsauthority.cpp
+++ b/src/polkitbackend/polkitbackendjsauthority.cpp
@@ -1502,6 +1502,7 @@ js_polkit_user_is_in_netgroup (JSContext
JS::CallArgs args = JS::CallArgsFromVp (argc, vp);
+#ifdef HAVE_SETNETGRENT
JS::RootedString usrstr (authority->priv->cx);
usrstr = args[0].toString();
user = JS_EncodeStringToUTF8 (cx, usrstr);
@@ -1519,6 +1520,7 @@ js_polkit_user_is_in_netgroup (JSContext
JS_free (cx, netgroup);
JS_free (cx, user);
+#endif
ret = true;
--- a/test/polkit/polkitidentitytest.c
+++ b/test/polkit/polkitidentitytest.c
@@ -19,6 +19,7 @@
* Author: Nikki VonHollen <vonhollen@google.com>
*/
+#include "config.h"
#include "glib.h"
#include <polkit/polkit.h>
#include <polkit/polkitprivate.h>
@@ -145,11 +146,15 @@ struct ComparisonTestData comparison_tes
{"unix-group:root", "unix-group:jane", FALSE},
{"unix-group:jane", "unix-group:jane", TRUE},
+#ifdef HAVE_SETNETGRENT
{"unix-netgroup:foo", "unix-netgroup:foo", TRUE},
{"unix-netgroup:foo", "unix-netgroup:bar", FALSE},
+#endif
{"unix-user:root", "unix-group:root", FALSE},
+#ifdef HAVE_SETNETGRENT
{"unix-user:jane", "unix-netgroup:foo", FALSE},
+#endif
{NULL},
};
@@ -181,11 +186,13 @@ main (int argc, char *argv[])
g_test_add_data_func ("/PolkitIdentity/group_string_2", "unix-group:jane", test_string);
g_test_add_data_func ("/PolkitIdentity/group_string_3", "unix-group:users", test_string);
+#ifdef HAVE_SETNETGRENT
g_test_add_data_func ("/PolkitIdentity/netgroup_string", "unix-netgroup:foo", test_string);
+ g_test_add_data_func ("/PolkitIdentity/netgroup_gvariant", "unix-netgroup:foo", test_gvariant);
+#endif
g_test_add_data_func ("/PolkitIdentity/user_gvariant", "unix-user:root", test_gvariant);
g_test_add_data_func ("/PolkitIdentity/group_gvariant", "unix-group:root", test_gvariant);
- g_test_add_data_func ("/PolkitIdentity/netgroup_gvariant", "unix-netgroup:foo", test_gvariant);
add_comparison_tests ();
--- a/test/polkit/polkitunixnetgrouptest.c
+++ b/test/polkit/polkitunixnetgrouptest.c
@@ -19,6 +19,7 @@
* Author: Nikki VonHollen <vonhollen@google.com>
*/
+#include "config.h"
#include "glib.h"
#include <polkit/polkit.h>
#include <string.h>
@@ -69,7 +70,9 @@ int
main (int argc, char *argv[])
{
g_test_init (&argc, &argv, NULL);
+#ifdef HAVE_SETNETGRENT
g_test_add_func ("/PolkitUnixNetgroup/new", test_new);
g_test_add_func ("/PolkitUnixNetgroup/set_name", test_set_name);
+#endif
return g_test_run ();
}
--- a/test/polkitbackend/test-polkitbackendjsauthority.c
+++ b/test/polkitbackend/test-polkitbackendjsauthority.c
@@ -137,12 +137,14 @@ test_get_admin_identities (void)
"unix-group:users"
}
},
+#ifdef HAVE_SETNETGRENT
{
"net.company.action3",
{
"unix-netgroup:foo"
}
},
+#endif
};
guint n;

View File

@ -9,6 +9,8 @@ DEPENDS = "expat glib-2.0 intltool-native mozjs"
inherit autotools gtk-doc pkgconfig useradd systemd gobject-introspection inherit autotools gtk-doc pkgconfig useradd systemd gobject-introspection
REQUIRED_DISTRO_FEATURES = "polkit"
PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \ PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', \ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', \
bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d), d)} \ bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d), d)} \
@ -20,18 +22,17 @@ PACKAGECONFIG[systemd] = "--enable-libsystemd-login=yes --with-systemdsystemunit
PACKAGECONFIG[consolekit] = ",,,consolekit" PACKAGECONFIG[consolekit] = ",,,consolekit"
PAM_SRC_URI = "file://polkit-1_pam.patch" PAM_SRC_URI = "file://polkit-1_pam.patch"
SRC_URI = "git://gitlab.freedesktop.org/polkit/polkit.git;protocol=https \ SRC_URI = "http://www.freedesktop.org/software/polkit/releases/polkit-${PV}.tar.gz \
${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \
file://0003-make-netgroup-support-optional.patch \
" "
SRCREV = "2e756da8b6517ffa52a58674b6800b0b444b13c2" SRC_URI[md5sum] = "4b37258583393e83069a0e2e89c0162a"
S = "${WORKDIR}/git" SRC_URI[sha256sum] = "88170c9e711e8db305a12fdb8234fac5706c61969b94e084d0f117d8ec5d34b1"
#SRC_URI[md5sum] = "f03b055d6ae5fc8eac76838c7d83d082"
#SRC_URI[sha256sum] = "2f87ecdabfbd415c6306673ceadc59846f059b18ef2fce42bac63fe283f12131"
EXTRA_OECONF = "--with-os-type=moblin \ EXTRA_OECONF = "--with-os-type=moblin \
--disable-man-pages \ --disable-man-pages \
--disable-libelogind \ --disable-libelogind \
--enable-libsystemd-login \
" "
do_compile_prepend () { do_compile_prepend () {

View File

@ -0,0 +1,19 @@
SUMMARY = "AT-SPI 2 Toolkit Bridge"
HOMEPAGE = "https://wiki.linuxfoundation.org/accessibility/d-bus"
LICENSE = "LGPL-2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
SRC_URI[archive.md5sum] = "58cd278574e101363b18d9a8b7053d67"
SRC_URI[archive.sha256sum] = "901323cee0eef05c01ec4dee06c701aeeca81a314a7d60216fa363005e27f4f0"
DEPENDS = "dbus glib-2.0 glib-2.0-native atk at-spi2-core libxml2"
GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase upstream-version-is-even
PACKAGES =+ "${PN}-gnome ${PN}-gtk2"
FILES_${PN}-gnome = "${libdir}/gnome-settings-daemon-3.0/gtk-modules"
FILES_${PN}-gtk2 = "${libdir}/gtk-2.0/modules/libatk-bridge.*"
BBCLASSEXTEND = "native nativesdk"

View File

@ -0,0 +1,36 @@
SUMMARY = "Assistive Technology Service Provider Interface (dbus core)"
HOMEPAGE = "https://wiki.linuxfoundation.org/accessibility/d-bus"
LICENSE = "LGPL-2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz"
SRC_URI[md5sum] = "f101d111b06293d15738afc904c1d931"
SRC_URI[sha256sum] = "88da57de0a7e3c60bc341a974a80fdba091612db3547c410d6deab039ca5c05a"
X11DEPENDS = "virtual/libx11 libxi libxtst"
DEPENDS = "dbus glib-2.0"
DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '${X11DEPENDS}', '', d)}"
inherit meson gtk-doc gettext systemd pkgconfig upstream-version-is-even gobject-introspection
EXTRA_OEMESON = " -Dsystemd_user_dir=${systemd_user_unitdir} \
-Ddbus_daemon=${bindir}/dbus-daemon \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', '-Dx11=yes', '-Dx11=no', d)} \
"
GTKDOC_MESON_OPTION = "docs"
GIR_MESON_OPTION = 'introspection'
GIR_MESON_ENABLE_FLAG = 'yes'
GIR_MESON_DISABLE_FLAG = 'no'
FILES_${PN} += "${datadir}/dbus-1/services/*.service \
${datadir}/dbus-1/accessibility-services/*.service \
${datadir}/defaults/at-spi2 \
${systemd_user_unitdir}/at-spi-dbus-bus.service \
"
BBCLASSEXTEND = "native nativesdk"

View File

@ -0,0 +1,21 @@
SUMMARY = "Accessibility toolkit for GNOME"
HOMEPAGE = "http://live.gnome.org/GAP/"
BUGTRACKER = "https://bugzilla.gnome.org/"
SECTION = "x11/libs"
LICENSE = "GPLv2+ & LGPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
file://atk/atkutil.c;endline=18;md5=6fd31cd2fdc9b30f619ca8d819bc12d3 \
file://atk/atk.h;endline=18;md5=fcd7710187e0eae485e356c30d1b0c3b"
# Need gettext-native as Meson can't turn off i18n
DEPENDS = "gettext-native glib-2.0"
GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase gtk-doc gettext upstream-version-is-even gobject-introspection
SRC_URI[archive.md5sum] = "01aa5ec5138f5f8c9b3a4e3196ed2900"
SRC_URI[archive.sha256sum] = "fb76247e369402be23f1f5c65d38a9639c1164d934e40f6a9cf3c9e96b652788"
BBCLASSEXTEND = "native nativesdk"

View File

@ -0,0 +1,24 @@
SUMMARY = "configuation database system"
LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
SECTION = "x11/gnome"
SRC_URI[archive.md5sum] = "1a50c988d9f0206f74a44f7c6d09cead"
SRC_URI[archive.sha256sum] = "9fe6bb22191fc2a036ad86fd8e7d165e9983c687b9fedccf85d46c799301da2d"
DEPENDS = "dbus glib-2.0 xmlto-native glib-2.0-native"
GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase bash-completion vala
SRC_URI += "file://0001-meson.build-do-not-compile-docs.patch"
FILES_${PN} += " \
${datadir}/dbus-1 \
${libdir}/gio/modules/*.so \
"
EXTRA_OEMESON_append_class-native = "-Dbash_completion=false"
BBCLASSEXTEND= "native"

View File

@ -0,0 +1,45 @@
From ebb77dad4563b882b449cbc5e882f36ac8c2de71 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Mon, 11 May 2020 22:19:16 +0000
Subject: [PATCH] meson.build: correctly set internal vapi dependencies
If they are set as strings, meson will supply the right
arguments to vapigen, but will not set the ninja dependencies
to ensure they get built first, and so races will occur:
https://autobuilder.yoctoproject.org/typhoon/#/builders/64/builds/1881/steps/8/logs/step1b
Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gcr/-/merge_requests/55]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
gcr/meson.build | 2 +-
ui/meson.build | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/gcr/meson.build b/gcr/meson.build
index 254a933..199452f 100644
--- a/gcr/meson.build
+++ b/gcr/meson.build
@@ -203,7 +203,7 @@ if get_option('introspection')
gcr_vapi = gnome.generate_vapi('gcr-@0@'.format(gcr_major_version),
sources: gcr_gir[0],
- packages: [ 'glib-2.0', 'gio-2.0', 'gck-@0@'.format(gck_major_version) ],
+ packages: [ 'glib-2.0', 'gio-2.0', gck_vapi ],
metadata_dirs: meson.current_source_dir(),
vapi_dirs: [
build_root / 'gck',
diff --git a/ui/meson.build b/ui/meson.build
index 5ca3753..477412d 100644
--- a/ui/meson.build
+++ b/ui/meson.build
@@ -174,8 +174,8 @@ if get_option('introspection')
packages: [
'glib-2.0',
'gio-2.0',
- 'gck-@0@'.format(gck_major_version),
- 'gcr-@0@'.format(gcr_major_version),
+ gck_vapi,
+ gcr_vapi,
'gtk+-3.0'
],
metadata_dirs: meson.current_source_dir(),

View File

@ -1,32 +0,0 @@
SUMMARY = "A library for bits of crypto UI and parsing etc"
HOMEPAGE = "http://www.gnome.org/"
BUGTRACKER = "https://bugzilla.gnome.org/"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
DEPENDS = "intltool-native gtk+3 p11-kit glib-2.0 libgcrypt \
${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'libxslt-native', '', d)}"
inherit autotools gnomebase gtk-icon-cache gtk-doc distro_features_check upstream-version-is-even vala gobject-introspection
# depends on gtk+3, but also x11 through gtk+-x11
REQUIRED_DISTRO_FEATURES = "x11"
SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \
file://0001-Use-pkgconfig-to-find-libgcrypt.patch \
"
SRC_URI[archive.md5sum] = "afd88cacfd54c1ac5b3e0eb35e3aa674"
SRC_URI[archive.sha256sum] = "95204aa2111c301778ebfbe60975ce3ed698c958430ffcc2a785ac5e593d168b"
FILES_${PN} += " \
${datadir}/dbus-1 \
${datadir}/gcr-3 \
"
# http://errors.yoctoproject.org/Errors/Details/20229/
ARM_INSTRUCTION_SET = "arm"
do_install_append () {
rm ${D}${datadir}/applications/gcr-prompter.desktop
rm ${D}${datadir}/applications/gcr-viewer.desktop
}

View File

@ -0,0 +1,32 @@
SUMMARY = "A library for bits of crypto UI and parsing etc"
DESCRIPTION = "GCR is a library for displaying certificates, and crypto UI, \
accessing key stores. It also provides the viewer for crypto files on the \
GNOME desktop."
HOMEPAGE = "https://gitlab.gnome.org/GNOME/gcr"
BUGTRACKER = "https://gitlab.gnome.org/GNOME/gcr/issues"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
DEPENDS = "gtk+3 p11-kit glib-2.0 libgcrypt gnupg-native \
${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'libxslt-native', '', d)}"
GNOMEBASEBUILDCLASS = "meson"
GTKDOC_MESON_OPTION = "gtk_doc"
inherit gnomebase gtk-icon-cache gtk-doc distro_features_check upstream-version-is-even vala gobject-introspection gettext mime
# depends on gtk+3, but also x11 through gtk+-x11
REQUIRED_DISTRO_FEATURES = "x11"
SRC_URI += " file://0001-meson.build-correctly-set-internal-vapi-dependencies.patch"
SRC_URI[archive.md5sum] = "adc65563b6b458507b9a578a8b68fb61"
SRC_URI[archive.sha256sum] = "aaf9bed017a2263c6145c89a1a84178f9f40f238426463e4ae486694ef5f6601"
FILES_${PN} += " \
${datadir}/dbus-1 \
${datadir}/gcr-3 \
"
# http://errors.yoctoproject.org/Errors/Details/20229/
ARM_INSTRUCTION_SET_armv4 = "arm"
ARM_INSTRUCTION_SET_armv5 = "arm"
ARM_INSTRUCTION_SET_armv6 = "arm"

View File

@ -0,0 +1,48 @@
From f7bba53adf8a26f900442a05bb98326747c392b4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Tue, 3 Dec 2019 00:24:27 +0100
Subject: [PATCH] Ensure pam-file installation
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
All the detection magic does not work for us
Upstream-Status: Inappropriate [OE-specific]
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
data/Makefile.am | 12 +-----------
1 file changed, 1 insertion(+), 11 deletions(-)
diff --git a/data/Makefile.am b/data/Makefile.am
index bda9160..dbc3ea3 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -296,22 +296,12 @@ endif
chown root:root $(DESTDIR)$(logdir) || : ; \
fi
- system=`uname`; \
- if test -f /usr/include/security/pam_appl.h; then \
- if test '!' -d $(DESTDIR)$(PAM_PREFIX)/pam.d; then \
$(mkinstalldirs) $(DESTDIR)$(PAM_PREFIX)/pam.d; \
chmod 755 $(DESTDIR)$(PAM_PREFIX)/pam.d; \
- fi; \
- if test $$system = Linux; then \
for pamfile in $(pam_files); do \
bn=$$(basename $$pamfile .pam); \
$(INSTALL_DATA) $(srcdir)/$$pamfile $(DESTDIR)$(PAM_PREFIX)/pam.d/$$bn; \
- done; \
- fi; \
- if test $$system = SunOS; then \
- echo "Please add PAM authentication for gdm, gdm-autologin and gdm-welcome in $(PAM_PREFIX)/pam.conf!"; \
- fi; \
- fi
+ done;
if test '!' -d $(DESTDIR)$(xauthdir); then \
$(mkinstalldirs) $(DESTDIR)$(xauthdir); \
--
2.21.0

View File

@ -1,43 +0,0 @@
SUMMARY = "GNOME display manager"
HOMEPAGE = "https://wiki.gnome.org/Projects/GDM"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
inherit gnomebase useradd gettext pkgconfig autotools gobject-introspection systemd
SRC_URI[archive.md5sum] = "3af260a278e99ff4b17b999fd6c44465"
SRC_URI[archive.sha256sum] = "791f24f0e15d7dcd747efa2957f2bad3d5c9aeab185b0090bfba19bcc57b958a"
SRC_URI += "\
file://gdm.conf \
file://0001-replace-absolute-path-with-staging-path.patch \
"
DEPENDS = "libxcb libxinerama libxau libxdmcp intltool-native glib-2.0 accountsservice libpam libcheck libcanberra gtk+3 libx11 libxi systemd libxext glib-2.0-native dconf-native plymouth"
FILES_${PN} += "\
${libdir}/systemd/system/gdm.service \
${libdir}/security/pam_gdm.so \
${datadir}/gnome-session/sessions \
${datadir}/dconf/profile \
/run/gdm/greeter \
"
do_install_append() {
install -d ${D}${sysconfdir}/default/volatiles
echo "d gdm gdm 755 ${localstatedir}/run/gdm/greeter none" > ${D}${sysconfdir}/default/volatiles/99_gdm
rm -rf ${D}/run/gdm
rm ${D}${sysconfdir}/gdm/custom.conf
rm ${D}${libdir}/udev/rules.d/61-gdm.rules
install -m 644 ${WORKDIR}/gdm.conf ${D}${sysconfdir}/gdm/custom.conf
}
SYSTEMD_SERVICE_${PN} = "gdm.service"
USERADD_PACKAGES = "${PN}"
USERADD_PARAM_${PN} = "--system --home /var/lib/gdm -u 21 -s /bin/false --user-group gdm"
EXTRA_OECONF = "--enable-introspection --enable-systemd-journal --enable-wayland-support --with-xdmcp=no --disable-static --with-default-pam-config=openembedded --with-plymouth=yes"

View File

@ -0,0 +1,75 @@
SUMMARY = "GNOME Display Manager"
LICENSE="GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
DEPENDS = " \
dconf-native \
gtk+3 \
glib-2.0 \
accountsservice \
libcanberra \
libxinerama \
libpam \
plymouth \
"
REQUIRED_DISTRO_FEATURES = "x11 systemd pam"
inherit gnomebase gsettings gobject-introspection gettext systemd useradd upstream-version-is-even distro_features_check
SRC_URI[archive.md5sum] = "65d1fd4bb85e8b133d1cbffb80ecf62e"
SRC_URI[archive.sha256sum] = "e85df657aa8d9361af4fb122014d8f123a93bfe45a7662fba2b373d839dbd8d3"
SRC_URI += "\
file://gdm.conf \
file://0001-replace-absolute-path-with-staging-path.patch \
"
# Some gnome components - as gnome-panel and gnome-shell (!!) - require gdm
# components. To allow gnome-images using different display-manager, split them
# out into a seperate package.
#PACKAGE_BEFORE_PN = "${PN}-base"
#FILES_${PN}-base = " \
# ${datadir}/glib-2.0 \
# ${datadir}/gnome-session \
# ${libdir}/lib*${SOLIBS} \
# ${libdir}/girepository-1.0 \
#"
#CONFFILES_${PN} += "${sysconfdir}/gdm/custom.conf"
FILES_${PN} += " \
${libdir}/systemd/system/gdm.service \
${base_libdir}/security/pam_gdm.so \
${datadir}/gnome-session/sessions \
${datadir}/dconf/profile \
/run/gdm/greeter \
"
do_install_append() {
install -d ${D}${sysconfdir}/default/volatiles
echo "d gdm gdm 755 ${localstatedir}/run/gdm/greeter none" > ${D}${sysconfdir}/default/volatiles/99_gdm
rm ${D}${sysconfdir}/gdm/custom.conf
rm -rf ${D}/run/gdm
rm ${D}${libdir}/udev/rules.d/61-gdm.rules
install -m 644 ${WORKDIR}/gdm.conf ${D}${sysconfdir}/gdm/custom.conf
}
USERADD_PACKAGES = "${PN}"
USERADD_PARAM_${PN} = "--system --home /var/lib/gdm -u 21 -s /bin/false --user-group gdm"
SYSTEMD_SERVICE_${PN} = "${BPN}.service"
EXTRA_OECONF = " \
--with-plymouth \
--with-default-pam-config=openembedded \
--with-pam-mod-dir=${base_libdir}/security \
--enable-introspection \
--enable-systemd-journal \
--enable-wayland-support \
--with-xdmcp=no \
--disable-static \
--enable-gdm-xsession \
--with-initial-vt=7 \
"

View File

@ -0,0 +1,63 @@
From 462ed3afdfc6988daf79448558f5433ea773e64c Mon Sep 17 00:00:00 2001
From: David McKinney <mckinne@subgraph.com>
Date: Thu, 2 Jul 2020 14:52:35 +0000
Subject: [PATCH] Fix tests that cannot run
---
meson.build | 36 ++++++++++++++++++------------------
1 file changed, 18 insertions(+), 18 deletions(-)
diff --git a/meson.build b/meson.build
index 2ffbf28..6679e45 100644
--- a/meson.build
+++ b/meson.build
@@ -221,23 +221,23 @@ endif
# Check if a minimal SpiderMonkey program compiles, links, and runs. If not,
# it's most likely the case that SpiderMonkey was configured incorrectly, for
# example by building mozglue as a shared library.
-minimal_program = cxx.run('''
-#include <js/Initialization.h>
-int main(void) {
- if (!JS_Init()) return 1;
- JS_ShutDown();
- return 0;
-}
-''',
- args: debug_arg, dependencies: spidermonkey,
- name: 'SpiderMonkey sanity check')
-
-if not minimal_program.compiled() or minimal_program.returncode() != 0
- error('''A minimal SpiderMonkey program
-could not be compiled, linked, or run. Most likely you should build it with a
-different configuration. Check the recommended configuration:
-https://github.com/spidermonkey-embedders/spidermonkey-embedding-examples/blob/esr60/docs/Building%20SpiderMonkey.md''')
-endif
+#minimal_program = cxx.run('''
+##include <js/Initialization.h>
+#int main(void) {
+# if (!JS_Init()) return 1;
+# JS_ShutDown();
+# return 0;
+#}
+#''',
+# args: debug_arg, dependencies: spidermonkey,
+# name: 'SpiderMonkey sanity check')
+
+#if not minimal_program.compiled() or minimal_program.returncode() != 0
+# error('''A minimal SpiderMonkey program
+#could not be compiled, linked, or run. Most likely you should build it with a
+#different configuration. Check the recommended configuration:
+#https://github.com/spidermonkey-embedders/spidermonkey-embedding-examples/blob/esr60/docs/Building%20SpiderMonkey.md''')
+#endif
have_printf_alternative_int = cc.compiles('''
#include <stdio.h>
@@ -610,7 +610,7 @@ if not get_option('skip_gtk_tests')
have_gtk4 = dependency('gtk4', required: false).found()
endif
-subdir('installed-tests')
+#subdir('installed-tests')
valgrind_environment = environment()
valgrind_environment.set('G_SLICE', 'always-malloc,debug-blocks')

View File

@ -0,0 +1,24 @@
SUMMARY = "GNOME javascript bindings based on the Spidermonkey javascript engine"
HOMEPAGE = "https://wiki.gnome.org/Projects/Gjs"
LICENSE = "MIT & LGPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=beb29cf17fabe736f0639b09ee6e76fa \
file://COPYING.LGPL;md5=3bf50002aefd002f49e7bb854063f7e7"
inherit gnomebase gettext gobject-introspection meson
WARN_QA_remove = "unknown-configure-option"
export GIDATADIR="${STAGING_DATADIR_NATIVE}/gobject-introspection-1.0"
DEPENDS = "glib-2.0 gobject-introspection gobject-introspection-native cairo gtk+3 mozjs68 glib-2.0-native"
EXTRA_OEMESON = " -Dskip_dbus_tests=true -Dskip_gtk_tests=true -Dinstalled_tests=false -Dpkgconfig-sysroot-path=${GIDATADIR}"
SRC_URI += " file://0001-Fix-tests-that-cannot-run.patch"
SRC_URI[archive.md5sum] = "bd2f7f411b46016e8ee2d2c8d3c140d9"
SRC_URI[archive.sha256sum] = "15ff834d374df19595d955f03e6b60631a3bb14fabda36d00f81ab3eabd3997b"
RDEPENDS_${PN} += "libmozjs-68"
FILES_${PN}-dbg += "${datadir}/gjs-1.0/lsan ${datadir}/gjs-1.0/valgrind"

View File

@ -0,0 +1,39 @@
From d250652782b65b071b7cc8f01f2db833df104e0e Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 16 Apr 2016 13:28:59 -0700
Subject: [PATCH] Do not ignore return value of write()
gcc warns about ignoring return value when compiling
with fortify turned on.
assert when write() fails
Upstream-Status: Submitted
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
glib/tests/unix.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/glib/tests/unix.c b/glib/tests/unix.c
index 9d55a6c..a07f945 100644
--- a/glib/tests/unix.c
+++ b/glib/tests/unix.c
@@ -32,14 +32,15 @@ test_pipe (void)
GError *error = NULL;
int pipefd[2];
char buf[1024];
- gssize bytes_read;
+ gssize bytes_read, bytes_written;
gboolean res;
res = g_unix_open_pipe (pipefd, FD_CLOEXEC, &error);
g_assert (res);
g_assert_no_error (error);
- write (pipefd[1], "hello", sizeof ("hello"));
+ bytes_written = write (pipefd[1], "hello", sizeof ("hello"));
+ g_assert (bytes_written != -1 && "write() failed");
memset (buf, 0, sizeof (buf));
bytes_read = read (pipefd[0], buf, sizeof(buf) - 1);
g_assert_cmpint (bytes_read, >, 0);

View File

@ -0,0 +1,61 @@
From 60b36289ac314ad972cf81c1acd19f6f2e58ff25 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Fri, 15 Feb 2019 11:17:27 +0100
Subject: [PATCH] Do not write $bindir into pkg-config files
This would otherwise break when using the files to build other target
components (we need to rely on PATH containing the paths to utilities,
rather than use target paths).
Upstream-Status: Inappropriate [upstream wants the paths in .pc files]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
gio/meson.build | 16 ++++++++--------
glib/meson.build | 6 +++---
2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/gio/meson.build b/gio/meson.build
index 71e88c4..8ce3987 100644
--- a/gio/meson.build
+++ b/gio/meson.build
@@ -831,14 +831,14 @@ pkg.generate(libgio,
'schemasdir=' + join_paths('${datadir}', schemas_subdir),
'bindir=' + join_paths('${prefix}', get_option('bindir')),
'giomoduledir=' + giomodulesdir,
- 'gio=' + join_paths('${bindir}', 'gio'),
- 'gio_querymodules=' + join_paths('${bindir}', 'gio-querymodules'),
- 'glib_compile_schemas=' + join_paths('${bindir}', 'glib-compile-schemas'),
- 'glib_compile_resources=' + join_paths('${bindir}', 'glib-compile-resources'),
- 'gdbus=' + join_paths('${bindir}', 'gdbus'),
- 'gdbus_codegen=' + join_paths('${bindir}', 'gdbus-codegen'),
- 'gresource=' + join_paths('${bindir}', 'gresource'),
- 'gsettings=' + join_paths('${bindir}', 'gsettings')],
+ 'gio=gio',
+ 'gio_querymodules=gio-querymodules',
+ 'glib_compile_schemas=glib-compile-schemas',
+ 'glib_compile_resources=glib-compile-resources',
+ 'gdbus=gdbus',
+ 'gdbus_codegen=gdbus-codegen',
+ 'gresource=gresource',
+ 'gsettings=gsettings'],
version : glib_version,
install_dir : glib_pkgconfigreldir,
filebase : 'gio-2.0',
diff --git a/glib/meson.build b/glib/meson.build
index 91a48f1..978fb73 100644
--- a/glib/meson.build
+++ b/glib/meson.build
@@ -375,9 +375,9 @@ pkg.generate(libglib,
subdirs : ['glib-2.0'],
extra_cflags : ['-I${libdir}/glib-2.0/include'] + win32_cflags,
variables : ['bindir=' + join_paths('${prefix}', get_option('bindir')),
- 'glib_genmarshal=' + join_paths('${bindir}', 'glib-genmarshal'),
- 'gobject_query=' + join_paths('${bindir}', 'gobject-query'),
- 'glib_mkenums=' + join_paths('${bindir}', 'glib-mkenums')],
+ 'glib_genmarshal=glib-genmarshal',
+ 'gobject_query=gobject-query',
+ 'glib_mkenums=glib-mkenums'],
version : glib_version,
install_dir : glib_pkgconfigreldir,
filebase : 'glib-2.0',

View File

@ -0,0 +1,34 @@
From 15f807481de53942525b48952c5b6bbb9fb66542 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 15 Mar 2014 22:42:29 -0700
Subject: [PATCH] Fix DATADIRNAME on uclibc/Linux
translation files are always installed under PREFIX/share/locale in uclibc
based systems therefore lets set DATADIRNAME to "share".
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Pending
%% original patch: uclibc_musl_translation.patch
---
m4macros/glib-gettext.m4 | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/m4macros/glib-gettext.m4 b/m4macros/glib-gettext.m4
index df6fbf0..47db864 100644
--- a/m4macros/glib-gettext.m4
+++ b/m4macros/glib-gettext.m4
@@ -293,6 +293,10 @@ msgstr ""
CATOBJEXT=.mo
DATADIRNAME=share
;;
+ *-*-musl* | *-*-linux-uclibc*)
+ CATOBJEXT=.gmo
+ DATADIRNAME=share
+ ;;
*)
CATOBJEXT=.mo
DATADIRNAME=lib
--
2.17.1

View File

@ -0,0 +1,27 @@
From d29dfba67b1808eea6d428085f95b6e42cf2d1e4 Mon Sep 17 00:00:00 2001
From: Jussi Kukkonen <jussi.kukkonen@intel.com>
Date: Tue, 22 Mar 2016 15:14:58 +0200
Subject: [PATCH] Install gio-querymodules as libexec_PROGRAM
We want to install this binary with the gio library, and debian
renamer does not cope with library packages with files in ${bindir}
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Upstream-Status: Inappropriate [OE specific]
---
gio/meson.build | 1 +
1 file changed, 1 insertion(+)
diff --git a/gio/meson.build b/gio/meson.build
index 4e5e021..90a741a 100644
--- a/gio/meson.build
+++ b/gio/meson.build
@@ -940,6 +940,7 @@ gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodu
c_args : gio_c_args,
# intl.lib is not compatible with SAFESEH
link_args : noseh_link_args,
+ install_dir: glib_libexecdir,
dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
glib_compile_schemas = executable('glib-compile-schemas',

View File

@ -0,0 +1,43 @@
From 2acf40361eecd17c6981743dabd06e25a9934258 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Fri, 12 Jun 2015 17:08:46 +0300
Subject: [PATCH 05/10] Remove the warning about deprecated paths in schemas
Some schemas in gsettings-desktop-schemas (such as proxy and locale)
are still using deprecated paths, as of 3.16.1. This causes warning
messages, and meta/lib/oe/rootfs.py complaints about them.
Upstream-Status: Inappropriate
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
gio/glib-compile-schemas.c | 13 -------------
1 file changed, 13 deletions(-)
diff --git a/gio/glib-compile-schemas.c b/gio/glib-compile-schemas.c
index b8de090..130f89b 100644
--- a/gio/glib-compile-schemas.c
+++ b/gio/glib-compile-schemas.c
@@ -1219,19 +1219,6 @@ parse_state_start_schema (ParseState *state,
return;
}
- if (path && (g_str_has_prefix (path, "/apps/") ||
- g_str_has_prefix (path, "/desktop/") ||
- g_str_has_prefix (path, "/system/")))
- {
- gchar *message = NULL;
- message = g_strdup_printf (_("Warning: Schema “%s” has path “%s”. "
- "Paths starting with "
- "“/apps/”, “/desktop/” or “/system/” are deprecated."),
- id, path);
- g_printerr ("%s\n", message);
- g_free (message);
- }
-
state->schema_state = schema_state_new (path, gettext_domain,
extends, extends_name, list_of);
--
2.14.1

View File

@ -0,0 +1,95 @@
From cfff734af6bff6a30a649f784ecf698658c01884 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Wed, 13 Feb 2019 15:32:05 +0100
Subject: [PATCH] Set host_machine correctly when building with mingw32
Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
gio/tests/meson.build | 8 ++++----
glib/tests/meson.build | 2 +-
meson.build | 3 +++
tests/meson.build | 2 +-
4 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/gio/tests/meson.build b/gio/tests/meson.build
index 95aafc1..9025eb2 100644
--- a/gio/tests/meson.build
+++ b/gio/tests/meson.build
@@ -13,7 +13,7 @@ test_c_args = [
'-UG_DISABLE_ASSERT',
]
-if host_machine.system() == 'windows'
+if host_system == 'windows'
common_gio_tests_deps += [iphlpapi_dep, winsock2, cc.find_library ('secur32')]
endif
@@ -120,7 +120,7 @@ if dbus1_dep.found()
endif
# Test programs buildable on UNIX only
-if host_machine.system() != 'windows'
+if host_system != 'windows'
gio_tests += {
'file' : {},
'gdbus-peer' : {
@@ -332,7 +332,7 @@ if host_machine.system() != 'windows'
endif # unix
# Test programs buildable on Windows only
-if host_machine.system() == 'windows'
+if host_system == 'windows'
gio_tests += {'win32-streams' : {}}
endif
@@ -397,7 +397,7 @@ if cc.get_id() != 'msvc' and cc.get_id() != 'clang-cl'
}
endif
-if host_machine.system() != 'windows'
+if host_system != 'windows'
test_extra_programs += {
'gdbus-example-unix-fd-client' : {
'install' : false,
diff --git a/glib/tests/meson.build b/glib/tests/meson.build
index c47133f..cad975f 100644
--- a/glib/tests/meson.build
+++ b/glib/tests/meson.build
@@ -132,7 +132,7 @@ if glib_conf.has('HAVE_EVENTFD')
}
endif
-if host_machine.system() == 'windows'
+if host_system == 'windows'
if winsock2.found()
glib_tests += {
'gpoll' : {
diff --git a/meson.build b/meson.build
index 717d1bc..2a3beb8 100644
--- a/meson.build
+++ b/meson.build
@@ -32,6 +32,9 @@ else
endif
host_system = host_machine.system()
+if host_system == 'mingw32'
+ host_system = 'windows'
+endif
glib_version = meson.project_version()
glib_api_version = '2.0'
diff --git a/tests/meson.build b/tests/meson.build
index ce30442..5710f2c 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -66,7 +66,7 @@ test_extra_programs = {
'unicode-collate' : {},
}
-if host_machine.system() != 'windows'
+if host_system != 'windows'
tests += {
'timeloop' : {},
'iochannel-test' : {},

View File

@ -0,0 +1,27 @@
From 730803f2bc3f2f1a74f4db809a224066e7eae114 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Wed, 8 Jan 2020 18:22:46 +0100
Subject: [PATCH] gio/tests/resources.c: comment out a build host-only test
This test requires building resources in a way that is
not cross-compatible (hardcodes ld and objcopy).
Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
gio/tests/resources.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gio/tests/resources.c b/gio/tests/resources.c
index c44d214..e289a01 100644
--- a/gio/tests/resources.c
+++ b/gio/tests/resources.c
@@ -993,7 +993,7 @@ main (int argc,
g_test_add_func ("/resource/automatic", test_resource_automatic);
/* This only uses automatic resources too, so it tests the constructors and destructors */
g_test_add_func ("/resource/module", test_resource_module);
- g_test_add_func ("/resource/binary-linked", test_resource_binary_linked);
+ /* g_test_add_func ("/resource/binary-linked", test_resource_binary_linked); */
#endif
g_test_add_func ("/resource/uri/query-info", test_uri_query_info);
g_test_add_func ("/resource/uri/file", test_uri_file);

View File

@ -0,0 +1,31 @@
From cce617bec254e327ed7bcad60f58208024c6dc42 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 12 Oct 2019 17:46:26 -0700
Subject: [PATCH] meson: Run atomics test on clang as well
Fixes
./glib-2.62.1/glib/gatomic.c:675:2: error: G_ATOMIC_LOCK_FREE defined, but incapable of lock-free atomics.
^
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
index 9731de4..c678931 100644
--- a/meson.build
+++ b/meson.build
@@ -1634,7 +1634,7 @@ atomicdefine = '''
# We know that we can always use real ("lock free") atomic operations with MSVC
if cc.get_id() == 'msvc' or cc.get_id() == 'clang-cl' or cc.links(atomictest, name : 'atomic ops')
have_atomic_lock_free = true
- if cc.get_id() == 'gcc' and not cc.compiles(atomicdefine, name : 'atomic ops define')
+ if (cc.get_id() == 'gcc' or cc.get_id() == 'clang') and not cc.compiles(atomicdefine, name : 'atomic ops define')
# Old gcc release may provide
# __sync_bool_compare_and_swap but doesn't define
# __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4
--
2.23.0

View File

@ -0,0 +1,46 @@
From b9160d951b9af647b97766c57295ca4f45cf9521 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Tue, 3 Oct 2017 10:45:55 +0300
Subject: [PATCH 10/10] Do not hardcode python path into various tools
Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
gio/gdbus-2.0/codegen/gdbus-codegen.in | 2 +-
gobject/glib-genmarshal.in | 2 +-
gobject/glib-mkenums.in | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/gio/gdbus-2.0/codegen/gdbus-codegen.in b/gio/gdbus-2.0/codegen/gdbus-codegen.in
index 8050981..e693ef3 100755
--- a/gio/gdbus-2.0/codegen/gdbus-codegen.in
+++ b/gio/gdbus-2.0/codegen/gdbus-codegen.in
@@ -1,4 +1,4 @@
-#!/usr/bin/env @PYTHON@
+#!/usr/bin/env python3
# GDBus - GLib D-Bus Library
#
diff --git a/gobject/glib-genmarshal.in b/gobject/glib-genmarshal.in
index 09e8408..b2f9d99 100755
--- a/gobject/glib-genmarshal.in
+++ b/gobject/glib-genmarshal.in
@@ -1,4 +1,4 @@
-#!/usr/bin/env @PYTHON@
+#!/usr/bin/env python3
# pylint: disable=too-many-lines, missing-docstring, invalid-name
diff --git a/gobject/glib-mkenums.in b/gobject/glib-mkenums.in
index d4bfd11..051fce4 100755
--- a/gobject/glib-mkenums.in
+++ b/gobject/glib-mkenums.in
@@ -1,4 +1,4 @@
-#!/usr/bin/env @PYTHON@
+#!/usr/bin/env python3
# If the code below looks horrible and unpythonic, do not panic.
#
--
2.14.1

View File

@ -0,0 +1,43 @@
From ef2be42998e3fc10299055a5a01f7c791538174c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com>
Date: Mon, 3 Feb 2020 15:38:28 +0200
Subject: [PATCH] GMainContext - Fix GSource iterator if iteration can modify
the list
We first have to ref the next source and then unref the previous one.
This might be the last reference to the previous source, and freeing the
previous source might unref and free the next one which would then leave
use with a dangling pointer here.
Fixes https://gitlab.gnome.org/GNOME/glib/issues/2031
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/b06c48de7554607ff3fb58d6c0510cfa5088e909]
---
glib/gmain.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/glib/gmain.c b/glib/gmain.c
index af979c8..a9a287d 100644
--- a/glib/gmain.c
+++ b/glib/gmain.c
@@ -969,13 +969,17 @@ g_source_iter_next (GSourceIter *iter, GSource **source)
* GSourceList to be removed from source_lists (if iter->source is
* the only source in its list, and it is destroyed), so we have to
* keep it reffed until after we advance iter->current_list, above.
+ *
+ * Also we first have to ref the next source before unreffing the
+ * previous one as unreffing the previous source can potentially
+ * free the next one.
*/
+ if (next_source && iter->may_modify)
+ g_source_ref (next_source);
if (iter->source && iter->may_modify)
g_source_unref_internal (iter->source, iter->context, TRUE);
iter->source = next_source;
- if (iter->source && iter->may_modify)
- g_source_ref (iter->source);
*source = iter->source;
return *source != NULL;

View File

@ -0,0 +1,109 @@
From 611430a32a46d0dc806a829161e2dccf9c0196a8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com>
Date: Mon, 3 Feb 2020 15:35:51 +0200
Subject: [PATCH] GMainContext - Fix memory leaks and memory corruption when
freeing sources while freeing a context
Instead of destroying sources directly while freeing the context, and
potentially freeing them if this was the last reference to them, collect
new references of all sources in a separate list before and at the same
time invalidate their context so that they can't access it anymore. Only
once all sources have their context invalidated, destroy them while
still keeping a reference to them. Once all sources are destroyed we get
rid of the additional references and free them if nothing else keeps a
reference to them anymore.
This fixes a regression introduced by 26056558be in 2012.
The previous code that invalidated the context of each source and then
destroyed it before going to the next source without keeping an
additional reference caused memory leaks or memory corruption depending
on the order of the sources in the sources lists.
If a source was destroyed it might happen that this was the last
reference to this source, and it would then be freed. This would cause
the finalize function to be called, which might destroy and unref
another source and potentially free it. This other source would then
either
- go through the normal free logic and change the intern linked list
between the sources, while other sources that are unreffed as part of
the main context freeing would not. As such the list would be in an
inconsistent state and we might dereference freed memory.
- go through the normal destroy and free logic but because the context
pointer was already invalidated it would simply mark the source as
destroyed without actually removing it from the context. This would
then cause a memory leak because the reference owned by the context is
not freed.
Fixes https://github.com/gtk-rs/glib/issues/583 while still keeping
https://bugzilla.gnome.org/show_bug.cgi?id=661767 fixes.
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/aa20167d419c649f34fed06a9463890b41b1eba0]
---
glib/gmain.c | 35 ++++++++++++++++++++++++++++++++++-
1 file changed, 34 insertions(+), 1 deletion(-)
diff --git a/glib/gmain.c b/glib/gmain.c
index a9a287d..10ba2f8 100644
--- a/glib/gmain.c
+++ b/glib/gmain.c
@@ -538,6 +538,7 @@ g_main_context_unref (GMainContext *context)
GSourceIter iter;
GSource *source;
GList *sl_iter;
+ GSList *s_iter, *remaining_sources = NULL;
GSourceList *list;
guint i;
@@ -557,10 +558,30 @@ g_main_context_unref (GMainContext *context)
/* g_source_iter_next() assumes the context is locked. */
LOCK_CONTEXT (context);
- g_source_iter_init (&iter, context, TRUE);
+
+ /* First collect all remaining sources from the sources lists and store a
+ * new reference in a separate list. Also set the context of the sources
+ * to NULL so that they can't access a partially destroyed context anymore.
+ *
+ * We have to do this first so that we have a strong reference to all
+ * sources and destroying them below does not also free them, and so that
+ * none of the sources can access the context from their finalize/dispose
+ * functions. */
+ g_source_iter_init (&iter, context, FALSE);
while (g_source_iter_next (&iter, &source))
{
source->context = NULL;
+ remaining_sources = g_slist_prepend (remaining_sources, g_source_ref (source));
+ }
+ g_source_iter_clear (&iter);
+
+ /* Next destroy all sources. As we still hold a reference to all of them,
+ * this won't cause any of them to be freed yet and especially prevents any
+ * source that unrefs another source from its finalize function to be freed.
+ */
+ for (s_iter = remaining_sources; s_iter; s_iter = s_iter->next)
+ {
+ source = s_iter->data;
g_source_destroy_internal (source, context, TRUE);
}
UNLOCK_CONTEXT (context);
@@ -585,6 +606,18 @@ g_main_context_unref (GMainContext *context)
g_cond_clear (&context->cond);
g_free (context);
+
+ /* And now finally get rid of our references to the sources. This will cause
+ * them to be freed unless something else still has a reference to them. Due
+ * to setting the context pointers in the sources to NULL above, this won't
+ * ever access the context or the internal linked list inside the GSource.
+ * We already removed the sources completely from the context above. */
+ for (s_iter = remaining_sources; s_iter; s_iter = s_iter->next)
+ {
+ source = s_iter->data;
+ g_source_unref_internal (source, NULL, FALSE);
+ }
+ g_slist_free (remaining_sources);
}
/* Helper function used by mainloop/overflow test.

View File

@ -0,0 +1,36 @@
From 3e9d85f1b75e2b1096d9643563d7d17380752fc7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com>
Date: Tue, 11 Feb 2020 09:34:38 +0200
Subject: [PATCH] GMainContext - Move mutex unlocking in destructor right
before freeing the mutex
This does not have any behaviour changes but is cleaner. The mutex is
only unlocked now after all operations on the context are done and right
before freeing the mutex and the context itself.
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/730a75fc8e8271c38fbd5363d1f77a00876b9ddc]
---
glib/gmain.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/glib/gmain.c b/glib/gmain.c
index 10ba2f8..b1df470 100644
--- a/glib/gmain.c
+++ b/glib/gmain.c
@@ -584,7 +584,6 @@ g_main_context_unref (GMainContext *context)
source = s_iter->data;
g_source_destroy_internal (source, context, TRUE);
}
- UNLOCK_CONTEXT (context);
for (sl_iter = context->source_lists; sl_iter; sl_iter = sl_iter->next)
{
@@ -595,6 +594,7 @@ g_main_context_unref (GMainContext *context)
g_hash_table_destroy (context->sources);
+ UNLOCK_CONTEXT (context);
g_mutex_clear (&context->mutex);
g_ptr_array_free (context->pending_dispatches, TRUE);

View File

@ -0,0 +1,121 @@
From 0061d66057dfd7e7267772df60b36474fb180eed Mon Sep 17 00:00:00 2001
From: Jussi Kukkonen <jussi.kukkonen@intel.com>
Date: Mon, 9 Nov 2015 11:07:27 +0200
Subject: [PATCH] Enable more tests while cross-compiling
Upstream disables a few tests while cross-compiling because their build requires
running other built binaries. This usually makes sense but in the cross-compile
case we can depend on glib-2.0-native.
Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
gio/tests/meson.build | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/gio/tests/meson.build b/gio/tests/meson.build
index 382dfcc..c171717 100644
--- a/gio/tests/meson.build
+++ b/gio/tests/meson.build
@@ -191,7 +191,7 @@ if host_machine.system() != 'windows'
# Test programs that need to bring up a session bus (requires dbus-daemon)
have_dbus_daemon = find_program('dbus-daemon', required : false).found()
- if have_dbus_daemon
+ if true
annotate_args = [
'--annotate', 'org.project.Bar', 'Key1', 'Value1',
'--annotate', 'org.project.Bar', 'org.gtk.GDBus.Internal', 'Value2',
@@ -465,12 +465,12 @@ if installed_tests_enabled
install_data('static-link.py', install_dir : installed_tests_execdir)
endif
-if not meson.is_cross_build() or meson.has_exe_wrapper()
+if meson.is_cross_build()
plugin_resources_c = custom_target('plugin-resources.c',
input : 'test4.gresource.xml',
output : 'plugin-resources.c',
- command : [glib_compile_resources,
+ command : ['glib-compile-resources',
'--target=@OUTPUT@',
'--sourcedir=' + meson.current_source_dir(),
'--generate-source',
@@ -494,7 +494,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
test_gresource = custom_target('test.gresource',
input : 'test.gresource.xml',
output : 'test.gresource',
- command : [glib_compile_resources,
+ command : ['glib-compile-resources',
'--target=@OUTPUT@',
'--sourcedir=' + meson.current_source_dir(),
'--sourcedir=' + meson.current_build_dir(),
@@ -505,7 +505,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
test_resources2_c = custom_target('test_resources2.c',
input : 'test3.gresource.xml',
output : 'test_resources2.c',
- command : [glib_compile_resources,
+ command : ['glib-compile-resources',
'--target=@OUTPUT@',
'--sourcedir=' + meson.current_source_dir(),
'--generate',
@@ -516,7 +516,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
test_resources2_h = custom_target('test_resources2.h',
input : 'test3.gresource.xml',
output : 'test_resources2.h',
- command : [glib_compile_resources,
+ command : ['glib-compile-resources',
'--target=@OUTPUT@',
'--sourcedir=' + meson.current_source_dir(),
'--generate',
@@ -528,7 +528,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
input : 'test2.gresource.xml',
depends : big_test_resource,
output : 'test_resources.c',
- command : [glib_compile_resources,
+ command : ['glib-compile-resources',
'--target=@OUTPUT@',
'--sourcedir=' + meson.current_source_dir(),
'--sourcedir=' + meson.current_build_dir(),
@@ -539,7 +539,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
digit_test_resources_c = custom_target('digit_test_resources.c',
input : '111_digit_test.gresource.xml',
output : 'digit_test_resources.c',
- command : [glib_compile_resources,
+ command : ['glib-compile-resources',
'--target=@OUTPUT@',
'--sourcedir=' + meson.current_source_dir(),
'--sourcedir=' + meson.current_build_dir(),
@@ -550,7 +550,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
digit_test_resources_h = custom_target('digit_test_resources.h',
input : '111_digit_test.gresource.xml',
output : 'digit_test_resources.h',
- command : [glib_compile_resources,
+ command : ['glib-compile-resources',
'--target=@OUTPUT@',
'--sourcedir=' + meson.current_source_dir(),
'--generate',
@@ -579,11 +579,11 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
# LLVM once that support is in a stable release.
objcopy = find_program('objcopy', required : false)
- if build_machine.system() == 'linux' and cc.get_id() == 'gcc' and objcopy.found()
+ if not meson.is_cross_build()
test_gresource_binary = custom_target('test5.gresource',
input : 'test5.gresource.xml',
output : 'test5.gresource',
- command : [glib_compile_resources,
+ command : ['glib-compile-resources',
'--target=@OUTPUT@',
'--sourcedir=' + meson.current_source_dir(),
'--sourcedir=' + meson.current_build_dir(),
@@ -595,7 +595,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
test_resources_binary_c = custom_target('test_resources_binary.c',
input : 'test5.gresource.xml',
output : 'test_resources_binary.c',
- command : [glib_compile_resources,
+ command : ['glib-compile-resources',
'--target=@OUTPUT@',
'--sourcedir=' + meson.current_source_dir(),
'--sourcedir=' + meson.current_build_dir(),

View File

@ -0,0 +1,3 @@
[properties]
# On all known supported architectures the stack grows down
growing_stack = false

View File

@ -0,0 +1,5 @@
[properties]
have_c99_vsnprintf = true
have_c99_snprintf = true
have_unix98_printf = true
va_val_copy = true

View File

@ -0,0 +1,5 @@
[properties]
have_proc_self_cmdline = true
[binaries]
env = "/usr/bin/env"

View File

@ -0,0 +1,6 @@
[properties]
have_c99_vsnprintf = false
have_c99_snprintf = false
have_unix98_printf = false
va_val_copy = true
have_proc_self_cmdline = false

View File

@ -0,0 +1,6 @@
[properties]
have_c99_vsnprintf = true
have_c99_snprintf = true
have_unix98_printf = true
va_val_copy = true
have_strlcpy = true

View File

@ -0,0 +1,50 @@
From 8c623acdbea3ecc2812bbaafcfc892758fa978da Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@intel.com>
Date: Fri, 11 Mar 2016 15:35:55 +0000
Subject: [PATCH] glib-2.0: relocate the GIO module directory for native builds
Instead of hard-coding GIO_MODULE_PATH when glib is built, use dladdr() to
determine where libglib.so is and use that path to calculate GIO_MODULES_DIR.
This solves relocation problems with GIOModule for native builds of glib.
Upstream-Status: Inappropriate
Signed-off-by: Ross Burton <ross.burton@intel.com>
Port patch to 2.48
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
gio/giomodule.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/gio/giomodule.c b/gio/giomodule.c
index 1007abd..5380982 100644
--- a/gio/giomodule.c
+++ b/gio/giomodule.c
@@ -44,6 +44,8 @@
#include "gnetworkmonitor.h"
#ifdef G_OS_WIN32
#include "gregistrysettingsbackend.h"
+#else
+#include <dlfcn.h>
#endif
#include <glib/gstdio.h>
@@ -1158,7 +1160,15 @@ get_gio_module_dir (void)
#endif
g_free (install_dir);
#else
- module_dir = g_strdup (GIO_MODULE_DIR);
+ Dl_info info;
+
+ if (dladdr (g_io_module_new, &info)) {
+ char *libdir = g_path_get_dirname (info.dli_fname);
+ module_dir = g_build_filename (libdir, "gio", "modules", NULL);
+ g_free (libdir);
+ } else {
+ module_dir = g_strdup (GIO_MODULE_DIR);
+ }
#endif
}

View File

@ -0,0 +1,9 @@
#! /bin/sh
set -eux
if id -u glib2-test; then
userdel glib2-test
fi
useradd glib2-test
su glib2-test -c 'gnome-desktop-testing-runner glib'
userdel glib2-test

View File

@ -0,0 +1,53 @@
require glib.inc
PE = "1"
SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
file://run-ptest \
file://0001-Fix-DATADIRNAME-on-uclibc-Linux.patch \
file://Enable-more-tests-while-cross-compiling.patch \
file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \
file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \
file://0001-Do-not-ignore-return-value-of-write.patch \
file://0010-Do-not-hardcode-python-path-into-various-tools.patch \
file://0001-Set-host_machine-correctly-when-building-with-mingw3.patch \
file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
file://0001-meson-Run-atomics-test-on-clang-as-well.patch \
file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \
file://0011-GMainContext-Fix-GSource-iterator-if-iteration-can-m.patch \
file://0012-GMainContext-Fix-memory-leaks-and-memory-corruption-.patch \
file://0013-GMainContext-Move-mutex-unlocking-in-destructor-righ.patch \
"
SRC_URI_append_class-native = " file://relocate-modules.patch"
SRC_URI[md5sum] = "d52234ecba128932bed90bbc3553bfe5"
SRC_URI[sha256sum] = "4c84030d77fa9712135dfa8036ad663925655ae95b1d19399b6200e869925bbc"
# Find any meson cross files in FILESPATH that are relevant for the current
# build (using siteinfo) and add them to EXTRA_OEMESON.
inherit siteinfo
def find_meson_cross_files(d):
if bb.data.inherits_class('native', d):
return ""
corebase = d.getVar("COREBASE")
import collections
sitedata = siteinfo_data(d)
# filename -> found
files = collections.OrderedDict()
for path in d.getVar("FILESPATH").split(":"):
for element in sitedata:
filename = os.path.normpath(os.path.join(path, "meson.cross.d", element))
files[filename.replace(corebase, "${COREBASE}")] = os.path.exists(filename)
items = ["--cross-file=" + k for k,v in files.items() if v]
d.appendVar("EXTRA_OEMESON", " " + " ".join(items))
items = ["%s:%s" % (k, "True" if v else "False") for k,v in files.items()]
d.appendVarFlag("do_configure", "file-checksums", " " + " ".join(items))
python () {
find_meson_cross_files(d)
}

View File

@ -0,0 +1,199 @@
SUMMARY = "A general-purpose utility library"
DESCRIPTION = "GLib is a general-purpose utility library, which provides many useful data types, macros, type conversions, string utilities, file utilities, a main loop abstraction, and so on."
HOMEPAGE = "https://developer.gnome.org/glib/"
# pcre is under BSD;
# docs/reference/COPYING is with a 'public domain'-like license!
LICENSE = "LGPLv2.1+ & BSD & PD"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
file://glib/glib.h;beginline=4;endline=17;md5=b88abb7f3ad09607e71cb9d530155906 \
file://gmodule/COPYING;md5=4fbd65380cdd255951079008b364516c \
file://gmodule/gmodule.h;beginline=4;endline=17;md5=b88abb7f3ad09607e71cb9d530155906 \
file://glib/pcre/pcre.h;beginline=8;endline=36;md5=3e2977dae4ad05217f58c446237298fc \
file://docs/reference/COPYING;md5=f51a5100c17af6bae00735cd791e1fcc"
BUGTRACKER = "http://bugzilla.gnome.org"
SECTION = "libs"
CVE_PRODUCT = "glib"
BBCLASSEXTEND = "native nativesdk"
DEPENDS = "glib-2.0-native \
virtual/libintl \
virtual/libiconv \
libffi \
zlib"
PACKAGES += "${PN}-codegen ${PN}-utils"
LEAD_SONAME = "libglib-2.0.*"
inherit meson gettext gtk-doc pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache manpages
GTKDOC_MESON_OPTION = "gtk_doc"
# This avoids the need to depend on target python3, which in case of mingw is not even possible.
# meson's python configuration pokes into python3 configuration, so this provides the native config to it.
unset _PYTHON_SYSCONFIGDATA_NAME
S = "${WORKDIR}/glib-${PV}"
PACKAGECONFIG ??= "system-pcre libmount \
${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
# To use the system pcre it must be configured with --enable-unicode-properties
PACKAGECONFIG[system-pcre] = "-Dinternal_pcre=false,-Dinternal_pcre=true,libpcre"
PACKAGECONFIG[libmount] = "-Dlibmount=true,-Dlibmount=false,util-linux"
PACKAGECONFIG[manpages] = "-Dman=true, -Dman=false, libxslt-native xmlto-native"
# libelf is auto-detected without a configuration option
PACKAGECONFIG[libelf] = ",,elfutils"
PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false,dbus"
EXTRA_OEMESON = "-Ddtrace=false -Dfam=false -Dsystemtap=false -Dselinux=disabled"
do_configure_prepend() {
sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/gio/gdbus-2.0/codegen/gdbus-codegen.in
}
FILES_${PN} = "${libdir}/lib*${SOLIBS} \
${libdir}/gio \
${libexecdir}/*gio-querymodules \
${datadir}/glib-2.0/schemas"
FILES_${PN}-utils += "${bindir}/glib-genmarshal \
${bindir}/glib-gettextize \
${bindir}/glib-mkenums \
${bindir}/glib-compile-resources"
FILES_${PN}-dev += "${libdir}/glib-2.0/include \
${libdir}/gio/modules/lib*${SOLIBSDEV} \
${libdir}/gio/modules/*.la \
${datadir}/glib-2.0/gettext/po/Makefile.in.in \
${datadir}/glib-2.0/schemas/gschema.dtd \
${datadir}/glib-2.0/valgrind/glib.supp \
${datadir}/gettext/its"
FILES_${PN}-dbg += "${datadir}/glib-2.0/gdb ${datadir}/gdb"
FILES_${PN}-codegen = "${datadir}/glib-2.0/codegen/*.py \
${bindir}/gdbus-codegen"
FILES_${PN}-utils = "${bindir}/*"
SHAREDMIMEDEP = "shared-mime-info"
SHAREDMIMEDEP_class-native = ""
# When cross compiling for Windows we don't want to include this
SHAREDMIMEDEP_mingw32 = ""
RRECOMMENDS_${PN} += "${SHAREDMIMEDEP}"
ARM_INSTRUCTION_SET_armv4 = "arm"
ARM_INSTRUCTION_SET_armv5 = "arm"
# Valgrind runtime detection works using hand-written assembly, which
# doesn't support mips16e
CPPFLAGS_append_class-target_mips16e = " -DNVALGRIND=1"
# GLib generally requires gettext to be present so for USE_NLS to yes. For
# native builds as i18n is disabled globally we have to add a gettext-native dependency.
USE_NLS_class-target = "yes"
USE_NLS_class-nativesdk = "yes"
DEPENDS_append_class-native = " gettext-native"
EXEEXT = ""
EXEEXT_mingw32 = ".exe"
do_install_append () {
if [ -f ${D}${bindir}/gtester-report ]; then
sed ${D}${bindir}/gtester-report -i -e '1s|^#!.*|#!/usr/bin/env python3|'
fi
# Remove some unpackaged files
rm -rf ${D}${datadir}/glib-2.0/codegen/__pycache__
rm -f ${D}${datadir}/glib-2.0/codegen/*.pyc
rm -f ${D}${datadir}/glib-2.0/codegen/*.pyo
if [ -e ${D}${libdir}/charset.alias ]; then
rm -f ${D}${libdir}/charset.alias
fi
# Make sure gio-querymodules is unique among multilibs
if test "x${MLPREFIX}" != "x"; then
mv ${D}${libexecdir}/gio-querymodules${EXEEXT} ${D}${libexecdir}/${MLPREFIX}gio-querymodules${EXEEXT}
fi
# Autotools does this, meson does not
mkdir -p ${D}${libdir}/gio/modules
}
do_install_append_class-target () {
# Tests are only installed on targets, not native builds. Separating this out
# keeps glib-2.0-native from depending on DISTRO_FEATURES
if [ -f ${D}${datadir}/installed-tests/glib/gdbus-serialization.test ]; then
if ${@bb.utils.contains("DISTRO_FEATURES", "x11", "false", "true", d)}; then
rm ${D}${datadir}/installed-tests/glib/gdbus-serialization.test
fi
fi
if [ -f ${D}${datadir}/installed-tests/glib/static-link.test ]; then
if test "x${MLPREFIX}" != "x"; then
mv ${D}${datadir}/installed-tests/glib/static-link.test ${D}${datadir}/installed-tests/glib/${MLPREFIX}static-link.test
fi
fi
}
# As we do not build python3 for windows, makes no sense to ship the script that's using it
do_install_append_mingw32() {
rm -f ${D}${bindir}/gtester-report
}
CODEGEN_PYTHON_RDEPENDS = "python3 python3-distutils python3-xml"
CODEGEN_PYTHON_RDEPENDS_mingw32 = ""
RDEPENDS_${PN}-codegen += "${CODEGEN_PYTHON_RDEPENDS}"
RDEPENDS_${PN}-ptest += "${PN}-utils"
RDEPENDS_${PN}-ptest += "\
coreutils \
libgcc \
dbus \
gnome-desktop-testing \
tzdata \
tzdata-americas \
tzdata-asia \
tzdata-europe \
tzdata-posix \
shared-mime-info \
${PN}-locale-ja \
${PN}-locale-fr \
${PN}-locale-el \
${PN}-locale-hr \
${PN}-locale-lt \
${PN}-locale-pl \
${PN}-locale-ru \
${PN}-locale-th \
python3-core \
python3-modules \
"
RDEPENDS_${PN}-ptest_append_libc-glibc = "\
glibc-gconv-utf-16 \
glibc-charmap-utf-8 \
glibc-gconv-cp1255 \
glibc-charmap-cp1255 \
glibc-gconv-utf-32 \
glibc-gconv-utf-7 \
glibc-gconv-euc-jp \
glibc-gconv-iso8859-1 \
glibc-gconv-iso8859-15 \
glibc-charmap-invariant \
glibc-localedata-translit-cjk-variants \
locale-base-tr-tr \
locale-base-lt-lt \
locale-base-ja-jp.euc-jp \
locale-base-fa-ir \
locale-base-ru-ru \
locale-base-de-de \
locale-base-hr-hr \
locale-base-el-gr \
locale-base-fr-fr \
locale-base-es-es \
locale-base-en-gb \
locale-base-en-us \
locale-base-pl-pl \
locale-base-pl-pl.iso-8859-2 \
"

View File

@ -0,0 +1,45 @@
From ba8aebe1259ae3f7f5a4827e5a47bb95c568b218 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Tue, 21 May 2019 16:07:46 +0200
Subject: [PATCH] Add meson option to pass sysroot
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
We need to pass this to meson to help it finding gdesktop-enums.h:
| panels/background/meson.build:38:0: ERROR: File /usr/include/gsettings-desktop-schemas/gdesktop-enums.h does not exist.
Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
meson_options.txt | 1 +
panels/background/meson.build | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/meson_options.txt b/meson_options.txt
index a347168..2cd8121 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,3 +1,4 @@
+option('oe_sysroot', type: 'string', value: '', description: 'Directory for OE-sysroot')
option('cheese', type: 'boolean', value: true, description: 'build with cheese webcam support')
option('documentation', type: 'boolean', value: false, description: 'build documentation')
option('gnome_session_libexecdir', type: 'string', value: '', description: 'Directory for gnome-session\'s libexecdir')
diff --git a/panels/background/meson.build b/panels/background/meson.build
index bb34b69..f22722e 100644
--- a/panels/background/meson.build
+++ b/panels/background/meson.build
@@ -36,7 +36,7 @@ common_sources = []
enums = 'gdesktop-enums-types'
enums_header = files(
- gsettings_desktop_dep.get_pkgconfig_variable('prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h',
+ get_option('oe_sysroot') + gsettings_desktop_dep.get_pkgconfig_variable('prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h',
'cc-background-item.h'
)
--
2.20.1

View File

@ -0,0 +1,460 @@
From 94a5f59e39861ae98e305cca96dc296f6e44e28a Mon Sep 17 00:00:00 2001
From: David McKinney <mckinney@subgraph.com>
Date: Mon, 6 Jul 2020 12:30:21 +0000
Subject: [PATCH] Add options for Citadel and disabling GOA/CUPS
---
meson.build | 14 +++++++++++++
meson_options.txt | 5 +++++
panels/background/bg-pictures-source.c | 21 ++++++++++++++++---
panels/background/meson.build | 15 ++++++++++----
panels/meson.build | 23 ++++++++++++++-------
shell/cc-panel-list.c | 15 +++++++++++++-
shell/cc-panel-loader.c | 28 ++++++++++++++++++++++++++
tests/meson.build | 2 +-
8 files changed, 107 insertions(+), 16 deletions(-)
diff --git a/meson.build b/meson.build
index 79a8053..db2f328 100644
--- a/meson.build
+++ b/meson.build
@@ -115,6 +115,15 @@ if not libhandy_dep.found()
libhandy_dep = libhandy.get_variable('libhandy_dep')
endif
+enable_goa = get_option('online_accounts')
+enable_cups = get_option('cups')
+enable_user_accounts = get_option('user_accounts')
+enable_citadel = get_option('citadel')
+config_h.set('WITH_GOA', enable_goa, description: 'Define to enable support for Gnome Online Accounts')
+config_h.set('WITH_CUPS', enable_goa, description: 'Define to enable support for CUPS')
+config_h.set('WITH_USER_ACCOUNTS', enable_user_accounts, description: 'Define to enable user accounts panel')
+config_h.set('CITADEL', enable_citadel, description: 'Define to enable the removal of components unneeded in Citadel')
+
goa_req_version = '>= 3.25.3'
pulse_req_version = '>= 2.0'
@@ -125,7 +134,9 @@ gio_dep = dependency('gio-2.0')
glib_dep = dependency('glib-2.0', version: '>= 2.56.0')
gnome_desktop_dep = dependency('gnome-desktop-3.0', version: '>= 3.27.90')
gnome_settings_dep = dependency('gnome-settings-daemon', version: '>= 3.27.90')
+if enable_goa
goa_dep = dependency('goa-1.0', version: goa_req_version)
+endif
gsettings_desktop_dep = dependency('gsettings-desktop-schemas', version: '>= 3.31.0')
libxml_dep = dependency('libxml-2.0')
polkit_gobject_dep = dependency('polkit-gobject-1', version: '>= 0.114')
@@ -150,6 +161,8 @@ common_deps = [
]
# Check for CUPS 1.4 or newer
+
+if enable_cups
cups_dep = dependency('cups', version : '>= 1.4', required: false)
assert(cups_dep.found(), 'CUPS 1.4 or newer not found')
@@ -172,6 +185,7 @@ endforeach
config_h.set10('HAVE_CUPS_HTTPCONNECT2',
cc.has_function('httpConnect2', dependencies: cups_dep),
description: 'Define if httpConnect2() is available in CUPS')
+endif
# Optional dependency for the user accounts panel
enable_cheese = get_option('cheese')
diff --git a/meson_options.txt b/meson_options.txt
index e76308e..4bb77cd 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -7,3 +7,8 @@ option('tests', type: 'boolean', value: true, description: 'build tests')
option('tracing', type: 'boolean', value: false, description: 'add extra debugging information')
option('wayland', type: 'boolean', value: true, description: 'build with Wayland support')
option('profile', type: 'combo', choices: ['default','development'], value: 'default')
+option('staging_dir', type: 'string', description: 'set staging directory for cross-compile')
+option('online_accounts', type: 'boolean', value: false, description: 'build with support for gnome-online-accounts')
+option('cups', type: 'boolean', value: false, description: 'build with support for CUPS')
+option('user_accounts', type: 'boolean', value: false, description: 'build with support for user accounts panel')
+option('citadel', type: 'boolean', value: true, description: 'build with Citadel support, which removes unneeded components')
diff --git a/panels/background/bg-pictures-source.c b/panels/background/bg-pictures-source.c
index faafd93..841fa66 100644
--- a/panels/background/bg-pictures-source.c
+++ b/panels/background/bg-pictures-source.c
@@ -29,7 +29,9 @@
#include <string.h>
#include <cairo-gobject.h>
#include <gio/gio.h>
+#ifdef WITH_GOA
#include <grilo.h>
+#endif
#include <libgnome-desktop/gnome-desktop-thumbnail.h>
#include <gdesktop-enums.h>
@@ -43,8 +45,9 @@ struct _BgPicturesSource
GCancellable *cancellable;
+#ifdef WITH_GOA
CcBackgroundGriloMiner *grl_miner;
-
+#endif
GFileMonitor *picture_dir_monitor;
GFileMonitor *cache_dir_monitor;
@@ -83,8 +86,9 @@ bg_pictures_source_dispose (GObject *object)
g_clear_object (&source->cancellable);
}
+#ifdef WITH_GOA
g_clear_object (&source->grl_miner);
-
+#endif
G_OBJECT_CLASS (bg_pictures_source_parent_class)->dispose (object);
}
@@ -392,7 +396,9 @@ add_single_file (BgPicturesSource *bg_source,
const gchar *pictures_path;
g_autoptr(GFile) pictures_dir = NULL;
g_autoptr(GFile) cache_dir = NULL;
+#ifdef WITH_GOA
GrlMedia *media;
+#endif
/* find png and jpeg files */
if (!content_type)
@@ -432,13 +438,16 @@ add_single_file (BgPicturesSource *bg_source,
"source-url", source_uri,
NULL);
+#ifdef WITH_GOA
media = g_object_get_data (G_OBJECT (file), "grl-media");
if (media == NULL)
{
+#endif
g_object_set_data_full (G_OBJECT (file), "item", g_object_ref (item), g_object_unref);
g_file_read_async (file, G_PRIORITY_DEFAULT,
bg_source->cancellable,
picture_opened_for_read, bg_source);
+#ifdef WITH_GOA
}
else
{
@@ -476,7 +485,7 @@ add_single_file (BgPicturesSource *bg_source,
picture_copied_for_read,
bg_source);
}
-
+#endif
retval = TRUE;
out:
@@ -496,6 +505,7 @@ add_single_file_from_info (BgPicturesSource *bg_source,
return add_single_file (bg_source, file, content_type, mtime);
}
+#ifdef WITH_GOA
static gboolean
add_single_file_from_media (BgPicturesSource *bg_source,
GFile *file,
@@ -520,6 +530,7 @@ add_single_file_from_media (BgPicturesSource *bg_source,
return add_single_file (bg_source, file, content_type, (guint64) mtime_unix);
}
+#endif
gboolean
bg_pictures_source_add (BgPicturesSource *bg_source,
@@ -806,6 +817,7 @@ monitor_path (BgPicturesSource *self,
return monitor;
}
+#ifdef WITH_GOA
static void
media_found_cb (BgPicturesSource *self, GrlMedia *media)
{
@@ -817,6 +829,7 @@ media_found_cb (BgPicturesSource *self, GrlMedia *media)
g_object_set_data_full (G_OBJECT (file), "grl-media", g_object_ref (media), g_object_unref);
add_single_file_from_media (self, file, media);
}
+#endif
static void
bg_pictures_source_init (BgPicturesSource *self)
@@ -839,9 +852,11 @@ bg_pictures_source_init (BgPicturesSource *self)
cache_path = bg_pictures_source_get_cache_path ();
self->cache_dir_monitor = monitor_path (self, cache_path);
+#ifdef WITH_GOA
self->grl_miner = cc_background_grilo_miner_new ();
g_signal_connect_swapped (self->grl_miner, "media-found", G_CALLBACK (media_found_cb), self);
cc_background_grilo_miner_start (self->grl_miner);
+#endif
}
BgPicturesSource *
diff --git a/panels/background/meson.build b/panels/background/meson.build
index e9fa398..534b999 100644
--- a/panels/background/meson.build
+++ b/panels/background/meson.build
@@ -34,9 +34,11 @@ install_data(
common_sources = []
+staging = get_option('staging_dir')
+
enums = 'gdesktop-enums-types'
enums_header = files(
- gsettings_desktop_dep.get_pkgconfig_variable('prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h',
+ staging + gsettings_desktop_dep.get_pkgconfig_variable('prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h',
'cc-background-item.h'
)
@@ -81,22 +83,27 @@ sources = common_sources + files(
'bg-source.c',
'bg-wallpapers-source.c',
'cc-background-chooser.c',
- 'cc-background-grilo-miner.c',
'cc-background-item.c',
'cc-background-panel.c',
'cc-background-preview.c',
'cc-background-xml.c',
)
+if enable_goa
+sources += files('cc-background-grilo-miner.c')
+endif
+
deps = common_deps + [
gdk_pixbuf_dep,
gnome_desktop_dep,
- goa_dep,
libxml_dep,
dependency('cairo-gobject'),
- dependency('grilo-0.3', version: '>= 0.3.0')
]
+if enable_goa
+deps += [ goa_dep, dependency('grilo-0.3', version: '>= 0.3.0') ]
+endif
+
cflags += [
'-DDATADIR="@0@"'.format(control_center_datadir),
'-DGNOME_DESKTOP_USE_UNSTABLE_API'
diff --git a/panels/meson.build b/panels/meson.build
index 2f4fdc5..82f54bd 100644
--- a/panels/meson.build
+++ b/panels/meson.build
@@ -1,12 +1,10 @@
subdir('common')
panels = [
- 'applications',
'background',
'camera',
'color',
'datetime',
- 'default-apps',
'diagnostics',
'display',
'info-overview',
@@ -16,17 +14,12 @@ panels = [
'microphone',
'mouse',
'notifications',
- 'online-accounts',
'power',
- 'printers',
'region',
- 'removable-media',
'search',
- 'sharing',
'sound',
'universal-access',
'usage',
- 'user-accounts'
]
if host_is_linux
@@ -41,6 +34,22 @@ if host_is_linux_not_s390
]
endif
+if enable_goa
+ panels += ['online-accounts']
+endif
+
+if enable_cups
+ panels += ['printers']
+endif
+
+if enable_user_accounts
+ panels += ['user-accounts']
+endif
+
+if not enable_citadel
+ panel_names += ['applications', 'default-apps', 'removable-media', 'sharing']
+endif
+
panels_list = []
panels_libs = []
foreach cappletname: panels
diff --git a/shell/cc-panel-list.c b/shell/cc-panel-list.c
index 2578590..28251a9 100644
--- a/shell/cc-panel-list.c
+++ b/shell/cc-panel-list.c
@@ -392,11 +392,16 @@ static const gchar * const panel_order[] = {
"background",
"notifications",
"search",
+#ifndef CITADEL
"applications",
+#endif
"privacy",
+#ifndef WITH_GOA
"online-accounts",
+#endif
+#ifndef CITADEL
"sharing",
-
+#endif
/* Privacy page */
"location",
"camera",
@@ -412,16 +417,24 @@ static const gchar * const panel_order[] = {
"display",
"mouse",
"keyboard",
+#ifndef WITH_CUPS
"printers",
+#endif
+#ifndef CITADEL
"removable-media",
+#endif
"wacom",
"color",
/* Details page */
"region",
"universal-access",
+#ifndef WITH_USER_ACCOUNTS
"user-accounts",
+#endif
+#ifndef CITADEL
"default-apps",
+#endif
"reset-settings",
"datetime",
"info-overview",
diff --git a/shell/cc-panel-loader.c b/shell/cc-panel-loader.c
index f203843..cad01f5 100644
--- a/shell/cc-panel-loader.c
+++ b/shell/cc-panel-loader.c
@@ -31,14 +31,18 @@
#ifndef CC_PANEL_LOADER_NO_GTYPES
/* Extension points */
+#ifndef CITADEL
extern GType cc_applications_panel_get_type (void);
+#endif
extern GType cc_background_panel_get_type (void);
#ifdef BUILD_BLUETOOTH
extern GType cc_bluetooth_panel_get_type (void);
#endif /* BUILD_BLUETOOTH */
extern GType cc_color_panel_get_type (void);
extern GType cc_date_time_panel_get_type (void);
+#ifndef CITADEL
extern GType cc_default_apps_panel_get_type (void);
+#endif
extern GType cc_display_panel_get_type (void);
extern GType cc_info_overview_panel_get_type (void);
extern GType cc_keyboard_panel_get_type (void);
@@ -48,19 +52,29 @@ extern GType cc_network_panel_get_type (void);
extern GType cc_wifi_panel_get_type (void);
#endif /* BUILD_NETWORK */
extern GType cc_notifications_panel_get_type (void);
+#ifdef WITH_GOA
extern GType cc_goa_panel_get_type (void);
+#endif
extern GType cc_power_panel_get_type (void);
+#ifdef WITH_CUPS
extern GType cc_printers_panel_get_type (void);
+#endif
extern GType cc_region_panel_get_type (void);
+#ifndef CITADEL
extern GType cc_removable_media_panel_get_type (void);
+#endif
extern GType cc_search_panel_get_type (void);
+#ifndef CITADEL
extern GType cc_sharing_panel_get_type (void);
+#endif
extern GType cc_sound_panel_get_type (void);
#ifdef BUILD_THUNDERBOLT
extern GType cc_bolt_panel_get_type (void);
#endif /* BUILD_THUNDERBOLT */
extern GType cc_ua_panel_get_type (void);
+#ifdef WITH_USER_ACCOUNTS
extern GType cc_user_panel_get_type (void);
+#endif
#ifdef BUILD_WACOM
extern GType cc_wacom_panel_get_type (void);
#endif /* BUILD_WACOM */
@@ -90,7 +104,9 @@ extern void cc_wacom_panel_static_init_func (void);
static CcPanelLoaderVtable default_panels[] =
{
+#ifndef CITADEL
PANEL_TYPE("applications", cc_applications_panel_get_type, NULL),
+#endif
PANEL_TYPE("background", cc_background_panel_get_type, NULL),
#ifdef BUILD_BLUETOOTH
PANEL_TYPE("bluetooth", cc_bluetooth_panel_get_type, NULL),
@@ -98,7 +114,9 @@ static CcPanelLoaderVtable default_panels[] =
PANEL_TYPE("camera", cc_camera_panel_get_type, NULL),
PANEL_TYPE("color", cc_color_panel_get_type, NULL),
PANEL_TYPE("datetime", cc_date_time_panel_get_type, NULL),
+#ifndef CITADEL
PANEL_TYPE("default-apps", cc_default_apps_panel_get_type, NULL),
+#endif
PANEL_TYPE("diagnostics", cc_diagnostics_panel_get_type, cc_diagnostics_panel_static_init_func),
PANEL_TYPE("display", cc_display_panel_get_type, NULL),
PANEL_TYPE("info-overview", cc_info_overview_panel_get_type, NULL),
@@ -112,20 +130,30 @@ static CcPanelLoaderVtable default_panels[] =
PANEL_TYPE("wifi", cc_wifi_panel_get_type, cc_wifi_panel_static_init_func),
#endif
PANEL_TYPE("notifications", cc_notifications_panel_get_type, NULL),
+#ifdef WITH_GOA
PANEL_TYPE("online-accounts", cc_goa_panel_get_type, NULL),
+#endif
PANEL_TYPE("power", cc_power_panel_get_type, NULL),
+#ifdef WITH_CUPS
PANEL_TYPE("printers", cc_printers_panel_get_type, NULL),
+#endif
PANEL_TYPE("region", cc_region_panel_get_type, NULL),
+#ifndef CITADEL
PANEL_TYPE("removable-media", cc_removable_media_panel_get_type, NULL),
+#endif
PANEL_TYPE("search", cc_search_panel_get_type, NULL),
+#ifndef CITADEL
PANEL_TYPE("sharing", cc_sharing_panel_get_type, NULL),
+#endif
PANEL_TYPE("sound", cc_sound_panel_get_type, NULL),
#ifdef BUILD_THUNDERBOLT
PANEL_TYPE("thunderbolt", cc_bolt_panel_get_type, NULL),
#endif
PANEL_TYPE("universal-access", cc_ua_panel_get_type, NULL),
PANEL_TYPE("usage", cc_usage_panel_get_type, NULL),
+#ifdef WITH_USER_ACCOUNTS
PANEL_TYPE("user-accounts", cc_user_panel_get_type, NULL),
+#endif
#ifdef BUILD_WACOM
PANEL_TYPE("wacom", cc_wacom_panel_get_type, cc_wacom_panel_static_init_func),
#endif
diff --git a/tests/meson.build b/tests/meson.build
index d4fe361..b879160 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -6,5 +6,5 @@ endif
subdir('interactive-panels')
-subdir('printers')
+#subdir('printers')
subdir('info')

View File

@ -0,0 +1,502 @@
From a5c21a082006e940cf8802123439292beb967f83 Mon Sep 17 00:00:00 2001
From: David McKinney <mckinney@subgraph.com>
Date: Thu, 2 Jul 2020 15:18:05 +0000
Subject: [PATCH] Remove unneeded panels, make GOA/CUPS optional
---
meson.build | 52 +++++++++++++++-----------
meson_options.txt | 5 +++
panels/background/bg-pictures-source.c | 30 ++++++++++-----
panels/background/meson.build | 14 +++++--
panels/meson.build | 23 ++++++++----
shell/cc-panel-list.c | 15 +++++++-
shell/cc-panel-loader.c | 28 ++++++++++++++
tests/meson.build | 1 -
8 files changed, 124 insertions(+), 44 deletions(-)
diff --git a/meson.build b/meson.build
index 6534dba..2db99bb 100644
--- a/meson.build
+++ b/meson.build
@@ -115,6 +115,15 @@ if not libhandy_dep.found()
libhandy_dep = libhandy.get_variable('libhandy_dep')
endif
+enable_goa = get_option('online_accounts')
+enable_cups = get_option('cups')
+enable_user_accounts = get_option('user_accounts')
+enable_citadel = get_option('citadel')
+config_h.set('WITH_GOA', enable_goa, description: 'Define to enable support for Gnome Online Accounts')
+config_h.set('WITH_CUPS', enable_goa, description: 'Define to enable support for CUPS')
+config_h.set('WITH_USER_ACCOUNTS', enable_user_accounts, description: 'Define to enable user accounts panel')
+config_h.set('CITADEL', enable_citadel, description: 'Define to enable the removal of components unneeded in Citadel')
+
goa_req_version = '>= 3.25.3'
pulse_req_version = '>= 2.0'
@@ -125,7 +134,9 @@ gio_dep = dependency('gio-2.0')
glib_dep = dependency('glib-2.0', version: '>= 2.56.0')
gnome_desktop_dep = dependency('gnome-desktop-3.0', version: '>= 3.27.90')
gnome_settings_dep = dependency('gnome-settings-daemon', version: '>= 3.27.90')
-goa_dep = dependency('goa-1.0', version: goa_req_version)
+if enable_goa
+ goa_dep = dependency('goa-1.0', version: goa_req_version)
+endif
gsettings_desktop_dep = dependency('gsettings-desktop-schemas', version: '>= 3.31.0')
libxml_dep = dependency('libxml-2.0')
polkit_gobject_dep = dependency('polkit-gobject-1', version: '>= 0.114')
@@ -149,29 +160,28 @@ common_deps = [
dependency('gtk+-3.0', version: '>= 3.22.20')
]
-# Check for CUPS 1.4 or newer
-cups_dep = dependency('cups', version : '>= 1.4', required: false)
-assert(cups_dep.found(), 'CUPS 1.4 or newer not found')
-
+if enable_cups
+ # Check for CUPS 1.4 or newer
+ cups_dep = dependency('cups', version : '>= 1.4', required: false)
+ assert(cups_dep.found(), 'CUPS 1.4 or newer not found')
# https://bugzilla.gnome.org/show_bug.cgi?id=696766
-cups_cflags = []
-if cups_dep.version().version_compare('>= 1.6')
- cups_cflags += '-D_PPD_DEPRECATED='
-endif
-
-# cups headers
-check_headers = [
- ['HAVE_CUPS_CUPS_H', 'cups/cups.h'],
- ['HAVE_CUPS_PPD_H', 'cups/ppd.h']
-]
-
-foreach header: check_headers
- assert(cc.has_header(header[1], args: cups_cflags), 'CUPS headers not found: ' + header[1])
-endforeach
-
-config_h.set10('HAVE_CUPS_HTTPCONNECT2',
+ cups_cflags = []
+ if cups_dep.version().version_compare('>= 1.6')
+ cups_cflags += '-D_PPD_DEPRECATED='
+ endif
+
+ # cups headers
+ check_headers = [
+ ['HAVE_CUPS_CUPS_H', 'cups/cups.h'],
+ ['HAVE_CUPS_PPD_H', 'cups/ppd.h']
+ ]
+ foreach header: check_headers
+ assert(cc.has_header(header[1], args: cups_cflags), 'CUPS headers not found: ' + header[1])
+ endforeach
+ config_h.set10('HAVE_CUPS_HTTPCONNECT2',
cc.has_function('httpConnect2', dependencies: cups_dep),
description: 'Define if httpConnect2() is available in CUPS')
+endif
# Optional dependency for the user accounts panel
enable_cheese = get_option('cheese')
diff --git a/meson_options.txt b/meson_options.txt
index 0df930c..ccb45c5 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -8,3 +8,8 @@ option('tests', type: 'boolean', value: true, description: 'build tests')
option('tracing', type: 'boolean', value: false, description: 'add extra debugging information')
option('wayland', type: 'boolean', value: true, description: 'build with Wayland support')
option('profile', type: 'combo', choices: ['default','development'], value: 'default')
+option('staging_dir', type: 'string', description: 'set staging directory for cross-compile')
+option('online_accounts', type: 'boolean', value: false, description: 'build with support for gnome-online-accounts')
+option('cups', type: 'boolean', value: false, description: 'build with support for CUPS')
+option('user_accounts', type: 'boolean', value: false, description: 'build with support for user accounts panel')
+option('citadel', type: 'boolean', value: true, description: 'build with Citadel support, which removes unneeded components')
diff --git a/panels/background/bg-pictures-source.c b/panels/background/bg-pictures-source.c
index faafd93..3df8277 100644
--- a/panels/background/bg-pictures-source.c
+++ b/panels/background/bg-pictures-source.c
@@ -23,13 +23,17 @@
#include "bg-pictures-source.h"
+#ifdef WITH_GOA
#include "cc-background-grilo-miner.h"
+#endif
#include "cc-background-item.h"
#include <string.h>
#include <cairo-gobject.h>
#include <gio/gio.h>
+#ifdef WITH_GOA
#include <grilo.h>
+#endif
#include <libgnome-desktop/gnome-desktop-thumbnail.h>
#include <gdesktop-enums.h>
@@ -43,8 +47,9 @@ struct _BgPicturesSource
GCancellable *cancellable;
+#ifdef WITH_GOA
CcBackgroundGriloMiner *grl_miner;
-
+#endif
GFileMonitor *picture_dir_monitor;
GFileMonitor *cache_dir_monitor;
@@ -82,9 +87,9 @@ bg_pictures_source_dispose (GObject *object)
g_cancellable_cancel (source->cancellable);
g_clear_object (&source->cancellable);
}
-
+#ifdef WITH_GOA
g_clear_object (&source->grl_miner);
-
+#endif
G_OBJECT_CLASS (bg_pictures_source_parent_class)->dispose (object);
}
@@ -392,7 +397,9 @@ add_single_file (BgPicturesSource *bg_source,
const gchar *pictures_path;
g_autoptr(GFile) pictures_dir = NULL;
g_autoptr(GFile) cache_dir = NULL;
+#ifdef WITH_GOA
GrlMedia *media;
+#endif
/* find png and jpeg files */
if (!content_type)
@@ -431,14 +438,16 @@ add_single_file (BgPicturesSource *bg_source,
"needs-download", needs_download,
"source-url", source_uri,
NULL);
-
+#ifdef WITH_GOA
media = g_object_get_data (G_OBJECT (file), "grl-media");
if (media == NULL)
{
+#endif
g_object_set_data_full (G_OBJECT (file), "item", g_object_ref (item), g_object_unref);
g_file_read_async (file, G_PRIORITY_DEFAULT,
bg_source->cancellable,
picture_opened_for_read, bg_source);
+#ifdef WITH_GOA
}
else
{
@@ -477,8 +486,8 @@ add_single_file (BgPicturesSource *bg_source,
bg_source);
}
+#endif
retval = TRUE;
-
out:
return retval;
}
@@ -495,7 +504,7 @@ add_single_file_from_info (BgPicturesSource *bg_source,
mtime = g_file_info_get_attribute_uint64 (info, G_FILE_ATTRIBUTE_TIME_MODIFIED);
return add_single_file (bg_source, file, content_type, mtime);
}
-
+#ifdef WITH_GOA
static gboolean
add_single_file_from_media (BgPicturesSource *bg_source,
GFile *file,
@@ -520,7 +529,7 @@ add_single_file_from_media (BgPicturesSource *bg_source,
return add_single_file (bg_source, file, content_type, (guint64) mtime_unix);
}
-
+#endif
gboolean
bg_pictures_source_add (BgPicturesSource *bg_source,
const char *uri,
@@ -805,7 +814,7 @@ monitor_path (BgPicturesSource *self,
return monitor;
}
-
+#ifdef WITH_GOA
static void
media_found_cb (BgPicturesSource *self, GrlMedia *media)
{
@@ -817,7 +826,7 @@ media_found_cb (BgPicturesSource *self, GrlMedia *media)
g_object_set_data_full (G_OBJECT (file), "grl-media", g_object_ref (media), g_object_unref);
add_single_file_from_media (self, file, media);
}
-
+#endif
static void
bg_pictures_source_init (BgPicturesSource *self)
{
@@ -838,10 +847,11 @@ bg_pictures_source_init (BgPicturesSource *self)
cache_path = bg_pictures_source_get_cache_path ();
self->cache_dir_monitor = monitor_path (self, cache_path);
-
+#ifdef WITH_GOA
self->grl_miner = cc_background_grilo_miner_new ();
g_signal_connect_swapped (self->grl_miner, "media-found", G_CALLBACK (media_found_cb), self);
cc_background_grilo_miner_start (self->grl_miner);
+#endif
}
BgPicturesSource *
diff --git a/panels/background/meson.build b/panels/background/meson.build
index 5a2efc0..6d4a394 100644
--- a/panels/background/meson.build
+++ b/panels/background/meson.build
@@ -34,9 +34,11 @@ install_data(
common_sources = []
+staging = get_option('staging_dir')
+
enums = 'gdesktop-enums-types'
enums_header = files(
- get_option('oe_sysroot') + gsettings_desktop_dep.get_pkgconfig_variable('prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h',
+ staging + gsettings_desktop_dep.get_pkgconfig_variable('prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h',
'cc-background-item.h'
)
@@ -81,22 +83,26 @@ sources = common_sources + files(
'bg-source.c',
'bg-wallpapers-source.c',
'cc-background-chooser.c',
- 'cc-background-grilo-miner.c',
'cc-background-item.c',
'cc-background-panel.c',
'cc-background-preview.c',
'cc-background-xml.c',
)
+if enable_goa
+ sources += files('cc-background-grilo-miner.c')
+endif
+
deps = common_deps + [
gdk_pixbuf_dep,
gnome_desktop_dep,
- goa_dep,
libxml_dep,
dependency('cairo-gobject'),
- dependency('grilo-0.3', version: '>= 0.3.0')
]
+if enable_goa
+ sources += files('cc-background-grilo-miner.c')
+endif
cflags += [
'-DDATADIR="@0@"'.format(control_center_datadir),
'-DGNOME_DESKTOP_USE_UNSTABLE_API'
diff --git a/panels/meson.build b/panels/meson.build
index 2f4fdc5..48bffdf 100644
--- a/panels/meson.build
+++ b/panels/meson.build
@@ -1,12 +1,10 @@
subdir('common')
panels = [
- 'applications',
'background',
'camera',
'color',
'datetime',
- 'default-apps',
'diagnostics',
'display',
'info-overview',
@@ -16,19 +14,30 @@ panels = [
'microphone',
'mouse',
'notifications',
- 'online-accounts',
'power',
- 'printers',
'region',
- 'removable-media',
'search',
- 'sharing',
'sound',
'universal-access',
'usage',
- 'user-accounts'
]
+if enable_goa
+ panels += ['online-accounts']
+endif
+
+if enable_cups
+ panels += ['printers']
+endif
+
+if enable_user_accounts
+ panels += ['user-accounts']
+endif
+
+if not enable_citadel
+ panel_names += ['applications', 'default-apps', 'removable-media', 'sharing']
+endif
+
if host_is_linux
panels += ['network']
endif
diff --git a/shell/cc-panel-list.c b/shell/cc-panel-list.c
index 2578590..28251a9 100644
--- a/shell/cc-panel-list.c
+++ b/shell/cc-panel-list.c
@@ -392,11 +392,16 @@ static const gchar * const panel_order[] = {
"background",
"notifications",
"search",
+#ifndef CITADEL
"applications",
+#endif
"privacy",
+#ifndef WITH_GOA
"online-accounts",
+#endif
+#ifndef CITADEL
"sharing",
-
+#endif
/* Privacy page */
"location",
"camera",
@@ -412,16 +417,24 @@ static const gchar * const panel_order[] = {
"display",
"mouse",
"keyboard",
+#ifndef WITH_CUPS
"printers",
+#endif
+#ifndef CITADEL
"removable-media",
+#endif
"wacom",
"color",
/* Details page */
"region",
"universal-access",
+#ifndef WITH_USER_ACCOUNTS
"user-accounts",
+#endif
+#ifndef CITADEL
"default-apps",
+#endif
"reset-settings",
"datetime",
"info-overview",
diff --git a/shell/cc-panel-loader.c b/shell/cc-panel-loader.c
index f203843..652afe3 100644
--- a/shell/cc-panel-loader.c
+++ b/shell/cc-panel-loader.c
@@ -31,14 +31,18 @@
#ifndef CC_PANEL_LOADER_NO_GTYPES
/* Extension points */
+#ifndef CITADEL
extern GType cc_applications_panel_get_type (void);
+#endif
extern GType cc_background_panel_get_type (void);
#ifdef BUILD_BLUETOOTH
extern GType cc_bluetooth_panel_get_type (void);
#endif /* BUILD_BLUETOOTH */
extern GType cc_color_panel_get_type (void);
extern GType cc_date_time_panel_get_type (void);
+#ifndef CITADEL
extern GType cc_default_apps_panel_get_type (void);
+#endif
extern GType cc_display_panel_get_type (void);
extern GType cc_info_overview_panel_get_type (void);
extern GType cc_keyboard_panel_get_type (void);
@@ -48,19 +52,29 @@ extern GType cc_network_panel_get_type (void);
extern GType cc_wifi_panel_get_type (void);
#endif /* BUILD_NETWORK */
extern GType cc_notifications_panel_get_type (void);
+#ifdef WITH_GOA
extern GType cc_goa_panel_get_type (void);
+#endif
extern GType cc_power_panel_get_type (void);
+#ifdef WITH_CUPS
extern GType cc_printers_panel_get_type (void);
+#endif
extern GType cc_region_panel_get_type (void);
+#ifndef CITADEL
extern GType cc_removable_media_panel_get_type (void);
+#endif
extern GType cc_search_panel_get_type (void);
+#ifndef CITADEL
extern GType cc_sharing_panel_get_type (void);
+#endif
extern GType cc_sound_panel_get_type (void);
#ifdef BUILD_THUNDERBOLT
extern GType cc_bolt_panel_get_type (void);
#endif /* BUILD_THUNDERBOLT */
extern GType cc_ua_panel_get_type (void);
+#ifdef WITH_USER_ACCOUNTS
extern GType cc_user_panel_get_type (void);
+#endif
#ifdef BUILD_WACOM
extern GType cc_wacom_panel_get_type (void);
#endif /* BUILD_WACOM */
@@ -90,7 +104,9 @@ extern void cc_wacom_panel_static_init_func (void);
static CcPanelLoaderVtable default_panels[] =
{
+#ifndef CITADEL
PANEL_TYPE("applications", cc_applications_panel_get_type, NULL),
+#endif
PANEL_TYPE("background", cc_background_panel_get_type, NULL),
#ifdef BUILD_BLUETOOTH
PANEL_TYPE("bluetooth", cc_bluetooth_panel_get_type, NULL),
@@ -98,7 +114,9 @@ static CcPanelLoaderVtable default_panels[] =
PANEL_TYPE("camera", cc_camera_panel_get_type, NULL),
PANEL_TYPE("color", cc_color_panel_get_type, NULL),
PANEL_TYPE("datetime", cc_date_time_panel_get_type, NULL),
+#ifndef CITADEL
PANEL_TYPE("default-apps", cc_default_apps_panel_get_type, NULL),
+#endif
PANEL_TYPE("diagnostics", cc_diagnostics_panel_get_type, cc_diagnostics_panel_static_init_func),
PANEL_TYPE("display", cc_display_panel_get_type, NULL),
PANEL_TYPE("info-overview", cc_info_overview_panel_get_type, NULL),
@@ -112,20 +130,30 @@ static CcPanelLoaderVtable default_panels[] =
PANEL_TYPE("wifi", cc_wifi_panel_get_type, cc_wifi_panel_static_init_func),
#endif
PANEL_TYPE("notifications", cc_notifications_panel_get_type, NULL),
+#ifdef WITH_GOA
PANEL_TYPE("online-accounts", cc_goa_panel_get_type, NULL),
+#endif
PANEL_TYPE("power", cc_power_panel_get_type, NULL),
+#ifdef WITH_CUPS
PANEL_TYPE("printers", cc_printers_panel_get_type, NULL),
+#endif
PANEL_TYPE("region", cc_region_panel_get_type, NULL),
+#ifndef CITADEL
PANEL_TYPE("removable-media", cc_removable_media_panel_get_type, NULL),
+#endif
PANEL_TYPE("search", cc_search_panel_get_type, NULL),
+#ifndef CITADEL
PANEL_TYPE("sharing", cc_sharing_panel_get_type, NULL),
+#endif
PANEL_TYPE("sound", cc_sound_panel_get_type, NULL),
#ifdef BUILD_THUNDERBOLT
PANEL_TYPE("thunderbolt", cc_bolt_panel_get_type, NULL),
#endif
PANEL_TYPE("universal-access", cc_ua_panel_get_type, NULL),
PANEL_TYPE("usage", cc_usage_panel_get_type, NULL),
+#ifdef WITH_USER_ACCOUNTS
PANEL_TYPE("user-accounts", cc_user_panel_get_type, NULL),
+#endif
#ifdef BUILD_WACOM
PANEL_TYPE("wacom", cc_wacom_panel_get_type, cc_wacom_panel_static_init_func),
#endif
diff --git a/tests/meson.build b/tests/meson.build
index d4fe361..01f7c92 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -6,5 +6,4 @@ endif
subdir('interactive-panels')
-subdir('printers')
subdir('info')

View File

@ -1,51 +0,0 @@
SUMMARY = "GNOME desktop configuration UI"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
SRC_URI[archive.md5sum] = "31728ca3e3dc8d2e3a6cbdfd987b7901"
SRC_URI[archive.sha256sum] = "86795715bf439aafb5b74a42065ac1d86cac53075b1cc8044bc27a964e15c012"
GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase gettext
DEPENDS = "pulseaudio colord-gtk networkmanager ibus colord gnome-desktop gnome-settings-daemon polkit libcanberra gdk-pixbuf fontconfig gtk+3 glib-2.0 intltool-native upower libpwquality cairo libxml2 libgudev libsoup-2.4 libxi libwacom libx11 libgtop gnome-common-native autoconf-archive-native wayland accountsservice modemmanager network-manager-applet gnome-bluetooth clutter-1.0 clutter-gtk gsettings-desktop-schemas glib-2.0-native libxml2-native udisks2 gsound"
#
# Extra options have been added to meson_options.txt to make some components of the control
# center optional. One reason is that these components drag in heavy dependencies, and some
# of these dependencies have not been packaged and tested yet.
#
# Gnome Online Accounts support
#
# EXTRA_OEMESON += "-Donline_accounts=true"
# DEPENDS += "grilo gnome-online-accounts webkitgtk rest"
#
# Printer Panel
#
# EXTRA_OEMESON += "-Dcups=true"
# DEPENDS += "cups samba" (only smbclient needed from samba)
#
# User Accounts Panel
#
# EXTRA_OEMESON += "-Duser_accounts=true"
# DEPENDS += "accountsservice krb5"
# Citadel
#
# This option disables some things in gnome-control-center such as certain
# panels that are not used in Citadel, defaults to true in meson_options.
# To re-enable these things, set the option to false:
#
# EXTRA_OEMESON += "-Dcitadel=false"
SRC_URI += " file://0001-Make-GOA-CUPS-and-User-Accounts-optional.patch \
file://0001-Remove-unneeded-panels.patch"
FILES_${PN} += "\
${datadir}/bash-completion \
${datadir}/gettext \
${datadir}/dbus-1 \
${datadir}/gnome-shell/search-providers \
${datadir}/metainfo \
"
EXTRA_OEMESON = "--buildtype=release -Dcheese=false -Ddocumentation=false -Dstaging_dir=${STAGING_DIR_TARGET}"

View File

@ -0,0 +1,77 @@
SUMMARY = "GNOME Settings"
DESCRIPTION = "GNOME Settings is GNOME's main interface for configuration of various aspects of your desktop"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase gsettings gettext vala upstream-version-is-even bash-completion distro_features_check
DEPENDS = " \
gdk-pixbuf-native \
colord-gtk \
udisks2 \
upower \
polkit \
pulseaudio \
accountsservice \
gsettings-desktop-schemas \
gnome-settings-daemon \
gnome-desktop \
networkmanager \
network-manager-applet \
gnome-bluetooth \
libgtop \
libgudev \
gsound \
libpwquality \
ibus \
"
REQUIRED_DISTRO_FEATURES += " pulseaudio systemd x11"
SRC_URI += " file://0001-Add-options-for-Citadel-and-disabling-GOA-CUPS.patch"
SRC_URI[archive.md5sum] = "fd99a8df0cc656e971415f2a1b310019"
SRC_URI[archive.sha256sum] = "bc174d970dbeca3ee19c26019de31e9edf78dc9c4abde16e763566ee38c3691c"
#SRC_URI += " file://0001-Remove-unneeded-panels-make-GOA-CUPS-optional.patch"
#
# Extra options have been added to meson_options.txt to make some components of the control
# center optional. One reason is that these components drag in heavy dependencies, and some
# of these dependencies have not been packaged and tested yet.
#
# Gnome Online Accounts support
#
# EXTRA_OEMESON += "-Donline_accounts=true"
# DEPENDS += "grilo gnome-online-accounts webkitgtk rest"
#
# Printer Panel
#
# EXTRA_OEMESON += "-Dcups=true"
# DEPENDS += "cups samba" (only smbclient needed from samba)
#
# User Accounts Panel
#
# EXTRA_OEMESON += "-Duser_accounts=true"
# DEPENDS += "accountsservice krb5"
# Citadel
#
# This option disables some things in gnome-control-center such as certain
# panels that are not used in Citadel, defaults to true in meson_options.
# To re-enable these things, set the option to false:
#
# EXTRA_OEMESON += "-Dcitadel=false"
#SRC_URI += " file://0001-Make-GOA-CUPS-and-User-Accounts-optional.patch \
# file://0001-Remove-unneeded-panels.patch"
FILES_${PN} += " \
${datadir}/dbus-1 \
${datadir}/gnome-shell \
${datadir}/metainfo \
"
FILES_${PN}-dev += "${datadir}/gettext"
RDEPENDS_${PN} += "gsettings-desktop-schemas"
EXTRA_OEMESON = "--buildtype=release -Dcheese=false -Ddocumentation=false -Dstaging_dir=${STAGING_DIR_TARGET}"

View File

@ -5,13 +5,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2" file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2"
GNOMEBASEBUILDCLASS = "meson" GNOMEBASEBUILDCLASS = "meson"
inherit gnome pkgconfig upstream-version-is-even gobject-introspection inherit gnomebase gtk-icon-cache gconf mime pkgconfig upstream-version-is-even gobject-introspection
WARN_QA_remove = "unknown-configure-option" WARN_QA_remove = "unknown-configure-option"
SRC_URI[archive.md5sum] = "e423ed6d648c6c4f9798fa9cd9ea8d99" SRC_URI[archive.md5sum] = "9fa17a6e2eacde3f9dd0df6be10091b2"
SRC_URI[archive.sha256sum] = "a6393dc5fc29fc0652ac84c73b3da205d0b0168128c4cf6d27797a08f3d07b54" SRC_URI[archive.sha256sum] = "38f994dcb1e1ae093d1c929c7acc4f88e39111e43b5fdc13125b0f6e2311c789"
DEPENDS += "itstool-native gsettings-desktop-schemas gconf virtual/libx11 gtk+3 glib-2.0 startup-notification xkeyboard-config iso-codes udev libseccomp" DEPENDS += "itstool-native gsettings-desktop-schemas gconf virtual/libx11 gtk+3 glib-2.0 startup-notification xkeyboard-config iso-codes udev libseccomp"

Some files were not shown because too many files have changed in this diff Show More