Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
etersoft-build-utils
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
korinf
etersoft-build-utils
Commits
60d8d226
Commit
60d8d226
authored
Aug 23, 2015
by
Vitaly Lipatov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
rpmgs: full rewrite
parent
336ea428
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
42 additions
and
128 deletions
+42
-128
rpmgs
bin/rpmgs
+41
-127
web
share/eterbuild/functions/web
+1
-1
No files found.
bin/rpmgs
View file @
60d8d226
#!/bin/bash
# 2005-2006, 2009, 2014 (c) Etersoft www.etersoft.ru
# Author: Vitaly Lipatov <lav@etersoft.ru>
# 2005-2006, 2009, 2014
, 2015
(c) Etersoft www.etersoft.ru
#
2005-2015
Author: Vitaly Lipatov <lav@etersoft.ru>
# Public domain
#
# GS - get source
...
...
@@ -34,7 +34,7 @@ phelp()
echo
echog
"Options:"
echog
" -a get all source (not only Source|Source0)"
echog
" -f force download (remove source before download)"
echog
" -f force download (remove source
file
before download)"
}
while
getopts
:haf opt
;
do
...
...
@@ -54,87 +54,35 @@ LISTRPMARGS=$@
}
# FIXME: use erc, don't work with korinf-sisyphus!
# WEXT
# supports only .tar.bz2 or .tar files in SOURCE
get_archive
()
{
assert_var GETSOURCE
# FIXME: drop any ext
URL
=
${
GETSOURCE
/.bz2/
}
URL
=
${
URL
/.tar/
}
WEXT
=
`
basename
"
$URL
"
`
[
-n
"
$FORCEDOWNLOAD
"
]
&&
docmd
rm
-f
"
$WEXT
.
$1
"
#test -f "$WEXT.$1" && echog "$WEXT.$1 already exists" && return
if
!
download_url
"
$URL
.
$1
"
;
then
rm
-f
"
$WEXT
.
$1
"
return
1
fi
if
[
"
$WEXT
.
$1
"
=
"
$(
basename
"
$GETSOURCE
"
)
"
]
;
then
# Skip repacking if the target has the same name
return
0
fi
erc
-f
repack
"
$WEXT
.
$1
"
"
$(
basename
"
$GETSOURCE
"
)
"
}
# supports only bz2
get_archive1
()
{
URL
=
${
GETSOURCE
/.bz2/
}
WEXT
=
`
basename
"
$URL
"
`
[
-n
"
$FORCEDOWNLOAD
"
]
&&
docmd
rm
-f
"
$WEXT
.
$1
"
#test -f "$WEXT.$1" && echog "$WEXT.$1 already exists" && return
download_url
"
$URL
.
$1
"
||
return
test
-f
"
$WEXT
.
$1
"
||
return
echog
-n
"Converting to
$WEXT
.bz2..."
}
get_bz2
()
{
get_archive1 bz2
||
return
bunzip
-t
$WEXT
.bz2
&&
return
rm
-fv
$WEXT
.bz2
return
1
}
function
get_gz
()
{
get_archive1 gz
||
return
gunzip
-f
$WEXT
.gz
&&
return
rm
-fv
$WEXT
.gz
return
1
}
function
get_raw
()
{
download_url
"
$GETSOURCE
"
WEXT
=
`
basename
$GETSOURCE
`
test
-f
"
$WEXT
"
}
function
dir_name
()
function
get_source
()
{
rm
.listing
#wget `dirname $MAINSOURCE` --dont-remove-listing
GETSOURCE
=
$(
eval_spec
$1
| get_var
"
$2
"
)
}
function
get_source
()
repack_tarball
()
{
GETSOURCE
=
$(
eval_spec
$1
| get_var
"
$2
"
)
[
"
$(
realpath
"
$1
"
)
"
=
"
$(
realpath
"
$2
"
)
"
]
&&
return
docmd erc
-f
repack
"
$1
"
"
$2
"
}
# download GETSOURCE url to tar.bz2 or tar (set WEXT as without extension name)
download_any_tarball
()
{
local
GETSOURCE
=
"
$1
"
local
TARGET
=
"
$2
"
local
ext
for
ext
in
tar.xz tar.bz2 tar.gz zip tgz 7z tbz2 tbz rar
tar
;
do
get_archive
$ext
&&
return
#FIXME:
#test -f "$WEXT.$ext" && fatal "$EXT.$ext is exists after fail download!"
local
FORMATS
=
"tar.xz tar.bz2 tar.gz zip tgz 7z tbz2 tbz rar tar"
local
BASESOURCE
=
"
$GETSOURCE
"
# drop any ext
for
ext
in
$FORMATS
;
do
BASESOURCE
=
$(
echo
"
$BASESOURCE
"
|
sed
-e
"s|
\.
$ext$|
|g"
)
done
# try download with some ext
for
ext
in
$FORMATS
;
do
[
-n
"
$FORCEDOWNLOAD
"
]
&&
docmd
rm
-f
"
$BASESOURCE
.
$ext
"
download_url
"
$BASESOURCE
.
$ext
"
||
continue
repack_tarball
"
$(
basename
"
$BASESOURCE
.
$ext
"
)
"
"
$TARGET
"
||
continue
return
done
dir_name
fatal
"Cannot retrieve
$GETSOURCE
"
}
...
...
@@ -185,16 +133,11 @@ function get_source_url()
GETSOURCEURL
=
$(
source_ext
"
$1
"
url
"
$2
"
)
}
has_ext
()
{
!
test
-n
"
${
1
/*
$2
/
}
"
}
function
print_error
()
{
echog
"Can't find any spec file. It is possible you run this script not in git dir."
echog
"If you use old style build, run rpmgs with spec name as arg."
echog
"If you wish
to
download src.rpm, use rpmgp script."
echog
"If you wish download src.rpm, use rpmgp script."
exit
1
}
...
...
@@ -279,63 +222,34 @@ do
# TODO: dropout these pushd/popd
# use pushd/popd due several cd / cd -
mkdir
-p
$RPMSOURCEDIR
/
&&
pushd
$RPMSOURCEDIR
/
||
fatal
"Can't create/chdir..."
mkdir
-p
$RPMSOURCEDIR
/
&&
pushd
$RPMSOURCEDIR
/
>
/dev/null
||
fatal
"Can't create/chdir..."
# Test for eterbuild extensions
# Test for eterbuild extensions
(will set GETSOURCEURL or GETSOURCESVN)
get_source_url
$spec
$nn
||
get_source_svn
$spec
$nn
if
!
rhas
"
$GETSOURCE
"
".tar$"
;
then
warning
"It is recommended to use .tar tarballs for sources (
$FTB
now)"
fi
if
[
-n
"
${
GETSOURCESVN
}
"
]
;
then
is_gear
$SPECDIR
||
fatal
"Source-svn works only with gear repo"
elif
is_gear
$SPECDIR
;
then
echog
"Try to load
${
GETSOURCEURL
:-
$GETSOURCE
}
for
$spec
"
if
!
has_ext
"
$GETSOURCE
"
.tar
;
then
warning
"It is recommended to use .tar tarballs for sources in gear"
fi
# TODO: GETSOURCEGIT
# TODO: rewrite code to use original file format and temp. download dir
if
[
-n
"
${
GETSOURCEURL
}
"
]
;
then
# UpUrl for gear
download_url
"
$GETSOURCEURL
"
el
if
[
-n
"
${
GETSOURCEURL
}
"
]
;
then
echog
"Try to load
${
GETSOURCEURL
}
for
$spec
"
download_url
"
$GETSOURCEURL
"
||
fatal
"Can't download
$GETSOURCEURL
"
# FIXME: gear-update can use any tarball
erc
-f
repack
$(
basename
"
$GETSOURCEURL
"
)
$FTB
elif
has_ext
"
$GETSOURCE
"
.tar
;
then
# tar target: try to load and convert
download_any_tarball
test
-s
$WEXT
.tar.bz2
&&
FTB
=
$WEXT
.tar.bz2
elif
has_ext
"
$GETSOURCE
"
.tar.bz2
;
then
# tar.bz2 target: for src.rpm policy compatibility
download_any_tarball
test
-f
$WEXT
.tar.bz2
||
erc
-f
$WEXT
.tar tar.bz2:
||
fatal
"Cannot bzip
$WEXT
.tar"
repack_tarball
"
$(
basename
"
$GETSOURCEURL
"
)
"
"
$FTB
"
else
download_url
"
$GETSOURCE
"
fi
else
[
-z
"
${
GETSOURCEURL
}
"
]
||
fatal
"Source git works only with gear repo"
echog
"Try to load
${
GETSOURCEURL
:-
$GETSOURCE
}
for
$spec
"
if
!
has_ext
"
$GETSOURCE
"
.bz2
;
then
warning
"It is recommended to use .bz2 tarballs for sources in rpm"
fi
if
[
-n
"
${
GETSOURCEURL
}
"
]
;
then
# UpUrl for rpm
download_url
"
$GETSOURCEURL
"
erc
-f
repack
$(
basename
"
$GETSOURCEURL
"
)
$FTB
elif
!
has_ext
"
$GETSOURCE
"
.tar.bz2
;
then
# if not tar.bz2 target, direct download
download_url
"
$GETSOURCE
"
elif
has_ext
"
$GETSOURCE
"
.tar.bz2
;
then
# if tar.bz2 target
download_any_tarball
#echog -n "Compressing to $WEXT.tar.bz2..."
test
-f
$WEXT
.tar.bz2
||
erc
-f
$WEXT
.tar tar.bz2:
||
fatal
"Cannot bzip
$WEXT
.tar"
elif
has_ext
"
$GETSOURCE
"
.bz2
;
then
warning
"It is not tarball (possible single file)..."
get_bz2
||
get_gz
||
get_raw
||
fatal
"Cannot retrieve
$GETSOURCE
"
else
fatal
"Logical error with
$GETSOURCE
"
fi
rhas
"
$GETSOURCE
"
"p://"
||
fatal
"
$GETSOURCE
is not URL"
download_any_tarball
"
$GETSOURCE
"
"
$FTB
"
# TODO: fix download single packed file
#else
# download_url "$GETSOURCE"
fi
echo
"DONE
"
popd
echo
g
"DONE with
$FTB
"
popd
>
/dev/null
done
...
...
share/eterbuild/functions/web
View file @
60d8d226
...
...
@@ -24,7 +24,7 @@ download_url()
# NOTE: disable cert checking
# use wget with try=1 and timeout = 30 sec
showcmd wget
--no-check-certificate
--unlink
-c
-t
1
-T
30
"
$1
"
-O
"
$NAME
"
a
=
wget
--no-check-certificate
--unlink
-c
-t
1
-T
30
"
$1
"
-O
"
$NAME
"
&&
return
a
=
wget
--no-check-certificate
--unlink
-c
-t
1
-T
30
"
$1
"
-O
"
$NAME
"
&&
test
-r
"
$NAME
"
&&
return
rm
-f
"
$NAME
"
return
1
...
...
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