Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Freespacer:installation_images
patterns
create_pattern.sh
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File create_pattern.sh of Package patterns
#!/bin/bash # For syntax of .pat files see: # http://en.opensuse.org/Pattern_Metadata_YaST version=$1 release=$2 target_cpu=$3 RPM_BUILD_ROOT=$4 pat_ext=$5 warnings=`mktemp /tmp/fileXXXXXX` for pat in `/bin/ls toinstall` ; do if [ -f toinstall/$pat/skip ] ; then echo "Skipping $pat" else ### top header echo "# openSUSE Patterns ${version}-${release}.${target_cpu} -- (c) 2008 SUSE LINUX Products GmbH" > tmpfile echo -n "# generated on " >> tmpfile date >> tmpfile echo >> tmpfile echo "=Ver: 5.0" >> tmpfile echo >> tmpfile echo "=Pat: " $pat ${version} ${release} ${target_cpu} >> tmpfile echo >> tmpfile if [ -f toinstall/$pat/role ] ; then cat utf8_roles/"`cat toinstall/$pat/role`"/* >> tmpfile #echo -n "=Cat: " >> tmpfile #cat toinstall/$pat/role >> tmpfile echo >> tmpfile fi if [ -f toinstall/$pat/icon ] ; then echo -n "=Ico: " >> tmpfile cat toinstall/$pat/icon >> tmpfile echo >> tmpfile fi ### lang specific label in utf8 format ### special handling of default first: if [ -f utf8_summary/$pat/default ] ; then cat utf8_summary/$pat/default >> tmpfile else # we don't have a default selection, use the name of # the selection instead. echo "=Sum: $pat" >> tmpfile echo "No default label for $pat" fi if [ -d utf8_summary/$pat ] ; then for lang in `ls -A utf8_summary/$pat` ; do case $lang in default) ;; *) cat utf8_summary/$pat/$lang >> tmpfile ;; esac done echo >> tmpfile else echo "No summary for $pat" exit 1 fi ### lang specific description in utf8 format ### special handling of default first: if [ -d utf8_description/$pat ] ; then for lang in `ls -A utf8_description/$pat` ; do cat utf8_description/$pat/$lang >> tmpfile done echo >> tmpfile else echo "No description for $pat" exit 1 fi if [ -f toinstall/$pat/conflicts ] ; then echo "+Con:" >> tmpfile bash $RPM_SOURCE_DIR/preprocess toinstall/$pat/conflicts >> tmpfile echo "-Con:" >> tmpfile echo >> tmpfile fi if [ -f toinstall/$pat/extends ] ; then echo "+Ext:" >> tmpfile bash $RPM_SOURCE_DIR/preprocess toinstall/$pat/extends >> tmpfile echo "-Ext:" >> tmpfile echo >> tmpfile fi if [ -f toinstall/$pat/freshens ] ; then echo "+Fre:" >> tmpfile bash $RPM_SOURCE_DIR/preprocess toinstall/$pat/freshens >> tmpfile echo "-Fre:" >> tmpfile echo >> tmpfile fi if [ -f toinstall/$pat/includes ] ; then echo "+Inc:" >> tmpfile bash $RPM_SOURCE_DIR/preprocess toinstall/$pat/extends >> tmpfile echo "-Inc:" >> tmpfile echo >> tmpfile fi if [ -f toinstall/$pat/obsoletes ] ; then echo "+Obs:" >> tmpfile bash $RPM_SOURCE_DIR/preprocess toinstall/$pat/obsoletes >> tmpfile echo "-Obs:" >> tmpfile echo >> tmpfile fi if [ -f toinstall/$pat/provides ] ; then echo "+Prv:" >> tmpfile bash $RPM_SOURCE_DIR/preprocess toinstall/$pat/provides >> tmpfile echo "-Prv:" >> tmpfile echo >> tmpfile fi if [ -f toinstall/$pat/recommends ] ; then echo "+Rec:" >> tmpfile bash $RPM_SOURCE_DIR/preprocess toinstall/$pat/recommends >> tmpfile echo "-Rec:" >> tmpfile echo >> tmpfile fi if [ -f toinstall/$pat/requires ] ; then echo "+Req:" >> tmpfile bash $RPM_SOURCE_DIR/preprocess toinstall/$pat/requires >> tmpfile echo "-Req:" >> tmpfile echo >> tmpfile fi if [ -f toinstall/$pat/suggests ] ; then echo "+Sug:" >> tmpfile bash $RPM_SOURCE_DIR/preprocess toinstall/$pat/suggests >> tmpfile echo "-Sug:" >> tmpfile echo >> tmpfile fi if [ -f toinstall/$pat/supplements ] ; then echo "+Sup:" >> tmpfile bash $RPM_SOURCE_DIR/preprocess toinstall/$pat/supplements >> tmpfile echo "-Sup:" >> tmpfile echo >> tmpfile fi ### YaST2 visible info echo -n "=Vis: " >> tmpfile if [ -f toinstall/$pat/visible ]; then bash $RPM_SOURCE_DIR/preprocess toinstall/$pat/visible >> tmpfile else echo "true" >> tmpfile fi echo >> tmpfile ### ordering for displaying the names if [ -f toinstall/$pat/order ]; then echo -n "=Ord: " >> tmpfile bash $RPM_SOURCE_DIR/preprocess toinstall/$pat/order >> tmpfile echo >> tmpfile fi ### general selections if [ -f toinstall/$pat/sel ]; then for file in `cat toinstall/$pat/sel`; do if [ ! -f "data/$file" ] ; then echo "toinstall/$pat/sel references nonexisting pattern $file" exit 1 fi bash $RPM_SOURCE_DIR/preprocess "data/$file" | while read line; do case "$line" in \#*) continue ;; esac echo "$line" >> tmpfile case "$line" in +*|-*) continue ;; esac test -f /.buildenv && source /.buildenv rpmids=/.rpm-cache/$BUILD_BASENAME/rpm.deps.id if test -f $rpmids && ! grep -q "^P:$line-[^-]*-[^-]*-[^-]*:" $rpmids; then if grep -q "^P:.* $line " $rpmids || grep -q "^P:.* $line"'$' $rpmids; then ( grep "^P:.* $line " $rpmids ; grep "^P:.* $line"'$' $rpmids ) | sed -e 's,^P:\([^ ]*\)-[^-]*-[^-]*-[^-]*:.*,\1,' | \ while read out; do echo "Provides $line is only virtual: $out"; done else echo "Package $line is missing" >> $warnings fi fi done echo >> tmpfile done fi mkdir -p $RPM_BUILD_ROOT/CD1/suse/setup/descr/ mv tmpfile $RPM_BUILD_ROOT/CD1/suse/setup/descr/$pat-${version}-${release}.${target_cpu}.pat # generate -32bit/-x86/-64bit patterns if [ "$pat_ext" != "" ] ; then if [ -f toinstall/$pat/sel ]; then ### top header echo "# openSUSE Patterns ${version}-${release}.${target_cpu} -- (c) 2007 SUSE LINUX Products GmbH" > tmpfile echo -n "# generated on " >> tmpfile date >> tmpfile echo >> tmpfile echo "=Ver: 5.0" >> tmpfile echo >> tmpfile echo "=Pat: " $pat-$pat_ext ${version} ${release} ${target_cpu} >> tmpfile echo >> tmpfile if [ -f toinstall/$pat/role ] ; then echo -n "=Cat: " >> tmpfile bash $RPM_SOURCE_DIR/preprocess toinstall/$pat/role >> tmpfile echo >> tmpfile fi echo "=Sum: $pat-$pat_ext" >> tmpfile echo "=Vis: false" >> tmpfile #echo -e "+Des:\nThis is only visible for debugging. Please don't report it as bug\n-Des:" >> tmpfile ### ordering for displaying the names if [ -f toinstall/$pat/order ]; then echo -n "=Ord: " >> tmpfile A=`bash $RPM_SOURCE_DIR/preprocess toinstall/$pat/order` B=$(($A + 1)) echo $B >> tmpfile echo >> tmpfile fi echo -e "+Sup:\n$pat_ext\n-Sup:\n\n" >> tmpfile echo -e "+Fre:\n$pat\n-Fre:\n\n" >> tmpfile echo -e "+Ext:\n$pat_ext\n-Ext:\n\n" >> tmpfile echo "+Prc:" >> tmpfile rpmids=/.rpm-cache/$BUILD_BASENAME/rpm.deps.id for DATA in `bash $RPM_SOURCE_DIR/preprocess toinstall/$pat/sel`; do for i in `bash $RPM_SOURCE_DIR/preprocess data/$DATA | grep -v -e Prq\: -e Prc\: -e Psg\: -e '^#'` ; do package=$i-$pat_ext if test -f $rpmids && ! grep -q "^P:$package-[^-]*-[^-]*-[^-]*:" $rpmids; then if grep -q "^P:.* $package " $rpmids || grep -q "^P:.* $package"'$' $rpmids; then ( grep "^P:.* $package " $rpmids ; grep "^P:.* $package"'$' $rpmids ) | sed -e 's,^P:\([^ ]*\)-[^-]*-[^-]*-[^-]*:.*,\1,' | \ while read out; do echo "Provides $package is only virtual: $out"; done echo $package >> tmpfile fi else echo $package >> tmpfile fi done done echo "-Prc:" >> tmpfile mv tmpfile $RPM_BUILD_ROOT/CD1/suse/setup/descr/$pat-$pat_ext-${version}-${release}.${target_cpu}.pat fi fi fi done sort -u $warnings #test ! -s $warnings || exit 1 rm $warnings
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor