summaryrefslogtreecommitdiff
path: root/maintainer
diff options
context:
space:
mode:
authorAlexey Neyman <stilor@att.net>2017-05-12 05:00:32 (GMT)
committerAlexey Neyman <stilor@att.net>2017-07-08 17:56:29 (GMT)
commit5935d586e140b35398f45772d5749924dea7da57 (patch)
tree371d497ec06cba5afca65a5616bcb37f280481b7 /maintainer
parentd589df4ebebdd9e89a66dc788e23b3c3db5f23d5 (diff)
Convert gcc to new framework.
Signed-off-by: Alexey Neyman <stilor@att.net>
Diffstat (limited to 'maintainer')
-rwxr-xr-xmaintainer/gen-versions.sh57
-rw-r--r--maintainer/kconfig-versions.template13
2 files changed, 56 insertions, 14 deletions
diff --git a/maintainer/gen-versions.sh b/maintainer/gen-versions.sh
index af58b8b..ca6766d 100755
--- a/maintainer/gen-versions.sh
+++ b/maintainer/gen-versions.sh
@@ -12,6 +12,13 @@ debug()
fi
}
+info()
+{
+ if [ -z "${QUIET}" ]; then
+ echo "INFO :: $@" >&2
+ fi
+}
+
warn()
{
echo "WARN :: $@" >&2
@@ -148,6 +155,9 @@ run_lines()
"#!foreach "*)
run_foreach "${s#* }"
;;
+ "#!//"*)
+ # Comment, do nothing
+ ;;
"#!"*)
error "line ${l}: unrecognized command"
;;
@@ -193,8 +203,9 @@ read_file()
while read l; do
case "${l}" in
- "#*") continue;;
- *) echo "info[${l%%=*}]=${l#*=}";;
+ "#"*) continue;;
+ *=*) echo "info[${l%%=*}]=${l#*=}";;
+ *) error "syntax error in '${1}': '${l}'"
esac
done < "${1}"
}
@@ -238,6 +249,10 @@ enter_fork()
local versions
local only_obsolete only_experimental
+ # Set defaults
+ info[obsolete]=
+ info[experimental]=
+
eval `read_package_desc ${fork}`
info[name]=${fork}
@@ -259,14 +274,22 @@ enter_fork()
for f in */version.desc; do [ -r "${f}" ] && echo "${f%/version.desc}"; done | \
sort -rV | xargs echo`
- set_iter version $versions
- info[all_versions]=$versions
-
- only_obsolete=yes
- only_experimental=yes
- do_foreach version check_obsolete_experimental
- info[only_obsolete]=${only_obsolete}
- info[only_experimental]=${only_experimental}
+ set_iter version ${versions}
+ info[all_versions]=${versions}
+
+ # If a fork does not define any versions at all ("rolling release"), do not
+ # consider it obsolete/experimental unless it is marked in the fork's
+ # description.
+ if [ -n "${versions}" ]; then
+ only_obsolete=yes
+ only_experimental=yes
+ do_foreach version check_obsolete_experimental
+ info[only_obsolete]=${only_obsolete}
+ info[only_experimental]=${only_experimental}
+ else
+ info[only_obsolete]=${info[obsolete]}
+ info[only_experimental]=${info[experimental]}
+ fi
}
enter_version()
@@ -274,6 +297,10 @@ enter_version()
local version="${1}"
local tmp
+ # Set defaults
+ info[obsolete]=
+ info[experimental]=
+
eval `read_version_desc ${info[name]} ${version}`
info[ver]=${version}
info[kcfg]=`kconfigize ${version}`
@@ -289,7 +316,8 @@ pkg_all=( `cd packages && \
ls */package.desc 2>/dev/null | \
while read f; do [ -r "${f}" ] && echo "${f%/package.desc}"; done | \
xargs echo` )
-debug "Generating package version descriptions"
+
+info "Generating package version descriptions"
debug "Packages: ${pkg_all[@]}"
# We need to group forks of the same package into the same
@@ -298,12 +326,12 @@ debug "Packages: ${pkg_all[@]}"
for p in "${pkg_all[@]}"; do
find_forks "${p}"
done
-debug "Master packages: ${pkg_masters[@]}"
+info "Master packages: ${pkg_masters[@]}"
# Now for each master, create its kconfig file with version
# definitions.
for p in "${pkg_masters[@]}"; do
- debug "Generating '${config_dir}/${p}.in'"
+ info "Generating '${config_dir}/${p}.in'"
exec >"${config_dir}/${p}.in"
# Base definitions for the whole config file
info=( \
@@ -312,5 +340,8 @@ for p in "${pkg_masters[@]}"; do
[nforks]=${pkg_nforks[${p}]} \
)
set_iter fork ${pkg_forks[${p}]}
+ # TBD check that origins are set for all forks if there is more than one? or is it automatic because of a missing variable check?
+ # TBD get rid of the "origin" completely and use just the fork name?
run_template "${template}"
done
+info "Done!"
diff --git a/maintainer/kconfig-versions.template b/maintainer/kconfig-versions.template
index 7aa0de1..c7ab53f 100644
--- a/maintainer/kconfig-versions.template
+++ b/maintainer/kconfig-versions.template
@@ -34,30 +34,41 @@ config @@masterpfx@@_USE
if @@masterpfx@@_USE_@@originpfx@@
#!end-if
+#!// If a project makes official releases, using "bleeding edge"
+#!// from a development repository is experimental. However, there
+#!// are projects that consider its HEAD a "rolling release". For
+#!// those, checking out from a repository is the regular method.
+#!if [ -n "@@all_versions@@" ]
if EXPERIMENTAL
+#!end-if
choice
bool "Source of @@name@@"
+#!if [ -n "@@all_versions@@" ]
config @@pfx@@_SRC_RELEASE
bool "Released tarball"
help
Download a released tarball.
+#!end-if
#!if [ -n "@@repository@@" ]
config @@pfx@@_SRC_DEVEL
bool "Vendor repository"
help
Check out from vendor repository at:
@@repository@@
-#!end-if
+#!end-if
config @@pfx@@_SRC_CUSTOM
bool "Custom location"
+ depends on EXPERIMENTAL
help
Custom directory or tarball.
endchoice
+#!if [ -n "@@all_versions@@" ]
endif
+#!end-if
#!if [ -n "@@repository@@" ]
if @@pfx@@_SRC_DEVEL