summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--repo/acpica/acpica.xibuild25
-rw-r--r--repo/acpica/disable-werror.patch13
-rw-r--r--repo/acpica/iasl.xibuild7
-rw-r--r--repo/alsa-plugins/pulseaudio-alsa.xibuild2
-rw-r--r--repo/bash/bash.xibuild2
-rw-r--r--repo/catch2/catch2.xibuild2
-rw-r--r--repo/dino/dino.xibuild32
-rw-r--r--repo/dino/mobile-ui.patch967
-rw-r--r--repo/edk2/0008-BaseTools-do-not-build-BrotliCompress-RH-only.patch43
-rw-r--r--repo/edk2/0009-MdeModulePkg-remove-package-private-Brotli-include-p.patch49
-rw-r--r--repo/edk2/build-hack.patch13
-rw-r--r--repo/edk2/disable-werror.patch11
-rw-r--r--repo/edk2/edk2-ovmf.xibuild19
-rw-r--r--repo/edk2/edk2.xibuild84
-rw-r--r--repo/hdparm/hdparm.xibuild27
-rw-r--r--repo/i2c-tools/i2c-tools.xibuild4
-rw-r--r--repo/imagemagick/imagemagick.xibuild4
-rw-r--r--repo/linux-firmware/linux-firmware.xibuild2
-rw-r--r--repo/linux-headers/linux-headers.xibuild2
-rw-r--r--repo/linux-libre/linux-libre-src.xibuild2
-rw-r--r--repo/linux-libre/linux-libre.xibuild10
-rw-r--r--repo/linux/linux.xibuild2
-rw-r--r--repo/lolcat/lolcat.xibuild19
-rw-r--r--repo/mesa/mesa.xibuild2
-rw-r--r--repo/meson/meson.xibuild2
-rw-r--r--repo/nuspell/nuspell.xibuild30
-rw-r--r--repo/polkit-gnome/polkit-gnome-authentication-agent-1.desktop88
-rw-r--r--repo/polkit-gnome/polkit-gnome.xibuild30
-rw-r--r--repo/polkit/alpine-polkit.pam7
-rw-r--r--repo/polkit/polkit-common.pre-install6
-rw-r--r--repo/polkit/polkit-common.pre-upgrade6
-rw-r--r--repo/polkit/polkit.initd12
-rw-r--r--repo/polkit/polkit.xibuild68
-rw-r--r--repo/ronn/fix-ruby-3.1-compat.patch24
-rw-r--r--repo/ronn/mustache-1.X.patch50
-rw-r--r--repo/ronn/ronn.xibuild53
-rw-r--r--repo/ruby-kramdown/gemspec.patch18
-rw-r--r--repo/ruby-kramdown/ruby-kramdown.xibuild48
-rw-r--r--repo/ruby-mustache/fix-test-race-condition.patch36
-rw-r--r--repo/ruby-mustache/ruby-mustache.xibuild46
-rw-r--r--repo/ruby-mustache/skip-simplecov.patch13
-rw-r--r--repo/ruby-nokogiri/gemspec-fix-deps.patch15
-rw-r--r--repo/ruby-nokogiri/ruby-nokogiri.xibuild62
-rw-r--r--repo/ruby-nokogiri/shutdown-libxml2-warning.patch12
-rw-r--r--repo/ruby-nokogiri/test-helper-remove-unnecessary-deps.patch22
-rw-r--r--repo/spice-gtk/disable-test-relying-on-usb.patch22
-rw-r--r--repo/spice-gtk/fix-pkgconfig-version.patch13
-rw-r--r--repo/spice-gtk/spice-gtk.xibuild46
-rw-r--r--repo/spice-vdagent/spice-vdagent.xibuild33
-rw-r--r--repo/spice-vdagent/spice-vdagentd.initd13
-rw-r--r--repo/squashfs-tools/fix-compat.patch12
-rw-r--r--repo/squashfs-tools/squashfs-tools.xibuild27
-rw-r--r--repo/xipkg/xipkg.xibuild12
-rw-r--r--repo/xiutils/shmk.xibuild7
-rw-r--r--repo/xiutils/xitui.xibuild4
-rw-r--r--repo/xiutils/xiutils.xibuild7
56 files changed, 2132 insertions, 55 deletions
diff --git a/repo/acpica/acpica.xibuild b/repo/acpica/acpica.xibuild
new file mode 100644
index 0000000..dcc24ce
--- /dev/null
+++ b/repo/acpica/acpica.xibuild
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+NAME="acpica"
+DESC="ACPI Component Architecture utilities"
+
+MAKEDEPS=" flex bison"
+
+PKG_VER=20210930
+SOURCE="https://acpica.org/sites/acpica/files/acpica-unix-$PKG_VER.tar.gz"
+
+ADDITIONAL="
+disable-werror.patch
+"
+
+prepare () {
+ apply_patches
+}
+
+build() {
+ make
+}
+
+package() {
+ make install DESTDIR="$PKG_DEST"
+}
diff --git a/repo/acpica/disable-werror.patch b/repo/acpica/disable-werror.patch
new file mode 100644
index 0000000..da0c7c8
--- /dev/null
+++ b/repo/acpica/disable-werror.patch
@@ -0,0 +1,13 @@
+diff --git a/generate/unix/Makefile.config b/generate/unix/Makefile.config
+index a1f0313..8c4e8e7 100644
+--- a/generate/unix/Makefile.config
++++ b/generate/unix/Makefile.config
+@@ -194,7 +194,7 @@ CWARNINGFLAGS = \
+ -Wall\
+ -Wbad-function-cast\
+ -Wdeclaration-after-statement\
+- -Werror\
++ -Wno-pointer-to-int-cast\
+ -Wformat=2\
+ -Wmissing-declarations\
+ -Wmissing-prototypes\
diff --git a/repo/acpica/iasl.xibuild b/repo/acpica/iasl.xibuild
new file mode 100644
index 0000000..8cd90ca
--- /dev/null
+++ b/repo/acpica/iasl.xibuild
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+DESC="ACPI ASL compiler"
+
+package () {
+ add_from_main usr/bin/iasl
+}
diff --git a/repo/alsa-plugins/pulseaudio-alsa.xibuild b/repo/alsa-plugins/pulseaudio-alsa.xibuild
index 942ee75..738e80a 100644
--- a/repo/alsa-plugins/pulseaudio-alsa.xibuild
+++ b/repo/alsa-plugins/pulseaudio-alsa.xibuild
@@ -1,7 +1,7 @@
#!/bin/sh
DESC="Config files required for alsa to work with pulseaudio"
-DESP="alsa-plugins"
+DEPS="alsa-plugins"
package () {
mkdir -p $PKG_DEST/etc/alsa/conf.d
diff --git a/repo/bash/bash.xibuild b/repo/bash/bash.xibuild
index 63626b5..81b85c0 100644
--- a/repo/bash/bash.xibuild
+++ b/repo/bash/bash.xibuild
@@ -24,3 +24,5 @@ postinstall () {
echo "/bin/bash" >> /etc/shells
fi
}
+
+
diff --git a/repo/catch2/catch2.xibuild b/repo/catch2/catch2.xibuild
index f493465..3774bbf 100644
--- a/repo/catch2/catch2.xibuild
+++ b/repo/catch2/catch2.xibuild
@@ -21,10 +21,10 @@ check() {
cd build
# ApprovalTests is broken https://github.com/catchorg/Catch2/issues/1780
CTEST_OUTPUT_ON_FAILURE=TRUE ctest -E "ApprovalTests"
+ cd ..
}
package() {
- cd $BUILD_ROOT
DESTDIR="$PKG_DEST" cmake --install build
}
diff --git a/repo/dino/dino.xibuild b/repo/dino/dino.xibuild
new file mode 100644
index 0000000..8f40781
--- /dev/null
+++ b/repo/dino/dino.xibuild
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+NAME="dino"
+DESC="Modern Jabber/XMPP client"
+
+MAKEDEPS=" cmake glib glib-networking gpgme gspell gst-libav gst-plugins-base gtk3 libgcrypt libgee libhandy1 libnice libqrencode libsignal-protocol-c libsoup libsrtp ninja sqlite vala webrtc-audio-processing"
+
+PKG_VER=0.3.0
+SOURCE="https://github.com/dino/dino/releases/download/v$PKG_VER/dino-$PKG_VER.tar.gz"
+
+ADDITIONAL="
+mobile-ui.patch
+"
+
+build() {
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --with-tests
+ make
+}
+
+check() {
+ build/xmpp-vala-test
+ build/signal-protocol-vala-test
+}
+
+package() {
+ make DESTDIR="$PKG_DEST" install
+}
diff --git a/repo/dino/mobile-ui.patch b/repo/dino/mobile-ui.patch
new file mode 100644
index 0000000..f274acf
--- /dev/null
+++ b/repo/dino/mobile-ui.patch
@@ -0,0 +1,967 @@
+diff --git a/cmake/FindHandy.cmake b/cmake/FindHandy.cmake
+new file mode 100644
+index 00000000..49148f0f
+--- /dev/null
++++ b/cmake/FindHandy.cmake
+@@ -0,0 +1,11 @@
++include(PkgConfigWithFallback)
++find_pkg_config_with_fallback(Handy
++ PKG_CONFIG_NAME libhandy-1
++ LIB_NAMES libhandy-1
++ INCLUDE_NAMES handy.h
++)
++
++include(FindPackageHandleStandardArgs)
++find_package_handle_standard_args(Handy
++ REQUIRED_VARS Handy_LIBRARY
++ VERSION_VAR Handy_VERSION)
+diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt
+index e052785a..f6c3edc7 100644
+--- a/main/CMakeLists.txt
++++ b/main/CMakeLists.txt
+@@ -11,6 +11,7 @@ find_packages(MAIN_PACKAGES REQUIRED
+ GTK3
+ ICU
+ Gspell
++ Handy
+ )
+
+ set(RESOURCE_LIST
+diff --git a/main/data/add_conversation/select_jid_fragment.ui b/main/data/add_conversation/select_jid_fragment.ui
+index 50bc0e36..be56e710 100644
+--- a/main/data/add_conversation/select_jid_fragment.ui
++++ b/main/data/add_conversation/select_jid_fragment.ui
+@@ -1,82 +1,88 @@
+ <?xml version="1.0" encoding="UTF-8"?>
+ <interface>
+ <template class="DinoUiSelectJidFragment">
+- <property name="height_request">500</property>
+- <property name="width_request">460</property>
++ <property name="height_request">480</property>
+ <property name="visible">True</property>
+ <child>
+- <object class="GtkGrid">
+- <property name="expand">True</property>
+- <property name="margin-top">20</property>
+- <property name="margin-right">80</property>
+- <property name="margin-bottom">20</property>
+- <property name="margin-left">80</property>
+- <property name="orientation">vertical</property>
+- <property name="row-spacing">10</property>
++ <object class="HdyClamp">
++ <property name="margin-right">18</property>
++ <property name="margin-left">18</property>
++ <property name="maximum-size">300</property>
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <child>
+- <object class="GtkEntry" id="entry">
+- <property name="activates_default">True</property>
+- <property name="hexpand">True</property>
+- <property name="visible">True</property>
+- </object>
+- </child>
+- <child>
+- <object class="GtkBox">
++ <object class="GtkGrid">
+ <property name="expand">True</property>
++ <property name="margin-top">20</property>
++ <property name="margin-bottom">20</property>
+ <property name="orientation">vertical</property>
++ <property name="row-spacing">10</property>
+ <property name="visible">True</property>
+ <child>
+- <object class="GtkFrame">
++ <object class="GtkEntry" id="entry">
++ <property name="activates_default">True</property>
++ <property name="hexpand">True</property>
++ <property name="visible">True</property>
++ </object>
++ </child>
++ <child>
++ <object class="GtkBox">
++ <property name="expand">True</property>
++ <property name="orientation">vertical</property>
+ <property name="visible">True</property>
+ <child>
+- <object class="GtkScrolledWindow" id="scrolled_window">
+- <property name="hscrollbar_policy">never</property>
+- <property name="expand">True</property>
++ <object class="GtkFrame">
+ <property name="visible">True</property>
+ <child>
+- <object class="GtkBox" id="box">
+- <property name="orientation">vertical</property>
++ <object class="GtkScrolledWindow" id="scrolled_window">
++ <property name="hscrollbar_policy">never</property>
++ <property name="expand">True</property>
+ <property name="visible">True</property>
++ <child>
++ <object class="GtkBox" id="box">
++ <property name="orientation">vertical</property>
++ <property name="visible">True</property>
++ </object>
++ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+- </object>
+- </child>
+- <child>
+- <object class="GtkToolbar">
+- <property name="visible">True</property>
+- <style>
+- <class name="inline-toolbar"/>
+- </style>
+ <child>
+- <object class="GtkToolItem">
++ <object class="GtkToolbar">
+ <property name="visible">True</property>
++ <style>
++ <class name="inline-toolbar"/>
++ </style>
+ <child>
+- <object class="GtkBox">
++ <object class="GtkToolItem">
+ <property name="visible">True</property>
+ <child>
+- <object class="GtkButton" id="add_button">
++ <object class="GtkBox">
+ <property name="visible">True</property>
+ <child>
+- <object class="GtkImage">
+- <property name="icon-name">list-add-symbolic</property>
+- <property name="icon-size">1</property>
++ <object class="GtkButton" id="add_button">
+ <property name="visible">True</property>
++ <child>
++ <object class="GtkImage">
++ <property name="icon-name">list-add-symbolic</property>
++ <property name="icon-size">1</property>
++ <property name="visible">True</property>
++ </object>
++ </child>
+ </object>
+ </child>
+- </object>
+- </child>
+- <child>
+- <object class="GtkButton" id="remove_button">
+- <property name="sensitive">False</property>
+- <property name="visible">True</property>
+ <child>
+- <object class="GtkImage">
+- <property name="icon-name">list-remove-symbolic</property>
+- <property name="icon-size">1</property>
++ <object class="GtkButton" id="remove_button">
++ <property name="sensitive">False</property>
+ <property name="visible">True</property>
++ <child>
++ <object class="GtkImage">
++ <property name="icon-name">list-remove-symbolic</property>
++ <property name="icon-size">1</property>
++ <property name="visible">True</property>
++ </object>
++ </child>
+ </object>
+ </child>
+ </object>
+diff --git a/main/data/contact_details_dialog.ui b/main/data/contact_details_dialog.ui
+index 4058bc77..3ba17746 100644
+--- a/main/data/contact_details_dialog.ui
++++ b/main/data/contact_details_dialog.ui
+@@ -1,6 +1,7 @@
+ <?xml version="1.0" encoding="UTF-8"?>
+ <interface>
+ <template class="DinoUiContactDetailsDialog">
++ <property name="default_width">800</property>
+ <property name="modal">True</property>
+ <child type="titlebar">
+ <object class="GtkHeaderBar">
+@@ -21,98 +22,103 @@
+ <property name="expand">True</property>
+ <property name="visible">True</property>
+ <child>
+- <object class="GtkBox">
+- <property name="orientation">vertical</property>
++ <object class="HdyClamp">
++ <property name="margin-right">18</property>
++ <property name="margin-left">18</property>
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <child>
+- <object class="GtkGrid">
+- <property name="margin-top">20</property>
+- <property name="margin-bottom">12</property>
+- <property name="margin-right">100</property>
+- <property name="margin-left">100</property>
+- <property name="column-spacing">10</property>
++ <object class="GtkBox">
++ <property name="orientation">vertical</property>
+ <property name="visible">True</property>
+ <child>
+- <object class="DinoUiAvatarImage" id="avatar">
+- <property name="height">50</property>
+- <property name="width">50</property>
+- <property name="visible">True</property>
+- <property name="allow_gray">False</property>
+- </object>
+- <packing>
+- <property name="left_attach">0</property>
+- <property name="top_attach">0</property>
+- <property name="width">1</property>
+- <property name="height">2</property>
+- </packing>
+- </child>
+- <child>
+- <object class="DinoUiUtilEntryLabelHybrid" id="name_hybrid">
+- <property name="xalign">0</property>
+- <property name="expand">True</property>
+- <property name="visible">True</property>
+- </object>
+- <packing>
+- <property name="left_attach">1</property>
+- <property name="top_attach">0</property>
+- <property name="width">1</property>
+- <property name="height">1</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkLabel" id="name_label">
+- <property name="xalign">0</property>
+- <property name="expand">True</property>
++ <object class="GtkGrid">
++ <property name="margin-top">20</property>
++ <property name="margin-bottom">12</property>
++ <property name="column-spacing">10</property>
++ <property name="expand">False</property>
+ <property name="visible">True</property>
+- <attributes>
+- <attribute name="weight" value="PANGO_WEIGHT_BOLD"/>
+- </attributes>
++ <child>
++ <object class="DinoUiAvatarImage" id="avatar">
++ <property name="height">50</property>
++ <property name="width">50</property>
++ <property name="visible">True</property>
++ <property name="allow_gray">False</property>
++ </object>
++ <packing>
++ <property name="left_attach">0</property>
++ <property name="top_attach">0</property>
++ <property name="width">1</property>
++ <property name="height">2</property>
++ </packing>
++ </child>
++ <child>
++ <object class="DinoUiUtilEntryLabelHybrid" id="name_hybrid">
++ <property name="xalign">0</property>
++ <property name="expand">True</property>
++ <property name="visible">True</property>
++ </object>
++ <packing>
++ <property name="left_attach">1</property>
++ <property name="top_attach">0</property>
++ <property name="width">1</property>
++ <property name="height">1</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkLabel" id="name_label">
++ <property name="xalign">0</property>
++ <property name="expand">True</property>
++ <property name="visible">True</property>
++ <attributes>
++ <attribute name="weight" value="PANGO_WEIGHT_BOLD"/>
++ </attributes>
++ </object>
++ <packing>
++ <property name="left_attach">1</property>
++ <property name="top_attach">0</property>
++ <property name="width">1</property>
++ <property name="height">1</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkLabel" id="jid_label">
++ <property name="xalign">0</property>
++ <property name="yalign">0</property>
++ <property name="selectable">True</property>
++ <property name="expand">True</property>
++ <property name="visible">True</property>
++ </object>
++ <packing>
++ <property name="left_attach">1</property>
++ <property name="top_attach">1</property>
++ <property name="width">1</property>
++ <property name="height">1</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkLabel" id="account_label">
++ <property name="xalign">1</property>
++ <property name="yalign">1</property>
++ <property name="margin">5</property>
++ <property name="expand">True</property>
++ <property name="visible">True</property>
++ </object>
++ <packing>
++ <property name="left_attach">1</property>
++ <property name="top_attach">2</property>
++ <property name="width">1</property>
++ <property name="height">1</property>
++ </packing>
++ </child>
+ </object>
+- <packing>
+- <property name="left_attach">1</property>
+- <property name="top_attach">0</property>
+- <property name="width">1</property>
+- <property name="height">1</property>
+- </packing>
+ </child>
+ <child>
+- <object class="GtkLabel" id="jid_label">
+- <property name="xalign">0</property>
+- <property name="yalign">0</property>
+- <property name="selectable">True</property>
+- <property name="expand">True</property>
++ <object class="GtkBox" id="main_box">
++ <property name="orientation">vertical</property>
+ <property name="visible">True</property>
+ </object>
+- <packing>
+- <property name="left_attach">1</property>
+- <property name="top_attach">1</property>
+- <property name="width">1</property>
+- <property name="height">1</property>
+- </packing>
+ </child>
+- <child>
+- <object class="GtkLabel" id="account_label">
+- <property name="xalign">1</property>
+- <property name="yalign">1</property>
+- <property name="margin">5</property>
+- <property name="expand">True</property>
+- <property name="visible">True</property>
+- </object>
+- <packing>
+- <property name="left_attach">2</property>
+- <property name="top_attach">1</property>
+- <property name="width">1</property>
+- <property name="height">1</property>
+- </packing>
+- </child>
+- </object>
+- </child>
+- <child>
+- <object class="GtkBox" id="main_box">
+- <property name="orientation">vertical</property>
+- <property name="margin-right">100</property>
+- <property name="margin-left">100</property>
+- <property name="visible">True</property>
+ </object>
+ </child>
+ </object>
+diff --git a/main/data/conversation_content_view/view.ui b/main/data/conversation_content_view/view.ui
+index 17f753f5..47302e2f 100644
+--- a/main/data/conversation_content_view/view.ui
++++ b/main/data/conversation_content_view/view.ui
+@@ -4,6 +4,7 @@
+ <property name="expand">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
++ <property name="width_request">350</property>
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkStack" id="stack">
+diff --git a/main/data/emojichooser.ui b/main/data/emojichooser.ui
+index d47a2c22..473820a6 100644
+--- a/main/data/emojichooser.ui
++++ b/main/data/emojichooser.ui
+@@ -187,7 +187,7 @@
+ </object>
+ </child>
+ <child>
+- <object class="GtkBox">
++ <object class="GtkGrid">
+ <property name="visible">1</property>
+ <!-- Remember to keep tooltips here in sync with section headings above -->
+ <child>
+@@ -204,6 +204,10 @@
+ </object>
+ </child>
+ </object>
++ <packing>
++ <property name="left_attach">0</property>
++ <property name="top_attach">0</property>
++ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="people.button">
+@@ -219,6 +223,10 @@
+ </object>
+ </child>
+ </object>
++ <packing>
++ <property name="left_attach">1</property>
++ <property name="top_attach">0</property>
++ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="body.button">
+@@ -234,6 +242,10 @@
+ </object>
+ </child>
+ </object>
++ <packing>
++ <property name="left_attach">2</property>
++ <property name="top_attach">0</property>
++ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="nature.button">
+@@ -249,6 +261,10 @@
+ </object>
+ </child>
+ </object>
++ <packing>
++ <property name="left_attach">3</property>
++ <property name="top_attach">0</property>
++ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="food.button">
+@@ -264,6 +280,10 @@
+ </object>
+ </child>
+ </object>
++ <packing>
++ <property name="left_attach">4</property>
++ <property name="top_attach">0</property>
++ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="travel.button">
+@@ -279,6 +299,10 @@
+ </object>
+ </child>
+ </object>
++ <packing>
++ <property name="left_attach">0</property>
++ <property name="top_attach">1</property>
++ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="activities.button">
+@@ -294,6 +318,10 @@
+ </object>
+ </child>
+ </object>
++ <packing>
++ <property name="left_attach">1</property>
++ <property name="top_attach">1</property>
++ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="objects.button">
+@@ -309,6 +337,10 @@
+ </object>
+ </child>
+ </object>
++ <packing>
++ <property name="left_attach">2</property>
++ <property name="top_attach">1</property>
++ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="symbols.button">
+@@ -324,6 +356,10 @@
+ </object>
+ </child>
+ </object>
++ <packing>
++ <property name="left_attach">3</property>
++ <property name="top_attach">1</property>
++ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="flags.button">
+@@ -339,6 +375,10 @@
+ </object>
+ </child>
+ </object>
++ <packing>
++ <property name="left_attach">4</property>
++ <property name="top_attach">1</property>
++ </packing>
+ </child>
+ </object>
+ </child>
+diff --git a/main/data/im.dino.Dino.appdata.xml.in b/main/data/im.dino.Dino.appdata.xml.in
+index c95ef12e..180b7873 100644
+--- a/main/data/im.dino.Dino.appdata.xml.in
++++ b/main/data/im.dino.Dino.appdata.xml.in
+@@ -45,5 +45,11 @@
+ </description>
+ </release>
+ </releases>
+- -->
+-</component>
++ -->
++
++ <custom>
++ <value key="Purism::form_factor">workstation</value>
++ <value key="Purism::form_factor">mobile</value>
++ </custom>
++
++ </component>
+diff --git a/main/data/im.dino.Dino.desktop b/main/data/im.dino.Dino.desktop
+index 90f3e38f..66faaa82 100644
+--- a/main/data/im.dino.Dino.desktop
++++ b/main/data/im.dino.Dino.desktop
+@@ -11,3 +11,4 @@ Type=Application
+ Categories=GTK;Network;Chat;InstantMessaging;
+ X-GNOME-UsesNotifications=true
+ MimeType=x-scheme-handler/xmpp;
++X-Purism-FormFactor=Workstation;Mobile;
+diff --git a/main/data/theme.css b/main/data/theme.css
+index 3e076248..897e4cc9 100644
+--- a/main/data/theme.css
++++ b/main/data/theme.css
+@@ -74,6 +74,11 @@ window.dino-main .dino-sidebar > frame {
+ border-bottom: 1px solid @borders;
+ }
+
++window.dino-main list.sidebar {
++ border-left: 0px;
++ border-right: 0px;
++}
++
+ .message-box {
+ transition: background .05s ease;
+ }
+diff --git a/main/data/unified_main_content.ui b/main/data/unified_main_content.ui
+index 03c206c1..e16bc4a8 100644
+--- a/main/data/unified_main_content.ui
++++ b/main/data/unified_main_content.ui
+@@ -1,12 +1,14 @@
+ <?xml version="1.0" encoding="UTF-8"?>
+ <interface>
+- <object class="GtkPaned" id="paned">
+- <property name="position">300</property>
++ <object class="HdyLeaflet" id="paned">
+ <property name="orientation">horizontal</property>
+ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="transition-type">slide</property>
+ <child>
+ <object class="GtkStack" id="left_stack">
+ <property name="visible">True</property>
++ <property name="hexpand">False</property>
+ <child>
+ <object class="GtkScrolledWindow" id="scrolled">
+ <property name="expand">True</property>
+@@ -29,6 +31,7 @@
+ <property name="valign">start</property>
+ <property name="halign">start</property>
+ <property name="visible">True</property>
++ <property name="width_request">260</property>
+ <child>
+ <object class="GtkImage" id="conversation_list_placeholder_image">
+ <property name="visible">True</property>
+@@ -44,7 +47,9 @@
+ <property name="margin-top">70</property>
+ <property name="margin-right">50</property>
+ <property name="visible">True</property>
++ <property name="xalign">0</property>
+ <property name="valign">end</property>
++ <property name="max-width-chars">0</property>
+ <property name="label" translatable="yes">Click here to start a conversation or join a channel.</property>
+ <style>
+ <class name="dim-label"/>
+@@ -58,10 +63,18 @@
+ </child>
+ </object>
+ <packing>
+- <property name="resize">False</property>
+- <property name="shrink">False</property>
++ <property name="name">list-pane</property>
+ </packing>
+ </child>
++ <child>
++ <object class="GtkSeparator" id="paned_separator">
++ <property name="orientation">vertical</property>
++ <property name="visible">True</property>
++ <style>
++ <class name="sidebar"/>
++ </style>
++ </object>
++ </child>
+ <child>
+ <object class="GtkOverlay">
+ <property name="visible">True</property>
+@@ -139,8 +152,7 @@
+ </child>
+ </object>
+ <packing>
+- <property name="resize">True</property>
+- <property name="shrink">False</property>
++ <property name="name">view-pane</property>
+ </packing>
+ </child>
+ </object>
+diff --git a/main/src/ui/add_conversation/add_conference_dialog.vala b/main/src/ui/add_conversation/add_conference_dialog.vala
+index a03f3db6..dfe877ec 100644
+--- a/main/src/ui/add_conversation/add_conference_dialog.vala
++++ b/main/src/ui/add_conversation/add_conference_dialog.vala
+@@ -35,6 +35,8 @@ public class AddConferenceDialog : Gtk.Dialog {
+ setup_jid_add_view();
+ setup_conference_details_view();
+ show_jid_add_view();
++
++ set_default_size(400, 520);
+ }
+
+ private void show_jid_add_view() {
+diff --git a/main/src/ui/add_conversation/select_contact_dialog.vala b/main/src/ui/add_conversation/select_contact_dialog.vala
+index d78a17c1..6be7cf3b 100644
+--- a/main/src/ui/add_conversation/select_contact_dialog.vala
++++ b/main/src/ui/add_conversation/select_contact_dialog.vala
+@@ -27,6 +27,8 @@ public class SelectContactDialog : Gtk.Dialog {
+
+ setup_view();
+ setup_headerbar();
++
++ set_default_size(400, 520);
+ }
+
+ public void set_filter(string str) {
+diff --git a/main/src/ui/contact_details/dialog.vala b/main/src/ui/contact_details/dialog.vala
+index f29d068e..fe21cbba 100644
+--- a/main/src/ui/contact_details/dialog.vala
++++ b/main/src/ui/contact_details/dialog.vala
+@@ -85,11 +85,11 @@ public class Dialog : Gtk.Dialog {
+ ListBoxRow list_row = new ListBoxRow() { activatable=false, visible=true };
+ Box row = new Box(Orientation.HORIZONTAL, 20) { margin_start=15, margin_end=15, margin_top=3, margin_bottom=3, visible=true };
+ list_row.add(row);
+- Label label_label = new Label(label) { xalign=0, yalign=0.5f, hexpand=true, visible=true };
++ Label label_label = new Label(label) { xalign=0, yalign=0.5f, hexpand=true, wrap=true, visible=true };
+ if (description != null && description != "") {
+ Box box = new Box(Orientation.VERTICAL, 0) { visible=true };
+ box.add(label_label);
+- Label desc_label = new Label("") { xalign=0, yalign=0.5f, hexpand=true, visible=true };
++ Label desc_label = new Label("") { xalign=0, yalign=0.5f, hexpand=true, wrap=true, visible=true };
+ desc_label.set_markup("<span size='small'>%s</span>".printf(Markup.escape_text(description)));
+ desc_label.get_style_context().add_class("dim-label");
+ box.add(desc_label);
+@@ -117,7 +117,7 @@ public class Dialog : Gtk.Dialog {
+
+ int pref_height, pref_width;
+ get_content_area().get_preferred_height(null, out pref_height);
+- get_preferred_width(out pref_width, null);
++ get_default_size(out pref_width, null);
+ resize(pref_width, int.min(500, pref_height));
+ }
+
+diff --git a/main/src/ui/conversation_titlebar/conversation_titlebar.vala b/main/src/ui/conversation_titlebar/conversation_titlebar.vala
+index 60d8286b..e7455cab 100644
+--- a/main/src/ui/conversation_titlebar/conversation_titlebar.vala
++++ b/main/src/ui/conversation_titlebar/conversation_titlebar.vala
+@@ -10,6 +10,10 @@ public interface ConversationTitlebar : Widget {
+ public abstract string? subtitle { get; set; }
+ public abstract string? title { get; set; }
+
++ public abstract bool back_button { get; set; }
++
++ public signal void back_pressed();
++
+ public abstract void insert_entry(Plugins.ConversationTitlebarEntry entry);
+ }
+
+@@ -28,6 +32,12 @@ public class ConversationTitlebarNoCsd : ConversationTitlebar, Gtk.Box {
+ }
+ }
+
++ private Revealer back_revealer;
++ public bool back_button {
++ get { return back_revealer.reveal_child; }
++ set { back_revealer.reveal_child = value; }
++ }
++
+ private Box widgets_box = new Box(Orientation.HORIZONTAL, 0) { margin_start=15, valign=Align.END, visible=true };
+ private Label title_label = new Label("") { ellipsize=EllipsizeMode.END, visible=true };
+ private Label subtitle_label = new Label("") { use_markup=true, ellipsize=EllipsizeMode.END, visible=false };
+@@ -36,8 +46,17 @@ public class ConversationTitlebarNoCsd : ConversationTitlebar, Gtk.Box {
+ Box content_box = new Box(Orientation.HORIZONTAL, 0) { margin=5, margin_start=15, margin_end=10, hexpand=true, visible=true };
+ this.add(content_box);
+
++ back_revealer = new Revealer() { visible = true, transition_type = RevealerTransitionType.SLIDE_RIGHT, transition_duration = 200, can_focus = false, reveal_child = false };
++ Button back_button = new Button.from_icon_name("go-previous-symbolic") { visible = true, valign = Align.CENTER, use_underline = true, relief = ReliefStyle.NONE };
++ back_button.get_style_context().add_class("image-button");
++ back_button.clicked.connect(() => back_pressed());
++ back_revealer.add(back_button);
++ content_box.add(back_revealer);
++
+ Box titles_box = new Box(Orientation.VERTICAL, 0) { valign=Align.CENTER, hexpand=true, visible=true };
+- content_box.add(titles_box);
++ ScrolledWindow titles_scroll = new ScrolledWindow(null, null) { vscrollbar_policy=NEVER, hscrollbar_policy=NEVER, visible=true };
++ titles_scroll.add(titles_box);
++ content_box.add(titles_scroll);
+
+ titles_box.add(title_label);
+ subtitle_label.attributes = new AttrList();
+@@ -65,11 +84,22 @@ public class ConversationTitlebarCsd : ConversationTitlebar, Gtk.HeaderBar {
+
+ public new string? title { get { return this.get_title(); } set { base.set_title(value); } }
+ public new string? subtitle { get { return this.get_subtitle(); } set { base.set_subtitle(value); } }
++ private Revealer back_revealer;
++ public bool back_button {
++ get { return back_revealer.reveal_child; }
++ set { back_revealer.reveal_child = value; }
++ }
+
+ public ConversationTitlebarCsd() {
+ this.get_style_context().add_class("dino-right");
+ show_close_button = true;
+ hexpand = true;
++ back_revealer = new Revealer() { visible = true, transition_type = RevealerTransitionType.SLIDE_RIGHT, transition_duration = 200, can_focus = false, reveal_child = false };
++ Button back_button = new Button.from_icon_name("go-previous-symbolic") { visible = true, valign = Align.CENTER, use_underline = true };
++ back_button.get_style_context().add_class("image-button");
++ back_button.clicked.connect(() => back_pressed());
++ back_revealer.add(back_button);
++ this.pack_start(back_revealer);
+ }
+
+ public void insert_entry(Plugins.ConversationTitlebarEntry entry) {
+@@ -77,6 +107,16 @@ public class ConversationTitlebarCsd : ConversationTitlebar, Gtk.HeaderBar {
+ Button gtk_widget = (Gtk.Button)widget;
+ this.pack_end(gtk_widget);
+ }
++
++ /*
++ * HdyLeaflet collapses based on natural_width, but labels set natural_width to the width required to have the full
++ * text in a single line, thus if the label gets longer, HdyLeaflet would collapse. Work around is to just use the
++ * minimum_width as natural_width.
++ */
++ public override void get_preferred_width(out int minimum_width, out int natural_width) {
++ base.get_preferred_width(out minimum_width, out natural_width);
++ natural_width = minimum_width;
++ }
+ }
+
+ }
+diff --git a/main/src/ui/main_window.vala b/main/src/ui/main_window.vala
+index 04c01b26..14563c28 100644
+--- a/main/src/ui/main_window.vala
++++ b/main/src/ui/main_window.vala
+@@ -22,8 +22,10 @@ public class MainWindow : Gtk.Window {
+ public ConversationListTitlebarCsd conversation_list_titlebar_csd;
+ public HeaderBar placeholder_headerbar = new HeaderBar() { title="Dino", show_close_button=true, visible=true };
+ public Box box = new Box(Orientation.VERTICAL, 0) { orientation=Orientation.VERTICAL, visible=true };
+- public Paned headerbar_paned = new Paned(Orientation.HORIZONTAL) { visible=true };
+- public Paned paned;
++ public Hdy.Leaflet headerbar_paned = new Hdy.Leaflet() { visible=true };
++ public Hdy.TitleBar titlebar = new Hdy.TitleBar() { visible=true };
++ public Hdy.HeaderGroup headergroup = new Hdy.HeaderGroup();
++ public Hdy.Leaflet paned;
+ public Revealer search_revealer;
+ public SearchEntry search_entry;
+ public GlobalSearch search_box;
+@@ -44,23 +46,33 @@ public class MainWindow : Gtk.Window {
+ restore_window_size();
+
+ this.get_style_context().add_class("dino-main");
+- setup_headerbar();
+- Gtk.Settings.get_default().notify["gtk-decoration-layout"].connect(set_window_buttons);
+- this.realize.connect(set_window_buttons);
+ setup_unified();
++ setup_headerbar();
+ setup_stack();
+
+- paned.bind_property("position", headerbar_paned, "position", BindingFlags.SYNC_CREATE | BindingFlags.BIDIRECTIONAL);
++ if (!Util.use_csd()) {
++ box.add(headerbar_paned);
++ box.add(new Separator(Orientation.VERTICAL) { visible = true });
++ }
++ box.add(paned);
++
++ paned.bind_property("transition-type", headerbar_paned, "transition-type", BindingFlags.SYNC_CREATE | BindingFlags.BIDIRECTIONAL);
++ paned.bind_property("mode-transition-duration", headerbar_paned, "mode-transition-duration", BindingFlags.SYNC_CREATE | BindingFlags.BIDIRECTIONAL);
++ paned.bind_property("child-transition-duration", headerbar_paned, "child-transition-duration", BindingFlags.SYNC_CREATE | BindingFlags.BIDIRECTIONAL);
++ paned.bind_property("visible-child-name", headerbar_paned, "visible-child-name", BindingFlags.SYNC_CREATE | BindingFlags.BIDIRECTIONAL);
++
++ headerbar_paned.bind_property("folded", headergroup, "decorate-all", BindingFlags.SYNC_CREATE);
+ }
+
+ private void setup_unified() {
+ Builder builder = new Builder.from_resource("/im/dino/Dino/unified_main_content.ui");
+- paned = (Paned) builder.get_object("paned");
+- box.add(paned);
++ paned = (Hdy.Leaflet) builder.get_object("paned");
++ paned.notify["folded"].connect_after(() => update_headerbar());
+ left_stack = (Stack) builder.get_object("left_stack");
+ right_stack = (Stack) builder.get_object("right_stack");
+ conversation_view = (ConversationView) builder.get_object("conversation_view");
+ conversation_selector = ((ConversationSelector) builder.get_object("conversation_list")).init(stream_interactor);
++ conversation_selector.conversation_selected.connect_after(() => show_view_pane());
+ search_box = ((GlobalSearch) builder.get_object("search_box")).init(stream_interactor);
+ search_revealer = (Revealer) builder.get_object("search_revealer");
+ search_entry = (SearchEntry) builder.get_object("search_entry");
+@@ -68,35 +80,60 @@ public class MainWindow : Gtk.Window {
+ conversation_list_placeholder_image.set_from_pixbuf(new Pixbuf.from_resource("/im/dino/Dino/icons/dino-conversation-list-placeholder-arrow.svg"));
+ }
+
++ private void update_headerbar() {
++ conversation_titlebar.back_button = paned.folded;
++ }
++
++ private void show_list_pane() {
++ paned.visible_child_name = "list-pane";
++ if (paned.folded) {
++ conversation_selector.unselect_row(conversation_selector.get_selected_row());
++ }
++ }
++
++ private void show_view_pane() {
++ paned.visible_child_name = "view-pane";
++ }
++
+ private void setup_headerbar() {
++ SizeGroup conversation_list_group = new SizeGroup(SizeGroupMode.HORIZONTAL);
++ conversation_list_group.add_widget(left_stack);
++ SizeGroup conversation_view_group = new SizeGroup(SizeGroupMode.HORIZONTAL);
++ conversation_view_group.add_widget(right_stack);
+ if (Util.use_csd()) {
+ conversation_list_titlebar_csd = new ConversationListTitlebarCsd() { visible=true };
+- headerbar_paned.pack1(conversation_list_titlebar_csd, false, false);
++ headerbar_paned.add_with_properties(conversation_list_titlebar_csd, "name", "list-pane");
++ headergroup.add_gtk_header_bar(conversation_list_titlebar_csd);
++ conversation_list_group.add_widget(conversation_list_titlebar_csd);
++
++ Separator sep = new Separator(Orientation.HORIZONTAL) { visible = true };
++ sep.get_style_context().add_class("sidebar");
++ headerbar_paned.add(sep);
+
+ conversation_titlebar_csd = new ConversationTitlebarCsd() { visible=true };
++ conversation_titlebar_csd.back_pressed.connect(() => show_list_pane());
+ conversation_titlebar = conversation_titlebar_csd;
+- headerbar_paned.pack2(conversation_titlebar_csd, true, false);
++ headerbar_paned.add_with_properties(conversation_titlebar_csd, "name", "view-pane");
++ headergroup.add_gtk_header_bar(conversation_titlebar_csd);
++ conversation_view_group.add_widget(conversation_titlebar);
++
++ titlebar.add(headerbar_paned);
+ } else {
+ ConversationListTitlebar conversation_list_titlebar = new ConversationListTitlebar() { visible=true };
+- headerbar_paned.pack1(conversation_list_titlebar, false, false);
++ headerbar_paned.add_with_properties(conversation_list_titlebar, "name", "list-pane");
++ conversation_list_group.add_widget(conversation_list_titlebar);
+
+- conversation_titlebar = new ConversationTitlebarNoCsd() { visible=true };
+- headerbar_paned.pack2(conversation_titlebar, true, false);
++ Separator sep = new Separator(Orientation.HORIZONTAL) { visible = true };
++ sep.get_style_context().add_class("sidebar");
++ headerbar_paned.add(sep);
+
+- box.add(headerbar_paned);
++ conversation_titlebar = new ConversationTitlebarNoCsd() { visible=true };
++ conversation_titlebar.back_pressed.connect(() => show_list_pane());
++ headerbar_paned.add_with_properties(conversation_titlebar, "name", "view-pane");
++ conversation_view_group.add_widget(conversation_titlebar);
+ }
+ }
+
+- private void set_window_buttons() {
+- if (!Util.use_csd()) return;
+- Gtk.Settings? gtk_settings = Gtk.Settings.get_default();
+- if (gtk_settings == null) return;
+-
+- string[] buttons = gtk_settings.gtk_decoration_layout.split(":");
+- this.conversation_list_titlebar_csd.decoration_layout = buttons[0] + ":";
+- this.conversation_titlebar_csd.decoration_layout = ((buttons.length == 2) ? ":" + buttons[1] : "");
+- }
+-
+ private void setup_stack() {
+ stack.add_named(box, "main");
+ stack.add_named(welcome_placeholder, "welcome_placeholder");
+@@ -118,7 +155,7 @@ public class MainWindow : Gtk.Window {
+
+ stack.set_visible_child_name("main");
+ if (Util.use_csd()) {
+- set_titlebar(headerbar_paned);
++ set_titlebar(titlebar);
+ }
+ } else if (stack_state == StackState.CLEAN_START || stack_state == StackState.NO_ACTIVE_ACCOUNTS) {
+ if (stack_state == StackState.CLEAN_START) {
+@@ -134,7 +171,7 @@ public class MainWindow : Gtk.Window {
+ left_stack.set_visible_child_name("placeholder");
+ right_stack.set_visible_child_name("placeholder");
+ if (Util.use_csd()) {
+- set_titlebar(headerbar_paned);
++ set_titlebar(titlebar);
+ }
+ }
+ }
+diff --git a/plugins/omemo/data/contact_details_dialog.ui b/plugins/omemo/data/contact_details_dialog.ui
+index 188bf06e..d9a35e97 100644
+--- a/plugins/omemo/data/contact_details_dialog.ui
++++ b/plugins/omemo/data/contact_details_dialog.ui
+@@ -2,7 +2,6 @@
+ <interface>
+ <template class="DinoPluginsOmemoContactDetailsDialog">
+ <property name="modal">True</property>
+- <property name="resizable">False</property>
+ <child internal-child="vbox">
+ <object class="GtkBox">
+ <property name="visible">True</property>
+@@ -37,6 +36,8 @@
+ <object class="GtkLabel" id="automatically_accept_new_label">
+ <property name="visible">True</property>
+ <property name="halign">start</property>
++ <property name="xalign">0</property>
++ <property name="wrap">True</property>
+ <attributes>
+ <attribute name="scale" value="1.1"/>
+ </attributes>
+@@ -114,8 +115,10 @@
+ <object class="GtkLabel" id="own_fingerprint_label">
+ <property name="visible">True</property>
+ <property name="halign">start</property>
+- <property name="justify">right</property>
+ <property name="hexpand">True</property>
++ <property name="max_width_chars">35</property>
++ <property name="xalign">0</property>
++ <property name="wrap">True</property>
+ </object>
+ </child>
+ <child>
+diff --git a/plugins/omemo/src/ui/contact_details_dialog.vala b/plugins/omemo/src/ui/contact_details_dialog.vala
+index b268cc13..a714b717 100644
+--- a/plugins/omemo/src/ui/contact_details_dialog.vala
++++ b/plugins/omemo/src/ui/contact_details_dialog.vala
+@@ -288,7 +288,7 @@ public class ContactDetailsDialog : Gtk.Dialog {
+ public class FingerprintRow : ListBoxRow {
+
+ private Image trust_image = new Image() { visible = true, halign = Align.END, icon_size = IconSize.BUTTON };
+- private Label fingerprint_label = new Label("") { use_markup=true, justify=Justification.RIGHT, visible=true, halign = Align.START, valign = Align.CENTER, hexpand = false };
++ private Label fingerprint_label = new Label("") { use_markup=true, max_width_chars=35, wrap=true, visible=true, halign = Align.START, valign = Align.CENTER, hexpand = false, xalign = 0 };
+ private Label trust_label = new Label(null) { visible = true, hexpand = true, xalign = 0 };
+
+ public Row row;
+diff --git a/plugins/omemo/src/ui/util.vala b/plugins/omemo/src/ui/util.vala
+index cf61ed82..0b0c4a9f 100644
+--- a/plugins/omemo/src/ui/util.vala
++++ b/plugins/omemo/src/ui/util.vala
+@@ -51,9 +51,8 @@ public static string fingerprint_markup(string s) {
+ b = (uint8) (b * factor);
+ }
+
+- if (i % 32 == 0 && i != 0) markup += "\n";
+ markup += @"<span foreground=\"$("#%02x%02x%02x".printf(r, g, b))\">$four_chars</span>";
+- if (i % 8 == 4 && i % 32 != 28) markup += " ";
++ if (i % 8 == 4) markup += " ";
+ }
+
+ return "<span font_family='monospace' font='8'>" + markup + "</span>";
diff --git a/repo/edk2/0008-BaseTools-do-not-build-BrotliCompress-RH-only.patch b/repo/edk2/0008-BaseTools-do-not-build-BrotliCompress-RH-only.patch
new file mode 100644
index 0000000..78d65ea
--- /dev/null
+++ b/repo/edk2/0008-BaseTools-do-not-build-BrotliCompress-RH-only.patch
@@ -0,0 +1,43 @@
+From dca56cf4d28bbbb1d3be029ce9a6710cb3f6cd2f Mon Sep 17 00:00:00 2001
+From: Laszlo Ersek <lersek@redhat.com>
+Date: Thu, 4 Jun 2020 13:34:12 +0200
+Subject: BaseTools: do not build BrotliCompress (RH only)
+
+Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] ->
+RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase:
+
+- no change
+
+Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] ->
+RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase:
+
+- New patch.
+
+BrotliCompress is not used for building ArmVirtPkg or OvmfPkg platforms.
+It depends on one of the upstream Brotli git submodules that we removed
+earlier in this rebase series. (See patch "remove upstream edk2's Brotli
+submodules (RH only").
+
+Do not attempt to build BrotliCompress.
+
+Signed-off-by: Laszlo Ersek <lersek@redhat.com>
+(cherry picked from commit db8ccca337e2c5722c1d408d2541cf653d3371a2)
+---
+ BaseTools/Source/C/GNUmakefile | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/BaseTools/Source/C/GNUmakefile b/BaseTools/Source/C/GNUmakefile
+index 8c191e0c38..3eae824a1c 100644
+--- a/BaseTools/Source/C/GNUmakefile
++++ b/BaseTools/Source/C/GNUmakefile
+@@ -48,7 +48,6 @@ all: makerootdir subdirs
+ LIBRARIES = Common
+ VFRAUTOGEN = VfrCompile/VfrLexer.h
+ APPLICATIONS = \
+- BrotliCompress \
+ VfrCompile \
+ EfiRom \
+ GenFfs \
+--
+2.27.0
+
diff --git a/repo/edk2/0009-MdeModulePkg-remove-package-private-Brotli-include-p.patch b/repo/edk2/0009-MdeModulePkg-remove-package-private-Brotli-include-p.patch
new file mode 100644
index 0000000..6046944
--- /dev/null
+++ b/repo/edk2/0009-MdeModulePkg-remove-package-private-Brotli-include-p.patch
@@ -0,0 +1,49 @@
+From 9729dd1d6b83961d531e29777d0cc4a610b108be Mon Sep 17 00:00:00 2001
+From: Laszlo Ersek <lersek@redhat.com>
+Date: Thu, 4 Jun 2020 13:39:08 +0200
+Subject: MdeModulePkg: remove package-private Brotli include path (RH only)
+
+Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] ->
+RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase:
+
+- no change
+
+Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] ->
+RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase:
+
+- New patch.
+
+Originating from upstream commit 58802e02c41b
+("MdeModulePkg/BrotliCustomDecompressLib: Make brotli a submodule",
+2020-04-16), "MdeModulePkg/MdeModulePkg.dec" contains a package-internal
+include path into a Brotli submodule.
+
+The edk2 build system requires such include paths to resolve successfully,
+regardless of the firmware platform being built. Because
+BrotliCustomDecompressLib is not consumed by any OvmfPkg or ArmVirtPkg
+platforms, and we've removed the submodule earlier in this patch set,
+remove the include path too.
+
+Signed-off-by: Laszlo Ersek <lersek@redhat.com>
+(cherry picked from commit e05e0de713c4a2b8adb6ff9809611f222bfe50ed)
+---
+ MdeModulePkg/MdeModulePkg.dec | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec
+index 8d38383915..ba2d0290e7 100644
+--- a/MdeModulePkg/MdeModulePkg.dec
++++ b/MdeModulePkg/MdeModulePkg.dec
+@@ -24,9 +24,6 @@
+ [Includes]
+ Include
+
+-[Includes.Common.Private]
+- Library/BrotliCustomDecompressLib/brotli/c/include
+-
+ [LibraryClasses]
+ ## @libraryclass Defines a set of methods to reset whole system.
+ ResetSystemLib|Include/Library/ResetSystemLib.h
+--
+2.27.0
+
diff --git a/repo/edk2/build-hack.patch b/repo/edk2/build-hack.patch
new file mode 100644
index 0000000..98d7c12
--- /dev/null
+++ b/repo/edk2/build-hack.patch
@@ -0,0 +1,13 @@
+VfrCompile seg.faults with fortify enabled. It's probably broken.
+
+diff -ru a/edk2-e242cdfb307a6dfe2c0f75c4719f5c1f6b418625/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp b/edk2-e242cdfb307a6dfe2c0f75c4719f5c1f6b418625/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp
+--- edk2-e242cdfb307a6dfe2c0f75c4719f5c1f6b418625/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp 2016-11-16 10:01:14.000000000 +0200
++++ edk2-e242cdfb307a6dfe2c0f75c4719f5c1f6b418625/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp 2016-11-16 14:47:30.211978076 +0200
+@@ -13,6 +13,7 @@
+
+ **/
+
++#define _FORTIFY_SOURCE 0
+ #include "stdio.h"
+ #include "stdlib.h"
+ #include "CommonLib.h"
diff --git a/repo/edk2/disable-werror.patch b/repo/edk2/disable-werror.patch
new file mode 100644
index 0000000..73f19d4
--- /dev/null
+++ b/repo/edk2/disable-werror.patch
@@ -0,0 +1,11 @@
+--- ./BaseTools/Source/C/Makefiles/header.makefile.orig
++++ ./BaseTools/Source/C/Makefiles/header.makefile
+@@ -73,7 +73,7 @@
+ -Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -g
+ else
+ BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -fwrapv \
+--fno-delete-null-pointer-checks -Wall -Werror \
++-fno-delete-null-pointer-checks -Wall \
+ -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict \
+ -Wno-unused-result -nostdlib -g
+ endif
diff --git a/repo/edk2/edk2-ovmf.xibuild b/repo/edk2/edk2-ovmf.xibuild
new file mode 100644
index 0000000..eec9426
--- /dev/null
+++ b/repo/edk2/edk2-ovmf.xibuild
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+DESC="Open Virtual Machine Firmware (OVMF) BIOS"
+
+build () {
+ echo "skip"
+}
+
+package () {
+ for fw in "$BUILD_ROOT"/Build/*/"$RELEASE"_"$TOOLCHAIN"/FV/*.fd; do
+ install -D $fw "$PKG_DEST"/usr/share/OVMF/${fw##*/}
+ done
+
+ # dont ship memfd for now to save space
+ rm -f "$PKG_DEST"/usr/share/OVMF/MEMFD.fd
+
+ install -d "$PKG_DEST"/usr/share/ovmf
+ ln -sf ../OVMF/OVMF.fd "$PKG_DEST"/usr/share/ovmf/bios.bin
+}
diff --git a/repo/edk2/edk2.xibuild b/repo/edk2/edk2.xibuild
new file mode 100644
index 0000000..d4deb4a
--- /dev/null
+++ b/repo/edk2/edk2.xibuild
@@ -0,0 +1,84 @@
+#!/bin/sh
+
+NAME="edk2"
+DESC="EFI Development Kit II"
+
+MAKEDEPS=" bash python iasl nasm util-linux util-linux-misc"
+
+PKG_VER=0.0.202202
+_realver=edk2-stable${PKG_VER##*.}
+_sslver=1.1.1n
+_sfver=3e
+SOURCE="https://github.com/tianocore/edk2/archive/$_realver.tar.gz"
+
+ADDITIONAL="
+https://www.openssl.org/source/openssl-$_sslver.tar.gz
+http://www.jhauser.us/arithmetic/SoftFloat-$_sfver.zip
+0008-BaseTools-do-not-build-BrotliCompress-RH-only.patch
+0009-MdeModulePkg-remove-package-private-Brotli-include-p.patch
+build-hack.patch
+disable-werror.patch
+"
+
+TARGET_ARCH=X64
+PLATFORM=OvmfPkg/OvmfPkgX64.dsc
+
+TOOLCHAIN=GCC5
+RELEASE=RELEASE
+
+
+prepare() {
+ # unix line endings for the files to be patched
+ sed -e 's/\r$//' -i BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp \
+ BaseTools/Source/C/VolInfo/VolInfo.c
+ rm -rf CryptoPkg/Library/OpensslLib/openssl
+ ln -s "$BUILD_ROOT"/openssl-$_sslver CryptoPkg/Library/OpensslLib/openssl
+ rm -rf ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3
+ ln -s "$BUILD_ROOT"/SoftFloat-$_sfver \
+ ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3
+ apply_patches
+}
+
+build() {
+ export WORKSPACE=$PWD
+ export PACKAGES_PATH=$PWD
+ export EDK_TOOLS_PATH=$PWD/BaseTools/
+ export PATH=$PWD/BaseTools/BinWrappers/PosixLike/:$PATH
+ # parallel build fails
+ unset MAKEFLAGS
+
+ bash -c ". edksetup.sh"
+ make -C BaseTools
+
+ msg "Building Plaform Files"
+ command build -b $RELEASE \
+ -a $TARGET_ARCH \
+ -t $TOOLCHAIN \
+ -p $PLATFORM \
+ -n ${JOBS:-2}
+}
+
+package() {
+ mkdir -p "$PKG_DEST"/usr/bin \
+ "$PKG_DEST"/usr/share/edk2/Conf \
+ "$PKG_DEST"/usr/share/edk2/Scripts
+
+ install BaseTools/Source/C/bin/* BaseTools/BinWrappers/PosixLike/LzmaF86Compress \
+ "$PKG_DEST"/usr/bin
+ install BaseTools/BuildEnv "$PKG_DEST"/usr/share/edk2/
+ install BaseTools/Conf/*.template "$PKG_DEST"/usr/share/edk2/Conf
+ install BaseTools/Scripts/GccBase.lds "$PKG_DEST"/usr/share/edk2/Scripts
+
+ for i in $(find BaseTools/Source/Python -type d -maxdepth 1); do
+ local mod=${i##*/}
+ test -f "$i/$mod.py" || continue
+ cp -R BaseTools/Source/Python/"$mod" "$PKG_DEST"/usr/share/edk2/Python/
+ cat <<- EOF > "$PKG_DEST"/usr/bin/"$mod".py
+ #!/bin/sh
+ export PYTHONPATH=/usr/share/edk2/Python
+ exec $PYTHON_COMMAND /usr/share/edk2/Python/$mod/$mod.py "\$@"
+ EOF
+ chmod +x "$PKG_DEST"/usr/bin/"$mod".py
+ done
+}
+
diff --git a/repo/hdparm/hdparm.xibuild b/repo/hdparm/hdparm.xibuild
new file mode 100644
index 0000000..12cff40
--- /dev/null
+++ b/repo/hdparm/hdparm.xibuild
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+NAME="hdparm"
+DESC="Utility for manipulating IDE device parameters"
+
+MAKEDEPS=" linux-headers"
+
+PKG_VER=9.63
+SOURCE="https://downloads.sourceforge.net/sourceforge/hdparm/hdparm-$PKG_VER.tar.gz"
+
+prepare() {
+ apply_patches
+ sed -i '/^LDFLAGS/d' "$BUILD_ROOT"/Makefile
+}
+
+build() {
+ export CFLAGS="$CFLAGS -D_GNU_SOURCE"
+ make
+}
+
+package() {
+ make DESTDIR="$PKG_DEST" install
+ install -D -m755 contrib/idectl "$PKG_DEST"/sbin
+ install -D -m755 contrib/ultrabayd "$PKG_DEST"/sbin
+ install -D -m644 LICENSE.TXT "$PKG_DEST"/usr/share/licenses/hdparm/LICENSE.TXT
+}
+
diff --git a/repo/i2c-tools/i2c-tools.xibuild b/repo/i2c-tools/i2c-tools.xibuild
index 27a8e72..6e9cd9a 100644
--- a/repo/i2c-tools/i2c-tools.xibuild
+++ b/repo/i2c-tools/i2c-tools.xibuild
@@ -36,3 +36,7 @@ package() {
}
+postinstall () {
+ groupadd i2c
+ echo 'KERNEL=="i2c-[0-9]*", GROUP="i2c"' >> /etc/udev/rules.d/10-local_i2c_group.rules
+}
diff --git a/repo/imagemagick/imagemagick.xibuild b/repo/imagemagick/imagemagick.xibuild
index 216cf35..f809c5d 100644
--- a/repo/imagemagick/imagemagick.xibuild
+++ b/repo/imagemagick/imagemagick.xibuild
@@ -5,9 +5,9 @@ DESC="Collection of tools and libraries for many image formats"
MAKEDEPS="chrpath fontconfig freetype2 ghostscript lcms2 libheif libjpeg-turbo libpng libjxl libtool libwebp libx11 libxext libxml2 perl tiff zlib librsvg"
-PKG_VER=7.1.0.30
+PKG_VER=7.1.0-45
version=${PKG_VER%.*}-${PKG_VER##*.}
-SOURCE="https://download.imagemagick.org/ImageMagick/download/releases/ImageMagick-$version.tar.xz"
+SOURCE="https://imagemagick.org/archive/ImageMagick-$PKG_VER.tar.xz"
build() {
diff --git a/repo/linux-firmware/linux-firmware.xibuild b/repo/linux-firmware/linux-firmware.xibuild
index 9bdb308..0bf7008 100644
--- a/repo/linux-firmware/linux-firmware.xibuild
+++ b/repo/linux-firmware/linux-firmware.xibuild
@@ -3,7 +3,7 @@
MAKEDEPS=""
DEPS="linux"
-PKG_VER=5.18.2
+PKG_VER=5.19
SOURCE=https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
BRANCH=02c69863c885db963f8c0121b533f2816ef5be3b
diff --git a/repo/linux-headers/linux-headers.xibuild b/repo/linux-headers/linux-headers.xibuild
index 77849f8..96f8b27 100644
--- a/repo/linux-headers/linux-headers.xibuild
+++ b/repo/linux-headers/linux-headers.xibuild
@@ -4,7 +4,7 @@ MAKEDEPS="make cpio bc perl libelf kmod xmlto xz"
DEPS="pahole"
DESC="Linux kernel headers"
-PKG_VER=5.18.3
+PKG_VER=5.19
SOURCE=https://cdn.kernel.org/pub/linux/kernel/v${PKG_VER%%.*}.x/linux-$PKG_VER.tar.xz
build () {
diff --git a/repo/linux-libre/linux-libre-src.xibuild b/repo/linux-libre/linux-libre-src.xibuild
index 3ce3796..41e325e 100644
--- a/repo/linux-libre/linux-libre-src.xibuild
+++ b/repo/linux-libre/linux-libre-src.xibuild
@@ -5,7 +5,7 @@ DESC="$DESC (source)"
package () {
srcdir=$PKG_DEST/usr/src/
mkdir -p $srcdir
- tar -xf linux-$PKG_VER.tar.xz -C $srcdir
+ tar -xf linux-libre-$PKG_VER-gnu.tar.xz -C $srcdir
make -C $srcdir/linux-$PKG_VER mrproper
cp config $srcdir/linux-$PKG_VER/.config
make -C $srcdir/linux-$PKG_VER olddefconfig
diff --git a/repo/linux-libre/linux-libre.xibuild b/repo/linux-libre/linux-libre.xibuild
index b3c10cf..8e7eac4 100644
--- a/repo/linux-libre/linux-libre.xibuild
+++ b/repo/linux-libre/linux-libre.xibuild
@@ -3,20 +3,20 @@
MAKEDEPS="make bc linux-headers cpio"
DEPS="sbase kmod"
-PKG_VER=5.18.6
-SOURCE=https://cdn.kernel.org/pub/linux/kernel/v${PKG_VER%%.*}.x/linux-$PKG_VER.tar.xz
+PKG_VER=5.19
+#SOURCE=https://cdn.kernel.org/pub/linux/kernel/v${PKG_VER%%.*}.x/linux-$PKG_VER.tar.xz
+SOURCE=https://linux-libre.fsfla.org/pub/linux-libre/releases/LATEST-${PKG_VER%%.*}.N/linux-libre-${PKG_VER}-gnu.tar.xz
ADDITIONAL="
fix-sbase-coreutils.patch
config
- https://linux-libre.fsfla.org/pub/linux-libre/releases/$PKG_VER-gnu/deblob-${PKG_VER%.*}
- https://linux-libre.fsfla.org/pub/linux-libre/releases/$PKG_VER-gnu/deblob-check
"
+ #https://linux-libre.fsfla.org/pub/linux-libre/releases/$PKG_VER-gnu/deblob-${PKG_VER}
prepare () {
make mrproper
apply_patches
- sh deblob-${PKG_VER%.*} --force
+ #sh deblob-${PKG_VER} --force
cp config .config
diff --git a/repo/linux/linux.xibuild b/repo/linux/linux.xibuild
index 8c6b57a..68549b8 100644
--- a/repo/linux/linux.xibuild
+++ b/repo/linux/linux.xibuild
@@ -3,7 +3,7 @@
MAKEDEPS="make bc cpio linux-headers"
DEPS="sbase kmod"
-PKG_VER=5.18.6
+PKG_VER=5.19
SOURCE=https://cdn.kernel.org/pub/linux/kernel/v${PKG_VER%%.*}.x/linux-$PKG_VER.tar.xz
ADDITIONAL="
fix-sbase-coreutils.patch
diff --git a/repo/lolcat/lolcat.xibuild b/repo/lolcat/lolcat.xibuild
new file mode 100644
index 0000000..1b2d987
--- /dev/null
+++ b/repo/lolcat/lolcat.xibuild
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+NAME="lolcat"
+DESC="High-performance implementation of lolcat"
+
+MAKEDEPS=""
+
+PKG_VER=1.2
+SOURCE="https://github.com/jaseg/lolcat/archive/v$PKG_VER.tar.gz"
+
+build() {
+ make
+}
+
+package() {
+ mkdir -p "$PKG_DEST/usr/bin"
+ make DESTDIR="$PKG_DEST/usr/bin" install
+}
+
diff --git a/repo/mesa/mesa.xibuild b/repo/mesa/mesa.xibuild
index 1e9d139..a77cdc6 100644
--- a/repo/mesa/mesa.xibuild
+++ b/repo/mesa/mesa.xibuild
@@ -1,6 +1,6 @@
#!/bin/sh
-MAKEDEPS="meson ninja python-mako libvdpau llvm libxxf86vm libelf lm-sensors expat wayland-protocols"
+MAKEDEPS="meson ninja python-mako libvdpau llvm libxxf86vm libelf lm-sensors expat wayland-protocols llvm"
DEPS="xorg-libs libdrm"
PKG_VER=21.3.7
diff --git a/repo/meson/meson.xibuild b/repo/meson/meson.xibuild
index f445bc4..a642b07 100644
--- a/repo/meson/meson.xibuild
+++ b/repo/meson/meson.xibuild
@@ -4,7 +4,7 @@ MAKEDEPS="python"
DEPS="python ninja"
PKG_VER=0.59
-SOURCE=https://github.com/mesonbuild/meson
+SOURCE=https://github.com/mesonbuild/meson.git
BRANCH=$PKG_VER
DESC="High productivity build system"
diff --git a/repo/nuspell/nuspell.xibuild b/repo/nuspell/nuspell.xibuild
new file mode 100644
index 0000000..a404428
--- /dev/null
+++ b/repo/nuspell/nuspell.xibuild
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+NAME="nuspell"
+DESC="Free and open source C++ spell checking library"
+
+MAKEDEPS="cmake icu ronn catch2"
+
+PKG_VER=5.1.0
+SOURCE="https://github.com/nuspell/nuspell/archive/v$PKG_VER/nuspell-$PKG_VER.tar.gz"
+
+build() {
+ cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
+ -DCMAKE_C_FLAGS="$CFLAGS" \
+ $CMAKE_CROSSOPTS .
+ make
+}
+
+check() {
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ make DESTDIR="$PKG_DEST" install
+}
+
diff --git a/repo/polkit-gnome/polkit-gnome-authentication-agent-1.desktop b/repo/polkit-gnome/polkit-gnome-authentication-agent-1.desktop
new file mode 100644
index 0000000..fc2acc2
--- /dev/null
+++ b/repo/polkit-gnome/polkit-gnome-authentication-agent-1.desktop
@@ -0,0 +1,88 @@
+[Desktop Entry]
+Name=PolicyKit Authentication Agent
+Name[ar]=مدير الاستيثاق PolicyKit
+Name[be]=PolicyKit - аґент аўтэнтыфікацыі
+Name[bn_IN]=PolicyKit অনুমোদনের এজেন্ট
+Name[ca]=Agent d'autenticació del PolicyKit
+Name[cs]=Ověřovací agent PolicyKit
+Name[da]=Godkendelsesprogrammet PolicyKit
+Name[de]=Legitimationsdienst von PolicyKit
+Name[el]=Πράκτορας πιστοποίησης PolicyKit
+Name[en_GB]=PolicyKit Authentication Agent
+Name[es]=Agente de autenticación de PolicyKit
+Name[eu]=PolicyKit autentifikatzeko agentea
+Name[fi]=PolicytKit-tunnistautumisohjelma
+Name[fr]=Agent d'authentification de PolicyKit
+Name[gl]=Axente de autenticación PolicyKit
+Name[gu]=PolicyKit સત્તાધિકરણ એજન્ટ
+Name[hi]=PolicyKit प्रमाणीकरण प्रतिनिधि
+Name[hu]=PolicyKit hitelesítési ügynök
+Name[it]=Agente di autenticazione per PolicyKit
+Name[ja]=PolicyKit 認証エージェント
+Name[kn]=PolicyKit ದೃಢೀಕರಣ ಮಧ್ಯವರ್ತಿ
+Name[lt]=PolicyKit tapatybės nustatymo agentas
+Name[ml]=പോളിസിക്കിറ്റ് ഓഥന്റിക്കേഷന്‍ ഏജന്റ്
+Name[mr]=PolicyKit ऑथेंटीकेशन एजेंट
+Name[or]=PolicyKit ବୈଧିକରଣ ସଦସ୍ୟ
+Name[pa]=ਪਾਲਸੀਕਿੱਟ ਪਰਮਾਣਕਿਤਾ ਏਜੰਟ
+Name[pl]=Agent uwierzytelniania PolicyKit
+Name[pt]=Agente de Autenticação PolicyKit
+Name[pt_BR]=Agente de autenticação PolicyKit
+Name[ro]=Agent de autentificare PolicyKit
+Name[sk]=Agent PolicyKit na overovanie totožnosti
+Name[sl]=PolicyKit program overjanja
+Name[sv]=Autentiseringsagent för PolicyKit
+Name[ta]=PolicyKit அங்கீகார முகவர்
+Name[te]=పాలసీకిట్ ధృవీకరణ ప్రతినిధి
+Name[th]=ตัวกลางสำหรับยืนยันตัวบุคคล PolicyKit
+Name[uk]=Агент автентифікації PolicyKit
+Name[zh_CN]=PolicyKit 认证代理
+Name[zh_HK]=PolicyKit 驗證代理程式
+Name[zh_TW]=PolicyKit 驗證代理程式
+Comment=PolicyKit Authentication Agent
+Comment[ar]=مدير الاستيثاق PolicyKit
+Comment[be]=PolicyKit - аґент аўтэнтыфікацыі
+Comment[bn_IN]=PolicyKit অনুমোদনের এজেন্ট
+Comment[ca]=Agent d'autenticació del PolicyKit
+Comment[cs]=Ověřovací agent PolicyKit
+Comment[da]=Godkendelsesprogrammet PolicyKit
+Comment[de]=Legitimationsdienst von PolicyKit
+Comment[el]=Πράκτορας πιστοποίησης PolicyKit
+Comment[en_GB]=PolicyKit Authentication Agent
+Comment[es]=Agente de autenticación de PolicyKit
+Comment[eu]=PolicyKit autentifikatzeko agentea
+Comment[fi]=PolicytKit-tunnistautumisohjelma
+Comment[fr]=Agent d'authentification de PolicyKit
+Comment[gl]=Axente de autenticación PolicyKit
+Comment[gu]=PolicyKit સત્તાધિકરણ એજન્ટ
+Comment[hi]=PolicyKit प्रमाणीकरण प्रतिनिधि
+Comment[hu]=PolicyKit hitelesítési ügynök
+Comment[it]=Agente di autenticazione per PolicyKit
+Comment[ja]=PolicyKit 認証エージェント
+Comment[kn]=PolicyKit ದೃಢೀಕರಣ ಮಧ್ಯವರ್ತಿ
+Comment[lt]=PolicyKit tapatybės nustatymo agentas
+Comment[ml]=പോളിസിക്കിറ്റ് ഓഥന്റിക്കേഷന്‍ ഏജന്റ്
+Comment[mr]=PolicyKit ऑथेंटीकेशन एजेंट
+Comment[or]=PolicyKit ବୈଧିକରଣ ସଦସ୍ୟ
+Comment[pa]=ਪਾਲਸੀਕਿੱਟ ਪਰਮਾਣਕਿਤਾ ਏਜੰਟ
+Comment[pl]=Agent uwierzytelniania PolicyKit
+Comment[pt]=Agente de Autenticação PolicyKit
+Comment[pt_BR]=Agente de autenticação PolicyKit
+Comment[ro]=Agent de autentificare PolicyKit
+Comment[sk]=Agent PolicyKit na overovanie totožnosti
+Comment[sl]=PolicyKit program overjanja
+Comment[sv]=Autentiseringsagent för PolicyKit
+Comment[ta]=PolicyKit அங்கீகார முகவர்
+Comment[te]=పాలసీకిట్ ధృవీకరణ ప్రతినిధి
+Comment[th]=ตัวกลางสำหรับยืนยันตัวบุคคล PolicyKit
+Comment[uk]=Агент автентифікації PolicyKit
+Comment[zh_CN]=PolicyKit 认证代理
+Comment[zh_HK]=PolicyKit 驗證代理程式
+Comment[zh_TW]=PolicyKit 驗證代理程式
+Exec=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
+Terminal=false
+Type=Application
+Categories=
+NoDisplay=true
+NotShowIn=KDE;
+AutostartCondition=GNOME3 unless-session gnome
diff --git a/repo/polkit-gnome/polkit-gnome.xibuild b/repo/polkit-gnome/polkit-gnome.xibuild
new file mode 100644
index 0000000..3042c2b
--- /dev/null
+++ b/repo/polkit-gnome/polkit-gnome.xibuild
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+NAME="polkit-gnome"
+DESC="PolicyKit integration for the GNOME desktop"
+
+MAKEDEPS="gtk3 polkit intltool"
+
+PKG_VER=0.105
+SOURCE="https://download.gnome.org/sources/polkit-gnome/$PKG_VER/polkit-gnome-$PKG_VER.tar.xz"
+
+ADDITIONAL="
+polkit-gnome-authentication-agent-1.desktop
+"
+
+build() {
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/polkit-gnome
+ make
+}
+
+package() {
+ make DESTDIR="$PKG_DEST" install
+ install -Dm644 "$BUILD_ROOT/polkit-gnome-authentication-agent-1.desktop" \
+ "$PKG_DEST/etc/xdg/autostart/polkit-gnome-authentication-agent-1.desktop"
+}
+
diff --git a/repo/polkit/alpine-polkit.pam b/repo/polkit/alpine-polkit.pam
new file mode 100644
index 0000000..e718f7e
--- /dev/null
+++ b/repo/polkit/alpine-polkit.pam
@@ -0,0 +1,7 @@
+auth requisite pam_nologin.so
+auth required pam_env.so
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
+session required pam_limits.so
+password required pam_unix.so
diff --git a/repo/polkit/polkit-common.pre-install b/repo/polkit/polkit-common.pre-install
new file mode 100644
index 0000000..7c4e3ef
--- /dev/null
+++ b/repo/polkit/polkit-common.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S polkitd 2>/dev/null
+adduser -S -D -H -h /var/empty -s /sbin/nologin -G polkitd -g polkitd polkitd 2>/dev/null
+
+exit 0
diff --git a/repo/polkit/polkit-common.pre-upgrade b/repo/polkit/polkit-common.pre-upgrade
new file mode 100644
index 0000000..7c4e3ef
--- /dev/null
+++ b/repo/polkit/polkit-common.pre-upgrade
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S polkitd 2>/dev/null
+adduser -S -D -H -h /var/empty -s /sbin/nologin -G polkitd -g polkitd polkitd 2>/dev/null
+
+exit 0
diff --git a/repo/polkit/polkit.initd b/repo/polkit/polkit.initd
new file mode 100644
index 0000000..30d2387
--- /dev/null
+++ b/repo/polkit/polkit.initd
@@ -0,0 +1,12 @@
+#!/sbin/openrc-run
+supervisor=supervise-daemon
+
+name="Polkit System Daemon"
+description="Provide System authentication via PolicyKit1 D-Bus service"
+
+command=/usr/lib/polkit-1/polkitd
+command_args="${POLKIT_OPTS:---no-debug}"
+
+depend() {
+ need dbus
+}
diff --git a/repo/polkit/polkit.xibuild b/repo/polkit/polkit.xibuild
index eb236bc..e8286dd 100644
--- a/repo/polkit/polkit.xibuild
+++ b/repo/polkit/polkit.xibuild
@@ -1,30 +1,30 @@
#!/bin/sh
-MAKEDEPS="git gobject-introspection meson libxslt patch elogind gtk-doc autoconf-archive"
-DEPS="expat glib js78 pam"
+NAME="polkit"
+DESC="Application development toolkit for controlling system-wide privileges"
-PKG_VER=0.120
-SOURCE=https://www.freedesktop.org/software/polkit/releases/polkit-$PKG_VER.tar.gz
+MAKEDEPS="autoconf automake bash dbus-glib elogind expat glib gobject-introspection gtk2 intltool libtool pam js78"
-DESC="Application development toolkit for controlling system-wide privileges"
+PKG_VER=0.120
+SOURCE="https://www.freedesktop.org/software/polkit/releases/polkit-$PKG_VER.tar.gz"
ADDITIONAL="
- files/polkit-1
- patches/CVE-2021-4034.patch
- patches/make-innetgr-optional.patch
+CVE-2021-4034.patch
+alpine-polkit.pam
+make-innetgr-optional.patch
+polkit-common.pre-install
+polkit-common.pre-upgrade
+polkit.initd
"
-prepare () {
- apply_patches
-
- autoreconf -fi
+prepare() {
+ apply_patches
+ autoreconf -fi
}
-build () {
- mkdir build &&
- cd build &&
-
- ../configure \
+build() {
+ ./configure \
+ --disable-libsystemd-login \
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
@@ -39,20 +39,28 @@ build () {
--disable-gtk-doc-html \
--disable-gtk-doc-pdf \
--disable-libelogind \
- --disable-systemd \
- --enable-libsystemd-login
- make
+ --disable-systemd
+ make
}
-package () {
- make DESTDIR=$PKG_DEST install &&
- cd .. &&
- install -m644 polkit-1 $PKG_DEST/etc/pam.d/polkit-1
-}
+package() {
+ provider_priority=100 # highest
+
+ make DESTDIR="$PKG_DEST" \
+ dbusconfdir=/usr/share/dbus-1/system.d \
+ rulesdir=/usr/share/polkit-1/rules.d \
+ install
+ cd "$PKG_DEST"
+
+ # Use our own polkit rules, upstream may change them
+ install -m644 "$BUILD_ROOT"/alpine-polkit.pam etc/pam.d/polkit-1
-postinstall() {
- /usr/sbin/groupadd -fg 27 polkitd &&
- /usr/sbin/useradd -c "PolicyKit Daemon Owner" -d /etc/polkit-1 -u 27 \
- -g polkitd -s /bin/false polkitd
- true
+ # See polkit's configure script which tells us what permissions to set
+ chown -R polkitd:polkitd etc/polkit-1/rules.d usr/share/polkit-1/rules.d
+ chmod -R 700 etc/polkit-1/rules.d usr/share/polkit-1/rules.d
+ chmod 4755 usr/lib/polkit-1/polkit-agent-helper-1
+ chmod 4755 usr/bin/pkexec
+
+ install -Dm755 "$BUILD_ROOT"/polkit.initd etc/init.d/polkit
}
+
diff --git a/repo/ronn/fix-ruby-3.1-compat.patch b/repo/ronn/fix-ruby-3.1-compat.patch
new file mode 100644
index 0000000..233da9d
--- /dev/null
+++ b/repo/ronn/fix-ruby-3.1-compat.patch
@@ -0,0 +1,24 @@
+Patch-Source: https://github.com/apjanke/ronn-ng/issues/80
+
+--- a/lib/ronn/document.rb.orig
++++ b/lib/ronn/document.rb
+@@ -289,7 +289,7 @@
+
+ def to_yaml
+ require 'yaml'
+- to_h.to_yaml
++ to_h.merge('date' => date.to_s).to_yaml
+ end
+
+ def to_json(*_args)
+--- a/test/test_ronn_document.rb
++++ b/test/test_ronn_document.rb
+@@ -140,7 +140,7 @@ class DocumentTest < Test::Unit::TestCase
+ assert_equal({
+ 'section' => '1',
+ 'name' => 'hello',
+- 'date' => @now,
++ 'date' => @now.to_s,
+ 'tagline' => 'hello world',
+ 'styles' => ['man'],
+ 'toc' => [['NAME', 'NAME']],
diff --git a/repo/ronn/mustache-1.X.patch b/repo/ronn/mustache-1.X.patch
new file mode 100644
index 0000000..d8bd1a4
--- /dev/null
+++ b/repo/ronn/mustache-1.X.patch
@@ -0,0 +1,50 @@
+Patch-Source: https://github.com/apjanke/ronn-ng/commit/b553dae9179313b6a27d86c17708d7a1fd989a7a
+
+From b553dae9179313b6a27d86c17708d7a1fd989a7a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?David=20Rodr=C3=ADguez?= <deivid.rodriguez@riseup.net>
+Date: Fri, 10 Apr 2020 19:06:52 +0200
+Subject: [PATCH] Support only mustache 1.x
+
+---
+ Gemfile.lock | 6 +++---
+ ronn-ng.gemspec | 2 +-
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/Gemfile.lock b/Gemfile.lock
+index 46d6c5a..e688b8f 100644
+--- a/Gemfile.lock
++++ b/Gemfile.lock
+@@ -3,7 +3,7 @@ PATH
+ specs:
+ ronn-ng (0.9.1)
+ kramdown (~> 2.1)
+- mustache (~> 0.7, >= 0.7.0)
++ mustache (~> 1.0)
+ nokogiri (~> 1.9, >= 1.9.0)
+
+ GEM
+@@ -13,9 +13,9 @@ GEM
+ jaro_winkler (1.5.3)
+ kramdown (2.1.0)
+ mini_portile2 (2.4.0)
+- mustache (0.99.8)
++ mustache (1.1.1)
+ mustermann (1.0.3)
+- nokogiri (1.10.7)
++ nokogiri (1.10.9)
+ mini_portile2 (~> 2.4.0)
+ parallel (1.17.0)
+ parser (2.6.3.0)
+diff --git a/ronn-ng.gemspec b/ronn-ng.gemspec
+index d07cc14..a476c70 100644
+--- a/ronn-ng.gemspec
++++ b/ronn-ng.gemspec
+@@ -111,7 +111,7 @@ Gem::Specification.new do |s|
+
+ s.extra_rdoc_files = %w[LICENSE.txt AUTHORS]
+ s.add_dependency 'kramdown', '~> 2.1'
+- s.add_dependency 'mustache', '~> 0.7', '>= 0.7.0'
++ s.add_dependency 'mustache', '~> 1.0'
+ s.add_dependency 'nokogiri', '~> 1.9', '>= 1.9.0'
+ s.add_development_dependency 'rack', '~> 2.0', '>= 2.0.6'
+ s.add_development_dependency 'rake', '~> 12.3', '>= 12.3.0'
diff --git a/repo/ronn/ronn.xibuild b/repo/ronn/ronn.xibuild
new file mode 100644
index 0000000..50e700e
--- /dev/null
+++ b/repo/ronn/ronn.xibuild
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+NAME="ronn"
+DESC="Convert Markdown files to manpages"
+
+MAKEDEPS=""
+
+PKG_VER=0.9.1
+_gemname=ronn-ng
+SOURCE="https://github.com/apjanke/$_gemname/archive/v$PKG_VER/$_gemname-$PKG_VER.tar.gz"
+DEPS="ruby ruby-kramdown ruby-mustache ruby-nokogiri"
+
+ADDITIONAL="
+fix-ruby-3.1-compat.patch
+mustache-1.X.patch
+"
+
+prepare () {
+ apply_patches
+}
+
+build() {
+ gem build $_gemname.gemspec
+}
+
+check() {
+ rake test
+}
+
+package() {
+ local gemdir="$PKG_DEST/$(ruby -e 'puts Gem.default_dir')"
+ local geminstdir="$gemdir/gems/$_gemname-$PKG_VER"
+
+ gem install --local \
+ --install-dir "$gemdir" \
+ --bindir "$PKG_DEST/usr/bin" \
+ --ignore-dependencies \
+ --no-document \
+ --verbose \
+ $_gemname
+
+ install -D -m 644 "$geminstdir"/man/ronn.1 \
+ "$PKG_DEST"/usr/share/man/man1/ronn.1
+ install -D -m 644 "$geminstdir"/man/ronn-format.7 \
+ "$PKG_DEST"/usr/share/man/man7/ronn-format.7
+
+ # Remove unnecessary files and rubbish...
+ cd "$gemdir"
+ rm -r cache build_info doc extensions plugins
+ cd "$geminstdir"
+ rm -r test man Rakefile [A-Z][A-Z][A-Z]*
+}
+
diff --git a/repo/ruby-kramdown/gemspec.patch b/repo/ruby-kramdown/gemspec.patch
new file mode 100644
index 0000000..f90f36b
--- /dev/null
+++ b/repo/ruby-kramdown/gemspec.patch
@@ -0,0 +1,18 @@
+--- a/Rakefile
++++ b/Rakefile
+@@ -116,15 +116,9 @@
+ end
+
+ PKG_FILES = FileList.new([
+- 'AUTHORS',
+ 'bin/*',
+- 'CONTRIBUTERS',
+- 'COPYING',
+ 'data/**/*',
+ 'lib/**/*.rb',
+- 'man/man1/kramdown.1',
+- 'README.md',
+- 'test/**/*',
+ 'VERSION',
+ ])
+
diff --git a/repo/ruby-kramdown/ruby-kramdown.xibuild b/repo/ruby-kramdown/ruby-kramdown.xibuild
new file mode 100644
index 0000000..e3dd94a
--- /dev/null
+++ b/repo/ruby-kramdown/ruby-kramdown.xibuild
@@ -0,0 +1,48 @@
+#!/bin/sh
+
+NAME="ruby-kramdown"
+_gemname=kramdown
+DESC="A fast, pure Ruby Markdown superset converter"
+
+MAKEDEPS=" ruby-rake"
+
+PKG_VER=2.3.2
+SOURCE="https://github.com/gettalong/kramdown"
+
+ADDITIONAL="
+gemspec.patch
+"
+
+prepare() {
+ apply_patches
+
+ # Remove tests that require gem "stringex" (we don't have it in aports yet).
+ rm test/testcases/block/04_header/with_auto_ids.*
+}
+
+build() {
+ rake gemspec
+ gem build $_gemname.gemspec
+}
+
+check() {
+ rake test
+}
+
+package() {
+ local gemdir="$PKG_DEST/$(ruby -e 'puts Gem.default_dir')"
+
+ gem install \
+ --local \
+ --install-dir "$gemdir" \
+ --bindir "$PKG_DEST/usr/bin" \
+ --ignore-dependencies \
+ --no-document \
+ --verbose \
+ $_gemname
+
+ # Remove unnecessary files and rubbish...
+ cd "$gemdir"
+ rm -r cache build_info doc extensions
+}
+
diff --git a/repo/ruby-mustache/fix-test-race-condition.patch b/repo/ruby-mustache/fix-test-race-condition.patch
new file mode 100644
index 0000000..824825b
--- /dev/null
+++ b/repo/ruby-mustache/fix-test-race-condition.patch
@@ -0,0 +1,36 @@
+From 407c6a5db6c1f1cfb40bd6113f07f067d07885a4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
+Date: Mon, 27 Apr 2020 11:16:17 +0200
+Subject: [PATCH] Fix test race condition.
+
+The test suite randomly fails with errors such as:
+
+~~~
+ 1) Failure:
+AutoloadingTest#test_autoload_lowercase [/builddir/build/BUILD/mustache-1.1.1/usr/share/gems/gems/mustache-1.1.1/test/autoloading_test.rb:17]:
+Expected: Comments
+ Actual: nil
+~~~
+
+This happens when `test_namespaced*` test cases are executed earlier
+than the remaining test cases, because they are defining
+`view_namespace` but not cleaning up afterwards.
+---
+ test/autoloading_test.rb | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/test/autoloading_test.rb b/test/autoloading_test.rb
+index 0a7ad762..77eb3557 100644
+--- a/test/autoloading_test.rb
++++ b/test/autoloading_test.rb
+@@ -7,6 +7,10 @@ def setup
+ Mustache.view_path = File.dirname(__FILE__) + '/fixtures'
+ end
+
++ def teardown
++ Mustache.remove_instance_variable(:@view_namespace) if Mustache.instance_variable_defined?(:@view_namespace)
++ end
++
+ def test_autoload
+ klass = Mustache.view_class(:Comments)
+ assert_equal Comments, klass
diff --git a/repo/ruby-mustache/ruby-mustache.xibuild b/repo/ruby-mustache/ruby-mustache.xibuild
new file mode 100644
index 0000000..8074a81
--- /dev/null
+++ b/repo/ruby-mustache/ruby-mustache.xibuild
@@ -0,0 +1,46 @@
+#!/bin/sh
+
+NAME="ruby-mustache"
+_gemname=mustache
+DESC="Logic-less Ruby templates"
+
+MAKEDEPS=""
+
+PKG_VER=1.1.1
+SOURCE="ruby-mustache-$PKG_VER.tar.gz::https://github.com/mustache/mustache/archive/v$PKG_VER.tar.gz"
+
+ADDITIONAL="
+fix-test-race-condition.patch
+skip-simplecov.patch
+"
+
+prepare () {
+ apply_patches
+}
+
+build() {
+ gem build $_gemname.gemspec
+}
+
+check() {
+ rake test
+}
+
+package() {
+ local gemdir="$PKG_DEST/$(ruby -e 'puts Gem.default_dir')"
+ local geminstdir="$gemdir/gems/$_gemname-$PKG_VER"
+
+ gem install --local \
+ --install-dir "$gemdir" \
+ --ignore-dependencies \
+ --no-document \
+ --verbose \
+ $_gemname
+
+ # Remove unnecessary files and rubbish...
+ cd "$gemdir"
+ rm -r cache build_info doc
+ cd "$geminstdir"
+ rm -r test man Rakefile *.md
+}
+
diff --git a/repo/ruby-mustache/skip-simplecov.patch b/repo/ruby-mustache/skip-simplecov.patch
new file mode 100644
index 0000000..99f0afd
--- /dev/null
+++ b/repo/ruby-mustache/skip-simplecov.patch
@@ -0,0 +1,13 @@
+Don't run code coverage analyser to avoid additional dependency.
+
+--- a/test/helper.rb.orig
++++ b/test/helper.rb
+@@ -1,8 +1,3 @@
+-require 'simplecov'
+-SimpleCov.start do
+- add_filter '/test/'
+-end
+-
+ require 'minitest/autorun'
+
+ Dir[File.dirname(__FILE__) + '/fixtures/*.rb'].each do |f|
diff --git a/repo/ruby-nokogiri/gemspec-fix-deps.patch b/repo/ruby-nokogiri/gemspec-fix-deps.patch
new file mode 100644
index 0000000..9136e6e
--- /dev/null
+++ b/repo/ruby-nokogiri/gemspec-fix-deps.patch
@@ -0,0 +1,15 @@
+racc and mini_portile2 are needed only to build native extension.
+
+--- a/nokogiri.gemspec
++++ b/nokogiri.gemspec
+@@ -318,8 +318,8 @@
+ spec.extra_rdoc_files += Dir.glob("README.md")
+ spec.rdoc_options = ["--main", "README.md"]
+
+- spec.add_runtime_dependency("mini_portile2", "~> 2.8.0") unless java_p # keep version in sync with extconf.rb
+- spec.add_runtime_dependency("racc", "~> 1.4")
++ spec.add_development_dependency("mini_portile2", "~> 2.8.0") unless java_p # keep version in sync with extconf.rb
++ spec.add_development_dependency("racc", "~> 1.4")
+
+ spec.add_development_dependency("bundler", "~> 2.2")
+ spec.add_development_dependency("hoe-markdown", "~> 1.4")
diff --git a/repo/ruby-nokogiri/ruby-nokogiri.xibuild b/repo/ruby-nokogiri/ruby-nokogiri.xibuild
new file mode 100644
index 0000000..dec12d1
--- /dev/null
+++ b/repo/ruby-nokogiri/ruby-nokogiri.xibuild
@@ -0,0 +1,62 @@
+#!/bin/sh
+
+NAME="ruby-nokogiri"
+DESC="An HTML, XML, SAX, and Reader parser"
+
+MAKEDEPS="libxml2 libxslt ruby ruby-mini_portile2"
+
+_gemname=${pkgname#ruby-}
+
+PKG_VER=1.13.4
+SOURCE="https://github.com/sparklemotion/$_gemname/archive/v$PKG_VER/$_gemname-$PKG_VER.tar.gz"
+
+ADDITIONAL="
+gemspec-fix-deps.patch
+shutdown-libxml2-warning.patch
+test-helper-remove-unnecessary-deps.patch
+"
+
+build() {
+ gem build $_gemname.gemspec
+ gem install \
+ --local \
+ --install-dir dist \
+ --ignore-dependencies \
+ --no-document \
+ --verbose \
+ $_gemname-$PKG_VER.gem -- \
+ --use-system-libraries
+
+ # Remove unnecessary files and rubbish...
+ find dist/extensions/ -name mkmf.log -delete
+ cd dist/gems/$_gemname-$PKG_VER/
+ rm -rf ext/ patches/
+ rm ./*.md ./*.yml
+ rm lib/*.jar
+ rm lib/nokogiri/*.so
+ rm lib/nokogiri/css/*.rex lib/nokogiri/css/*.y
+}
+
+check() {
+ local extpath=$(dirname dist/extensions/*/*/$_gemname-$PKG_VER/gem_make.out)
+
+ case "$CARCH" in
+ # Fix NotImplementedError: Compaction isn't available on this platform.
+ ppc64le) export NOKOGIRI_TEST_GC_LEVEL=major;;
+ esac
+
+ # Note: This is based on Fedora package.
+ LANG="C.UTF-8" RUBYLIB=".:dist/gems/$_gemname-$PKG_VER/lib:test:$extpath" ruby \
+ -e 'require "test/helper"' \
+ -e 'Dir.glob("test/**/test_*.rb") {|f| require f }'
+}
+
+package() {
+ local gemdir="$PKG_DEST/$(ruby -e 'puts Gem.default_dir')"
+
+ cd "$BUILD_ROOT"/dist
+
+ mkdir -p "$gemdir"
+ cp -r bin extensions gems specifications "$gemdir"/
+}
+
diff --git a/repo/ruby-nokogiri/shutdown-libxml2-warning.patch b/repo/ruby-nokogiri/shutdown-libxml2-warning.patch
new file mode 100644
index 0000000..c897379
--- /dev/null
+++ b/repo/ruby-nokogiri/shutdown-libxml2-warning.patch
@@ -0,0 +1,12 @@
+Patch-Source: https://src.fedoraproject.org/rpms/rubygem-nokogiri/blob/f36/f/rubygem-nokogiri-1.11.0.rc4-shutdown-libxml2-warning.patch
+
+--- a/lib/nokogiri/version/info.rb
++++ b/lib/nokogiri/version/info.rb
+@@ -58,6 +58,7 @@ module Nokogiri
+
+ def warnings
+ warnings = []
++ return warnings
+
+ if libxml2?
+ if compiled_libxml_version != loaded_libxml_version
diff --git a/repo/ruby-nokogiri/test-helper-remove-unnecessary-deps.patch b/repo/ruby-nokogiri/test-helper-remove-unnecessary-deps.patch
new file mode 100644
index 0000000..bfb5ceb
--- /dev/null
+++ b/repo/ruby-nokogiri/test-helper-remove-unnecessary-deps.patch
@@ -0,0 +1,22 @@
+--- a/test/helper.rb
++++ b/test/helper.rb
+@@ -16,19 +16,12 @@
+ # make sure we do one final major before the process exits (for valgrind)
+ at_exit { GC.start(full_mark: true) } unless ::RUBY_PLATFORM == "java"
+
+-require "simplecov"
+-SimpleCov.start do
+- add_filter "/test/"
+-end
+
+ $VERBOSE = true
+
+ require "minitest/autorun"
+-require "minitest/reporters"
+ NOKOGIRI_MINITEST_REPORTERS_OPTIONS = { color: true, slow_count: 10, detailed_skip: false }
+ NOKOGIRI_MINITEST_REPORTERS_OPTIONS[:fast_fail] = true if ENV["NOKOGIRI_TEST_FAIL_FAST"]
+-puts "Minitest::Reporters options: #{NOKOGIRI_MINITEST_REPORTERS_OPTIONS}"
+-Minitest::Reporters.use!(Minitest::Reporters::DefaultReporter.new(NOKOGIRI_MINITEST_REPORTERS_OPTIONS))
+
+ require "fileutils"
+ require "tempfile"
diff --git a/repo/spice-gtk/disable-test-relying-on-usb.patch b/repo/spice-gtk/disable-test-relying-on-usb.patch
new file mode 100644
index 0000000..2a8e283
--- /dev/null
+++ b/repo/spice-gtk/disable-test-relying-on-usb.patch
@@ -0,0 +1,22 @@
+diff --git a/tests/meson.build b/tests/meson.build
+index 6c8077622d..9b77e84be9 100644
+--- a/tests/meson.build
++++ b/tests/meson.build
+@@ -1,7 +1,6 @@
+ tests_sources = [
+ 'util.c',
+ 'coroutine.c',
+- 'session.c',
+ 'uri.c',
+ 'file-transfer.c',
+ ]
+@@ -10,9 +9,6 @@
+ tests_sources += 'pipe.c'
+ endif
+
+-if spice_gtk_has_usbredir
+- tests_sources += 'cd-emu.c'
+-endif
+
+ if spice_gtk_has_polkit
+ tests_sources += [
diff --git a/repo/spice-gtk/fix-pkgconfig-version.patch b/repo/spice-gtk/fix-pkgconfig-version.patch
new file mode 100644
index 0000000..687e3b4
--- /dev/null
+++ b/repo/spice-gtk/fix-pkgconfig-version.patch
@@ -0,0 +1,13 @@
+diff --git a/meson.build b/meson.build
+index 8c6288f..caef2d4 100644
+--- a/meson.build
++++ b/meson.build
+@@ -2,7 +2,7 @@
+ # project definition
+ #
+ project('spice-gtk', 'c',
+- version : run_command('build-aux/git-version-gen', '@0@/.tarball-version'.format(meson.source_root()), check : true).stdout().strip(),
++ version : '0.38',
+ license : 'LGPLv2.1',
+ meson_version : '>= 0.49',
+ default_options : ['buildtype=debugoptimized',
diff --git a/repo/spice-gtk/spice-gtk.xibuild b/repo/spice-gtk/spice-gtk.xibuild
new file mode 100644
index 0000000..4cdf6b7
--- /dev/null
+++ b/repo/spice-gtk/spice-gtk.xibuild
@@ -0,0 +1,46 @@
+#!/bin/sh
+
+NAME="spice-gtk"
+DESC="GTK+ widget for SPICE clients"
+
+MAKEDEPS=" meson gstreamer gst-plugins-base spice-protocol json-glib gtk3 usbredir libusb asciidoc lz4 opus glib libsasl gobject-introspection vala libjpeg-turbo cairo zlib pixman openssl libx11 libepoxy libva python-six python-parsing perl acl polkit"
+
+PKG_VER=0.40
+SOURCE="https://www.spice-space.org/download/gtk/spice-gtk-$PKG_VER.tar.xz"
+
+ADDITIONAL="
+disable-test-relying-on-usb.patch
+fix-pkgconfig-version.patch
+"
+
+prepare () {
+ apply_patches
+}
+
+build() {
+ meson --prefix=/usr \
+ -Dgtk=enabled \
+ -Dwebdav=disabled \
+ -Dbuiltin-mjpeg=false \
+ -Dusbredir=enabled \
+ -Dpolkit=enabled\
+ -Dpie=true \
+ -Dintrospection=enabled \
+ -Dvapi=enabled \
+ -Dlz4=enabled \
+ -Dsasl=enabled \
+ -Dopus=enabled \
+ -Dsmartcard=disabled \
+ -Dgtk_doc=disabled \
+ -Dcoroutine=gthread \
+ . output
+ meson compile ${JOBS:+-j ${JOBS}} -C output
+}
+
+check() {
+ meson test --no-rebuild -v -C output
+}
+
+package() {
+ DESTDIR="$PKG_DEST" meson install --no-rebuild -C output
+}
diff --git a/repo/spice-vdagent/spice-vdagent.xibuild b/repo/spice-vdagent/spice-vdagent.xibuild
new file mode 100644
index 0000000..f997504
--- /dev/null
+++ b/repo/spice-vdagent/spice-vdagent.xibuild
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+NAME="spice-vdagent"
+DESC="Spice guest agent for Linux"
+
+MAKEDEPS="spice-protocol alsa-lib dbus glib libdrm libpciaccess libxfixes libxinerama libxrandr"
+
+PKG_VER=0.22.1
+SOURCE="https://spice-space.org/download/releases/spice-vdagent-$PKG_VER.tar.bz2"
+
+ADDITIONAL="
+spice-vdagentd.initd
+"
+
+build() {
+ ./configure \
+ --prefix=/usr \
+ --localstatedir=/var \
+ --with-session-info=none
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make install DESTDIR="$PKG_DEST"
+ install -Dm0755 "$BUILD_ROOT"/spice-vdagentd.initd "$PKG_DEST"/etc/init.d/spice-vdagentd
+ install -dm 0755 "$PKG_DEST"/etc/modules-load.d/
+ printf 'uinput\n' >"$PKG_DEST"/etc/modules-load.d/spice-vdagent.conf
+}
+
diff --git a/repo/spice-vdagent/spice-vdagentd.initd b/repo/spice-vdagent/spice-vdagentd.initd
new file mode 100644
index 0000000..d6a212a
--- /dev/null
+++ b/repo/spice-vdagent/spice-vdagentd.initd
@@ -0,0 +1,13 @@
+#!/sbin/openrc-run
+
+command=/usr/sbin/spice-vdagentd
+command_args=""
+pidfile="/run/spice-vdagentd/spice-vdagentd.pid"
+
+depend() {
+ need dbus
+}
+
+start_pre() {
+ checkpath --directory --mode 0755 --owner root:root /run/spice-vdagentd
+}
diff --git a/repo/squashfs-tools/fix-compat.patch b/repo/squashfs-tools/fix-compat.patch
new file mode 100644
index 0000000..8a5ff06
--- /dev/null
+++ b/repo/squashfs-tools/fix-compat.patch
@@ -0,0 +1,12 @@
+--- a/squashfs-tools/action.c
++++ b/squashfs-tools/action.c
+@@ -1905,6 +1905,9 @@
+ return 1;
+ }
+
++#ifndef FNM_EXTMATCH
++#define FNM_EXTMATCH 0
++#endif
+
+ TEST_FN(name, ACTION_ALL_LNK, \
+ return fnmatch(atom->argv[0], action_data->name,
diff --git a/repo/squashfs-tools/squashfs-tools.xibuild b/repo/squashfs-tools/squashfs-tools.xibuild
new file mode 100644
index 0000000..13bfee4
--- /dev/null
+++ b/repo/squashfs-tools/squashfs-tools.xibuild
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+NAME="squashfs-tools"
+DESC="Tools for squashfs, a highly compressed read-only filesystem for Linux"
+
+MAKEDEPS="zlib xz lzo lz4 attr zstd"
+
+PKG_VER=4.5.1
+SOURCE="https://github.com/plougher/squashfs-tools/archive/$PKG_VER.tar.gz"
+
+ADDITIONAL="
+fix-compat.patch
+"
+
+prepare () {
+ apply_patches
+}
+
+build() {
+ make -C squashfs-tools XZ_SUPPORT=1 LZO_SUPPORT=1 LZ4_SUPPORT=1 ZSTD_SUPPORT=1
+}
+
+package() {
+ mkdir -p "$PKG_DEST"/sbin
+ cp -a squashfs-tools/*squashfs "$PKG_DEST"/sbin
+}
+
diff --git a/repo/xipkg/xipkg.xibuild b/repo/xipkg/xipkg.xibuild
index 712e0c4..e9f0fd3 100644
--- a/repo/xipkg/xipkg.xibuild
+++ b/repo/xipkg/xipkg.xibuild
@@ -1,18 +1,14 @@
#!/bin/sh
-MAKEDEPS="make"
-DEPS="openssl curl dash xiutils findutils diffutils sed xichroot grep base64 sort hbar parseconf xiutils"
+MAKEDEPS="make shmk"
+DEPS="openssl curl dash findutils diffutils sed xichroot grep base64 sort hbar parseconf xiutils"
-PKG_VER=1.6
+PKG_VER=1.7.3
SOURCE=https://git.davidovski.xyz/xilinux/xipkg.git
BRANCH="v$PKG_VER"
DESC="The xilinux package manager"
-build () {
- make
-}
-
package () {
- make DESTDIR=$PKG_DEST install
+ make PREFIX=/usr DESTDIR=$PKG_DEST install
}
diff --git a/repo/xiutils/shmk.xibuild b/repo/xiutils/shmk.xibuild
new file mode 100644
index 0000000..7e1788d
--- /dev/null
+++ b/repo/xiutils/shmk.xibuild
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+DESC="simple shell build system for xi"
+
+package () {
+ add_from_main usr/bin/shmk
+}
diff --git a/repo/xiutils/xitui.xibuild b/repo/xiutils/xitui.xibuild
index ab3938f..093665f 100644
--- a/repo/xiutils/xitui.xibuild
+++ b/repo/xiutils/xitui.xibuild
@@ -1,6 +1,8 @@
+#!/bin/sh
+
DESC="xilinux Text User Interface tools"
DEPS="sh ncurses stty"
package () {
- add_from_main usr/lib/xitui
+ add_from_main usr/lib/xitui.sh
}
diff --git a/repo/xiutils/xiutils.xibuild b/repo/xiutils/xiutils.xibuild
index e3ba894..a5650af 100644
--- a/repo/xiutils/xiutils.xibuild
+++ b/repo/xiutils/xiutils.xibuild
@@ -3,12 +3,17 @@
MAKEDEPS="make gcc"
DEPS="musl sh"
-PKG_VER=1.7
+PKG_VER=1.8
SOURCE=https://git.davidovski.xyz/xilinux/xiutils.git
BRANCH="v$PKG_VER"
DESC="Utilities required by various components of the xilinux system"
+prepare () {
+ mkdir -p dist
+ cp src/lib/colors.h dist/
+}
+
build () {
make
}