On Tue, 10 Jan 2006, Frank Steiner <[EMAIL PROTECTED]>
wrote:-

>My fault. While hacking around with the source directories, I had
>created a copy without the x86_64 tree.
>
>I.e.: It is enough to copy all 10 CDs, 5 for i386, 5 for x86_64,
>into the same directory but use the contents file from the x86_64
>version.

Not for a YaST repository. You need a few files for YaST to be able to
use your repository. I maintain a local repository[0] for files I've
packaged, for several different SUSE versions (9.0 to 10.1alpha), the
directory arrangement like this:

$VERSION
$VERSION/media.1
$VERSION/suse
$VERSION/suse/i586
$VERSION/suse/i686
$VERSION/suse/noarch
$VERSION/suse/setup
$VERSION/suse/setup/descr
$VERSION/suse/src
$VERSION/suse/x86_64

and a script to build each of the repositories. After stripping out the
unnecessary bits, here's the important bits:

[!-- start of script --]
#!/bin/bash

#
# This needs to be called with the current working directory being
# where you're building the repository, and is the same place that
# contains the media.1 and suse directories.
#

# build media file
#
 printf "%s\n" "davjam" > "media.1/media"
#               ^^^^^^ change this to whatever you wish
 printf "%s\n" $(date +%Y%m%d%H%M%S) >> "media.1/media"
 printf "1\n" >> "media.1/media"

# build content file
#
 printf "PRODUCT %s\n" "davjam (SUSE LINUX $VERSION)" >content
#                       ^^^^^^             ^^^^^^^^ and change these
 printf "VERSION %s\n" "$i"-0 >>content
 printf "LABEL %s\n" "davjam (SUSE LINUX $VERSION)" >>content
#                     ^^^^^^             ^^^^^^^^ and change these
 printf "VENDOR %s\n" "davjam" >>content
#                      ^^^^^^ and change this to match whatever
# is placed in media.1/media

# only include if x86_64 packages present
#
 printf "ARCH.x86_64 %s\n" "x86_64 i686 i586 i486 i386 noarch" >>content

# only include if i686 packages present
#
 printf "ARCH.i686 %s\n" "i686 i586 i486 i386 noarch" >>content

 printf "ARCH.i586 %s\n" "i586 i486 i386 noarch" >>content
 printf "DEFAULTBASE %s\n" "i586" >>content
 printf "DESCRDIR %s\n" "suse/setup/descr" >>content
 printf "DATADIR %s\n" "suse" >>content

# build directory list file
#
 ls -Al > directory.yast

 cd suse

# remove older package versions
#
rm -rf {x86_64,i586,i686,noarch,src}/MD5SUMS

# build the MD5SUMS for each directory
#
 for k in x86_64 i586 i686 noarch src
 do

# skip non-existent directories
#
  [ ! -d "$k" ] && continue

# check there's any files present
#
  j=$(find "$k" -type f -name "*.rpm")
  if [ -n "$j" ]
  then
   pushd "$k" >/dev/null 2>&1
   md5sum * >MD5SUMS
   popd >/dev/null 2>&1
  fi
 done

# build directory list file
#
 ls -Al > directory.yast

# create package descriptions
#
 create_package_descr -x setup/descr/EXTRA_PROV \
  -l english \
  -l french \
  -l german \
  -l spanish \
  -l czech \
  -l hungarian \
  -l italian

# make a list of selections available
#
 cd setup/descr
 find -name "*.sel" -type f | \
  while read i
  do
   basename "$i" >>selections
  done

# create selections list if not already present
#
 [ ! -s "selections" ] && touch selections

# generate the md5sums
#
 md5sum * >MD5SUMS

# and the directory.yast file
#
 ls -Al > directory.yast

# we've finished
#
 exit 0

[!-- end of script --]

Regards,
  David Bolt

-- 
Member of Team Acorn checking nodes at 50 Mnodes/s: http://www.distributed.net/
AMD1800 1Gb WinXP/SUSE 9.3  | AMD2400 256Mb SuSE 9.0  | A3010 4Mb RISCOS 3.11
AMD2400(32) 768Mb SUSE 10.0 | RPC600 129Mb RISCOS 3.6 | Falcon 14Mb TOS 4.02
AMD2600(64) 512Mb SUSE 10.0 | A4000 4Mb RISCOS 3.11   | STE 4Mb TOS 1.62

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to