From 291d25a0711eecf3e82b3ff6c1a21cfb917371c8 Mon Sep 17 00:00:00 2001 From: reback00 Date: Wed, 29 Jul 2020 21:39:41 +0600 Subject: [PATCH 01/10] your-freedom: Added less strict conflict option (commented by default), added comments --- srcpkgs/your-freedom/template | 37 +++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 srcpkgs/your-freedom/template diff --git a/srcpkgs/your-freedom/template b/srcpkgs/your-freedom/template new file mode 100644 index 00000000000..5444cb8898f --- /dev/null +++ b/srcpkgs/your-freedom/template @@ -0,0 +1,37 @@ +# Template file for 'your-freedom' +pkgname=your-freedom +version=20200720 +_gitver=422117840a1af6c0db5e77818739808e1444eae3 +revision=1 +create_wrksrc=yes +build_style=meta +short_desc="Conflicts with nonfree packages to ensure your system is free" +maintainer="reback00 " +license="GPL-3.0-or-later" +homepage="https://git.parabola.nu/blacklist.git" +distfiles="https://git.parabola.nu/blacklist.git/plain/blacklist.txt?id=${_gitver}>blacklist.txt" +checksum=d6886831a73cf4af0ee5e564106a4b21ddd2d702d6bb1d5146355f1c86751789 + +# Note 1: This package is still under testing. It is inspired by the Parabola's +# your-freedom package. However, libretools is not explored yet. + +# Note 2: If you are building this package locally and have built it in the +# past it is a good idea to clean cache to remove any history of it's conflict +# data from past versions: +# $ rm hostdir/binpkgs/{*-repodata,your-freedom-*.xbps} + +# Commands outside functions run multiple times. +# Setting $conflicts once does not work (it forgets it next time). +# There is no way to determine which run will set the conflict correctly. +# This is a workaround to set it when the $conflicts is found as being empty. +if [ -z "$conflicts" ] && [ -f "$XBPS_SRCDISTDIR/${pkgname}-${version}/blacklist.txt" ]; then + + cd "$XBPS_SRCDISTDIR/${pkgname}-${version}" + conflicts=$(awk -F ':' '{print $1}' "blacklist.txt" | awk '{print}' ORS=' ') + # Use the line below instead to whitelist some packages that have minor + # issues (like branding, suggesting optional dependencies etc.). But it + # should be used with caution because if you're not careful some nonfree + # packages may come through. + #conflicts=$(awk -F ':' '{ if ( $1 != $2) {print $1} }' "blacklist.txt" | awk '{print}' ORS=' ') + +fi From 64fd3d92e5cda232fcab93ca6dd399b52e059b15 Mon Sep 17 00:00:00 2001 From: reback00 Date: Thu, 30 Jul 2020 20:56:46 +0600 Subject: [PATCH 02/10] your-freedom: Added allow_semifree and allowlist feature --- srcpkgs/your-freedom/allowlist.txt | 1 + srcpkgs/your-freedom/template | 39 +++++++++++++++++++++++++----- 2 files changed, 34 insertions(+), 6 deletions(-) create mode 100644 srcpkgs/your-freedom/allowlist.txt diff --git a/srcpkgs/your-freedom/allowlist.txt b/srcpkgs/your-freedom/allowlist.txt new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/srcpkgs/your-freedom/allowlist.txt @@ -0,0 +1 @@ + diff --git a/srcpkgs/your-freedom/template b/srcpkgs/your-freedom/template index 5444cb8898f..961f792252b 100644 --- a/srcpkgs/your-freedom/template +++ b/srcpkgs/your-freedom/template @@ -12,6 +12,19 @@ homepage="https://git.parabola.nu/blacklist.git" distfiles="https://git.parabola.nu/blacklist.git/plain/blacklist.txt?id=${_gitver}>blacklist.txt" checksum=d6886831a73cf4af0ee5e564106a4b21ddd2d702d6bb1d5146355f1c86751789 +# Set this below to yes to allow some packages that have minor issues +# (like branding, suggesting optional dependencies etc.). But it should +# be used with caution because if you're not careful, some nonfree +# packages may come through. +allow_semifree=no + +# Set this below to yes to allow some packages listed on allowlist.txt. +# allowlist.txt should list each package name that should be allowed on +# each line. If you change the file, remember to clear cache according +# to the note below in the comment. +use_allowlist=yes + + # Note 1: This package is still under testing. It is inspired by the Parabola's # your-freedom package. However, libretools is not explored yet. @@ -20,6 +33,7 @@ checksum=d6886831a73cf4af0ee5e564106a4b21ddd2d702d6bb1d5146355f1c86751789 # data from past versions: # $ rm hostdir/binpkgs/{*-repodata,your-freedom-*.xbps} + # Commands outside functions run multiple times. # Setting $conflicts once does not work (it forgets it next time). # There is no way to determine which run will set the conflict correctly. @@ -27,11 +41,24 @@ checksum=d6886831a73cf4af0ee5e564106a4b21ddd2d702d6bb1d5146355f1c86751789 if [ -z "$conflicts" ] && [ -f "$XBPS_SRCDISTDIR/${pkgname}-${version}/blacklist.txt" ]; then cd "$XBPS_SRCDISTDIR/${pkgname}-${version}" - conflicts=$(awk -F ':' '{print $1}' "blacklist.txt" | awk '{print}' ORS=' ') - # Use the line below instead to whitelist some packages that have minor - # issues (like branding, suggesting optional dependencies etc.). But it - # should be used with caution because if you're not careful some nonfree - # packages may come through. - #conflicts=$(awk -F ':' '{ if ( $1 != $2) {print $1} }' "blacklist.txt" | awk '{print}' ORS=' ') + + if [ "$allow_semifree" == "yes" ]; then + conflicts=$(awk -F ':' '{ if ( $1 != $2) {print $1} }' "blacklist.txt" | awk '{print}' ORS=' ') + else + conflicts=$(awk -F ':' '{print $1}' "blacklist.txt" | awk '{print}' ORS=' ') + fi + + if [ "$use_allowlist" == "yes" ] && [ -f "${XBPS_SRCPKGDIR}/${pkgname}/allowlist.txt" ]; then + while read package; do + if [ "$package" != "" ]; then + if [ "$expr" == "" ]; then + expr="$package\s*" + else + expr="$expr\|$package\s*" + fi + fi + done < "${XBPS_SRCPKGDIR}/${pkgname}/allowlist.txt" + conflicts=$(echo "${conflicts}" | sed "s/\($expr\)//g") + fi fi From 1a2de7c2642e36ad04de539de27e2d8ba5c8636f Mon Sep 17 00:00:00 2001 From: reback00 Date: Fri, 31 Jul 2020 21:35:19 +0600 Subject: [PATCH 03/10] your-freedom: Cleared libxfce4ui because it does not have mentions of nonfree OS on Void template --- srcpkgs/your-freedom/allowlist.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcpkgs/your-freedom/allowlist.txt b/srcpkgs/your-freedom/allowlist.txt index 8b137891791..9fd19221e7a 100644 --- a/srcpkgs/your-freedom/allowlist.txt +++ b/srcpkgs/your-freedom/allowlist.txt @@ -1 +1 @@ - +libxfce4ui From ddae5309cf4e6dccc9b5a877924e9d829105f87c Mon Sep 17 00:00:00 2001 From: reback00 Date: Fri, 31 Jul 2020 21:49:29 +0600 Subject: [PATCH 04/10] Liberated minitube --- .../remove_unfree_recommendations.patch | 183 ++++++++++++++++++ .../remove_unfree_recommendations.patch.args | 1 + srcpkgs/your-freedom/allowlist.txt | 1 + 3 files changed, 185 insertions(+) create mode 100644 srcpkgs/minitube/patches/remove_unfree_recommendations.patch create mode 100644 srcpkgs/minitube/patches/remove_unfree_recommendations.patch.args diff --git a/srcpkgs/minitube/patches/remove_unfree_recommendations.patch b/srcpkgs/minitube/patches/remove_unfree_recommendations.patch new file mode 100644 index 00000000000..2adcf93ba8e --- /dev/null +++ b/srcpkgs/minitube/patches/remove_unfree_recommendations.patch @@ -0,0 +1,183 @@ +diff -Naurp0 minitube-3.4.2.orig/minitube.pro minitube-3.4.2/minitube.pro +--- minitube-3.4.2.orig/minitube.pro 2020-06-10 22:50:13.000000000 +0600 ++++ minitube-3.4.2/minitube.pro 2020-07-31 01:34:31.851701380 +0600 +@@ -111 +110,0 @@ HEADERS += src/video.h \ +- src/appwidget.h \ +@@ -185 +183,0 @@ SOURCES += src/main.cpp \ +- src/appwidget.cpp \ +diff -Naurp0 minitube-3.4.2.orig/src/aboutview.cpp minitube-3.4.2/src/aboutview.cpp +--- minitube-3.4.2.orig/src/aboutview.cpp 2020-06-10 22:50:13.000000000 +0600 ++++ minitube-3.4.2/src/aboutview.cpp 2020-07-31 01:32:34.226706841 +0600 +@@ -33 +32,0 @@ $END_LICENSE */ +-#include "appwidget.h" +@@ -161 +159,0 @@ AboutView::AboutView(QWidget *parent) : +- verticalLayout->addWidget(new AppsWidget()); +diff -Naurp0 minitube-3.4.2.orig/src/appwidget.cpp minitube-3.4.2/src/appwidget.cpp +--- minitube-3.4.2.orig/src/appwidget.cpp 2020-06-10 22:50:13.000000000 +0600 ++++ minitube-3.4.2/src/appwidget.cpp 1970-01-01 06:00:00.000000000 +0600 +@@ -1,115 +0,0 @@ +-#include "appwidget.h" +-#include "constants.h" +-#include "http.h" +-#ifdef APP_EXTRA +-#include "updatedialog.h" +-#endif +- +-AppsWidget::AppsWidget(QWidget *parent) : QWidget(parent) { +- const int padding = 30; +- +- QBoxLayout *layout = new QHBoxLayout(this); +- layout->setMargin(padding); +- layout->setSpacing(padding*2); +- layout->setAlignment(Qt::AlignCenter); +- +-#ifdef APP_MAC +- const QString ext = "dmg"; +-#elif defined APP_WIN +- const QString ext = "exe"; +-#else +- const QString ext = "deb"; +-#endif +- +-#ifdef APP_MAC +- setupApp("Sofa", "sofa." + ext); +-#endif +- setupApp("Finetune", "finetune." + ext); +- setupApp("Musictube", "musictube." + ext); +- setupApp("Musique", "musique." + ext); +-} +- +-void AppsWidget::setupApp(const QString &name, const QString &code) { +- AppWidget *w = new AppWidget(name, code); +- layout()->addWidget(w); +-} +- +-void AppsWidget::paintEvent(QPaintEvent *e) { +- Q_UNUSED(e); +- QStyleOption o; +- o.initFrom(this); +- QPainter p(this); +- style()->drawPrimitive(QStyle::PE_Widget, &o, &p, this); +-} +- +-AppWidget::AppWidget(const QString &name, const QString &code, QWidget *parent) : QWidget(parent), icon(0), name(name), downloadButton(0) { +- const QString unixName = code.left(code.lastIndexOf('.')); +- const QString baseUrl = QLatin1String("https://") + Constants::ORG_DOMAIN; +- const QString filesUrl = baseUrl + QLatin1String("/files/"); +- url = filesUrl + unixName + QLatin1String("/") + code; +- webPage = baseUrl + QLatin1String("/") + unixName; +- +- QBoxLayout *layout = new QVBoxLayout(this); +- layout->setMargin(0); +- layout->setAlignment(Qt::AlignHCenter); +- +- icon = new QLabel(); +- icon->setMinimumHeight(128); +- layout->addWidget(icon); +- const QString iconUrl = filesUrl + QLatin1String("products/") + unixName + QLatin1String(".png"); +- QObject *reply = Http::instance().get(iconUrl); +- connect(reply, SIGNAL(data(QByteArray)), SLOT(iconDownloaded(QByteArray))); +- +- QLabel *appTitle = new QLabel(name); +- appTitle->setAlignment(Qt::AlignHCenter); +- layout->addWidget(appTitle); +- +-#ifdef APP_EXTRA +-#if !defined(APP_UBUNTU) && !defined(APP_MAC_STORE) +- downloadButton = new QPushButton(tr("Download")); +- downloadButton->setAttribute(Qt::WA_MacSmallSize); +- downloadButton->setCursor(Qt::ArrowCursor); +- QSizePolicy sp = downloadButton->sizePolicy(); +- sp.setHorizontalPolicy(QSizePolicy::Fixed); +- sp.setRetainSizeWhenHidden(true); +- downloadButton->setSizePolicy(sp); +- connect(downloadButton, SIGNAL(clicked(bool)), SLOT(downloadApp())); +- layout->addWidget(downloadButton, Qt::AlignHCenter); +- layout->setAlignment(downloadButton, Qt::AlignHCenter); +- downloadButton->hide(); +-#endif +-#endif +- +- setCursor(Qt::PointingHandCursor); +-} +- +-void AppWidget::enterEvent(QEvent *e) { +- Q_UNUSED(e); +- if (downloadButton) downloadButton->show(); +-} +- +-void AppWidget::leaveEvent(QEvent *e) { +- Q_UNUSED(e); +- if (downloadButton) downloadButton->hide(); +-} +- +-void AppWidget::mouseReleaseEvent(QMouseEvent *e) { +- if (e->button() == Qt::LeftButton) { +- QDesktopServices::openUrl(webPage); +- } +-} +- +-void AppWidget::iconDownloaded(const QByteArray &bytes) { +- QPixmap pixmap; +- pixmap.loadFromData(bytes, "PNG"); +- icon->setPixmap(pixmap); +-} +- +-void AppWidget::downloadApp() { +-#ifdef APP_EXTRA +- if (!icon) return; +- UpdateDialog *dialog = new UpdateDialog(icon->pixmap(), name, QString(), url, this); +- dialog->downloadUpdate(); +- dialog->show(); +-#endif +-} +diff -Naurp0 minitube-3.4.2.orig/src/appwidget.h minitube-3.4.2/src/appwidget.h +--- minitube-3.4.2.orig/src/appwidget.h 2020-06-10 22:50:13.000000000 +0600 ++++ minitube-3.4.2/src/appwidget.h 1970-01-01 06:00:00.000000000 +0600 +@@ -1,46 +0,0 @@ +-#ifndef APPWIDGET_H +-#define APPWIDGET_H +- +-#include +- +- +-class AppWidget : public QWidget { +- +- Q_OBJECT +- +-public: +- AppWidget(const QString &name, const QString &code, QWidget *parent = 0); +- QLabel *icon; +- +-protected: +- void enterEvent(QEvent *e); +- void leaveEvent(QEvent *e); +- void mouseReleaseEvent(QMouseEvent *e); +- +-private slots: +- void iconDownloaded(const QByteArray &bytes); +- void downloadApp(); +- +-private: +- QPushButton *downloadButton; +- QString name; +- QString url; +- QString webPage; +-}; +- +-class AppsWidget : public QWidget { +- +- Q_OBJECT +- +-public: +- AppsWidget(QWidget *parent = 0); +- +-protected: +- void paintEvent(QPaintEvent *e); +- +-private: +- void setupApp(const QString &name, const QString &code); +- +-}; +- +-#endif // APPWIDGET_H diff --git a/srcpkgs/minitube/patches/remove_unfree_recommendations.patch.args b/srcpkgs/minitube/patches/remove_unfree_recommendations.patch.args new file mode 100644 index 00000000000..2eba1cb3c5c --- /dev/null +++ b/srcpkgs/minitube/patches/remove_unfree_recommendations.patch.args @@ -0,0 +1 @@ +-Np1 diff --git a/srcpkgs/your-freedom/allowlist.txt b/srcpkgs/your-freedom/allowlist.txt index 9fd19221e7a..03693a75187 100644 --- a/srcpkgs/your-freedom/allowlist.txt +++ b/srcpkgs/your-freedom/allowlist.txt @@ -1 +1,2 @@ libxfce4ui +minitube From e18a11b81e32b01510cd7d87badf8f693f1295ba Mon Sep 17 00:00:00 2001 From: reback00 Date: Mon, 3 Aug 2020 23:52:21 +0600 Subject: [PATCH 05/10] Liberated grub - Added branding changes from Parabola (basically it just adds some Free distros, renames list entry) - Changed instances of mac os x to "xnu" in patch --- ..._linux_xen-detect-parabola-initramfs.patch | 126 ++++++++++++++++++ ...x_xen-detect-parabola-initramfs.patch.args | 1 + ...ux-20_linux_xen-rebrand-free-distros.patch | 44 ++++++ ..._linux_xen-rebrand-free-distros.patch.args | 1 + ...er-osx86.patch => os-prober-xnu-x86.patch} | 4 +- srcpkgs/your-freedom/allowlist.txt | 1 + 6 files changed, 175 insertions(+), 2 deletions(-) create mode 100644 srcpkgs/grub/patches/0003-10_linux-20_linux_xen-detect-parabola-initramfs.patch create mode 100644 srcpkgs/grub/patches/0003-10_linux-20_linux_xen-detect-parabola-initramfs.patch.args create mode 100644 srcpkgs/grub/patches/0003-10_linux-20_linux_xen-rebrand-free-distros.patch create mode 100644 srcpkgs/grub/patches/0003-10_linux-20_linux_xen-rebrand-free-distros.patch.args rename srcpkgs/grub/patches/{os-prober-osx86.patch => os-prober-xnu-x86.patch} (76%) diff --git a/srcpkgs/grub/patches/0003-10_linux-20_linux_xen-detect-parabola-initramfs.patch b/srcpkgs/grub/patches/0003-10_linux-20_linux_xen-detect-parabola-initramfs.patch new file mode 100644 index 00000000000..8184871b570 --- /dev/null +++ b/srcpkgs/grub/patches/0003-10_linux-20_linux_xen-detect-parabola-initramfs.patch @@ -0,0 +1,126 @@ +diff -Nur a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in +--- a/util/grub.d/10_linux.in 2015-09-27 14:14:45.544730230 -0300 ++++ b/util/grub.d/10_linux.in 2015-09-27 15:34:19.822404966 -0300 +@@ -80,9 +80,11 @@ + if [ x$type != xsimple ] ; then + case $type in + recovery) +- title="$(gettext_printf "%s, with Linux %s (recovery mode)" "${os}" "${version}")" ;; ++ title="$(gettext_printf "%s, %s kernel (recovery mode)" "${os}" "${version}")" ;; ++ fallback) ++ title="$(gettext_printf "%s, %s kernel (fallback initramfs)" "${os}" "${version}")" ;; + *) +- title="$(gettext_printf "%s, with Linux %s" "${os}" "${version}")" ;; ++ title="$(gettext_printf "%s, %s kernel" "${os}" "${version}")" ;; + esac + if [ x"$title" = x"$GRUB_ACTUAL_DEFAULT" ] || [ x"Previous Linux versions>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then + replacement_title="$(echo "Advanced options for ${OS}" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')" +@@ -94,7 +96,7 @@ + else + echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/" + fi +- if [ x$type != xrecovery ] ; then ++ if [ x$type != xrecovery ] && [ x$type != xfallback ] ; then + save_default_entry | grub_add_tab + fi + +@@ -126,7 +128,7 @@ + fi + printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/" + fi +- message="$(gettext_printf "Loading Linux %s ..." ${version})" ++ message="$(gettext_printf "Loading %s kernel ..." ${version})" + sed "s/^/$submenu_indentation/" << EOF + echo '$(echo "$message" | grub_quote)' + linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} +@@ -182,7 +184,7 @@ + basename=`basename $linux` + dirname=`dirname $linux` + rel_dirname=`make_system_path_relative_to_its_root $dirname` +- version=`echo $basename | sed -e "s,^[^0-9]*-,,g"` ++ version=`echo $basename | sed -e "s,vmlinuz-,,g"` + alt_version=`echo $version | sed -e "s,\.old$,,g"` + linux_root_device_thisversion="${LINUX_ROOT_DEVICE}" + +@@ -238,6 +240,18 @@ + + linux_entry "${OS}" "${version}" advanced \ + "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" ++ ++ if test -e "${dirname}/initramfs-${version}-fallback.img" ; then ++ initrd="initramfs-${version}-fallback.img" ++ ++ if test -n "${initrd}" ; then ++ gettext_printf "Found fallback initramfs image: %s\n" "${dirname}/${initrd}" >&2 ++ fi ++ ++ linux_entry "${OS}" "${version}" fallback \ ++ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" ++ fi ++ + if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then + linux_entry "${OS}" "${version}" recovery \ + "single ${GRUB_CMDLINE_LINUX}" +diff -Nur a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in +--- a/util/grub.d/20_linux_xen.in 2015-09-27 14:14:45.544730230 -0300 ++++ b/util/grub.d/20_linux_xen.in 2015-09-27 15:35:00.589739244 -0300 +@@ -88,9 +88,11 @@ + fi + if [ x$type != xsimple ] ; then + if [ x$type = xrecovery ] ; then +- title="$(gettext_printf "%s, with Xen %s and Linux %s (recovery mode)" "${os}" "${xen_version}" "${version}")" ++ title="$(gettext_printf "%s, with Xen %s and %s kernel (recovery mode)" "${os}" "${xen_version}" "${version}")" ++ elif [ x$type = xfallback ] ; then ++ title="$(gettext_printf "%s, with Xen %s and %s kernel (fallback initramfs)" "${os}" "${xen_version}" "${version}")" + else +- title="$(gettext_printf "%s, with Xen %s and Linux %s" "${os}" "${xen_version}" "${version}")" ++ title="$(gettext_printf "%s, with Xen %s and %s kernel" "${os}" "${xen_version}" "${version}")" + fi + replacement_title="$(echo "Advanced options for ${OS}" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')" + if [ x"Xen ${xen_version}>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then +@@ -103,7 +105,7 @@ + title="$(gettext_printf "%s, with Xen hypervisor" "${os}")" + echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'xen-gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/" + fi +- if [ x$type != xrecovery ] ; then ++ if [ x$type != xrecovery ] && [ x$type != xfallback ] ; then + save_default_entry | grub_add_tab | sed "s/^/$submenu_indentation/" + fi + +@@ -112,7 +114,7 @@ + fi + printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/" + xmessage="$(gettext_printf "Loading Xen %s ..." ${xen_version})" +- lmessage="$(gettext_printf "Loading Linux %s ..." ${version})" ++ lmessage="$(gettext_printf "Loading %s kernel ..." ${version})" + sed "s/^/$submenu_indentation/" << EOF + echo '$(echo "$xmessage" | grub_quote)' + if [ "\$grub_platform" = "pc" -o "\$grub_platform" = "" ]; then +@@ -210,7 +212,7 @@ + basename=`basename $linux` + dirname=`dirname $linux` + rel_dirname=`make_system_path_relative_to_its_root $dirname` +- version=`echo $basename | sed -e "s,^[^0-9]*-,,g"` ++ version=`echo $basename | sed -e "s,vmlinuz-,,g"` + alt_version=`echo $version | sed -e "s,\.old$,,g"` + linux_root_device_thisversion="${LINUX_ROOT_DEVICE}" + +@@ -252,6 +254,18 @@ + + linux_entry "${OS}" "${version}" "${xen_version}" advanced \ + "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}" ++ ++ if test -e "${dirname}/initramfs-${version}-fallback.img" ; then ++ initrd="initramfs-${version}-fallback.img" ++ ++ if test -n "${initrd}" ; then ++ gettext_printf "Found fallback initramfs image: %s\n" "${dirname}/${initrd}" >&2 ++ fi ++ ++ linux_entry "${OS}" "${version}" "${xen_version}" fallback \ ++ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}" ++ fi ++ + if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then + linux_entry "${OS}" "${version}" "${xen_version}" recovery \ + "single ${GRUB_CMDLINE_LINUX}" "${GRUB_CMDLINE_XEN}" diff --git a/srcpkgs/grub/patches/0003-10_linux-20_linux_xen-detect-parabola-initramfs.patch.args b/srcpkgs/grub/patches/0003-10_linux-20_linux_xen-detect-parabola-initramfs.patch.args new file mode 100644 index 00000000000..2eba1cb3c5c --- /dev/null +++ b/srcpkgs/grub/patches/0003-10_linux-20_linux_xen-detect-parabola-initramfs.patch.args @@ -0,0 +1 @@ +-Np1 diff --git a/srcpkgs/grub/patches/0003-10_linux-20_linux_xen-rebrand-free-distros.patch b/srcpkgs/grub/patches/0003-10_linux-20_linux_xen-rebrand-free-distros.patch new file mode 100644 index 00000000000..47added0d36 --- /dev/null +++ b/srcpkgs/grub/patches/0003-10_linux-20_linux_xen-rebrand-free-distros.patch @@ -0,0 +1,44 @@ +diff -Nur a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in +--- a/util/grub.d/10_linux.in 2015-09-27 14:14:45.544730230 -0300 ++++ b/util/grub.d/10_linux.in 2015-09-27 14:58:23.533917184 -0300 +@@ -31,7 +31,17 @@ + if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then + OS=GNU/Linux + else +- OS="${GRUB_DISTRIBUTOR} GNU/Linux" ++ if echo ${GRUB_DISTRIBUTOR} | grep -qi Parabola ; then ++ OS="${GRUB_DISTRIBUTOR} GNU/Linux-libre" ++ elif echo ${GRUB_DISTRIBUTOR} | grep -qi Blag ; then ++ OS="${GRUB_DISTRIBUTOR} Linux and GNU" ++ elif echo ${GRUB_DISTRIBUTOR} | grep -qi Musix ; then ++ OS="${GRUB_DISTRIBUTOR} GNU+Linux" ++ elif echo ${GRUB_DISTRIBUTOR} | grep -qi Dragora ; then ++ OS="${GRUB_DISTRIBUTOR} GNU/Linux-libre" ++ else ++ OS="${GRUB_DISTRIBUTOR} GNU/Linux" ++ fi + CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}" + fi + +diff -Nur a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in +--- a/util/grub.d/20_linux_xen.in 2015-09-27 14:14:45.544730230 -0300 ++++ b/util/grub.d/20_linux_xen.in 2015-09-27 14:59:16.319319658 -0300 +@@ -31,7 +31,17 @@ + if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then + OS=GNU/Linux + else +- OS="${GRUB_DISTRIBUTOR} GNU/Linux" ++ if echo ${GRUB_DISTRIBUTOR} | grep -qi Parabola ; then ++ OS="${GRUB_DISTRIBUTOR} GNU/Linux-libre" ++ elif echo ${GRUB_DISTRIBUTOR} | grep -qi Blag ; then ++ OS="${GRUB_DISTRIBUTOR} Linux and GNU" ++ elif echo ${GRUB_DISTRIBUTOR} | grep -qi Musix ; then ++ OS="${GRUB_DISTRIBUTOR} GNU+Linux" ++ elif echo ${GRUB_DISTRIBUTOR} | grep -qi Dragora ; then ++ OS="${GRUB_DISTRIBUTOR} GNU/Linux-libre" ++ else ++ OS="${GRUB_DISTRIBUTOR} GNU/Linux" ++ fi + CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}" + fi + diff --git a/srcpkgs/grub/patches/0003-10_linux-20_linux_xen-rebrand-free-distros.patch.args b/srcpkgs/grub/patches/0003-10_linux-20_linux_xen-rebrand-free-distros.patch.args new file mode 100644 index 00000000000..2eba1cb3c5c --- /dev/null +++ b/srcpkgs/grub/patches/0003-10_linux-20_linux_xen-rebrand-free-distros.patch.args @@ -0,0 +1 @@ +-Np1 diff --git a/srcpkgs/grub/patches/os-prober-osx86.patch b/srcpkgs/grub/patches/os-prober-xnu-x86.patch similarity index 76% rename from srcpkgs/grub/patches/os-prober-osx86.patch rename to srcpkgs/grub/patches/os-prober-xnu-x86.patch index 5fabbeb6d99..af1e9e0de6d 100644 --- a/srcpkgs/grub/patches/os-prober-osx86.patch +++ b/srcpkgs/grub/patches/os-prober-xnu-x86.patch @@ -1,4 +1,4 @@ -Patches OS X detection out of os-prober hook on non-x86 architectures. The +Patches XNU detection out of os-prober hook on non-x86 architectures. The menu entries generated for those are invalid for non-x86 Mac stuff. --- util/grub.d/30_os-prober.in +++ util/grub.d/30_os-prober.in @@ -6,7 +6,7 @@ menu entries generated for those are invalid for non-x86 Mac stuff. fi osx_entry() { -+ # GRUB won't load OS X outside of x86, no entry ++ # GRUB won't load XNU outside of x86, no entry + case "x`uname -m`" in + xi?86|xx86_64) ;; + *) return ;; diff --git a/srcpkgs/your-freedom/allowlist.txt b/srcpkgs/your-freedom/allowlist.txt index 03693a75187..e7a1b0802cf 100644 --- a/srcpkgs/your-freedom/allowlist.txt +++ b/srcpkgs/your-freedom/allowlist.txt @@ -1,2 +1,3 @@ libxfce4ui minitube +grub From 98b07f0a20031d48427ef2063d26d5dc2c140362 Mon Sep 17 00:00:00 2001 From: reback00 Date: Tue, 4 Aug 2020 22:06:12 +0600 Subject: [PATCH 06/10] Liberated unzip --- srcpkgs/unzip/patches/liberation.patch | 22 ++++++++++++++++++++++ srcpkgs/your-freedom/allowlist.txt | 1 + 2 files changed, 23 insertions(+) create mode 100644 srcpkgs/unzip/patches/liberation.patch diff --git a/srcpkgs/unzip/patches/liberation.patch b/srcpkgs/unzip/patches/liberation.patch new file mode 100644 index 00000000000..48309983227 --- /dev/null +++ b/srcpkgs/unzip/patches/liberation.patch @@ -0,0 +1,22 @@ +diff -Naurp1 unzip60.orig/match.c unzip60/match.c +--- unzip60.orig/match.c 2005-08-14 23:00:36.000000000 +0600 ++++ unzip60/match.c 2020-08-04 20:07:08.645312583 +0600 +@@ -29,12 +29,9 @@ + +- Copyright on recmatch() from Zip's util.c (although recmatch() was almost +- certainly written by Mark Adler...ask me how I can tell :-) ): ++ Copyright on recmatch() from Zip's util.c ++ Copyright (c) 1990-2005 Info-ZIP. All rights reserved. + +- Copyright (C) 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly, +- Kai Uwe Rommel and Igor Mandrichenko. +- +- Permission is granted to any individual or institution to use, copy, +- or redistribute this software so long as all of the original files are +- included unmodified, that it is not sold for profit, and that this copy- +- right notice is retained. ++ See the accompanying file LICENSE, version 2004-May-22 or later ++ for terms of use. ++ If, for some reason, both of these files are missing, the Info-ZIP license ++ also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html + diff --git a/srcpkgs/your-freedom/allowlist.txt b/srcpkgs/your-freedom/allowlist.txt index e7a1b0802cf..9dc8bd7787c 100644 --- a/srcpkgs/your-freedom/allowlist.txt +++ b/srcpkgs/your-freedom/allowlist.txt @@ -1,3 +1,4 @@ libxfce4ui minitube grub +unzip From 19374f54932257864469aef00ba4dc217dfac8d7 Mon Sep 17 00:00:00 2001 From: reback00 Date: Tue, 4 Aug 2020 23:04:16 +0600 Subject: [PATCH 07/10] your-freedom: Added denylist, updated checksum --- srcpkgs/your-freedom/denylist.txt | 1 + srcpkgs/your-freedom/template | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/your-freedom/denylist.txt diff --git a/srcpkgs/your-freedom/denylist.txt b/srcpkgs/your-freedom/denylist.txt new file mode 100644 index 00000000000..a9dce9ae7a7 --- /dev/null +++ b/srcpkgs/your-freedom/denylist.txt @@ -0,0 +1 @@ +p7zip-unrar diff --git a/srcpkgs/your-freedom/template b/srcpkgs/your-freedom/template index 961f792252b..e37b404cca5 100644 --- a/srcpkgs/your-freedom/template +++ b/srcpkgs/your-freedom/template @@ -10,7 +10,7 @@ maintainer="reback00 " license="GPL-3.0-or-later" homepage="https://git.parabola.nu/blacklist.git" distfiles="https://git.parabola.nu/blacklist.git/plain/blacklist.txt?id=${_gitver}>blacklist.txt" -checksum=d6886831a73cf4af0ee5e564106a4b21ddd2d702d6bb1d5146355f1c86751789 +checksum=c7045a60f242fc669e8f097e4d49ba6d34bd06973a9090b63083e5a5d6bfc2f6 # Set this below to yes to allow some packages that have minor issues # (like branding, suggesting optional dependencies etc.). But it should @@ -24,6 +24,12 @@ allow_semifree=no # to the note below in the comment. use_allowlist=yes +# Set this below to yes to enable denying packages listed on denylist.txt. +# Packages listed on that file will be added to the conflicts list. Useful for +# packages not listed on Parabola's blacklist.txt but present on Void. List +# each package name on each line of that file. +use_denylist=yes + # Note 1: This package is still under testing. It is inspired by the Parabola's # your-freedom package. However, libretools is not explored yet. @@ -48,6 +54,14 @@ if [ -z "$conflicts" ] && [ -f "$XBPS_SRCDISTDIR/${pkgname}-${version}/blacklist conflicts=$(awk -F ':' '{print $1}' "blacklist.txt" | awk '{print}' ORS=' ') fi + if [ "$use_denylist" == "yes" ] && [ -f "${XBPS_SRCPKGDIR}/${pkgname}/denylist.txt" ]; then + while read package; do + if [ "$package" != "" ]; then + conflicts="$conflicts $package" + fi + done < "${XBPS_SRCPKGDIR}/${pkgname}/denylist.txt" + fi + if [ "$use_allowlist" == "yes" ] && [ -f "${XBPS_SRCPKGDIR}/${pkgname}/allowlist.txt" ]; then while read package; do if [ "$package" != "" ]; then From 389ef5758704537d08c85a21fa00442ca20b32ef Mon Sep 17 00:00:00 2001 From: reback00 Date: Sun, 9 Aug 2020 01:05:28 +0600 Subject: [PATCH 08/10] your-freedom: Added feature to distinguish libre packages Added a feature to add the package entry on allowlist.txt in such a way that it is distinguishable if the package is already libre on default repo and build should be skipped for it on a custom repo. --- srcpkgs/your-freedom/allowlist.txt | 2 +- srcpkgs/your-freedom/template | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/srcpkgs/your-freedom/allowlist.txt b/srcpkgs/your-freedom/allowlist.txt index 9dc8bd7787c..f5d19d9aa3c 100644 --- a/srcpkgs/your-freedom/allowlist.txt +++ b/srcpkgs/your-freedom/allowlist.txt @@ -1,4 +1,4 @@ -libxfce4ui +libxfce4ui:libxfce4ui minitube grub unzip diff --git a/srcpkgs/your-freedom/template b/srcpkgs/your-freedom/template index e37b404cca5..4efd86a5543 100644 --- a/srcpkgs/your-freedom/template +++ b/srcpkgs/your-freedom/template @@ -19,9 +19,11 @@ checksum=c7045a60f242fc669e8f097e4d49ba6d34bd06973a9090b63083e5a5d6bfc2f6 allow_semifree=no # Set this below to yes to allow some packages listed on allowlist.txt. -# allowlist.txt should list each package name that should be allowed on -# each line. If you change the file, remember to clear cache according -# to the note below in the comment. +# allowlist.txt should list each package name that should be allowed on each +# line. In case some package is already libre on default repo and should be +# indicated, enter the package name twice adding a ":" between them. If you +# change the file, remember to clear cache according to the note below in the +# comment. use_allowlist=yes # Set this below to yes to enable denying packages listed on denylist.txt. @@ -63,8 +65,9 @@ if [ -z "$conflicts" ] && [ -f "$XBPS_SRCDISTDIR/${pkgname}-${version}/blacklist fi if [ "$use_allowlist" == "yes" ] && [ -f "${XBPS_SRCPKGDIR}/${pkgname}/allowlist.txt" ]; then - while read package; do - if [ "$package" != "" ]; then + while read linedata; do + if [ "$linedata" != "" ]; then + package=$( echo "$linedata" | awk -F ':' '{print $1}' ) if [ "$expr" == "" ]; then expr="$package\s*" else From 96a96f2951b587562566508a11b5b4a40fb584f0 Mon Sep 17 00:00:00 2001 From: reback00 Date: Tue, 11 Aug 2020 18:34:41 +0600 Subject: [PATCH 09/10] Allowed acpi_call-dkms, sorted allowlist --- srcpkgs/your-freedom/allowlist.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/srcpkgs/your-freedom/allowlist.txt b/srcpkgs/your-freedom/allowlist.txt index f5d19d9aa3c..4789c4c966c 100644 --- a/srcpkgs/your-freedom/allowlist.txt +++ b/srcpkgs/your-freedom/allowlist.txt @@ -1,4 +1,5 @@ +acpi_call-dkms:acpi_call-dkms +grub libxfce4ui:libxfce4ui minitube -grub unzip From 6c7fa05d6fddb147d23002bbcd1f6e7ad63dbac8 Mon Sep 17 00:00:00 2001 From: reback00 Date: Wed, 12 Aug 2020 05:08:43 +0600 Subject: [PATCH 10/10] your-freedom: Allowed engrampa --- srcpkgs/your-freedom/allowlist.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/srcpkgs/your-freedom/allowlist.txt b/srcpkgs/your-freedom/allowlist.txt index 4789c4c966c..8684cfff6d2 100644 --- a/srcpkgs/your-freedom/allowlist.txt +++ b/srcpkgs/your-freedom/allowlist.txt @@ -1,4 +1,5 @@ acpi_call-dkms:acpi_call-dkms +engrampa:engrampa grub libxfce4ui:libxfce4ui minitube