diff options
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 } |