OpenSUSE 13: Flatpakをインストールする


Table of Contents

1 OpenSUSE Leap 42.2のカーネルをインストール

OpenSUSE Leap 42.2のkernel-default-4.4.36-8.1.x86_64.rpmをインストールします。起動しなくなった場合のために、OpenSuSE 13.2のLive環境を用意してから実行してください。kernel-desktop等をインストールすれば元に戻せます。

> L=http://download.opensuse.org/update/leap/42.2/> wget -q ${L}/oss/x86_64/kernel-default-4.4.36-8.1.x86_64.rpm> sudo zypper -n in kernel-default-4.4.36-8.1.x86_64.rpm> sudo reboot

2 rpmbuildの設定

rpm-buildとpatterns-openSUSE-devel_basisをインストールします。

> sudo zypper -n in rpm-build patterns-openSUSE-devel_basis

3 ostreeのインストール

この記事で使う変数を設定します。

> F=”https://dl.fedoraproject.org/pub/fedora/linux/releases/25″> B=”BuildRequires:”> R=”Requires:”

Fedora 25のostreeのsrc.rpmをダウンロードします。

> wget -q ${F}/Everything/source/tree/Packages/o/ostree-2016.12-1.fc25.src.rpm> rpm -i ostree-2016.12-1.fc25.src.rpm> cd ~/rpmbuild

selinuxを無効にします。Fedora 25のパッケージ名からOpenSUSE 13のものに変更します。

> sed -e “s/^$B(.*)pkgconfig(libselinux).*//g” -e “s;^$B(.*)/usr/bin/g-ir-scanner;$B1gobject-introspection-devel;g” -e “s/^$R(.*)systemd-units/$R1systemd/g” -e ‘s/–with-selinux/–without-selinux/g’ -i SPECS/ostree.spec

BuildRequiresのパッケージをインストールします。

> sudo zypper -n in $(rpmspec -q SPECS/ostree.spec –buildrequires)

ostreeをビルドしてインストールします。

> rpmbuild -ba SPECS/ostree.spec> sudo zypper -n in RPMS/x86_64/ostree-*.rpm> cd

4 bubblewrapのインストール

この記事で使う変数を設定します。

> F=”https://dl.fedoraproject.org/pub/fedora/linux/releases/25″> B=”BuildRequires:”> R=”Requires:”

Fedora 25のbubblewrapのsrc.rpmをダウンロードします。

> wget -q ${F}/Everything/source/tree/Packages/b/bubblewrap-0.1.3-2.fc25.src.rpm> rpm -i bubblewrap-0.1.3-2.fc25.src.rpm> cd ~/rpmbuild

selinuxを無効にします。Fedora 25のパッケージ名からOpenSUSE 13のものに変更します。定義されていないRPMマクロをコマンドに置き換えます。

> sed -e “s;^$B(.*)docbook-style-xsl;$B1docbook-xsl-stylesheets;g” -e ‘s/^%configure (.*)/%configure –disable-selinux 1/g’ -e ‘s/^%make_build/%{__make} -O %{?_smp_mflags}/g’ -i SPECS/bubblewrap.spec

BuildRequiresのパッケージをインストールします。

> sudo zypper -n in $(rpmspec -q SPECS/bubblewrap.spec –buildrequires)

bubblewrapをビルドしてインストールします。

> rpmbuild -ba SPECS/bubblewrap.spec> sudo zypper -n in RPMS/x86_64/bubblewrap-*.rpm> cd

5 flatpakのインストール

この記事で使う変数を設定します。

> F=”https://dl.fedoraproject.org/pub/fedora/linux/releases/25″> B=”BuildRequires:”> R=”Requires:”

Fedora 25のflatpakのsrc.rpmをダウンロードします。

> wget -q ${F}/Everything/source/tree/Packages/f/flatpak-0.6.13-1.fc25.src.rpm> rpm -i flatpak-0.6.13-1.fc25.src.rpm> cd ~/rpmbuild

Fedora 25のパッケージ名からOpenSUSE 13のものに変更します。定義されていないRPMマクロをコマンドに置き換えます。

> sed -e “s;^$B(.*)/usr/bin/xmlto;$B1xmlto;g” -e “s;^$B(.*)/usr/bin/xsltproc;$B1libxslt-tools;g” -e “s;^$B(.*)docbook-style-xsl;$B1docbook-xsl-stylesheets;g” -e “s/^$B(.*)pkgconfig(libelf).*/$B1libelf-devel/g” -e “s;^$R(.*)/usr/bin/tar;$R1/bin/tar;g” -e ‘s;%{_pkgdocdir};/usr/share/doc/%{name};g’ -e ‘s;%{_docdir}/%{name};/usr/share/doc/%{name};g’ -e ‘s;%{_userunitdir};/usr/lib/systemd/user;g’ -e ‘s/^%make_build/%{__make} -O %{?_smp_mflags}/g’ -i SPECS/flatpak.spec

パッチを作成します。

> P=SOURCES/autocleanups.patch> echo “diff -uprN a/common/flatpak-utils.h b/common/flatpak-utils.h” > $P> echo “— a/common/flatpak-utils.h 2016-10-25 17:25:46.000000000 +0900” >> $P> echo “+++ b/common/flatpak-utils.h 2016-12-30 15:40:13.400390490 +0900” >> $P> echo “@@ -416,6 +416,7 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC (OstreeRep” >> $P> echo ” G_DEFINE_AUTOPTR_CLEANUP_FUNC (SoupSession, g_object_unref)” >> $P> echo ” G_DEFINE_AUTOPTR_CLEANUP_FUNC (SoupMessage, g_object_unref)” >> $P> echo ” G_DEFINE_AUTOPTR_CLEANUP_FUNC (SoupRequest, g_object_unref)” >> $P> echo “+G_DEFINE_AUTOPTR_CLEANUP_FUNC (SoupRequestHTTP, g_object_unref)” >> $P> echo ” G_DEFINE_AUTOPTR_CLEANUP_FUNC (SoupURI, soup_uri_free)” >> $P> echo ” #endif” >> $P> echo ” ” >> $P> sed -e “s/^$B libxslt-tools/$B libxslt-toolsnPatch0: autocleanups.patch/g” -e ‘s/^%setup -q/%setup -qn%patch0 -p1/g’ -i SPECS/flatpak.spec

libelf-develとコンフリクトするlibelf0-develを削除します。BuildRequiresのパッケージをインストールします。

> sudo zypper -n rm libelf0-devel> sudo zypper -n in $(rpmspec -q SPECS/flatpak.spec –buildrequires)

flatpakをビルドしてインストールします。

> rpmbuild -ba SPECS/flatpak.spec> sudo zypper -n in RPMS/x86_64/flatpak-*.rpm> cd

6 Flatpakの実行

org.gnome.geditをインストールします。

wget –user remote-add –gpg-import=gnome-sdk.gpg gnome –user remote-add –gpg-import=gnome-sdk.gpg gnome-apps { flatpak –user list –runtime –app | grep ${2} > /dev/null && return 0 while : ; do flatpak –user install $@ & pid=$! sleep 300 ps -p ${pid} | awk ‘{ print $1 }’ | grep ${pid} > /dev/null || break sudo kill -KILL ${pid} done}flatpak_user
_install gnome org.gnome.Platform 3.22flatpak_user_install gnome org.gnome.Sdk 3.22flatpak –user install gnome-apps org.gnome.gedit stable

KDE環境でもorg.gnome.geditが動作します。

> flatpak run org.gnome.gedit

0001_org.gnome.gedit.png

7 Flatpakをインストールするスクリプト

以下のスクリプトはostree、bubblewrap、flatpakをインストールします。

#!/bin/shF=”https://dl.fedoraproject.org/pub/fedora/linux/releases/25″B=”BuildRequires:”R=”Requires:”opensuse_install_ostree(){ wget -q ${F}/Everything/source/tree/Packages/o/ostree-2016.12-1.fc25.src.rpm rpm -i ostree-2016.12-1.fc25.src.rpm cd ~/rpmbuild sed -e “s/^$B(.*)pkgconfig(libselinux).*//g” -e “s;^$B(.*)/usr/bin/g-ir-scanner;$B1gobject-introspection-devel;g” -e “s/^$R(.*)systemd-units/$R1systemd/g” -e ‘s/–with-selinux/–without-selinux/g’ -i SPECS/ostree.spec sudo zypper -n in $(rpmspec -q SPECS/ostree.spec –buildrequires) rpmbuild -ba SPECS/ostree.spec sudo zypper -n in RPMS/x86_64/ostree-*.rpm cd}opensuse_install_bubblewrap(){ wget -q ${F}/Everything/source/tree/Packages/b/bubblewrap-0.1.3-2.fc25.src.rpm rpm -i bubblewrap-0.1.3-2.fc25.src.rpm cd ~/rpmbuild sed -e “s;^$B(.*)docbook-style-xsl;$B1docbook-xsl-stylesheets;g” -e ‘s/^%configure (.*)/%configure –disable-selinux 1/g’ -e ‘s/^%make_build/%{__make} -O %{?_smp_mflags}/g’ -i SPECS/bubblewrap.spec sudo zypper -n in $(rpmspec -q SPECS/bubblewrap.spec –buildrequires) rpmbuild -ba SPECS/bubblewrap.spec sudo zypper -n in RPMS/x86_64/bubblewrap-*.rpm cd}opensuse_install_flatpak(){ wget -q ${F}/Everything/source/tree/Packages/f/flatpak-0.6.13-1.fc25.src.rpm rpm -i flatpak-0.6.13-1.fc25.src.rpm cd ~/rpmbuild sed -e “s;^$B(.*)/usr/bin/xmlto;$B1xmlto;g” -e “s;^$B(.*)/usr/bin/xsltproc;$B1libxslt-tools;g” -e “s;^$B(.*)docbook-style-xsl;$B1docbook-xsl-stylesheets;g” -e “s/^$B(.*)pkgconfig(libelf).*/$B1libelf-devel/g” -e “s;^$R(.*)/usr/bin/tar;$R1/bin/tar;g” -e ‘s;%{_pkgdocdir};/usr/share/doc/%{name};g’ -e ‘s;%{_docdir}/%{name};/usr/share/doc/%{name};g’ -e ‘s;%{_userunitdir};/usr/lib/systemd/user;g’ -e ‘s/^%make_build/%{__make} -O %{?_smp_mflags}/g’ -i SPECS/flatpak.spec P=SOURCES/autocleanups.patch echo “diff -uprN a/common/flatpak-utils.h b/common/flatpak-utils.h” > $P echo “— a/common/flatpak-utils.h 2016-10-25 17:25:46.000000000 +0900” >> $P echo “+++ b/common/flatpak-utils.h 2016-12-30 15:40:13.400390490 +0900” >> $P echo “@@ -416,6 +416,7 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC (OstreeRep” >> $P echo ” G_DEFINE_AUTOPTR_CLEANUP_FUNC (SoupSession, g_object_unref)” >> $P echo ” G_DEFINE_AUTOPTR_CLEANUP_FUNC (SoupMessage, g_object_unref)” >> $P echo ” G_DEFINE_AUTOPTR_CLEANUP_FUNC (SoupRequest, g_object_unref)” >> $P echo “+G_DEFINE_AUTOPTR_CLEANUP_FUNC (SoupRequestHTTP, g_object_unref)” >> $P echo ” G_DEFINE_AUTOPTR_CLEANUP_FUNC (SoupURI, soup_uri_free)” >> $P echo ” #endif” >> $P echo ” ” >> $P sed -e “s/^$B libxslt-tools/$B libxslt-toolsnPatch0: autocleanups.patch/g” -e ‘s/^%setup -q/%setup -qn%patch0 -p1/g’ -i SPECS/flatpak.spec sudo zypper -n rm libelf0-devel sudo zypper -n in $(rpmspec -q SPECS/flatpak.spec –buildrequires) # automake-1.5 might be needed but not used in this time. rpmbuild -ba SPECS/flatpak.spec sudo zypper -n in RPMS/x86_64/flatpak-*.rpm cd}sudo zypper -n in rpm-build patterns-openSUSE-devel_basisopensuse_install_ostreeopensuse_install_bubblewrapopensuse_install_flatpak

Android | Linux | SDL - Narrow Escape