Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • scripts/patch/ncurses-patch.sh

    • Property mode changed from 100644 to 100755
    r20a0aa0 r4648865  
    1 #!/bin/sh
    2 # Jonathan Norman
     1#!/bin/bash
     2# Create a Ncuruses Patch
    33
    4 # Ncurses branch update patch generator
    5 
     4# Get Version #
     5#
    66VERSION=$1
    77
     
    99#
    1010if [ "${VERSION}" = "" ]; then
    11   echo "$0 [ncurses_version]"
    12   echo "This will Create a Patch for ncurses ncurses_Version"
     11  echo "$0 - Ncurses_Version"
     12  echo "This will Create a Patch for Ncurses Ncurses_Version"
    1313  exit 255
    1414fi
    1515
    16 TMP=~/tmp/ncurses-${VERSION}
    17 PATCHDIR=${TMP}/patches
    18 PATCHURL=ftp://invisible-island.net/ncurses/
    19 SERIES=$(echo ${VERSION} | sed -e 's/\.//g')
    20 CLFS_PATCHS=http://patches.cross-lfs.org/dev/
     16# Get Patch Names
     17#
     18cd ~/tmp
     19wget ftp://invisible-island.net/ncurses/${VERSION}/ --no-remove-listing
     20ROLLUP=$(cat index.html | grep bz2 | cut -f2 -d'>' | cut -f1 -d'<' | tail -n 1)
     21ROLLPATCH=$(echo ${ROLLUP} | cut -f3 -d-)
     22FILES=$(cat index.html | grep ${VERSION}-2 | grep patch.gz | cut -f2 -d'>' | cut -f1 -d'<')
     23rm -f .listing
     24rm -f index.html
    2125
    22 # Figure out patch number
    23 UPDATE_NUM=0
    24 UPDATE_NUM=$(curl -ls http://patches.cross-lfs.org/dev/ | grep ncurses-${VERSION}-branch_update | cut -d . -f 3 | cut -d - -f 3-)
    25 UPDATE_NUM=$(expr ${UPDATE_NUM} + 1)
     26# Download Ncurses Source
     27#
     28cd ~/tmp
     29if ! [ -e ncurses-${VERSION}.tar.gz ]; then
     30  wget ftp://invisible-island.net/ncurses/ncurses-${VERSION}.tar.gz
     31fi
    2632
    27 # Download patches
    28 echo "Downloading patches for Ncurses ${VERSION}"
    29 FILES=$(curl -sl ftp://invisible-island.net/ncurses/${VERSION}/ | grep patch | grep -v bz2 | grep -v asc)
    30 mkdir -p $PATCHDIR
    31 cd $PATCHDIR
    32 for FILE in $FILES; do
    33         curl -O -# $PATCHURL/$VERSION/$FILE
     33# Set Patch Number
     34#
     35cd ~/tmp
     36wget http://svn.cross-lfs.org/svn/repos/patches/ncurses/ --no-remove-listing
     37for num in $(seq 1 99); do
     38  PATCH_NUM=$(cat index.html | grep "${VERSION}" | grep branch_update-${num}.patch | cut -f2 -d'"' | cut -f1 -d'"'| cut -f4 -d- | cut -f1 -d. | tail -n 1)
     39  if [ "${PATCH_NUM}" = "0" -a "${num}" = "1" ]; then
     40    PATCH_NUM=$(expr ${PATCH_NUM} + 1)
     41    break
     42  fi
     43  if [ "${PATCH_NUM}" != "${num}" ]; then
     44    PATCH_NUM=$(expr ${num})
     45    break
     46  fi
     47done
     48rm -f index.html
     49
     50# Cleanup Directory
     51#
     52cd ~/tmp
     53rm -rf ncurses-${VERSION} ncurses-${VERSION}.orig
     54tar xvf ncurses-${VERSION}.tar.gz
     55cp -ar ncurses-${VERSION} ncurses-${VERSION}.orig
     56
     57# Download and Apply Rollup Patch
     58#
     59cd ~/tmp/ncurses-${VERSION}
     60CURRENTDIR=$(pwd -P)
     61mkdir ~/tmp/ncurses-${VERSION}-patches
     62cd ~/tmp/ncurses-${VERSION}
     63if [ "${ROLLUP}" != "" ]; then
     64  echo "Getting Rollup ${ROLLUP} Patch..."
     65  cd ~/tmp/ncurses-${VERSION}-patches
     66  wget --quiet ftp://invisible-island.net/ncurses/${VERSION}/${ROLLUP}
     67  cd ${CURRENTDIR}
     68  echo "Applying Rollup ${ROLLUP} Patch..."
     69  cp ~/tmp/ncurses-${VERSION}-patches/${ROLLUP} ${CURRENTDIR}/${ROLLUP}
     70  bunzip2 ${ROLLUP}
     71  ROLLUP2=$(echo ${ROLLUP} | sed -e 's/.bz2//g')
     72  sh ${ROLLUP2}
     73fi
     74
     75# Download and Apply Patches
     76#
     77install -d ~/tmp/ncurses-${VERSION}-patches
     78cd ~/tmp/ncurses-${VERSION}
     79CURRENTDIR=$(pwd -P)
     80for file in ${FILES}; do
     81  if [ "${ROLLPATCH}" != "" ]; then
     82    TEST=$(echo ${file} | grep -c ${ROLLPATCH})
     83  else
     84    TEST=0
     85  fi
     86  if [ "${TEST}" = "0" ]; then
     87    cd ~/tmp/ncurses-${VERSION}-patches
     88    echo "Getting Patch ${file}..."
     89    wget --quiet ftp://invisible-island.net/ncurses/${VERSION}/${file}
     90    cd ${CURRENTDIR}
     91    gunzip -c ~/tmp/ncurses-${VERSION}-patches/${file} | patch --dry-run -s -f -Np1
     92    if [ "$?" = "0" ]; then
     93      echo "Apply Patch ${file}..."
     94      gunzip -c ~/tmp/ncurses-${VERSION}-patches/${file} | patch -Np1
     95      LASTFILE=$(echo ${file} | cut -f2 -d. | cut -f2 -d-)
     96    fi
     97  fi
    3498done
    3599
     100# Cleanup Directory
     101#
     102cd ~/tmp
     103cd ncurses-${VERSION}
     104for dir in $(find * -type d); do
     105  cd ~/tmp/ncurses-${VERSION}/${dir}
     106  for file in $(find . -name '*~'); do
     107    rm -f ${file}
     108  done
     109  for file in $(find . -name '*.orig'); do
     110    rm -f ${file}
     111  done
     112done
     113cd ~/tmp/ncurses-${VERSION}
     114rm -f *~ *.orig
    36115
    37 echo "Downloading source for Ncurses $VERSION"
    38 cd $TMP
    39 curl -sO ftp://invisible-island.net/ncurses/ncurses-${VERSION}.tar.gz
    40 tar -xvf ncurses-${VERSION}.tar.gz
    41 cp -R ncurses-${VERSION} ncurses-${VERSION}.orig
     116# Create Patch
     117#
     118cd ~/tmp
     119echo "Submitted By: Jim Gifford (jim at cross-lfs dot org)" > ~/patches/ncurses-${VERSION}-branch_update-${PATCH_NUM}.patch
     120echo "Date: `date +%m-%d-%Y`" >> ~/patches/ncurses-${VERSION}-branch_update-${PATCH_NUM}.patch
     121echo "Initial Package Version: ${VERSION}" >> ~/patches/ncurses-${VERSION}-branch_update-${PATCH_NUM}.patch
     122echo "Origin: Upstream" >> ~/patches/ncurses-${VERSION}-branch_update-${PATCH_NUM}.patch
     123echo "Upstream Status: Applied" >> ~/patches/ncurses-${VERSION}-branch_update-${PATCH_NUM}.patch
     124echo "Description: This is a branch update for NCurses-${VERSION}, and should be" >> ~/patches/ncurses-${VERSION}-branch_update-${PATCH_NUM}.patch
     125echo "             rechecked periodically. This patch covers up to ${VERSION}-${LASTFILE}." >> ~/patches/ncurses-${VERSION}-branch_update-${PATCH_NUM}.patch
     126echo "" >> ~/patches/ncurses-${VERSION}-branch_update-${PATCH_NUM}.patch
     127diff -Naur ncurses-${VERSION}.orig ncurses-${VERSION} >> ~/patches/ncurses-${VERSION}-branch_update-${PATCH_NUM}.patch
     128echo "Created ~/patches/ncurses-${VERSION}-branch_update-${PATCH_NUM}.patch."
    42129
    43 echo -n "Generating Patch..."
    44 cd ncurses-${VERSION}
    45 
    46 gunzip -c $PATCHDIR/*.sh.gz | sh
    47 for PATCH in $(ls $PATCHDIR | grep patch.gz); do
    48         gunzip -c $PATCHDIR/$PATCH | patch -Np1
    49 done
    50 
    51 cd $TMP
    52 
    53 DATE=$(ls $PATCHDIR | tail -n1 | cut -d- -f3 | cut -d. -f1);
    54 
    55 # Create patch
    56 echo "Submitted By: Jonathan Norman (jonathan at bluesquarelinux dot co dot uk)" > ncurses-${VERSION}-branch_update-$UPDATE_NUM.patch
    57 echo "Date: `date +%Y-%m-%d`" >> ncurses-${VERSION}-branch_update-$UPDATE_NUM.patch
    58 echo "Initial Package Version: ${VERSION}" >> ncurses-${VERSION}-branch_update-$UPDATE_NUM.patch
    59 echo "Origin: Upstream" >> ncurses-${VERSION}-branch_update-$UPDATE_NUM.patch
    60 echo "Upstream Status: Applied" >> ncurses-${VERSION}-branch_update-$UPDATE_NUM.patch
    61 echo "Description: Contains all upstream patches up to ${VERSION}-${DATE}" >> ncurses-${VERSION}-branch_update-$UPDATE_NUM.patch
    62 echo "" >> ncurses-${VERSION}-branch_update-$UPDATE_NUM.patch
    63 
    64 LC_ALL=C TZ=UTC0 diff -Naur ncurses-${VERSION}.orig ncurses-${VERSION} >> ncurses-${VERSION}-branch_update-$UPDATE_NUM.patch
    65 
    66 echo "Done"
    67 echo "Cleaning up"
    68 rm -rf ncurses-${VERSION} ncurses-${VERSION}.orig #ncurses-${VERSION}.tar.bz2
    69 
    70 echo "Created: $PWD/ncurses-${VERSION}-branch_update-$UPDATE_NUM.patch"
     130# Cleanup Directory
     131#
     132cd ~/tmp
     133rm -rf ncurses-${VERSION} ncurses-${VERSION}.orig
Note: See TracChangeset for help on using the changeset viewer.