Sync from SUSE:SLFO:Main dpkg revision da12532e0c3254f86cedaa861d1972e9
This commit is contained in:
commit
8faad226a8
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
4
_multibuild
Normal file
4
_multibuild
Normal file
@ -0,0 +1,4 @@
|
||||
<multibuild>
|
||||
<package>update-alternatives</package>
|
||||
</multibuild>
|
||||
|
2800
dpkg.changes
Normal file
2800
dpkg.changes
Normal file
File diff suppressed because it is too large
Load Diff
188
dpkg.spec
Normal file
188
dpkg.spec
Normal file
@ -0,0 +1,188 @@
|
||||
#
|
||||
# spec file for package dpkg
|
||||
#
|
||||
# Copyright (c) 2023 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
Name: dpkg
|
||||
Version: 1.22.0
|
||||
Release: 0
|
||||
Summary: Debian package management system
|
||||
License: GPL-2.0-or-later
|
||||
Group: System/Packages
|
||||
URL: https://tracker.debian.org/pkg/%{name}
|
||||
Source0: https://ftp.debian.org/debian/pool/main/d/dpkg/%{name}_%{version}.tar.xz
|
||||
Source3: sensible-editor
|
||||
# PATCH-FIX-OPENSUSE replace debian with opensuse. replace macros. update-alternatives temp directories' path and name from dpkg* to rpm*.
|
||||
Patch1: update-alternatives-suse.patch
|
||||
# PATCH-FIX-SUSE: tar of Leap 42.{2,3} does not recognize --sort=name, --clamp-mtime options
|
||||
Patch2: drop-tar-option.patch
|
||||
Patch3: ncurses-fix.patch
|
||||
Patch4: openssl.patch
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: automake
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: gpg2
|
||||
BuildRequires: libbz2-devel
|
||||
BuildRequires: libselinux-devel
|
||||
BuildRequires: libtool
|
||||
BuildRequires: ncurses-devel
|
||||
BuildRequires: openssl-devel
|
||||
BuildRequires: perl >= 5.28.1
|
||||
BuildRequires: po4a >= 0.59
|
||||
BuildRequires: update-alternatives
|
||||
BuildRequires: xz-devel
|
||||
BuildRequires: zlib-devel
|
||||
BuildRequires: perl(Date::Parse)
|
||||
BuildRequires: perl(IO::String)
|
||||
BuildRequires: perl(Test::Pod)
|
||||
BuildRequires: perl(Test::Strict)
|
||||
Requires: cpio
|
||||
Requires: make
|
||||
Requires: patch
|
||||
Requires: update-alternatives
|
||||
Requires: perl(Date::Parse)
|
||||
Requires(post): coreutils
|
||||
Recommends: perl(File::FcntlLock)
|
||||
Provides: deb = %{version}
|
||||
Obsoletes: deb < %{version}
|
||||
Provides: dpkg-dev = %{version}
|
||||
Provides: dpkg-doc = %{version}
|
||||
Provides: dselect = %{version}
|
||||
%{perl_requires}
|
||||
|
||||
%description
|
||||
This package contains tools for working with Debian packages. It makes
|
||||
it possible to create and extract Debian packages. If Alien is
|
||||
installed, the packages can be converted to RPMs.
|
||||
|
||||
This package contains the following Debian packages: dpkg, dselect,
|
||||
dpkg-doc, dpkg-dev.
|
||||
|
||||
%package devel
|
||||
Summary: Development files for dpkg
|
||||
Group: Development/Libraries/C and C++
|
||||
Requires: %{name} = %{version}
|
||||
Requires: libmd-devel
|
||||
Provides: deb-devel = %{version}
|
||||
Obsoletes: deb-devel < %{version}
|
||||
|
||||
%description devel
|
||||
Libraries and header files for dpkg.
|
||||
|
||||
%lang_package
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch1 -p1
|
||||
%if 0%{?suse_version} == 1315
|
||||
%patch2 -p1
|
||||
%endif
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
|
||||
%build
|
||||
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
|
||||
autoreconf -fvi
|
||||
export CFLAGS="%{?build_cflags:%build_cflags}%{?!build_cflags:%optflags}"
|
||||
%configure \
|
||||
--disable-silent-rules \
|
||||
--with-libselinux \
|
||||
--localstatedir=%{_localstatedir}/lib \
|
||||
--with-admindir=%{_localstatedir}/lib/dpkg \
|
||||
--docdir=%{_docdir}/%{name}
|
||||
|
||||
# configure somehow does not detect architecture correctly in OBS (bnc#469337), so
|
||||
# let's do an awful hack and fix it in config.h
|
||||
# XXX: who knows if this works on s390? :)
|
||||
|
||||
%define debarch %{_arch}
|
||||
%ifarch x86_64
|
||||
%define debarch amd64
|
||||
%endif
|
||||
%ifarch %{ix86}
|
||||
%define debarch i386
|
||||
%endif
|
||||
%ifarch ppc powerpc
|
||||
%define debarch powerpc
|
||||
%endif
|
||||
%ifarch ppc64 powerpc64
|
||||
%define debarch ppc64
|
||||
%endif
|
||||
sed -i 's/^#define ARCHITECTURE ""/#define ARCHITECTURE "%{debarch}"/' config.h
|
||||
|
||||
%make_build
|
||||
|
||||
%install
|
||||
%make_install
|
||||
|
||||
# remove update-alternatives stuff (included in separate package)
|
||||
rm -rf %{buildroot}%{_sysconfdir}/alternatives
|
||||
rm -rf %{buildroot}%{_localstatedir}/lib/dpkg/alternatives
|
||||
rm -rf %{buildroot}%{_bindir}/update-alternatives
|
||||
rm -rf %{buildroot}%{_sbindir}/update-alternatives
|
||||
rm -rf %{buildroot}%{_mandir}/man8/update-alternatives.8
|
||||
rm -rf %{buildroot}%{_mandir}/*/man8/update-alternatives.8
|
||||
rm -rf %{buildroot}%{_datadir}/polkit-1/actions/org.dpkg.pkexec.update-alternatives.policy
|
||||
|
||||
# locales
|
||||
%find_lang %{name}
|
||||
%find_lang dselect
|
||||
%find_lang dpkg-dev
|
||||
cat dselect.lang dpkg-dev.lang >> %{name}.lang
|
||||
|
||||
# extras
|
||||
install -m 755 %{SOURCE3} %{buildroot}%{_bindir}
|
||||
|
||||
%check
|
||||
%make_build check
|
||||
|
||||
%post
|
||||
cd %{_localstatedir}/lib/dpkg
|
||||
for f in diversions statoverride status ; do
|
||||
[ ! -f $f ] && touch $f
|
||||
done
|
||||
exit 0
|
||||
|
||||
%files lang -f %{name}.lang
|
||||
%{_mandir}/??/man*/*
|
||||
|
||||
%files
|
||||
%license COPYING
|
||||
%{_docdir}/%{name}
|
||||
%{_mandir}/man*/*
|
||||
%exclude %{_mandir}/man*/update-alternatives*
|
||||
%dir %{_sysconfdir}/dpkg
|
||||
%config(noreplace) %{_sysconfdir}/dpkg/*
|
||||
%{_bindir}/*
|
||||
%{_sbindir}/*
|
||||
%{_libexecdir}/dpkg
|
||||
%{_datadir}/dpkg
|
||||
%dir %{_datadir}/zsh
|
||||
%dir %{_datadir}/zsh/vendor-completions
|
||||
%{_datadir}/zsh/vendor-completions/_dpkg-parsechangelog
|
||||
%{_localstatedir}/lib/dpkg
|
||||
%{perl_vendorlib}/Dpkg
|
||||
%{perl_vendorlib}/Dpkg.pm
|
||||
%{perl_vendorlib}/Dselect
|
||||
|
||||
%files devel
|
||||
%{_datadir}/aclocal/*.m4
|
||||
%{_libdir}/libdpkg.a
|
||||
%{_libdir}/libdpkg.la
|
||||
%{_libdir}/pkgconfig/libdpkg.pc
|
||||
%{_includedir}/dpkg
|
||||
|
||||
%changelog
|
BIN
dpkg_1.22.0.tar.xz
(Stored with Git LFS)
Normal file
BIN
dpkg_1.22.0.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
27
drop-tar-option.patch
Normal file
27
drop-tar-option.patch
Normal file
@ -0,0 +1,27 @@
|
||||
From d0bcdce521f648c0a18bea795edfcb4f5ec77388 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Dan=20=C4=8Cerm=C3=A1k?= <dcermak@suse.com>
|
||||
Date: Mon, 3 Jan 2022 13:18:13 +0100
|
||||
Subject: [PATCH 1/4] drop tar option
|
||||
|
||||
---
|
||||
scripts/Dpkg/Source/Archive.pm | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/scripts/Dpkg/Source/Archive.pm b/scripts/Dpkg/Source/Archive.pm
|
||||
index 33c181b20..0cf545cb4 100644
|
||||
--- a/scripts/Dpkg/Source/Archive.pm
|
||||
+++ b/scripts/Dpkg/Source/Archive.pm
|
||||
@@ -51,8 +51,8 @@ sub create {
|
||||
my $mtime = $opts{source_date} // $ENV{SOURCE_DATE_EPOCH} || time;
|
||||
# Call tar creation process
|
||||
$spawn_opts{delete_env} = [ 'TAR_OPTIONS' ];
|
||||
- $spawn_opts{exec} = [ $Dpkg::PROGTAR, '-cf', '-', '--format=gnu', '--sort=name',
|
||||
- '--mtime', "\@$mtime", '--clamp-mtime', '--null',
|
||||
+ $spawn_opts{exec} = [ $Dpkg::PROGTAR, '-cf', '-', '--format=gnu',
|
||||
+ '--mtime', "\@$mtime", '--null',
|
||||
'--numeric-owner', '--owner=0', '--group=0',
|
||||
@{$opts{options}}, '-T', '-' ];
|
||||
*$self->{pid} = spawn(%spawn_opts);
|
||||
--
|
||||
2.33.1
|
||||
|
21
ncurses-fix.patch
Normal file
21
ncurses-fix.patch
Normal file
@ -0,0 +1,21 @@
|
||||
From 9b94694e59fa442b96ddf30a33782647cdda9b70 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Dan=20=C4=8Cerm=C3=A1k?= <dcermak@suse.com>
|
||||
Date: Mon, 3 Jan 2022 13:18:35 +0100
|
||||
Subject: [PATCH 2/4] ncurses fix
|
||||
|
||||
---
|
||||
dselect/keyoverride | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/dselect/keyoverride b/dselect/keyoverride
|
||||
index 35967ffec..91a8c0cec 100644
|
||||
--- a/dselect/keyoverride
|
||||
+++ b/dselect/keyoverride
|
||||
@@ -56,3 +56,4 @@ KEY_SRIGHT Shift Right
|
||||
KEY_SPREVIOUS Shift Previous
|
||||
KEY_MAX [elide]
|
||||
KEY_MIN [elide]
|
||||
+KEY_EVENT [elide]
|
||||
--
|
||||
2.33.1
|
||||
|
97
openssl.patch
Normal file
97
openssl.patch
Normal file
@ -0,0 +1,97 @@
|
||||
Index: dpkg-1.22.0/configure.ac
|
||||
===================================================================
|
||||
--- dpkg-1.22.0.orig/configure.ac
|
||||
+++ dpkg-1.22.0/configure.ac
|
||||
@@ -97,6 +97,13 @@ AC_SYS_LARGEFILE
|
||||
# Checks for libraries.
|
||||
DPKG_LIB_RT
|
||||
DPKG_LIB_MD
|
||||
+AS_IF([test "x$have_libmd" = "xno"], [
|
||||
+ DPKG_LIB_OPENSSL
|
||||
+ AS_IF([test "x$have_libcrypto" = "xno"], [
|
||||
+ AC_MSG_FAILURE([md5 digest functions not found in libmd or openssl])
|
||||
+ ])
|
||||
+])
|
||||
+
|
||||
DPKG_LIB_Z
|
||||
DPKG_LIB_BZ2
|
||||
DPKG_LIB_LZMA
|
||||
@@ -308,6 +315,7 @@ Configuration:
|
||||
libkvm . . . . . . . . . . . : ${have_libkvm:-no}
|
||||
libselinux . . . . . . . . . : $have_libselinux
|
||||
libmd . . . . . . . . . . . . : $have_libmd
|
||||
+ libcryto . . . . . . . . . . : $have_libcrypto
|
||||
libz . . . . . . . . . . . . : $have_libz_impl
|
||||
liblzma . . . . . . . . . . . : $have_liblzma
|
||||
libzstd . . . . . . . . . . . : $have_libzstd
|
||||
Index: dpkg-1.22.0/lib/dpkg/Makefile.am
|
||||
===================================================================
|
||||
--- dpkg-1.22.0.orig/lib/dpkg/Makefile.am
|
||||
+++ dpkg-1.22.0/lib/dpkg/Makefile.am
|
||||
@@ -50,7 +50,7 @@ EXTRA_libdpkg_la_DEPENDENCIES += \
|
||||
libdpkg.sym \
|
||||
# EOL
|
||||
endif
|
||||
-libdpkg_la_LDFLAGS += $(MD_LIBS)
|
||||
+libdpkg_la_LDFLAGS += $(MD_LIBS) $(OPENSSL_LIBS)
|
||||
libdpkg_la_LIBADD = \
|
||||
../compat/libcompat.la \
|
||||
# EOL
|
||||
Index: dpkg-1.22.0/lib/dpkg/buffer.c
|
||||
===================================================================
|
||||
--- dpkg-1.22.0.orig/lib/dpkg/buffer.c
|
||||
+++ dpkg-1.22.0/lib/dpkg/buffer.c
|
||||
@@ -23,10 +23,18 @@
|
||||
#include <config.h>
|
||||
#include <compat.h>
|
||||
|
||||
+#ifdef HAVE_MD5_H
|
||||
+#include <md5.h>
|
||||
+#elif HAVE_OPENSSL_MD5_H
|
||||
+#include <openssl/md5.h>
|
||||
+#define MD5Init MD5_Init
|
||||
+#define MD5Update MD5_Update
|
||||
+#define MD5Final MD5_Final
|
||||
+#endif
|
||||
+
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <errno.h>
|
||||
-#include <md5.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
Index: dpkg-1.22.0/m4/dpkg-libs.m4
|
||||
===================================================================
|
||||
--- dpkg-1.22.0.orig/m4/dpkg-libs.m4
|
||||
+++ dpkg-1.22.0/m4/dpkg-libs.m4
|
||||
@@ -20,11 +20,26 @@ AC_DEFUN([DPKG_LIB_MD], [
|
||||
MD_LIBS="$ac_cv_search_MD5Init"
|
||||
])
|
||||
])
|
||||
- AS_IF([test "x$have_libmd" = "xno"], [
|
||||
- AC_MSG_FAILURE([md5 digest functions not found])
|
||||
- ])
|
||||
])# DPKG_LIB_MD
|
||||
|
||||
+# DPKG_LIB_OPENSSL
|
||||
+# -----------
|
||||
+# Check for the digests support in openssl library.
|
||||
+AC_DEFUN([DPKG_LIB_OPENSSL], [
|
||||
+ AC_ARG_VAR([OPENSSL_LIBS], [linker flags for openssl library])
|
||||
+ have_libcryto="no"
|
||||
+ AC_CHECK_HEADERS([openssl/md5.h], [
|
||||
+ dpkg_save_libcrypto_LIBS=$LIBS
|
||||
+ AC_SEARCH_LIBS([MD5_Init], [crypto])
|
||||
+ LIBS=$dpkg_save_libcrypto_LIBS
|
||||
+ AS_IF([test "x$ac_cv_search_MD5_Init" != "xno"], [
|
||||
+ have_libcrypto="yes"
|
||||
+ OPENSSL_LIBS="$ac_cv_search_MD5_Init"
|
||||
+ ])
|
||||
+ ])
|
||||
+])# DPKG_LIB_OPENSSL
|
||||
+
|
||||
+
|
||||
# DPKG_WITH_COMPRESS_LIB(NAME, HEADER, FUNC)
|
||||
# -------------------------------------------------
|
||||
# Check for availability of a compression library.
|
32
sensible-editor
Normal file
32
sensible-editor
Normal file
@ -0,0 +1,32 @@
|
||||
#!/bin/sh
|
||||
|
||||
ret="$?"
|
||||
|
||||
if [ -n "$VISUAL" ]; then
|
||||
${VISUAL} "$@"
|
||||
ret="$?"
|
||||
if [ "$ret" -ne 126 ] && [ "$ret" -ne 127 ]; then
|
||||
exit "$ret"
|
||||
fi
|
||||
fi
|
||||
|
||||
${EDITOR:-editor} "$@"
|
||||
ret="$?"
|
||||
if [ "$ret" -eq 126 ] || [ "$ret" -eq 127 ]; then
|
||||
nano "$@"
|
||||
ret="$?"
|
||||
if [ "$ret" -eq 126 ] || [ "$ret" -eq 127 ]; then
|
||||
nano-tiny "$@"
|
||||
ret="$?"
|
||||
if [ "$ret" -eq 126 ] || [ "$ret" -eq 127 ]; then
|
||||
vi "$@"
|
||||
ret="$?"
|
||||
if [ "$ret" -eq 126 ] || [ "$ret" -eq 127 ]; then
|
||||
echo "Couldn't find an editor!" 1>&2
|
||||
echo "Set the \$EDITOR environment variable to your desired editor." 1>&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
exit "$ret"
|
28
update-alternatives-slavetomaster.patch
Normal file
28
update-alternatives-slavetomaster.patch
Normal file
@ -0,0 +1,28 @@
|
||||
From 472d6aad992b2d459c31449ff7d36e20a76e4adf Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Dan=20=C4=8Cerm=C3=A1k?= <dcermak@suse.com>
|
||||
Date: Mon, 3 Jan 2022 13:19:13 +0100
|
||||
Subject: [PATCH 4/4] update-alternatives-slavetomaster
|
||||
|
||||
---
|
||||
utils/update-alternatives.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/utils/update-alternatives.c b/utils/update-alternatives.c
|
||||
index eee59d590..41fdce430 100644
|
||||
--- a/utils/update-alternatives.c
|
||||
+++ b/utils/update-alternatives.c
|
||||
@@ -2035,7 +2035,10 @@ alternative_prepare_install(struct alternative *a, const char *choice)
|
||||
/* Drop unused slave. */
|
||||
fn = xasprintf("%s/%s", altdir, sl->name);
|
||||
if (alternative_path_can_remove(sl->link))
|
||||
- alternative_add_commit_op(a, OPCODE_RM, sl->link, NULL);
|
||||
+ if (strcmp(sl->link, a->master_link))
|
||||
+ alternative_add_commit_op(a, OPCODE_RM, sl->link, NULL);
|
||||
+ else
|
||||
+ warning("not removing %s, now master", a->master_link);
|
||||
else
|
||||
warning(_("not removing %s since it's not a symlink"),
|
||||
sl->link);
|
||||
--
|
||||
2.33.1
|
||||
|
101
update-alternatives-suse.patch
Normal file
101
update-alternatives-suse.patch
Normal file
@ -0,0 +1,101 @@
|
||||
From 8cad1e2d4d20f76383a424aa85ebd3bc3a51487a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Dan=20=C4=8Cerm=C3=A1k?= <dcermak@suse.com>
|
||||
Date: Mon, 3 Jan 2022 13:19:00 +0100
|
||||
Subject: [PATCH 3/4] update-alternatives-suse
|
||||
|
||||
---
|
||||
man/update-alternatives.pod | 8 ++++----
|
||||
utils/Makefile.am | 10 +++++-----
|
||||
utils/t/update_alternatives.t | 4 ++--
|
||||
utils/update-alternatives.c | 2 +-
|
||||
4 files changed, 12 insertions(+), 12 deletions(-)
|
||||
|
||||
Index: dpkg-1.21.8/man/update-alternatives.pod
|
||||
===================================================================
|
||||
--- dpkg-1.21.8.orig/man/update-alternatives.pod
|
||||
+++ dpkg-1.21.8/man/update-alternatives.pod
|
||||
@@ -37,7 +37,7 @@ B<update-alternatives>
|
||||
|
||||
B<update-alternatives>
|
||||
creates, removes, maintains and displays information about the symbolic
|
||||
-links comprising the Debian alternatives system.
|
||||
+links comprising the SUSE alternatives system.
|
||||
|
||||
It is possible for several programs fulfilling the same or similar
|
||||
functions to be installed on a single system at the same time.
|
||||
@@ -47,7 +47,7 @@ different editor, if desired, but makes
|
||||
to make a good choice for an editor to invoke if the
|
||||
user has not specified a particular preference.
|
||||
|
||||
-Debian's alternatives system aims to solve this problem.
|
||||
+SUSE's alternatives system aims to solve this problem.
|
||||
A generic name in the filesystem is
|
||||
shared by all files providing interchangeable functionality.
|
||||
The alternatives system and the system administrator
|
||||
@@ -85,8 +85,8 @@ installed, changed or removed,
|
||||
B<update-alternatives>
|
||||
is called to update information about that file in the alternatives system.
|
||||
B<update-alternatives>
|
||||
-is usually called from the following Debian package maintainer scripts,
|
||||
-B<postinst>
|
||||
+is usually called from the following SUSE package maintainer scripts,
|
||||
+B<post>
|
||||
(configure) to install the alternative and from
|
||||
B<prerm> and B<postrm>
|
||||
(remove) to remove the alternative.
|
||||
Index: dpkg-1.21.8/utils/Makefile.am
|
||||
===================================================================
|
||||
--- dpkg-1.21.8.orig/utils/Makefile.am
|
||||
+++ dpkg-1.21.8/utils/Makefile.am
|
||||
@@ -47,8 +47,8 @@ update_alternatives_SOURCES = \
|
||||
|
||||
update_alternatives_CPPFLAGS = \
|
||||
-DALT_TMP_EXT=\".dpkg-tmp\" \
|
||||
- -DADMINDIR_ENVVAR=\"DPKG_ADMINDIR\" \
|
||||
- -DINSTDIR_ENVVAR=\"DPKG_ROOT\" \
|
||||
+ -DADMINDIR_ENVVAR=\"RPM_ADMINDIR\" \
|
||||
+ -DINSTDIR_ENVVAR=\"RPM_ROOT\" \
|
||||
$(AM_CPPFLAGS) \
|
||||
# EOL
|
||||
|
||||
@@ -85,9 +85,9 @@ uninstall-local:
|
||||
rm -f $(DESTDIR)$(sysconfdir)/alternatives/README
|
||||
|
||||
TEST_ENV_VARS = \
|
||||
- DPKG_DATADIR=$(top_srcdir)/data \
|
||||
- UA_ROOTDIR_ENVVAR=DPKG_ROOT \
|
||||
- UA_ADMINDIR_ENVVAR=DPKG_ADMINDIR \
|
||||
+ RPM_DATADIR=$(top_srcdir)/data \
|
||||
+ UA_ROOTDIR_ENVVAR=RPM_ROOT \
|
||||
+ UA_ADMINDIR_ENVVAR=RPM_ADMINDIR \
|
||||
UA_ADMINDIR_DEFAULT=$(admindir) \
|
||||
# EOL
|
||||
|
||||
Index: dpkg-1.21.8/utils/t/update_alternatives.t
|
||||
===================================================================
|
||||
--- dpkg-1.21.8.orig/utils/t/update_alternatives.t
|
||||
+++ dpkg-1.21.8/utils/t/update_alternatives.t
|
||||
@@ -32,8 +32,8 @@ my $bindir = File::Spec->rel2abs("$tmpdi
|
||||
my @ua = ("$ENV{builddir}/update-alternatives", '--log', '/dev/null',
|
||||
'--quiet', '--admindir', "$admindir", '--altdir', "$altdir");
|
||||
|
||||
-my $rootdir_envvar = $ENV{UA_ROOTDIR_ENVVAR} // 'DPKG_ROOT';
|
||||
-my $admindir_envvar = $ENV{UA_ADMINDIR_ENVVAR} // 'DPKG_ADMINDIR';
|
||||
+my $rootdir_envvar = $ENV{UA_ROOTDIR_ENVVAR} // 'RPM_ROOT';
|
||||
+my $admindir_envvar = $ENV{UA_ADMINDIR_ENVVAR} // 'RPM_ADMINDIR';
|
||||
|
||||
delete $ENV{$rootdir_envvar};
|
||||
delete $ENV{$admindir_envvar};
|
||||
Index: dpkg-1.21.8/utils/update-alternatives.c
|
||||
===================================================================
|
||||
--- dpkg-1.21.8.orig/utils/update-alternatives.c
|
||||
+++ dpkg-1.21.8/utils/update-alternatives.c
|
||||
@@ -116,7 +116,7 @@ static int opt_force = 0;
|
||||
static void
|
||||
version(void)
|
||||
{
|
||||
- printf(_("Debian %s version %s.\n"), PROGNAME, VERSION);
|
||||
+ printf(_("SUSE %s version %s.\n"), PROGNAME, VERSION);
|
||||
printf("\n");
|
||||
|
||||
printf(_(
|
2023
update-alternatives.changes
Normal file
2023
update-alternatives.changes
Normal file
File diff suppressed because it is too large
Load Diff
103
update-alternatives.spec
Normal file
103
update-alternatives.spec
Normal file
@ -0,0 +1,103 @@
|
||||
#
|
||||
# spec file for package update-alternatives
|
||||
#
|
||||
# Copyright (c) 2023 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
Name: update-alternatives
|
||||
Version: 1.22.0
|
||||
Release: 0
|
||||
Summary: Maintain symbolic links determining default commands
|
||||
License: GPL-2.0-or-later
|
||||
Group: System/Management
|
||||
URL: https://tracker.debian.org/pkg/dpkg/
|
||||
Source0: https://ftp.debian.org/debian/pool/main/d/dpkg/dpkg_%{version}.tar.xz
|
||||
Source3: sensible-editor
|
||||
Patch0: update-alternatives-suse.patch
|
||||
Patch1: update-alternatives-slavetomaster.patch
|
||||
Patch2: openssl.patch
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: automake
|
||||
BuildRequires: libtool
|
||||
BuildRequires: ncurses-devel
|
||||
BuildRequires: openssl-devel
|
||||
BuildRequires: perl >= 5.28.1
|
||||
BuildRequires: pkgconfig
|
||||
Provides: alternatives = %{version}
|
||||
|
||||
%description
|
||||
update-alternatives creates, removes, maintains and displays
|
||||
information about the symbolic links comprising the alternatives
|
||||
system. It is possible for several programs fulfilling the same or
|
||||
similar functions to be installed on a single system at the same time.
|
||||
For example, many systems have several text editors installed at once.
|
||||
This gives choice to the users of a system, allowing each to use a
|
||||
different editor, if desired, but makes it difficult for a program to
|
||||
make a good choice of editor to invoke if the user has not specified a
|
||||
particular preference.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n dpkg-%{version}
|
||||
|
||||
%build
|
||||
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
|
||||
autoreconf -fvi
|
||||
%configure \
|
||||
--disable-silent-rules \
|
||||
--with-admindir=%{_localstatedir}/lib
|
||||
|
||||
make -C lib/compat %{?_smp_mflags}
|
||||
make -C utils/ %{?_smp_mflags}
|
||||
make -C man/ %{?_smp_mflags}
|
||||
|
||||
%install
|
||||
install -d -m 0755 %{buildroot}/%{_sbindir}/
|
||||
install -d -m 0755 %{buildroot}/%{_mandir}/man1/
|
||||
install -d -m 0755 %{buildroot}/%{_sysconfdir}/alternatives
|
||||
install -d -m 0755 %{buildroot}%{_localstatedir}/lib/alternatives
|
||||
install -d -m 0755 %{buildroot}/%{_localstatedir}/log
|
||||
|
||||
install -pm 0755 utils/%{name} %{buildroot}/%{_sbindir}
|
||||
ln -s %{name} %{buildroot}/%{_sbindir}/alternatives
|
||||
install -pm 0644 man/%{name}.1 %{buildroot}/%{_mandir}/man1/
|
||||
|
||||
%post -p <lua>
|
||||
-- Migrate to new location
|
||||
if posix.access('var/lib/rpm/alternatives', 'x') then
|
||||
print("migrating update alternatives database to new location")
|
||||
-- We proceed even if no alternatives directory exists, such situation
|
||||
-- occurs in buildroot environment
|
||||
new_location='%{_localstatedir}/lib/alternatives/'
|
||||
for i,old_file in pairs(posix.dir("var/lib/rpm/alternatives/")) do
|
||||
print(old_file.."\n")
|
||||
new_file = string.gsub(old_file, "(.*/)(.*)", new_location .. "%2")
|
||||
print(new_file.."\n")
|
||||
os.rename(old_file, new_file)
|
||||
end
|
||||
posix.rmdir('var/lib/rpm/alternatives')
|
||||
end
|
||||
-- touch file
|
||||
io.open('%{_localstatedir}/log/alternatives.log', "w"):close()
|
||||
|
||||
%files
|
||||
%license COPYING
|
||||
%dir %{_sysconfdir}/alternatives
|
||||
%dir %{_localstatedir}/lib/alternatives
|
||||
%{_sbindir}/alternatives
|
||||
%{_sbindir}/update-alternatives
|
||||
%{_mandir}/man1/update-alternatives.1%{ext_man}
|
||||
%ghost %{_localstatedir}/log/alternatives.log
|
||||
|
||||
%changelog
|
Loading…
Reference in New Issue
Block a user