diff --git a/scripts/release.sh b/scripts/release.sh index eb6eced4c..22b36b0ba 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -132,6 +132,42 @@ if [ "$build_doc" = true ]; then git commit -s -m "doc: Regenerate all docs for $VERSION" fi +declare -A maps +maps=( + [src/libnvme.map]=LIBNVME + [src/libnvme-mi.map]=LIBNVME_MI +) + +lib_ver="${ver//./_}" + +for map_file in "${!maps[@]}" +do + lib_name=${maps[$map_file]} + + if [ ! -f "${map_file}" ]; then + continue + fi + + lib_unreleased="${lib_name}_UNRELEASED" + + # Check if UNRELEASED has symbols + if ! awk -v lib_unreleased="$lib_unreleased" ' + $0 ~ "^"lib_unreleased { in_section = 1; next } + in_section && $0 ~ /\}/ { exit } + in_section && $0 !~ /^[[:space:]]*($|\/|\/\*|\*|#)/ { found = 1; exit } + END { exit !found } + ' "${map_file}"; then + continue + fi + + sed -i \ + -e "s/^${lib_unreleased}\s*{/&\n};\n\n${lib_name}_${lib_ver} {/" \ + "$map_file" + + git add "${map_file}" + echo "${map_file} updated." +done + # update meson.build sed -i -e "0,/[ \t]version: /s/\([ \t]version: \).*/\1\'$ver\',/" meson.build if [[ -n "$libnvme_VERSION" ]] && [[ -f subprojects/libnvme.wrap ]]; then diff --git a/src/libnvme-mi.map b/src/libnvme-mi.map index 0fb378290..fc84f403e 100644 --- a/src/libnvme-mi.map +++ b/src/libnvme-mi.map @@ -1,3 +1,7 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later +LIBNVME_UNRELEASED { +}; + LIBNVME_MI_1_12 { global: nvme_mi_mi_xfer; diff --git a/src/libnvme.map b/src/libnvme.map index 4314705f7..232d6a16f 100644 --- a/src/libnvme.map +++ b/src/libnvme.map @@ -1,4 +1,7 @@ # SPDX-License-Identifier: LGPL-2.1-or-later +LIBNVME_UNRELEASED { +}; + LIBNVME_1.13 { global: nvme_subsystem_get_fw_rev;