Accepting request 1003683 from home:dfaggioli:microos-desktop

- Update to latest version (1.4.0)
- Patches removed:
   0001-enter-fix-automatic-container-creation-when-r-is-use.patch
   0002-distrobox-handle-situations-with-weird-manpages-setu.patch
   0002-opensuse-check-for-the-config-file-in-usr-etc-too.patch
   0003-distrobox-if-no-command-is-specified-default-to-ente.patch
   0004-opensuse-check-for-the-config-file-in-usr-etc-too.patch
- Patches added:
   0001-distrobox-if-no-command-is-specified-default-to-ente.patch
- Changes in 1.4.0:
  * New distrobox upgrade command, to update all the containers at once
  * New distrobox generate-entry command, to add your distrobox to the app list
    note that from 1.4.0 onwards this will be the default behaviour for all the
    new containers created
  * New distrobox ephemeral command, to quickly spawn, use and delete a container.
    All-in-one.
  * New install-podman script to install Podman in $HOME. Handy for @ValveSoftware
    SteamDeck users
  * Distrobox-host-exec now uses exclusively the host-spawn command from @1player
  * Better support for AD/LDap and Kerberos usernames
  * Better support for Nix/Guix hosts
  * Plenty of bug fixes and CI/Test improvements smile

OBS-URL: https://build.opensuse.org/request/show/1003683
OBS-URL: https://build.opensuse.org/package/show/Virtualization:containers/distrobox?expand=0&rev=17
This commit is contained in:
Dario Faggioli 2022-09-15 05:50:35 +00:00 committed by Git OBS Bridge
parent eb538f4479
commit 60d52da4fe
8 changed files with 77 additions and 254 deletions

View File

@ -1,22 +1,22 @@
From 0f1a928d310ea35465f892ff0bda563d110a4ce7 Mon Sep 17 00:00:00 2001 From a4f0fd0560c39d58472ef09e4228948e88012d33 Mon Sep 17 00:00:00 2001
From: Dario Faggioli <dfaggioli@suse.com> From: Dario Faggioli <dfaggioli@suse.com>
Date: Thu, 28 Jul 2022 10:10:28 +0200 Date: Thu, 28 Jul 2022 10:10:28 +0200
Subject: [PATCH 3/4] distrobox: if no command is specified, default to enter Subject: [PATCH] distrobox: if no command is specified, default to enter
If just `distrobox` is invoked, without any command, assume If just `distrobox` is invoked, without any command, assume
`distrobox enter`. `distrobox enter`.
Signed-off-by: Dario Faggioli <dfaggioli@suse.com> Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
--- ---
distrobox | 19 ++++++++++++------- distrobox | 18 ++++++++++++------
docs/README.md | 1 + docs/README.md | 1 +
2 files changed, 13 insertions(+), 7 deletions(-) 2 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/distrobox b/distrobox diff --git a/distrobox b/distrobox
index 4e37031..ce0469c 100755 index 0f83b54..9b53547 100755
--- a/distrobox --- a/distrobox
+++ b/distrobox +++ b/distrobox
@@ -19,6 +19,11 @@ @@ -19,6 +19,12 @@
# along with distrobox; if not, see <http://www.gnu.org/licenses/>. # along with distrobox; if not, see <http://www.gnu.org/licenses/>.
# POSIX # POSIX
@ -25,42 +25,37 @@ index 4e37031..ce0469c 100755
+ +
+default_command="enter" +default_command="enter"
+[ -n "${DBX_DEFAULT_COMMAND}" ] && default_command="${DBX_DEFAULT_COMMAND}" +[ -n "${DBX_DEFAULT_COMMAND}" ] && default_command="${DBX_DEFAULT_COMMAND}"
+
set -o errexit
set -o nounset
trap '[ "$?" -ne 0 ] && printf "\nAn error occurred\n"' EXIT @@ -48,15 +54,15 @@ Choose one of the available commands:
@@ -43,11 +48,6 @@ Choose one of the available commands:
EOF EOF
} }
-if [ $# -eq 0 ]; then +distrobox_path="$(dirname "${0}")"
if [ $# -eq 0 ]; then
- show_help - show_help
- exit - exit
-fi
-
# Handle 'help' here, before setting 'errexit', so we have a chance
# to show our help if the man command is there but fails.
if [ "$1" = "help" ] || [ "$1" = "--help" ] || [ "$1" = "-h" ]; then
@@ -62,8 +62,13 @@ set -o errexit
set -o nounset
distrobox_path="$(dirname "${0}")"
-distrobox_command="${1}"
-shift
+if [ $# -eq 0 ]; then
+ printf "No command specified. Assuming: distrobox-%s\n" "${default_command}" + printf "No command specified. Assuming: distrobox-%s\n" "${default_command}"
+ distrobox_command="${default_command}" + distrobox_command="${default_command}"
+else +else
+ distrobox_command="${1}" + distrobox_command="${1}"
+ shift + shift
+fi fi
-distrobox_path="$(dirname "${0}")"
-distrobox_command="${1}"
-shift
-
# Simple wrapper to the distrobox utilities. # Simple wrapper to the distrobox utilities.
# We just detect the 1st argument and launch the matching distrobox utility. # We just detect the 1st argument and launch the matching distrobox utility.
case "${distrobox_command}" in
diff --git a/docs/README.md b/docs/README.md diff --git a/docs/README.md b/docs/README.md
index df00785..64e4c0d 100644 index 8ec20bf..165985f 100644
--- a/docs/README.md --- a/docs/README.md
+++ b/docs/README.md +++ b/docs/README.md
@@ -268,6 +268,7 @@ Alternatively it is possible to specify preferences using ENV variables: @@ -283,6 +283,7 @@ Alternatively it is possible to specify preferences using ENV variables:
- DBX_CONTAINER_NAME - DBX_CONTAINER_NAME
- DBX_NON_INTERACTIVE - DBX_NON_INTERACTIVE
- DBX_SKIP_WORKDIR - DBX_SKIP_WORKDIR
@ -69,5 +64,5 @@ index df00785..64e4c0d 100644
--- ---
-- --
2.37.1 2.37.3

View File

@ -1,44 +0,0 @@
From 2773eff4dcafc8df176f74b001a56557c7893507 Mon Sep 17 00:00:00 2001
From: Dario Faggioli <dfaggioli@suse.com>
Date: Wed, 27 Jul 2022 13:17:34 +0200
Subject: [PATCH 1/4] enter: fix automatic container creation when '-r' is used
(#364)
When calling 'distrobox-create', from inside 'distrobox-enter' (in cause
automatic creation of the container is enabled) we were not "forwarding"
the '-r' flag properly. Therefore, when 'distrobox enter -r' was used,
we were trying to create a rootless container, which is obviously wrong!
Fixes: 8b195e3328d0a6fb19564555dec067c607fa8116
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
(cherry picked from commit 19aa7bfccc1726551eda9df36403da58beb00823)
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
---
distrobox-enter | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/distrobox-enter b/distrobox-enter
index 138446c..e754c6b 100755
--- a/distrobox-enter
+++ b/distrobox-enter
@@ -407,10 +407,15 @@ if [ "${container_status}" = "unknown" ]; then
case "${response}" in
y | Y | Yes | yes | YES)
# Ok, let's create the container with just 'distrobox create $container_name
+ create_command="$(dirname "${0}")/distrobox-create"
+ if [ "${rootful}" -ne 0 ]; then
+ create_command="${create_command} --root"
+ fi
+ create_command="${create_command} -i ${container_image} -n ${container_name}"
printf >&2 "Creating the container with command:\n"
- printf >&2 " distrobox create -i %s %s\n" "${container_image}" "${container_name}"
+ printf >&2 " %s\n" "${create_command}"
if [ "${dryrun}" -ne 1 ]; then
- "$(dirname "${0}")"/distrobox-create -i "${container_image}" -n "${container_name}"
+ eval "${create_command}"
fi
;;
n | N | No | no | NO)
--
2.37.1

View File

@ -1,75 +0,0 @@
From d8f81bb5a6169b4efce137c3538afa770abb1fbb Mon Sep 17 00:00:00 2001
From: Dario Faggioli <dfaggioli@suse.com>
Date: Thu, 28 Jul 2022 11:02:05 +0200
Subject: [PATCH 2/4] distrobox: handle situations with weird manpages setup
So, assume you're distro strip manpages during packages install. That
might mean the `man` command exists, but there isn't any entry for
anything. In that case, the following happens:
distrobox --help
No manual entry for distrobox
An error occurred
Fix this by checking also the return value of the `man` invocation too,
and show our own help if it failed.
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
(cherry picked from https://github.com/89luca89/distrobox/pull/365)
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
---
distrobox | 23 +++++++++++++----------
1 file changed, 13 insertions(+), 10 deletions(-)
diff --git a/distrobox b/distrobox
index 5cbb6de..4e37031 100755
--- a/distrobox
+++ b/distrobox
@@ -19,8 +19,6 @@
# along with distrobox; if not, see <http://www.gnu.org/licenses/>.
# POSIX
-set -o errexit
-set -o nounset
trap '[ "$?" -ne 0 ] && printf "\nAn error occurred\n"' EXIT
@@ -50,6 +48,19 @@ if [ $# -eq 0 ]; then
exit
fi
+# Handle 'help' here, before setting 'errexit', so we have a chance
+# to show our help if the man command is there but fails.
+if [ "$1" = "help" ] || [ "$1" = "--help" ] || [ "$1" = "-h" ]; then
+ if command -v man > /dev/null; then
+ man distrobox && exit 0
+ fi
+ show_help
+ exit 0
+fi
+
+set -o errexit
+set -o nounset
+
distrobox_path="$(dirname "${0}")"
distrobox_command="${1}"
shift
@@ -76,14 +87,6 @@ case "${distrobox_command}" in
printf "distrobox: %s\n" "${version}"
exit 0
;;
- help | --help | -h)
- if command -v man > /dev/null; then
- man distrobox
- exit 0
- fi
- show_help
- exit 0
- ;;
*) # Default case: If no more options then break out of the loop.
printf >&2 "Error: invalid command\n"
show_help
--
2.37.1

View File

@ -1,90 +0,0 @@
From 9a9a4dd4843199e9e40668dc58986abb82fb9020 Mon Sep 17 00:00:00 2001
From: Dario Faggioli <dfaggioli@suse.com>
Date: Wed, 27 Jul 2022 12:50:16 +0200
Subject: [PATCH 4/4] opensuse: check for the config file in /usr/etc too
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
---
distrobox-create | 1 +
distrobox-enter | 1 +
distrobox-list | 1 +
distrobox-rm | 1 +
distrobox-stop | 1 +
docs/README.md | 1 +
6 files changed, 6 insertions(+)
diff --git a/distrobox-create b/distrobox-create
index b0bb0e9..94fe003 100755
--- a/distrobox-create
+++ b/distrobox-create
@@ -79,6 +79,7 @@ version="1.3.1"
# leave priority to environment variables.
config_files="
/usr/share/distrobox/distrobox.conf
+ /usr/etc/distrobox/distrobox.conf
/etc/distrobox/distrobox.conf
${HOME}/.config/distrobox/distrobox.conf
${HOME}/.distroboxrc
diff --git a/distrobox-enter b/distrobox-enter
index e754c6b..25870f2 100755
--- a/distrobox-enter
+++ b/distrobox-enter
@@ -69,6 +69,7 @@ version="1.3.1"
# leave priority to environment variables.
config_files="
/usr/share/distrobox/distrobox.conf
+ /usr/etc/distrobox/distrobox.conf
/etc/distrobox/distrobox.conf
${HOME}/.config/distrobox/distrobox.conf
${HOME}/.distroboxrc
diff --git a/distrobox-list b/distrobox-list
index f62da97..36788df 100755
--- a/distrobox-list
+++ b/distrobox-list
@@ -42,6 +42,7 @@ container_manager="autodetect"
# leave priority to environment variables.
config_files="
/usr/share/distrobox/distrobox.conf
+ /usr/etc/distrobox/distrobox.conf
/etc/distrobox/distrobox.conf
${HOME}/.config/distrobox/distrobox.conf
${HOME}/.distroboxrc
diff --git a/distrobox-rm b/distrobox-rm
index 4d6b0a8..e23a1d7 100755
--- a/distrobox-rm
+++ b/distrobox-rm
@@ -46,6 +46,7 @@ version="1.3.1"
# leave priority to environment variables.
config_files="
/usr/share/distrobox/distrobox.conf
+ /usr/etc/distrobox/distrobox.conf
/etc/distrobox/distrobox.conf
${HOME}/.config/distrobox/distrobox.conf
${HOME}/.distroboxrc
diff --git a/distrobox-stop b/distrobox-stop
index accfce0..f848b7e 100755
--- a/distrobox-stop
+++ b/distrobox-stop
@@ -45,6 +45,7 @@ version="1.3.1"
# leave priority to environment variables.
config_files="
/usr/share/distrobox/distrobox.conf
+ /usr/etc/distrobox/distrobox.conf
/etc/distrobox/distrobox.conf
${HOME}/.config/distrobox/distrobox.conf
${HOME}/.distroboxrc
diff --git a/docs/README.md b/docs/README.md
index 64e4c0d..58cf1d8 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -243,6 +243,7 @@ Configuration files can be placed in the following paths, from the least importa
to the most important:
- /usr/share/distrobox/distrobox.conf
+- /usr/etc/distrobox/distrobox.conf
- /etc/distrobox/distrobox.conf
- ${HOME}/.config/distrobox/distrobox.conf
- ${HOME}/.distroboxrc
--
2.37.1

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:22b6625ca243f55c08630d37015cdbfbe1939516022bfef502aa6603f42b4d00
size 80081

3
distrobox-1.4.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e643a702c3f3f0d7467afe840b4f3ee6e4c369b6464618b6ec09f7ad27eb64f5
size 228027

View File

@ -1,7 +1,33 @@
-------------------------------------------------------------------
Wed Sep 14 09:24:10 UTC 2022 - Dario Faggioli <dfaggioli@suse.com>
- Update to latest version (1.4.0)
- Patches removed:
0001-enter-fix-automatic-container-creation-when-r-is-use.patch
0002-distrobox-handle-situations-with-weird-manpages-setu.patch
0002-opensuse-check-for-the-config-file-in-usr-etc-too.patch
0003-distrobox-if-no-command-is-specified-default-to-ente.patch
0004-opensuse-check-for-the-config-file-in-usr-etc-too.patch
- Patches added:
0001-distrobox-if-no-command-is-specified-default-to-ente.patch
- Changes in 1.4.0:
* New distrobox upgrade command, to update all the containers at once
* New distrobox generate-entry command, to add your distrobox to the app list
note that from 1.4.0 onwards this will be the default behaviour for all the
new containers created
* New distrobox ephemeral command, to quickly spawn, use and delete a container.
All-in-one.
* New install-podman script to install Podman in $HOME. Handy for @ValveSoftware
SteamDeck users
* Distrobox-host-exec now uses exclusively the host-spawn command from @1player
* Better support for AD/LDap and Kerberos usernames
* Better support for Nix/Guix hosts
* Plenty of bug fixes and CI/Test improvements smile
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Jul 28 09:48:32 UTC 2022 - Dario Faggioli <dfaggioli@suse.com> Thu Jul 28 09:48:32 UTC 2022 - Dario Faggioli <dfaggioli@suse.com>
- Fix a (potential) problem with man and manpages - Fix a (potential0 problem with man and manpages
* Patch added: * Patch added:
0002-distrobox-handle-situations-with-weird-manpages-setu.patch 0002-distrobox-handle-situations-with-weird-manpages-setu.patch
- Default to distrobox-enter when only typing distrobox - Default to distrobox-enter when only typing distrobox

View File

@ -16,26 +16,22 @@
# #
Name: distrobox Name: distrobox
Version: 1.3.1 Version: 1.4.0
Release: 0 Release: 0
Summary: Use any linux distribution inside your terminal Summary: Use any linux distribution inside your terminal
License: GPL-3.0 License: GPL-3.0
URL: https://github.com/89luca89/distrobox URL: https://github.com/89luca89/distrobox
Source: distrobox-%{version}.tar.gz Source: distrobox-%{version}.tar.gz
Source1: distrobox.conf Source1: distrobox.conf
# Fix a problem with automatic rootful container creation (from upstream)
Patch1: 0001-enter-fix-automatic-container-creation-when-r-is-use.patch
# Fix a problem if man is there but actual manpages are stripped (from upstream PR)
Patch2: 0002-distrobox-handle-situations-with-weird-manpages-setu.patch
# Default to distrobox-enter when just distrobox is used # Default to distrobox-enter when just distrobox is used
Patch3: 0003-distrobox-if-no-command-is-specified-default-to-ente.patch Patch1: 0001-distrobox-if-no-command-is-specified-default-to-ente.patch
# Read the config from vendor specific directory (/usr/etc/distrobox) too
Patch4: 0004-opensuse-check-for-the-config-file-in-usr-etc-too.patch
Requires: %{_bindir}/basename Requires: %{_bindir}/basename
Requires: %{_bindir}/find Requires: %{_bindir}/find
Requires: %{_bindir}/grep Requires: %{_bindir}/grep
Requires: %{_bindir}/sed Requires: %{_bindir}/sed
Requires: (%{_bindir}/podman or %{_bindir}/docker) Requires: (%{_bindir}/podman or %{_bindir}/docker)
BuildRequires: hicolor-icon-theme
BuildRequires: ImageMagick
BuildArch: noarch BuildArch: noarch
%description %description
@ -51,10 +47,11 @@ external USB devices and graphical apps (X11/Wayland), and audio.
%build %build
%install %install
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_docdir}/%{name}
./install --prefix %{buildroot}/%{_prefix} ./install --prefix %{buildroot}/%{_prefix}
install -d -m0755 %{buildroot}%{_docdir}/%{name}
install -m 0644 docs/*.md %{buildroot}%{_docdir}/%{name} install -m 0644 docs/*.md %{buildroot}%{_docdir}/%{name}
%if 0%{?suse_version} > 1500 %if 0%{?suse_version} > 1500
mkdir -p %{buildroot}%{_distconfdir}/distrobox mkdir -p %{buildroot}%{_distconfdir}/distrobox
install -m 0644 %{SOURCE1} %{buildroot}%{_distconfdir}/distrobox/distrobox.conf install -m 0644 %{SOURCE1} %{buildroot}%{_distconfdir}/distrobox/distrobox.conf
@ -62,6 +59,19 @@ install -m 0644 %{SOURCE1} %{buildroot}%{_distconfdir}/distrobox/distrobox.conf
mkdir -p %{buildroot}%{_sysconfdir}/distrobox mkdir -p %{buildroot}%{_sysconfdir}/distrobox
install -m 0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/distrobox/distrobox.conf install -m 0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/distrobox/distrobox.conf
%endif %endif
# Move the icon
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/1200x1200/apps
mv %{buildroot}%{_datadir}/icons/terminal-distrobox-icon.png \
%{buildroot}%{_datadir}/icons/hicolor/1200x1200/apps
# Generate all the other icon sizes
for sz in 16 22 24 32 36 48 64 72 96 128 256; do
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/${sz}x${sz}/apps
convert terminal-distrobox-icon.png -resize ${sz}x${sz} \
%{buildroot}%{_datadir}/icons/hicolor/${sz}x${sz}/apps/terminal-distrobox-icon.png
done
%files %files
%license COPYING.md %license COPYING.md
%doc %{_docdir}/%{name} %doc %{_docdir}/%{name}
@ -70,13 +80,14 @@ install -m 0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/distrobox/distrobox.conf
%{_mandir}/man1/%{name}.1.gz %{_mandir}/man1/%{name}.1.gz
%{_mandir}/man1/%{name}-*.1.gz %{_mandir}/man1/%{name}-*.1.gz
%if 0%{?suse_version} > 1500 %if 0%{?suse_version} > 1500
%{_distconfdir}/distrobox %dir %{_distconfdir}/distrobox
%else
%config %{_sysconfdir}/distrobox
%endif
%if 0%{?suse_version} > 1500
%{_distconfdir}/distrobox/distrobox.conf %{_distconfdir}/distrobox/distrobox.conf
%else %else
%config %{_sysconfdir}/distrobox
%config(noreplace) %{_sysconfdir}/distrobox/distrobox.conf %config(noreplace) %{_sysconfdir}/distrobox/distrobox.conf
%endif %endif
%dir %{_datadir}/icons/hicolor/
%dir %{_datadir}/icons/hicolor/*x*/
%dir %{_datadir}/icons/hicolor/*x*/apps/
%{_datadir}/icons/hicolor/*/apps/terminal-distrobox-icon.png
%changelog %changelog