diff options
Diffstat (limited to 'pkgs/desktops/kde-4.8/kde-package/kde-manifest.sh')
-rwxr-xr-x | pkgs/desktops/kde-4.8/kde-package/kde-manifest.sh | 146 |
1 files changed, 0 insertions, 146 deletions
diff --git a/pkgs/desktops/kde-4.8/kde-package/kde-manifest.sh b/pkgs/desktops/kde-4.8/kde-package/kde-manifest.sh deleted file mode 100755 index e964ce3ddc11..000000000000 --- a/pkgs/desktops/kde-4.8/kde-package/kde-manifest.sh +++ /dev/null @@ -1,146 +0,0 @@ -#! /bin/sh - -# Usage: download kde release to $dir, then run -# $0 $dir - -dir="$1" - -# Detect release number & whether it is a stable release -if [[ ! -d "${dir}" ]]; then - echo "${dir} is not a directory (or doesn't exist)!" >&2 - exit 1 -fi - -release=$(ls "${dir}"/kdelibs-*.tar.xz | \ - sed -e 's/.*kdelibs-//' -e 's/\.tar\.xz//') - -if [[ ${release##*.} -gt 50 ]]; then - stable="false" -else - stable="true" -fi - -echo "Detected release ${release}" >&2 - -declare -A hash -declare -A modules -declare -a packages -declare -a top_level - -# xsltproc output declares -A module -if [[ ! -f kde_projects.xml ]]; then - curl -O -J http://projects.kde.org/kde_projects.xml -fi -eval `xsltproc kde-submodules.xslt kde_projects.xml` - -module[kde-baseapps]=kde-baseapps -unset module[kactivities] - -print_sane() { - echo "Called print_sane $1" >&2 - sane="${1//[^a-z0-9_]/_}" - if [[ "$sane" != "$1" ]]; then - echo "Sane version is $sane" >&2 - echo -n "sane=\"$sane\";" - fi -} - -for i in `cd "${dir}"; ls *-${release}.tar.xz`; do - package=${i%-${release}.tar.xz} - packages+=( "$package" ) - echo -n "${package}.. " >&2 - hash[$package]=$(nix-hash --type sha256 --flat --base32 "${dir}/${i}") - echo -n ${hash[$package]} >&2 - - if [ -n "${module[$package]}" ]; then - m="${module[$package]}" - echo " (${m})" >&2 - modules[$m]=1 - else - top_level+=( "$package" ) - echo " (top-level)" >&2 - fi - #nix-store --add-fixed sha256 "${dir}/${i}" >&2 -done - - -print_pkg_hash() { - echo " {name=\"${1}\";value=\"${hash[$1]}\";}" -} - -print_hashes(){ - echo "hashes=builtins.listToAttrs[" - for p in "${packages[@]}"; do print_pkg_hash "$p"; done - echo "];" -} - -print_split_module(){ - echo -n "$1:" >&2 - echo -e "{\n module=\"$1\";" - print_sane "$1" - echo " split=true;" - echo " pkgs=[" - for p in "${packages[@]}"; do - if [[ "${module[$p]}" == "$1" ]]; then - echo -n " { name=\"$p\"; " - print_sane "$p" - echo " }" - echo -n " $p" >&2 - fi - done - echo " ];" - echo "}" - echo >&2 -} - -print_mono_module(){ - echo -en "{ module=\"$1\"; " - print_sane "$1" - echo -n "$1 ... " >&2 - echo -n " split=false;" - cml="$1-$release/CMakeLists.txt" - tar -xf "${dir}/$1-${release}.tar.xz" "$cml" - if grep '^[^#]*add_subdirectory' $cml >/dev/null; then - if grep '^[^#]*add_subdirectory' $cml | grep -v macro_optional_add_subdirectory >/dev/null; then - echo " is monolithic (has unconditionally added subdirs)" >&2 - else - subdirs=( `grep '^[^#]*add_subdirectory' $cml | - sed -e 's/[^#]*add_subdirectory *( *\(.*\) *)/\1/' | - grep -v '\(doc\|cmake\)'` ) - echo " seems splittable, subdirs: ${subdirs[*]}" >&2 - echo -e "\n pkgs=[" - for s in "${subdirs[@]}"; do - echo -en " {" - echo -n " name=\"${s//\//-}\"; " - print_sane "$s" - if [[ $s != "${s//\//-}" ]]; then - echo -n "subdir=\"$s\"; " - fi - echo "}" - done - echo -e " ];\n" - fi - else - echo " is monolithic (has no subdirs)" >&2 - fi - rm $cml - rmdir $1-$release - echo "}" -} - -print_modules(){ - echo "modules=[" - echo "Printing modules splitted by upstream" >&2 - for m in "${!modules[@]}"; do print_split_module "$m"; done - echo >&2 - echo "Printing modules not splitted by upstream (${top_level[*]})" >&2 - for m in "${top_level[@]}"; do print_mono_module "$m"; done - echo "];" -} - -echo "Writing ${release}.nix" >&2 -exec > "${release}.nix" -echo "{stable=${stable};" -print_hashes -print_modules -echo "}" |