From 6b56500a52cb5f29ddfee6a9dd415c0e81c38129 Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Wed, 25 May 2022 17:11:42 -0400 Subject: [PATCH] chore: debian packaging --- .gitignore | 24 ++++++++ .../com.system76.CosmicAppletAudio.desktop | 12 ++++ .../icons/com.system76.CosmicAppletAudio.svg | 60 +++++++++++++++++++ .../data/resources/resources.gresource.xml | 6 ++ .../com.system76.CosmicAppletGraphics.desktop | 12 ++++ .../com.system76.CosmicAppletGraphics.svg | 60 +++++++++++++++++++ .../data/resources/resources.gresource.xml | 6 ++ .../com.system76.CosmicAppletNetwork.desktop | 12 ++++ .../com.system76.CosmicAppletNetwork.svg | 60 +++++++++++++++++++ .../data/resources/resources.gresource.xml | 6 ++ .../com.system76.CosmicAppletPower.desktop | 12 ++++ .../icons/com.system76.CosmicAppletPower.svg | 60 +++++++++++++++++++ .../data/resources/resources.gresource.xml | 6 ++ debian/changelog | 5 ++ debian/control | 21 +++++++ debian/copyright | 9 +++ debian/rules | 30 ++++++++++ debian/source/format | 1 + justfile | 51 ++++++++++++++++ 19 files changed, 453 insertions(+) create mode 100644 applets/cosmic-applet-audio/data/com.system76.CosmicAppletAudio.desktop create mode 100644 applets/cosmic-applet-audio/data/icons/com.system76.CosmicAppletAudio.svg create mode 100644 applets/cosmic-applet-audio/data/resources/resources.gresource.xml create mode 100644 applets/cosmic-applet-graphics/data/com.system76.CosmicAppletGraphics.desktop create mode 100644 applets/cosmic-applet-graphics/data/icons/com.system76.CosmicAppletGraphics.svg create mode 100644 applets/cosmic-applet-graphics/data/resources/resources.gresource.xml create mode 100644 applets/cosmic-applet-network/data/com.system76.CosmicAppletNetwork.desktop create mode 100644 applets/cosmic-applet-network/data/icons/com.system76.CosmicAppletNetwork.svg create mode 100644 applets/cosmic-applet-network/data/resources/resources.gresource.xml create mode 100644 applets/cosmic-applet-power/data/com.system76.CosmicAppletPower.desktop create mode 100644 applets/cosmic-applet-power/data/icons/com.system76.CosmicAppletPower.svg create mode 100644 applets/cosmic-applet-power/data/resources/resources.gresource.xml create mode 100644 debian/changelog create mode 100644 debian/control create mode 100644 debian/copyright create mode 100755 debian/rules create mode 100644 debian/source/format create mode 100644 justfile diff --git a/.gitignore b/.gitignore index 2f7896d1..ce7463a6 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,25 @@ +# Cargo +.cargo. target/ +build/ +_build/ +builddir/ +vendor/ +vendor.tar + +build-aux/app +build-aux/.flatpak-builder/ +.flatpak/ +flatpak_app +.flatpak-builder + +.* +debian/* +!debian/*install +!debian/*postinst +!debian/changelog +!debian/copyright +!debian/control +!debian/links +!debian/rules +!debian/source diff --git a/applets/cosmic-applet-audio/data/com.system76.CosmicAppletAudio.desktop b/applets/cosmic-applet-audio/data/com.system76.CosmicAppletAudio.desktop new file mode 100644 index 00000000..aca6cf6d --- /dev/null +++ b/applets/cosmic-applet-audio/data/com.system76.CosmicAppletAudio.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Name=Cosmic Dock App List +Comment=Write a GTK + Rust application +Type=Application +Exec=cosmic-dock-app-list +Terminal=false +Categories=GNOME;GTK; +Keywords=Gnome;GTK; +# Translators: Do NOT translate or transliterate this text (this is an icon file name)! +Icon=com.system76.CosmicDockAppList.svg +StartupNotify=true +NoDisplay=true diff --git a/applets/cosmic-applet-audio/data/icons/com.system76.CosmicAppletAudio.svg b/applets/cosmic-applet-audio/data/icons/com.system76.CosmicAppletAudio.svg new file mode 100644 index 00000000..c2bd5b1b --- /dev/null +++ b/applets/cosmic-applet-audio/data/icons/com.system76.CosmicAppletAudio.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/applets/cosmic-applet-audio/data/resources/resources.gresource.xml b/applets/cosmic-applet-audio/data/resources/resources.gresource.xml new file mode 100644 index 00000000..2cf0970f --- /dev/null +++ b/applets/cosmic-applet-audio/data/resources/resources.gresource.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/applets/cosmic-applet-graphics/data/com.system76.CosmicAppletGraphics.desktop b/applets/cosmic-applet-graphics/data/com.system76.CosmicAppletGraphics.desktop new file mode 100644 index 00000000..aca6cf6d --- /dev/null +++ b/applets/cosmic-applet-graphics/data/com.system76.CosmicAppletGraphics.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Name=Cosmic Dock App List +Comment=Write a GTK + Rust application +Type=Application +Exec=cosmic-dock-app-list +Terminal=false +Categories=GNOME;GTK; +Keywords=Gnome;GTK; +# Translators: Do NOT translate or transliterate this text (this is an icon file name)! +Icon=com.system76.CosmicDockAppList.svg +StartupNotify=true +NoDisplay=true diff --git a/applets/cosmic-applet-graphics/data/icons/com.system76.CosmicAppletGraphics.svg b/applets/cosmic-applet-graphics/data/icons/com.system76.CosmicAppletGraphics.svg new file mode 100644 index 00000000..c2bd5b1b --- /dev/null +++ b/applets/cosmic-applet-graphics/data/icons/com.system76.CosmicAppletGraphics.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/applets/cosmic-applet-graphics/data/resources/resources.gresource.xml b/applets/cosmic-applet-graphics/data/resources/resources.gresource.xml new file mode 100644 index 00000000..2cf0970f --- /dev/null +++ b/applets/cosmic-applet-graphics/data/resources/resources.gresource.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/applets/cosmic-applet-network/data/com.system76.CosmicAppletNetwork.desktop b/applets/cosmic-applet-network/data/com.system76.CosmicAppletNetwork.desktop new file mode 100644 index 00000000..aca6cf6d --- /dev/null +++ b/applets/cosmic-applet-network/data/com.system76.CosmicAppletNetwork.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Name=Cosmic Dock App List +Comment=Write a GTK + Rust application +Type=Application +Exec=cosmic-dock-app-list +Terminal=false +Categories=GNOME;GTK; +Keywords=Gnome;GTK; +# Translators: Do NOT translate or transliterate this text (this is an icon file name)! +Icon=com.system76.CosmicDockAppList.svg +StartupNotify=true +NoDisplay=true diff --git a/applets/cosmic-applet-network/data/icons/com.system76.CosmicAppletNetwork.svg b/applets/cosmic-applet-network/data/icons/com.system76.CosmicAppletNetwork.svg new file mode 100644 index 00000000..c2bd5b1b --- /dev/null +++ b/applets/cosmic-applet-network/data/icons/com.system76.CosmicAppletNetwork.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/applets/cosmic-applet-network/data/resources/resources.gresource.xml b/applets/cosmic-applet-network/data/resources/resources.gresource.xml new file mode 100644 index 00000000..2cf0970f --- /dev/null +++ b/applets/cosmic-applet-network/data/resources/resources.gresource.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/applets/cosmic-applet-power/data/com.system76.CosmicAppletPower.desktop b/applets/cosmic-applet-power/data/com.system76.CosmicAppletPower.desktop new file mode 100644 index 00000000..aca6cf6d --- /dev/null +++ b/applets/cosmic-applet-power/data/com.system76.CosmicAppletPower.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Name=Cosmic Dock App List +Comment=Write a GTK + Rust application +Type=Application +Exec=cosmic-dock-app-list +Terminal=false +Categories=GNOME;GTK; +Keywords=Gnome;GTK; +# Translators: Do NOT translate or transliterate this text (this is an icon file name)! +Icon=com.system76.CosmicDockAppList.svg +StartupNotify=true +NoDisplay=true diff --git a/applets/cosmic-applet-power/data/icons/com.system76.CosmicAppletPower.svg b/applets/cosmic-applet-power/data/icons/com.system76.CosmicAppletPower.svg new file mode 100644 index 00000000..c2bd5b1b --- /dev/null +++ b/applets/cosmic-applet-power/data/icons/com.system76.CosmicAppletPower.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/applets/cosmic-applet-power/data/resources/resources.gresource.xml b/applets/cosmic-applet-power/data/resources/resources.gresource.xml new file mode 100644 index 00000000..2cf0970f --- /dev/null +++ b/applets/cosmic-applet-power/data/resources/resources.gresource.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 00000000..44f7780f --- /dev/null +++ b/debian/changelog @@ -0,0 +1,5 @@ +cosmic-applets (0.1.0) UNRELEASED; urgency=medium + + * Initial release. + + -- Ashley Wulber Thu, 07 Apr 2022 09:39:19 -0700 diff --git a/debian/control b/debian/control new file mode 100644 index 00000000..0487dcd9 --- /dev/null +++ b/debian/control @@ -0,0 +1,21 @@ +Source: cosmic-applets +Section: admin +Priority: optional +Maintainer: system76 +Build-Depends: + debhelper (>= 11), + debhelper-compat (= 11), + rustc (>=1.57), + cargo, + libgtk-4-dev, + just, + pkg-config, +Standards-Version: 4.3.0 +Homepage: https://github.com/pop-os/cosmic-applets + +Package: cosmic-applets +Architecture: amd64 arm64 +Depends: + ${misc:Depends}, + ${shlibs:Depends} +Description: XDG Shell Wrapper diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 00000000..ac8bcd6e --- /dev/null +++ b/debian/copyright @@ -0,0 +1,9 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: cosmic-applets +Source: https://github.com/pop-os/cosmic-applets + +Files: * +Copyright: Copyright 2022 system76 +License: MPL-2.0 + The complete text of the Mozilla Public License 2.0 can be found in + the file `/usr/share/common-licenses/MPL-2.0'. diff --git a/debian/rules b/debian/rules new file mode 100755 index 00000000..c903bfe4 --- /dev/null +++ b/debian/rules @@ -0,0 +1,30 @@ +#!/usr/bin/make -f + +DESTDIR = debian/cosmic-applets +CLEAN ?= 1 +VENDOR ?= 1 + +%: + dh $@ + +override_dh_shlibdeps: + dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info + +override_dh_auto_clean: + if test "${CLEAN}" = "1"; then \ + cargo clean; \ + fi + + if ! ischroot && test "${VENDOR}" = "1"; then \ + mkdir -p .cargo; \ + cargo vendor --sync Cargo.toml | head -n -1 > .cargo/config; \ + echo 'directory = "vendor"' >> .cargo/config; \ + tar pcf vendor.tar vendor; \ + rm -rf vendor; \ + fi + +override_dh_auto_build: + just rootdir=$(DESTDIR) debug=$(DEBUG) vendor=$(VENDOR) + +override_dh_auto_install: + just rootdir=$(DESTDIR) install \ No newline at end of file diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 00000000..89ae9db8 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (native) diff --git a/justfile b/justfile new file mode 100644 index 00000000..5afda439 --- /dev/null +++ b/justfile @@ -0,0 +1,51 @@ +rootdir := '' +prefix := '/usr' +clean := '0' +debug := '0' +vendor := '0' +target := if debug == '1' { 'debug' } else { 'release' } +vendor_args := if vendor == '1' { '--frozen --offline' } else { '' } +debug_args := if debug == '1' { '' } else { '--release' } +cargo_args := vendor_args + ' ' + debug_args + + +sharedir := rootdir + prefix + '/share' +iconsdir := sharedir + '/icons/hicolor/scalable/apps' +bindir := rootdir + prefix + '/bin' + +audio_id := 'com.system76.CosmicAppletAudio' +graphics_id := 'com.system76.CosmicAppletGraphics' +network_id := 'com.system76.CosmicAppletNetwork' +power_id := 'com.system76.CosmicAppletPower' + +all: _extract_vendor + cargo build {{cargo_args}} + +# Installs files into the system +install: + # audio + install -Dm0644 applets/cosmic-applet-audio/data/icons/{{audio_id}}.svg {{iconsdir}}/{{audio_id}}.svg + install -Dm0644 applets/cosmic-applet-audio/data/{{audio_id}}.desktop {{sharedir}}/applications/{{audio_id}}.desktop + install -Dm04755 target/release/cosmic-applet-audio {{bindir}}/cosmic-applet-audio + + # graphics + install -Dm0644 applets/cosmic-applet-graphics/data/icons/{{graphics_id}}.svg {{iconsdir}}/{{graphics_id}}.svg + install -Dm0644 applets/cosmic-applet-graphics/data/{{graphics_id}}.desktop {{sharedir}}/applications/{{graphics_id}}.desktop + install -Dm04755 target/release/cosmic-applet-graphics {{bindir}}/cosmic-applet-graphics + + # network + install -Dm0644 applets/cosmic-applet-network/data/icons/{{network_id}}.svg {{iconsdir}}/{{network_id}}.svg + install -Dm0644 applets/cosmic-applet-network/data/{{network_id}}.desktop {{sharedir}}/applications/{{network_id}}.desktop + install -Dm04755 target/release/cosmic-applet-network {{bindir}}/cosmic-applet-network + + # power + install -Dm0644 applets/cosmic-applet-power/data/icons/{{power_id}}.svg {{iconsdir}}/{{power_id}}.svg + install -Dm0644 applets/cosmic-applet-power/data/{{power_id}}.desktop {{sharedir}}/applications/{{power_id}}.desktop + install -Dm04755 target/release/cosmic-applet-power {{bindir}}/cosmic-applet-power + +# Extracts vendored dependencies if vendor=1 +_extract_vendor: + #!/usr/bin/env sh + if test {{vendor}} = 1; then + rm -rf vendor; tar pxf vendor.tar + fi