From 1870085467e9f67fe871f4f31a9f87eaa74b5d5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20COUDERC?= Date: Mon, 4 Feb 2019 00:33:14 +0100 Subject: [PATCH] Add vendor emblems/icons (here Debian) and the corresponding alternatives so derivates can propose their own (Closes: #898456) --- debian/README.Debian | 68 +++++++++++- debian/desktop-base.lintian-overrides | 7 ++ debian/postinst | 48 +++++++- debian/prerm | 9 +- emblems-debian/Makefile | 64 +++++++++-- emblems-debian/emblem-debian-symbolic.icon | 2 + emblems-debian/emblem-debian-symbolic.svg | 122 +++++++++++++++++++++ 7 files changed, 296 insertions(+), 24 deletions(-) create mode 100644 debian/desktop-base.lintian-overrides create mode 100644 emblems-debian/emblem-debian-symbolic.icon create mode 100644 emblems-debian/emblem-debian-symbolic.svg diff --git a/debian/README.Debian b/debian/README.Debian index ae97221..6737081 100644 --- a/debian/README.Debian +++ b/debian/README.Debian @@ -4,6 +4,8 @@ README for desktop-base 1. What’s provided 1.1. Themes packs 1.2. Debian logos + 1.2.1. Debian logos icons + 1.2.2. Debian logos images 1.3. Desktop files 1.4. Default configurations overrides 1.5. Plymouth boot splashes @@ -35,12 +37,68 @@ theme packs structure. 1.2. Debian logos -Several sizes of the Debian logo are shipped as: - /usr/share/icons/hicolor/${size}x${size}/emblems/emblem-debian.${ext} - /usr/share/icons/hicolor/${size}x${size}/emblems/emblem-debian.icon +Three version of the logo are shipped as icons: +- emblem-debian : the Debian logo in it’s original red-purple color +- emblem-debian-symbolic: the Debian logo in a black+transparent format that + desktop like GNOME can use and adapt the color + depending on the context. +- emblem-debian-white : the Debian logo in white - The sizes currently provided are 36, 64, 128 as PNG, and scalable for the -SVG version. Each has a side .icon descriptor file. +We also ship 3 versions of the logo as images: +- logo : logo alone +- logo-text : logo + "Debian" name +- logo-text-version: logo + "Debian" name + Debian version number + +All these images and logos are provided both in several bitmap resolutions +(PNG) and also in vector form (SVG). + +The "vendor-logos" alternative is shipped with alternatives for both +logo images and icons. +It should be used by derivatives to replace by their own logos. + +The alternative has the following structure: +- Main alternative + /usr/share/images/vendor-logos -> /etc/alternatives/vendor-logos +- Secondary alternatives + /usr/share/icons/vendor/128x128/emblems: + emblem-vendor.png -> /etc/alternatives/emblem-vendor-128 + emblem-vendor-symbolic.png -> /etc/alternatives/emblem-vendor-symbolic-128 + emblem-vendor-white.png -> /etc/alternatives/emblem-vendor-white-128 + /usr/share/icons/vendor/256x256/emblems: + emblem-vendor.png -> /etc/alternatives/emblem-vendor-256 + emblem-vendor-symbolic.png -> /etc/alternatives/emblem-vendor-symbolic-256 + emblem-vendor-white.png -> /etc/alternatives/emblem-vendor-white-256 + /usr/share/icons/vendor/64x64/emblems: + emblem-vendor.png -> /etc/alternatives/emblem-vendor-64 + emblem-vendor-symbolic.png -> /etc/alternatives/emblem-vendor-symbolic-64 + emblem-vendor-white.png -> /etc/alternatives/emblem-vendor-white-64 + /usr/share/icons/vendor/scalable/emblems: + emblem-vendor.svg -> /etc/alternatives/emblem-vendor-scalable + emblem-vendor-symbolic.svg -> /etc/alternatives/emblem-vendor-symbolic-scalable + emblem-vendor-white.svg -> /etc/alternatives/emblem-vendor-white-scalable + +1.2.1. Debian logos icons + +Several sizes of logo icons are shipped: + 64, 128, 256 and scalable (svg) +They can be found in: + /usr/share/icons/desktop-base/${size}x${size}/emblems/${emblem}.png + /usr/share/icons/desktop-base/emblems/${emblem}.svg + +[Legacy] +Several sizes of legacy logo icons are shipped: + 16, 22, 32, 36, 48, 64, 128, 256 and scalable (svg) +They can be found in: + /usr/share/icons/hicolor/${size}x${size}/emblems/${emblem}.png + /usr/share/icons/hicolor/${size}x${size}/emblems/${emblem}.icon + /usr/share/icons/hicolor/scalable/emblems/${emblem}.svg + /usr/share/icons/hicolor/scalable/emblems/${emblem}.icon +These will be removed after buster. + +1.2.2. Debian logos images + +The Debian logo images are shipped in: + /usr/share/desktop-base/debian-logos/ A Debian security logo is also shipped in: /usr/share/pixmaps/debian-security.png diff --git a/debian/desktop-base.lintian-overrides b/debian/desktop-base.lintian-overrides new file mode 100644 index 0000000..57a8950 --- /dev/null +++ b/debian/desktop-base.lintian-overrides @@ -0,0 +1,7 @@ +# The following folders are created in order to point alternatives to them. +# They filled by update-alternatives in postinst during installation. +desktop-base binary: package-contains-empty-directory usr/share/icons/vendor/128x128/emblems/ +desktop-base binary: package-contains-empty-directory usr/share/icons/vendor/256x256/emblems/ +desktop-base binary: package-contains-empty-directory usr/share/icons/vendor/64x64/emblems/ +desktop-base binary: package-contains-empty-directory usr/share/icons/vendor/scalable/emblems/ + diff --git a/debian/postinst b/debian/postinst index be13343..5b0c244 100644 --- a/debian/postinst +++ b/debian/postinst @@ -16,13 +16,49 @@ if [ "${1}" = "configure" ] && [ ! -z "${2}" ]; then fi fi -# Vendor logo alternative -update-alternatives --install \ - /usr/share/images/vendor-logos \ - vendor-logos \ - /usr/share/desktop-base/debian-logos 50 - if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-remove" ]; then + # Vendor logo alternative + update-alternatives --install \ + /usr/share/images/vendor-logos \ + vendor-logos \ + /usr/share/desktop-base/debian-logos 50 \ + --slave /usr/share/icons/vendor/64x64/emblems/emblem-vendor.png \ + emblem-vendor-64 \ + /usr/share/icons/desktop-base/64x64/emblems/emblem-debian.png \ + --slave /usr/share/icons/vendor/128x128/emblems/emblem-vendor.png \ + emblem-vendor-128 \ + /usr/share/icons/desktop-base/128x128/emblems/emblem-debian.png \ + --slave /usr/share/icons/vendor/256x256/emblems/emblem-vendor.png \ + emblem-vendor-256 \ + /usr/share/icons/desktop-base/256x256/emblems/emblem-debian.png \ + --slave /usr/share/icons/vendor/scalable/emblems/emblem-vendor.svg \ + emblem-vendor-scalable \ + /usr/share/icons/desktop-base/scalable/emblems/emblem-debian.svg \ + --slave /usr/share/icons/vendor/64x64/emblems/emblem-vendor-symbolic.png \ + emblem-vendor-symbolic-64 \ + /usr/share/icons/desktop-base/64x64/emblems/emblem-debian-symbolic.png \ + --slave /usr/share/icons/vendor/128x128/emblems/emblem-vendor-symbolic.png \ + emblem-vendor-symbolic-128 \ + /usr/share/icons/desktop-base/128x128/emblems/emblem-debian-symbolic.png \ + --slave /usr/share/icons/vendor/256x256/emblems/emblem-vendor-symbolic.png \ + emblem-vendor-symbolic-256 \ + /usr/share/icons/desktop-base/256x256/emblems/emblem-debian-symbolic.png \ + --slave /usr/share/icons/vendor/scalable/emblems/emblem-vendor-symbolic.svg \ + emblem-vendor-symbolic-scalable \ + /usr/share/icons/desktop-base/scalable/emblems/emblem-debian-symbolic.svg \ + --slave /usr/share/icons/vendor/64x64/emblems/emblem-vendor-white.png \ + emblem-vendor-white-64 \ + /usr/share/icons/desktop-base/64x64/emblems/emblem-debian-white.png \ + --slave /usr/share/icons/vendor/128x128/emblems/emblem-vendor-white.png \ + emblem-vendor-white-128 \ + /usr/share/icons/desktop-base/128x128/emblems/emblem-debian-white.png \ + --slave /usr/share/icons/vendor/256x256/emblems/emblem-vendor-white.png \ + emblem-vendor-white-256 \ + /usr/share/icons/desktop-base/256x256/emblems/emblem-debian-white.png \ + --slave /usr/share/icons/vendor/scalable/emblems/emblem-vendor-white.svg \ + emblem-vendor-white-scalable \ + /usr/share/icons/desktop-base/scalable/emblems/emblem-debian-white.svg + # Theme package alternatives while read theme priority; do update-alternatives --install \ diff --git a/debian/prerm b/debian/prerm index 905ab37..2e571be 100644 --- a/debian/prerm +++ b/debian/prerm @@ -4,11 +4,12 @@ set -e # Tag to allow some debhelper commands to inject relevant code #DEBHELPER# -update-alternatives --remove \ - vendor-logos \ - /usr/share/desktop-base/debian-logos - if [ "$1" = "remove" ] || [ "$1" = "deconfigure" ]; then + # Remove vendor logos alternative, all slaves get removed automatically + update-alternatives --remove \ + vendor-logos \ + /usr/share/desktop-base/debian-logos + # Remove background alternatives for theme packages while read theme filename; do update-alternatives --remove \ diff --git a/emblems-debian/Makefile b/emblems-debian/Makefile index 7203ca2..4638380 100644 --- a/emblems-debian/Makefile +++ b/emblems-debian/Makefile @@ -1,12 +1,20 @@ -dir = usr/share/icons/hicolor -scal_emblems_dir = $(dir)/scalable/emblems +TARGET_DIR = usr/share/icons/desktop-base +TARGET_DIR_SCALABLE = $(TARGET_DIR)/scalable/emblems +# Generic folder for alternatives +TARGET_VENDOR = usr/share/icons/vendor +# TODO remove installing to _legacy early in bullseye cycle +TARGET_DIR_LEGACY = usr/share/icons/hicolor +TARGET_DIR_SCALABLE_LEGACY = $(TARGET_DIR_LEGACY)/scalable/emblems .PHONY: build clean install EMBLEMS = $(basename $(wildcard *.svg)) $(info Emblems: '$(EMBLEMS)') -RESOLUTIONS := 16 22 32 36 48 64 128 256 +# TODO remove installing to _legacy early in bullseye cycle +RESOLUTIONS := 64 128 256 $(info Resolutions: '$(RESOLUTIONS)') +RESOLUTIONS_LEGACY := 16 22 32 36 48 64 128 256 +$(info Legacy Resolutions: '$(RESOLUTIONS_LEGACY)') # The build: target should depend on all PNGs to generate $(info $(foreach SVG,$(EMBLEMS),$(foreach RES,$(RESOLUTIONS),$(SVG)-$(RES)x$(RES).png))) @@ -23,26 +31,64 @@ clean: rm -f *.png install: - install -d $(DESTDIR)/$(dir) + # Generic vendor folders, created empty and will be populated with + # update-alternatives + for RES in $(RESOLUTIONS) ; do \ + RES_DIR=$(DESTDIR)/$(TARGET_VENDOR)/$${RES}x$${RES}/emblems ; \ + install -d $${RES_DIR} ; \ + done + install -d $(DESTDIR)/$(TARGET_VENDOR)/scalable/emblems # Iterate over resolutions. # For each resolution, install PNG emblems in the emblems folder for their # resolution. + # TODO remove installing to _legacy early in bullseye cycle + for CURRENT_DIR in $(TARGET_DIR) $(TARGET_DIR_LEGACY) ; do \ + install -d $(DESTDIR)/$${CURRENT_DIR} ; \ + for RES in $(RESOLUTIONS) ; do \ + RES_DIR=$(DESTDIR)/$${CURRENT_DIR}/$${RES}x$${RES} ; \ + install -d $${RES_DIR} ; \ + for EMBLEM in $(EMBLEMS) ; do \ + EMBLEMS_DIR=$${RES_DIR}/emblems ; \ + install -d $${EMBLEMS_DIR} ; \ + PNG_SOURCE=$${EMBLEM}-$${RES}x$${RES}.png ; \ + $(INSTALL_DATA) $${PNG_SOURCE} $${EMBLEMS_DIR}/$${EMBLEM}.png ; \ + done ; \ + done ; \ + done + # TODO remove installing to _legacy early in bullseye cycle for RES in $(RESOLUTIONS) ; do \ - RES_DIR=$(DESTDIR)/$(dir)/$${RES}x$${RES} ; \ - install -d $${RES_DIR} ; \ + EMBLEMS_DIR=$(DESTDIR)/$(TARGET_DIR)/$${RES}x$${RES}/emblems ; \ + install -d $${EMBLEMS_DIR} ; \ for EMBLEM in $(EMBLEMS) ; do \ - EMBLEMS_DIR=$${RES_DIR}/emblems ; \ - install -d $${EMBLEMS_DIR} ; \ PNG_SOURCE=$${EMBLEM}-$${RES}x$${RES}.png ; \ $(INSTALL_DATA) $${PNG_SOURCE} $${EMBLEMS_DIR}/$${EMBLEM}.png ; \ + done ; \ + done + for RES in $(RESOLUTIONS_LEGACY) ; do \ + EMBLEMS_DIR=$(DESTDIR)/$(TARGET_DIR_LEGACY)/$${RES}x$${RES}/emblems ; \ + install -d $${EMBLEMS_DIR} ; \ + for EMBLEM in $(EMBLEMS) ; do \ + $(INSTALL_DATA) $${PNG_SOURCE} $${EMBLEMS_DIR}/$${EMBLEM}.png ; \ $(INSTALL_DATA) $${EMBLEM}.icon $${EMBLEMS_DIR}/ ; \ done ; \ done # Install SVG emblems in the scalable emblems dir. + for CURRENT_SCAL_DIR in $(TARGET_DIR_SCALABLE) $(TARGET_DIR_SCALABLE_LEGACY) ; do \ + install -d $(DESTDIR)/$${CURRENT_SCAL_DIR} ; \ + for EMBLEM in $(EMBLEMS) ; do \ + EMBLEMS_DIR=$(DESTDIR)/$${CURRENT_SCAL_DIR} ; \ + install -d $${EMBLEMS_DIR} ; \ + $(INSTALL_DATA) $${EMBLEM}.svg $${EMBLEMS_DIR}/ ; \ + done ; \ + done for EMBLEM in $(EMBLEMS) ; do \ - EMBLEMS_DIR=$(DESTDIR)/$(scal_emblems_dir) ; \ + EMBLEMS_DIR=$(DESTDIR)/$(TARGET_DIR_SCALABLE) ; \ install -d $${EMBLEMS_DIR} ; \ $(INSTALL_DATA) $${EMBLEM}.svg $${EMBLEMS_DIR}/ ; \ + done + for EMBLEM in $(EMBLEMS) ; do \ + EMBLEMS_DIR=$(DESTDIR)/$(TARGET_DIR_SCALABLE_LEGACY) ; \ + install -d $${EMBLEMS_DIR} ; \ $(INSTALL_DATA) $${EMBLEM}.icon $${EMBLEMS_DIR}/ ; \ done diff --git a/emblems-debian/emblem-debian-symbolic.icon b/emblems-debian/emblem-debian-symbolic.icon new file mode 100644 index 0000000..bcae34d --- /dev/null +++ b/emblems-debian/emblem-debian-symbolic.icon @@ -0,0 +1,2 @@ +[Icon Data] +DisplayName=Debian Symbolic diff --git a/emblems-debian/emblem-debian-symbolic.svg b/emblems-debian/emblem-debian-symbolic.svg new file mode 100644 index 0000000..45cb85f --- /dev/null +++ b/emblems-debian/emblem-debian-symbolic.svg @@ -0,0 +1,122 @@ + + + +image/svg+xml \ No newline at end of file