Improved packages.sh.
Started support for GNOME and KDE meta-packages.
This commit is contained in:
parent
da8017e3a6
commit
5769ccdbb2
2 changed files with 120 additions and 7 deletions
74
BLFS/func_packages
Normal file
74
BLFS/func_packages
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# $Id$
|
||||||
|
#
|
||||||
|
set -e
|
||||||
|
|
||||||
|
#-----------------------#
|
||||||
|
generate_packages() { # Master packages file
|
||||||
|
#-----------------------#
|
||||||
|
local pkg_id file
|
||||||
|
|
||||||
|
> packages.tmp
|
||||||
|
|
||||||
|
# Extract Id and path for sect1 files
|
||||||
|
for file in `find $BLFS_XML -name "*.xml"` ; do
|
||||||
|
pkg_id=`grep "sect1 id" $file | sed -e 's/<sect1 id="//;s/".*//'`
|
||||||
|
[[ ! -z "$pkg_id" ]] && echo -e "$pkg_id\t$file" >> packages.tmp
|
||||||
|
done
|
||||||
|
|
||||||
|
# IDs clean-up (unuseful pages or commented-out packages, could be more)
|
||||||
|
sed -i '/template/d;/ntroduction/d;/preface/d' packages.tmp
|
||||||
|
sed -i '/courier.xml/d' packages.tmp
|
||||||
|
sed -i '/nautilus-media.xml/d;/gal.xml/d;/gpdf.xml/d;/gv.xml/d' packages.tmp
|
||||||
|
|
||||||
|
# Add header with meta-packages pseudo Id
|
||||||
|
{
|
||||||
|
cat << EOF
|
||||||
|
|
||||||
|
=== GNOME META-PACKAGES ===
|
||||||
|
# GNOME base packages
|
||||||
|
gnome-core $BLFS_XML
|
||||||
|
# All GNOME packages
|
||||||
|
gnome-full $BLFS_XML
|
||||||
|
|
||||||
|
=== KDE META-PACKAGES ===
|
||||||
|
# KDE base packages
|
||||||
|
kde-core $BLFS_XML
|
||||||
|
# All KDE packages
|
||||||
|
kde $BLFS_XML
|
||||||
|
# All KDE packages plus Koffice
|
||||||
|
kde-full $BLFS_XML
|
||||||
|
|
||||||
|
=== INDIVIDUAL PACKAGES ===
|
||||||
|
|
||||||
|
EOF
|
||||||
|
} > packages
|
||||||
|
|
||||||
|
# Dump packages list
|
||||||
|
sort packages.tmp >> packages
|
||||||
|
|
||||||
|
# Clean up
|
||||||
|
rm packages.tmp
|
||||||
|
}
|
||||||
|
|
||||||
|
# Pre-made *.dep files for meta-packages
|
||||||
|
|
||||||
|
#--------------------------#
|
||||||
|
generate_gnome_core() { # GNOME core
|
||||||
|
#--------------------------#
|
||||||
|
local line base_xml package
|
||||||
|
|
||||||
|
> gnome-core.dep.tmp
|
||||||
|
|
||||||
|
for line in `grep "xi:include" $BLFS_XML/gnome/core/core.xml` ; do
|
||||||
|
base_xml=`echo $line | sed 's/^.*href="//;s/".*//'`
|
||||||
|
echo "base_xml = $base_xml" >> base_xml
|
||||||
|
package=`grep "gnome/core/$base_xml" packages | cut -f1`
|
||||||
|
[[ -n "$package" ]] && echo $package >> gnome-core.dep.tmp
|
||||||
|
done
|
||||||
|
|
||||||
|
tac gnome-core.dep.tmp > gnome-core.dep
|
||||||
|
rm gnome-core.dep.tmp
|
||||||
|
}
|
||||||
|
|
|
@ -4,14 +4,53 @@
|
||||||
#
|
#
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
#---------------------
|
||||||
|
# packages module
|
||||||
|
source func_packages
|
||||||
|
[[ $? > 0 ]] && echo -e "\n\tERROR: func_packages did not load..\n" && exit
|
||||||
|
|
||||||
|
|
||||||
|
if [[ -z "$1" ]] ; then
|
||||||
|
echo -e "n\tYou must to provide the name of the BLFS book sources directory.\n"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
BLFS_XML=$1
|
BLFS_XML=$1
|
||||||
|
|
||||||
> packages.tmp
|
if [[ ! -d $BLFS_XML ]] ; then
|
||||||
|
echo -e "\n\t$BLFS_XML is not a directory\n"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
for file in `find $BLFS_XML -name "*.xml"` ; do
|
if [[ ! -f $BLFS_XML/use-unzip.xml ]] ; then
|
||||||
pkg_id=`grep "sect1 id" $file | sed -e 's/<sect1 id="//;s/".*//'`
|
echo -e "\n\tLooks like $BLFS_XML is not a BLFS book sources directory\n"
|
||||||
[[ ! -z "$pkg_id" ]] && echo -e "$pkg_id\t$file" >> packages.tmp
|
exit 1
|
||||||
done
|
fi
|
||||||
|
|
||||||
sort packages.tmp -o packages
|
if [[ -n "$2" ]] ; then
|
||||||
rm packages.tmp
|
case $2 in
|
||||||
|
update )
|
||||||
|
if [[ -d $BLFS_XML/.svn ]] ; then
|
||||||
|
echo -e "\n\tUpdating the $BLFS_XML book sources ...\n"
|
||||||
|
pushd $BLFS_XML 1> /dev/null
|
||||||
|
svn up
|
||||||
|
popd 1> /dev/null
|
||||||
|
echo -e "\n\tBook sources updated."
|
||||||
|
else
|
||||||
|
echo -e "\n\tLooks like $BLFS_XML is not a svn working copy."
|
||||||
|
echo -e "\tSkipping BLFS sources update.\n"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
echo -e "\n\tUnknown option $2 ignored.\n"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -en "\n\tGenerating packages file ..."
|
||||||
|
generate_packages
|
||||||
|
echo "done."
|
||||||
|
|
||||||
|
echo -en "\tGenerating gnome-core dependencies list ..."
|
||||||
|
generate_gnome_core
|
||||||
|
echo "done."
|
||||||
|
|
Reference in a new issue