OpenPKG CVS Repository
  http://cvs.openpkg.org/
  ____________________________________________________________________________

  Server: cvs.openpkg.org                  Name:   Michael van Elst
  Root:   /e/openpkg/cvs                   Email:  [EMAIL PROTECTED]
  Module: openpkg-src openpkg-web          Date:   05-Jun-2003 16:57:00
  Branch: HEAD                             Handle: 2003060515565801

  Added files:
    openpkg-src/sgml        catalog2xml sgmlcatalog
  Modified files:
    openpkg-src/sgml        mkcatalog sgml.spec
    openpkg-web             news.txt

  Log:
    add support for XML catalog, move old mkcatalog out of the way to
    avoid SGML-catalog-only updates from old packages

  Summary:
    Revision    Changes     Path
    1.1         +22 -0      openpkg-src/sgml/catalog2xml
    1.3         +3  -9      openpkg-src/sgml/mkcatalog
    1.26        +16 -6      openpkg-src/sgml/sgml.spec
    1.1         +150 -0     openpkg-src/sgml/sgmlcatalog
    1.4738      +1  -0      openpkg-web/news.txt
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: openpkg-src/sgml/catalog2xml
  ============================================================================
  $ cvs diff -u -r0 -r1.1 catalog2xml
  --- /dev/null 2003-06-05 16:56:59.000000000 +0200
  +++ catalog2xml       2003-06-05 16:57:00.000000000 +0200
  @@ -0,0 +1,22 @@
  +#!/bin/sh
  +
  [EMAIL PROTECTED]@/bin:${PATH}
  +
  +echo "<?xml version='1.0'?>"
  +echo '<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog 
V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd";>'
  +echo '<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">'
  +
  +if test $# != 0 ; then
  +sed -n \
  +    -e ':input' \
  +    -e '/PUBLIC[^"]*$/{ N; b input }' \
  +    -e '/PUBLIC[^"]*"[^"]*$/{ N; b input }' \
  +    -e '/PUBLIC[^"]*"[^"]*"[^"]*$/{ N; b input }' \
  +    -e '/PUBLIC[^"]*"[^"]*"[^"]*"[^"]*$/{ N; b input }' \
  +    -e 's/\n/ /g' \
  +    -e 's/^ *\(--.*--\)/<!\1>/gp' \
  +    -e 's/PUBLIC *\("[^"]*"\) *\("[^"]*"\)/<public publicId=\1 uri=\2\/>/gp' \
  +    "$@"
  +fi
  +
  +echo '</catalog>'
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/sgml/mkcatalog
  ============================================================================
  $ cvs diff -u -r1.2 -r1.3 mkcatalog
  --- openpkg-src/sgml/mkcatalog        16 Jan 2003 16:38:47 -0000      1.2
  +++ openpkg-src/sgml/mkcatalog        5 Jun 2003 14:56:59 -0000       1.3
  @@ -191,19 +191,13 @@
               esac
               ;;
           delete|deinstall)
  -            #   if "deinstall or delete" and the temporary catalog is
  -            #   not empty, install the catalog itself (in the case of being
  -            #   empty, delete it).  ${l_bottom_p}=YES means that
  +            #   if "deinstall or delete" install the temporary catalog
  +            #   ${l_bottom_p}=YES means that
               #   ${l_upper_cat} can be deleted safely, otherwise not.
               case ${l_bottom_p} in
                   [Yy][Ee][Ss])
                       echo " - ${dtd_act} ${l_cat_line} line from ${l_upper_cat}"
  -                    if [ ! -s ${TMPCAT} ]; then
  -                        echo " - delete empty catalog ${l_upper_cat}"
  -                        rm -f ${l_upper_abs_cat}
  -                    else
  -                        cp ${TMPCAT} ${l_upper_abs_cat} || exit 1
  -                    fi
  +                    cp ${TMPCAT} ${l_upper_abs_cat} || exit 1
                       ;;
                   *)  rm -f ${TMPCAT}
                       exit 0
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/sgml/sgml.spec
  ============================================================================
  $ cvs diff -u -r1.25 -r1.26 sgml.spec
  --- openpkg-src/sgml/sgml.spec        30 May 2003 19:02:00 -0000      1.25
  +++ openpkg-src/sgml/sgml.spec        5 Jun 2003 14:56:59 -0000       1.26
  @@ -32,17 +32,19 @@
   Distribution: OpenPKG [PLUS]
   Group:        SGML
   License:      PD
  -Version:      20030530
  -Release:      20030530
  +Version:      20030605
  +Release:      20030605
   
   #   list of sources
   Source0:      mkcatalog
  +Source1:      sgmlcatalog
  +Source2:      catalog2xml
   
   #   build information
   Prefix:       %{l_prefix}
   BuildRoot:    %{l_buildroot}
   BuildPreReq:  OpenPKG, openpkg >= 20020206
  -PreReq:       OpenPKG, openpkg >= 20020206, bash
  +PreReq:       OpenPKG, openpkg >= 20020206, bash, sed
   AutoReq:      no
   AutoReqProv:  no
   
  @@ -58,15 +60,23 @@
       rm -rf $RPM_BUILD_ROOT
       %{l_shtool} mkdir -f -p -m 755 \
           $RPM_BUILD_ROOT%{l_prefix}/bin \
  -        $RPM_BUILD_ROOT%{l_prefix}/share/sgml
  +        $RPM_BUILD_ROOT%{l_prefix}/share/sgml \
  +        $RPM_BUILD_ROOT%{l_prefix}/libexec/sgml
       %{l_shtool} install -c -m 644 \
           /dev/null $RPM_BUILD_ROOT%{l_prefix}/share/sgml/catalog
       %{l_shtool} install -c -m 755 -e 's;@l_prefix@;%{l_prefix};g' \
           -e 's;@l_prefix@;%{l_prefix};' \
  -        %{SOURCE mkcatalog} $RPM_BUILD_ROOT%{l_prefix}/bin/
  +        %{SOURCE mkcatalog} \
  +        %{SOURCE catalog2xml} \
  +        $RPM_BUILD_ROOT%{l_prefix}/libexec/sgml/
  +    %{l_shtool} install -c -m 755 -e 's;@l_prefix@;%{l_prefix};g' \
  +        -e 's;@l_prefix@;%{l_prefix};' \
  +        %{SOURCE sgmlcatalog} $RPM_BUILD_ROOT%{l_prefix}/bin/
  +    PREFIX=$RPM_BUILD_ROOT%{l_prefix} $RPM_BUILD_ROOT%{l_prefix}/bin/sgmlcatalog
       %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
           %{l_files_std} \
  -        '%config %{l_prefix}/share/sgml/catalog'
  +        '%config %{l_prefix}/share/sgml/catalog' \
  +        '%config %{l_prefix}/share/sgml/catalog.xml'
   
   %files -f files
   
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/sgml/sgmlcatalog
  ============================================================================
  $ cvs diff -u -r0 -r1.1 sgmlcatalog
  --- /dev/null 2003-06-05 16:56:59.000000000 +0200
  +++ sgmlcatalog       2003-06-05 16:57:00.000000000 +0200
  @@ -0,0 +1,150 @@
  [EMAIL PROTECTED]@/bin/bash
  +
  [EMAIL PROTECTED]@}
  +DIR=$PREFIX/share/sgml
  +MASTER=$DIR/catalog.xml
  +MK=$PREFIX/libexec/sgml/mkcatalog
  +C2X=$PREFIX/libexec/sgml/catalog2xml
  +
  +init () {
  +    p=()
  +    s=()
  +    u=()
  +    P=()
  +    S=()
  +    U=()
  +    X=0
  +}
  +
  +setup () {
  +    if test ! -s $MASTER
  +    then
  +        cat > $MASTER <<'EOFEOF'
  +<?xml version="1.0"?>
  +<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" 
"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd";>
  +<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
  +</catalog>
  +EOFEOF
  +        ls -l $MASTER
  +    fi
  +}
  +
  +del () {
  +    name="$1"
  +
  +    while read line
  +    do
  +        case "$line" in
  +        "<!-- CATALOG $name -->"*)
  +            ;;
  +        *)
  +            echo $line
  +            ;;
  +        esac
  +    done < $MASTER > $MASTER.tmp && \
  +    cp $MASTER.tmp $MASTER && \
  +    rm -f $MASTER.tmp
  +}
  +
  +ins () {
  +    name="$1" ; shift
  +    tag="$1" ; shift
  +    att1="$1" ; shift
  +    att2="$1" ; shift
  +    val2="$1" ; shift
  +
  +    while read line
  +    do
  +        case "$line" in
  +        "</catalog>")
  +            for val1 in "$@"
  +            do
  +                echo '<!-- CATALOG' $name '--><'$tag $att1='"'$val1'"' 
$att2='"'$val2'"/>'
  +            done
  +            echo $line
  +            ;;
  +        *)
  +            echo $line
  +            ;;
  +        esac
  +    done < $MASTER > $MASTER.tmp && \
  +    cp $MASTER.tmp $MASTER && \
  +    rm -f $MASTER.tmp
  +}
  +
  +install () {
  +    name=$1
  +    cat="file://$DIR/$name/catalog.xml"
  +    pre="file://$DIR/$name"
  +
  +    $MK -q install $name
  +
  +    if test $X -gt 0
  +    then
  +        $C2X $DIR/$name/catalog > $DIR/$name/catalog.xml
  +    fi
  +
  +    del $name
  +
  +    ins $name delegatePublic publicIdStartString catalog $cat "[EMAIL PROTECTED]"
  +    ins $name delegateSystem systemIdStartString catalog $cat "[EMAIL PROTECTED]"
  +    ins $name delegateURI    uriStartString      catalog $cat "[EMAIL PROTECTED]"
  +
  +    ins $name rewritePublic publicIdStartString rewritePrefix $pre "[EMAIL 
PROTECTED]"
  +    ins $name rewriteSystem systemIdStartString rewritePrefix $pre "[EMAIL 
PROTECTED]"
  +    ins $name rewriteURI    uriStartString      rewritePrefix $pre "[EMAIL 
PROTECTED]"
  +}
  +
  +deinstall () {
  +    name=$1
  +
  +    $MK -q deinstall $name
  +
  +    if test $X -gt 0
  +    then
  +        rm -f $DIR/$name/catalog.xml
  +    fi
  +
  +    del $name
  +}
  +
  +init
  +setup
  +
  +while test $# -gt 0
  +do
  +    i="$1" ; shift
  +    case "$i" in
  +    -p)
  +        p=("[EMAIL PROTECTED]" "$1") ; shift
  +        ;;
  +    -s)
  +        s=("[EMAIL PROTECTED]" "$1") ; shift
  +        ;;
  +    -u)
  +        u=("[EMAIL PROTECTED]" "$1") ; shift
  +        ;;
  +    -P)
  +        P=("[EMAIL PROTECTED]" "$1") ; shift
  +        ;;
  +    -S)
  +        S=("[EMAIL PROTECTED]" "$1") ; shift
  +        ;;
  +    -U)
  +        U=("[EMAIL PROTECTED]" "$1") ; shift
  +        ;;
  +    -i)
  +        name="$1" ; shift
  +        install "$name"
  +        init
  +        ;;
  +    -x)
  +        X=1
  +        ;;
  +    -d)
  +        name="$1" ; shift
  +        deinstall "$name"
  +        init
  +        ;;
  +    esac
  +done
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-web/news.txt
  ============================================================================
  $ cvs diff -u -r1.4737 -r1.4738 news.txt
  --- openpkg-web/news.txt      5 Jun 2003 09:42:24 -0000       1.4737
  +++ openpkg-web/news.txt      5 Jun 2003 14:56:58 -0000       1.4738
  @@ -1,3 +1,4 @@
  +05-Jun-2003: Upgraded package: P<sgml-20030605-20030605>
   05-Jun-2003: Upgraded package: P<apache-1.3.27-20030605>
   05-Jun-2003: Upgraded package: P<uvscan-4.1.6.4269-20030605>
   05-Jun-2003: Upgraded package: P<vim-6.2.13-20030605>
  @@ .
______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
CVS Repository Commit List                     [EMAIL PROTECTED]

Reply via email to