Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
eepm
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
etersoft
eepm
Commits
709e8e54
Commit
709e8e54
authored
Apr 23, 2016
by
Vitaly Lipatov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
release-upgrade: rewrite to support p8 -> Sisyphus and vice versa
parent
53c77965
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
92 additions
and
45 deletions
+92
-45
epm-release_upgrade
bin/epm-release_upgrade
+89
-44
epm-repofix
bin/epm-repofix
+3
-1
No files found.
bin/epm-release_upgrade
View file @
709e8e54
...
@@ -28,18 +28,23 @@ __replace_text_in_alt_repo()
...
@@ -28,18 +28,23 @@ __replace_text_in_alt_repo()
done
done
}
}
__wcount
()
{
echo
"
$*
"
|
wc
-w
}
__detect_alt_release_by_repo
()
__detect_alt_release_by_repo
()
{
{
local
BRD
=
$(
cat
/etc/apt/sources.list /etc/apt/sources.list.d/
*
.list |
\
local
BRD
=
$(
cat
/etc/apt/sources.list /etc/apt/sources.list.d/
*
.list |
\
grep
-v
"^#"
|
grep
"p[5-9]/branch"
|
sed
-e
"s|.*
\(
p[5-9]
\)
/branch.*|
\1
|g"
|
sort
-u
)
grep
-v
"^#"
|
grep
"p[5-9]/branch
/
"
|
sed
-e
"s|.*
\(
p[5-9]
\)
/branch.*|
\1
|g"
|
sort
-u
)
if
[
$(
estrlist
count
$BRD
)
=
"1"
]
;
then
if
[
$(
__w
count
$BRD
)
=
"1"
]
;
then
echo
"
$BRD
"
echo
"
$BRD
"
return
return
fi
fi
local
BRD
=
$(
cat
/etc/apt/sources.list /etc/apt/sources.list.d/
*
.list |
\
local
BRD
=
$(
cat
/etc/apt/sources.list /etc/apt/sources.list.d/
*
.list |
\
grep
-v
"^#"
|
grep
"Sisyphus"
|
sed
-e
"s|.*
\(
Sisyphus
\)
.*|
\1
|g"
|
sort
-u
)
grep
-v
"^#"
|
grep
"Sisyphus
/
"
|
sed
-e
"s|.*
\(
Sisyphus
\)
.*|
\1
|g"
|
sort
-u
)
if
[
$(
estrlist
count
$BRD
)
=
"1"
]
;
then
if
[
$(
__w
count
$BRD
)
=
"1"
]
;
then
echo
"
$BRD
"
echo
"
$BRD
"
return
return
fi
fi
...
@@ -51,24 +56,28 @@ __replace_alt_version_in_repo()
...
@@ -51,24 +56,28 @@ __replace_alt_version_in_repo()
{
{
local
i
local
i
assure_exists apt-repo
assure_exists apt-repo
echo
"Upgrading
$DISTRNAME
from
$1
to
$2
..."
#
echo "Upgrading $DISTRNAME from $1 to $2 ..."
docmd apt-repo list |
sed
-e
"s|
\(
$1
/branch
\)
|{
\1
}->{
$2
/branch}|g"
| egrep
--color
--
"
$1
/branch
"
docmd apt-repo list |
sed
-e
"s|
\(
$1
\)
|{
\1
}->{
$2
}|g"
| egrep
--color
--
"
$1
"
confirm
"Are these correct changes?"
||
fatal
"Exiting"
confirm
"Are these correct changes?"
||
fatal
"Exiting"
__replace_text_in_alt_repo
"/^ *#/! s!
$1
/branch!
$2
/branch
!g"
__replace_text_in_alt_repo
"/^ *#/! s!
$1
!
$2
!g"
docmd apt-repo list
docmd apt-repo list
}
}
__
update_alt_repo_to_next_distro
()
__
alt_repofix
()
{
{
case
"
$DISTRVERSION
"
in
load_helper epm-repofix
p6
)
pkg_filenames
=
epm_repofix
docmd epm
install
apt-conf-branch altlinux-release-p6
||
fatal
__replace_text_in_alt_repo
"/^ *#/! s!
\[
p[6-9]
\]
![updates]!g"
load_helper epm-repofix
}
pkg_filenames
=
epm_repofix
__replace_alt_version_in_repo p6 p7
__update_to_the_distro
()
__replace_text_in_alt_repo
"/^ *#/! s!
\[
p6
\]
![updates]!g"
{
__alt_repofix
case
"
$1
"
in
p7
)
docmd epm update
||
fatal
docmd epm update
||
fatal
docmd epm
install
apt rpm apt-conf-branch
||
fatal
"Check an error and run epm release-upgrade again"
docmd epm
install
apt rpm apt-conf-branch altlinux-release-p7
||
fatal
"Check an error and run epm release-upgrade again"
__alt_repofix
__replace_text_in_alt_repo
"/^ *#/! s!
\[
updates
\]
![p7]!g"
__replace_text_in_alt_repo
"/^ *#/! s!
\[
updates
\]
![p7]!g"
docmd epm update
||
fatal
docmd epm update
||
fatal
docmd epm upgrade
||
fatal
"Check an error and run epm release-upgrade again"
docmd epm upgrade
||
fatal
"Check an error and run epm release-upgrade again"
...
@@ -76,18 +85,14 @@ __update_alt_repo_to_next_distro()
...
@@ -76,18 +85,14 @@ __update_alt_repo_to_next_distro()
info
"Done."
info
"Done."
info
"Run epm release-upgrade again for update to p8"
info
"Run epm release-upgrade again for update to p8"
;;
;;
p7
)
p8
)
docmd epm
install
apt-conf-branch altlinux-release-p7
||
fatal
load_helper epm-repofix
pkg_filenames
=
epm_repofix
__replace_alt_version_in_repo p7 p8
__replace_text_in_alt_repo
"/^ *#/! s!
\[
p7
\]
![updates]!g"
docmd epm update
||
fatal
docmd epm update
||
fatal
if
!
docmd epm
install
apt rpm apt-conf-branch
;
then
if
!
docmd epm
install
apt rpm apt-conf-branch
altlinux-release-p8
;
then
# error: execution of %post scriptlet from glibc-core-2.23-alt1.eter1
# error: execution of %post scriptlet from glibc-core-2.23-alt1.eter1
docmd epm erase glibc-core-2.17
||
fatal
"Check an error and run epm release-upgrade again"
docmd epm erase glibc-core-2.17
||
fatal
"Check an error and run epm release-upgrade again"
docmd epm
install
apt rpm apt-conf-branch
||
fatal
"Check an error and run epm release-upgrade again"
docmd epm
install
apt rpm apt-conf-branch
altlinux-release-p8
||
fatal
"Check an error and run epm release-upgrade again"
fi
fi
__alt_repofix
__replace_text_in_alt_repo
"/^ *#/! s!
\[
updates
\]
![p8]!g"
__replace_text_in_alt_repo
"/^ *#/! s!
\[
updates
\]
![p8]!g"
docmd epm update
||
fatal
docmd epm update
||
fatal
if
is_installed systemd
&&
is_active_systemd systemd
;
then
if
is_installed systemd
&&
is_active_systemd systemd
;
then
...
@@ -98,8 +103,53 @@ __update_alt_repo_to_next_distro()
...
@@ -98,8 +103,53 @@ __update_alt_repo_to_next_distro()
docmd epm update-kernel
||
fatal
docmd epm update-kernel
||
fatal
info
"Done."
info
"Done."
;;
;;
Sisyphus
)
docmd epm update
||
fatal
docmd epm
install
apt rpm apt-conf-sisyphus altlinux-release-sisyphus
||
fatal
"Check an error and run again"
#__replace_text_in_alt_repo "/^ *#/! s!\[updates\]![alt]!g"
__alt_repofix
docmd epm update
||
fatal
docmd epm upgrade
||
fatal
"Check an error and run epm release-upgrade again"
docmd epm update-kernel
||
fatal
info
"Done."
;;
*
)
esac
}
__update_alt_to_next_distro
()
{
local
FROMTO
=
$(
echo
"
$*
"
|
sed
-e
"s| | to |"
)
info
case
"
$*
"
in
"p6"
|
"p6 p7"
)
info
"Upgrade
$DISTRNAME
from p6 to p7 ..."
docmd epm
install
apt-conf-branch
||
fatal
__replace_alt_version_in_repo p6/branch/ p7/branch/
__update_to_the_distro p7
;;
"p7"
|
"p7 p8"
)
info
"Upgrade
$DISTRNAME
from p7 to p8 ..."
docmd epm
install
apt-conf-branch altlinux-release-p7
||
fatal
__replace_alt_version_in_repo p7/branch/ p8/branch/
__update_to_the_distro p8
;;
"Sisyphus p8"
)
info
"Downgrade
$DISTRNAME
from Sisyphus to p8 ..."
docmd epm
install
apt-conf-branch
||
fatal
__replace_alt_version_in_repo Sisyphus/ p8/branch/
__update_to_the_distro p8
;;
"p8 Sisyphus"
)
info
"Upgrade
$DISTRNAME
from p8 to Sisyphus ..."
docmd epm
install
apt-conf-branch
||
fatal
docmd epm upgrade
||
fatal
__alt_repofix
__replace_alt_version_in_repo p8/branch/ Sisyphus/
__update_to_the_distro Sisyphus
;;
*
)
*
)
info
"Have no idea how to update from
$DISTRNAME
$DISTRVERSION
."
warning
"Have no idea how to update from
$DISTRNAME
$DISTRVERSION
."
info
"Try run f.i. # epm release-upgrade p8"
info
"Try run f.i. # epm release-upgrade p8"
return
1
return
1
esac
esac
...
@@ -113,27 +163,22 @@ epm_release_upgrade()
...
@@ -113,27 +163,22 @@ epm_release_upgrade()
case
$DISTRNAME
in
case
$DISTRNAME
in
ALTLinux
)
ALTLinux
)
__alt_repofix
docmd epm update
docmd epm update
docmd epm
install
apt rpm
docmd epm
install
apt rpm
case
"
$pkg_filenames
"
in
"p7"
)
# try to detect current release by repo
DISTRVERSION
=
p6 __update_alt_repo_to_next_distro
if
[
"
$DISTRVERSION
"
=
"Sisyphus"
]
||
[
-z
"
$DISTRVERSION
"
]
;
then
;;
DISTRVERSION
=
"
$(
__detect_alt_release_by_repo
)
"
"p8"
)
[
"
$DISTRVERSION
"
!=
"Sisyphus"
]
&&
info
"Detected running
$DISTRNAME
$DISTRVERSION
(according to using repos)"
DISTRVERSION
=
p7 __update_alt_repo_to_next_distro
fi
;;
"Sisyphus"
)
# check forced target
fatal
"Does not realized yet"
if
[
-n
"
$pkg_filenames
"
]
;
then
;;
[
"
$(
__wcount
$pkg_filenames
)
"
=
"1"
]
||
fatal
"Too many args:
$pkg_filenames
"
*
)
fi
if
[
"
$DISTRVERSION
"
=
"Sisyphus"
]
||
[
-z
"
$DISTRVERSION
"
]
;
then
# try to detect current release by repo
__update_alt_to_next_distro
$DISTRVERSION
$pkg_filenames
DISTRVERSION
=
$(
__detect_alt_release_by_repo
)
__update_alt_repo_to_next_distro
else
__update_alt_repo_to_next_distro
fi
;;
esac
return
return
;;
;;
*
)
*
)
...
...
bin/epm-repofix
View file @
709e8e54
...
@@ -29,8 +29,10 @@ __fix_apt_sources_list()
...
@@ -29,8 +29,10 @@ __fix_apt_sources_list()
# TODO: only for uncommented strings
# TODO: only for uncommented strings
#sed -i -r -e "$SUBST_ALT_RULE" $i
#sed -i -r -e "$SUBST_ALT_RULE" $i
regexp_subst
"/^ *#/!
$SUBST_ALT_RULE
"
$i
regexp_subst
"/^ *#/!
$SUBST_ALT_RULE
"
$i
# add signs
local
br
local
br
for
br
in
p6 p7 p8
;
do
for
br
in
$DISTRVERSION
;
do
# sed -r -e "/ALTLinux\/p8\/branch/s/rpm *([fhr])/rpm [p8] \1/"
# sed -r -e "/ALTLinux\/p8\/branch/s/rpm *([fhr])/rpm [p8] \1/"
regexp_subst
"/ALTLinux
\/
$br
\/
branch/s/^rpm *([fhr])/rpm [
$br
]
\1
/"
$i
regexp_subst
"/ALTLinux
\/
$br
\/
branch/s/^rpm *([fhr])/rpm [
$br
]
\1
/"
$i
regexp_subst
"/Etersoft
\/
$br
\/
branch/s/^rpm *([fhr])/rpm [etersoft]
\1
/"
$i
regexp_subst
"/Etersoft
\/
$br
\/
branch/s/^rpm *([fhr])/rpm [etersoft]
\1
/"
$i
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment