Hex Artifact Content

Artifact 7cc46ae9f0cda9310ac74b8f2d9af1d2ca488fbb:


0000: 23 21 20 2f 62 69 6e 2f 62 61 73 68 0a 0a 52 50  #! /bin/bash..RP
0010: 4d 46 49 4c 45 3d 22 24 28 72 65 61 64 6c 69 6e  MFILE="$(readlin
0020: 6b 20 2d 66 20 22 24 31 22 29 22 0a 44 45 42 46  k -f "$1")".DEBF
0030: 49 4c 45 3d 22 24 32 22 0a 65 78 70 6f 72 74 20  ILE="$2".export 
0040: 52 50 4d 46 49 4c 45 20 44 45 42 47 46 49 4c 45  RPMFILE DEBGFILE
0050: 0a 0a 69 66 20 5b 20 2d 7a 20 22 24 7b 52 50 4d  ..if [ -z "${RPM
0060: 46 49 4c 45 7d 22 20 5d 3b 20 74 68 65 6e 0a 09  FILE}" ]; then..
0070: 65 63 68 6f 20 27 55 73 61 67 65 3a 20 72 70 6d  echo 'Usage: rpm
0080: 32 64 65 62 20 3c 72 70 6d 66 69 6c 65 3e 20 5b  2deb <rpmfile> [
0090: 3c 64 65 62 66 69 6c 65 3e 5d 27 20 3e 26 32 0a  <debfile>]' >&2.
00a0: 0a 09 65 78 69 74 20 31 0a 66 69 0a 0a 69 66 20  ..exit 1.fi..if 
00b0: 5b 20 2d 7a 20 22 24 7b 44 45 42 46 49 4c 45 7d  [ -z "${DEBFILE}
00c0: 22 20 5d 3b 20 74 68 65 6e 0a 09 44 45 42 46 49  " ]; then..DEBFI
00d0: 4c 45 3d 22 24 28 65 63 68 6f 20 22 24 7b 52 50  LE="$(echo "${RP
00e0: 4d 46 49 4c 45 7d 22 20 7c 20 73 65 64 20 27 73  MFILE}" | sed 's
00f0: 40 5c 2e 72 70 6d 24 40 2e 64 65 62 40 27 29 22  @\.rpm$@.deb@')"
0100: 0a 0a 09 69 66 20 5b 20 22 24 7b 44 45 42 46 49  ...if [ "${DEBFI
0110: 4c 45 7d 22 20 3d 20 22 24 7b 52 50 4d 46 49 4c  LE}" = "${RPMFIL
0120: 45 7d 22 20 5d 3b 20 74 68 65 6e 0a 09 09 44 45  E}" ]; then...DE
0130: 42 46 49 4c 45 3d 22 24 7b 52 50 4d 46 49 4c 45  BFILE="${RPMFILE
0140: 7d 2e 64 65 62 22 0a 09 66 69 0a 66 69 0a 0a 57  }.deb"..fi.fi..W
0150: 4f 52 4b 44 49 52 3d 22 24 7b 54 4d 50 44 49 52  ORKDIR="${TMPDIR
0160: 3a 2d 2f 74 6d 70 7d 2f 72 70 6d 32 64 65 62 2d  :-/tmp}/rpm2deb-
0170: 24 24 24 7b 52 41 4e 44 4f 4d 7d 24 7b 52 41 4e  $$${RANDOM}${RAN
0180: 44 4f 4d 7d 24 7b 52 41 4e 44 4f 4d 7d 22 0a 54  DOM}${RANDOM}".T
0190: 4d 50 43 50 49 4f 46 49 4c 45 3d 22 24 7b 57 4f  MPCPIOFILE="${WO
01a0: 52 4b 44 49 52 7d 2f 74 6d 70 2e 63 70 69 6f 22  RKDIR}/tmp.cpio"
01b0: 0a 65 78 70 6f 72 74 20 57 4f 52 4b 44 49 52 20  .export WORKDIR 
01c0: 54 4d 50 43 50 49 4f 46 49 4c 45 0a 0a 6d 6b 64  TMPCPIOFILE..mkd
01d0: 69 72 20 2d 70 20 22 24 7b 57 4f 52 4b 44 49 52  ir -p "${WORKDIR
01e0: 7d 22 20 22 24 7b 57 4f 52 4b 44 49 52 7d 2f 64  }" "${WORKDIR}/d
01f0: 65 62 22 20 22 24 7b 57 4f 52 4b 44 49 52 7d 2f  eb" "${WORKDIR}/
0200: 63 6f 6e 74 72 6f 6c 22 20 22 24 7b 57 4f 52 4b  control" "${WORK
0210: 44 49 52 7d 2f 72 6f 6f 74 22 20 7c 7c 20 65 78  DIR}/root" || ex
0220: 69 74 20 31 0a 63 68 6d 6f 64 20 37 30 30 20 22  it 1.chmod 700 "
0230: 24 7b 57 4f 52 4b 44 49 52 7d 22 0a 0a 72 70 6d  ${WORKDIR}"..rpm
0240: 32 63 70 69 6f 20 3c 20 22 24 7b 52 50 4d 46 49  2cpio < "${RPMFI
0250: 4c 45 7d 22 20 3e 20 22 24 7b 54 4d 50 43 50 49  LE}" > "${TMPCPI
0260: 4f 46 49 4c 45 7d 22 0a 0a 23 20 45 78 74 72 61  OFILE}"..# Extra
0270: 63 74 20 66 69 6c 65 73 0a 28 0a 09 63 64 20 22  ct files.(..cd "
0280: 24 7b 57 4f 52 4b 44 49 52 7d 2f 72 6f 6f 74 22  ${WORKDIR}/root"
0290: 20 7c 7c 20 65 78 69 74 20 31 0a 0a 09 63 70 69   || exit 1...cpi
02a0: 6f 20 2d 69 20 2d 2d 6e 6f 2d 61 62 73 6f 6c 75  o -i --no-absolu
02b0: 74 65 2d 66 69 6c 65 6e 61 6d 65 73 20 2d 2d 71  te-filenames --q
02c0: 75 69 65 74 20 2d 2d 6d 61 6b 65 2d 64 69 72 65  uiet --make-dire
02d0: 63 74 6f 72 69 65 73 20 3c 20 22 24 7b 54 4d 50  ctories < "${TMP
02e0: 43 50 49 4f 46 49 4c 45 7d 22 0a 29 20 7c 7c 20  CPIOFILE}".) || 
02f0: 65 78 69 74 20 31 0a 0a 23 20 43 72 65 61 74 65  exit 1..# Create
0300: 20 63 6f 6e 74 72 6f 6c 20 66 69 6c 65 73 0a 28   control files.(
0310: 0a 09 63 64 20 22 24 7b 57 4f 52 4b 44 49 52 7d  ..cd "${WORKDIR}
0320: 2f 72 6f 6f 74 22 20 7c 7c 20 65 78 69 74 20 31  /root" || exit 1
0330: 0a 0a 09 23 23 20 43 72 65 61 74 65 20 4d 44 35  ...## Create MD5
0340: 20 53 75 6d 73 0a 09 66 69 6e 64 20 2e 20 2d 74   Sums..find . -t
0350: 79 70 65 20 66 20 7c 20 78 61 72 67 73 20 6d 64  ype f | xargs md
0360: 35 73 75 6d 20 3e 20 22 24 7b 57 4f 52 4b 44 49  5sum > "${WORKDI
0370: 52 7d 2f 63 6f 6e 74 72 6f 6c 2f 6d 64 35 73 75  R}/control/md5su
0380: 6d 73 22 0a 0a 09 23 23 20 43 72 65 61 74 65 20  ms"...## Create 
0390: 50 61 63 6b 61 67 65 20 64 65 73 63 72 69 70 74  Package descript
03a0: 69 6f 6e 0a 09 72 70 6d 20 2d 71 20 2d 2d 71 75  ion..rpm -q --qu
03b0: 65 72 79 66 6f 72 6d 61 74 20 27 50 61 63 6b 61  eryformat 'Packa
03c0: 67 65 3a 20 25 7b 4e 61 6d 65 7d 5c 6e 56 65 72  ge: %{Name}\nVer
03d0: 73 69 6f 6e 3a 20 25 7b 56 65 72 73 69 6f 6e 7d  sion: %{Version}
03e0: 2d 25 7b 52 65 6c 65 61 73 65 7d 5c 6e 41 72 63  -%{Release}\nArc
03f0: 68 69 74 65 63 74 75 72 65 3a 20 25 7b 41 72 63  hitecture: %{Arc
0400: 68 7d 5c 6e 49 6e 73 74 61 6c 6c 65 64 2d 53 69  h}\nInstalled-Si
0410: 7a 65 3a 20 25 7b 53 69 7a 65 7d 5c 6e 4d 61 69  ze: %{Size}\nMai
0420: 6e 74 61 69 6e 65 72 3a 20 25 7b 50 61 63 6b 61  ntainer: %{Packa
0430: 67 65 72 7d 5c 6e 44 65 73 63 72 69 70 74 69 6f  ger}\nDescriptio
0440: 6e 3a 27 20 2d 70 20 22 24 7b 52 50 4d 46 49 4c  n:' -p "${RPMFIL
0450: 45 7d 22 20 3e 20 22 24 7b 57 4f 52 4b 44 49 52  E}" > "${WORKDIR
0460: 7d 2f 63 6f 6e 74 72 6f 6c 2f 63 6f 6e 74 72 6f  }/control/contro
0470: 6c 22 0a 09 72 70 6d 20 2d 71 20 2d 2d 71 75 65  l"..rpm -q --que
0480: 72 79 66 6f 72 6d 61 74 20 27 25 7b 44 65 73 63  ryformat '%{Desc
0490: 72 69 70 74 69 6f 6e 7d 27 20 2d 70 20 22 24 7b  ription}' -p "${
04a0: 52 50 4d 46 49 4c 45 7d 22 20 7c 20 73 65 64 20  RPMFILE}" | sed 
04b0: 27 73 40 5e 40 20 40 3b 73 40 5e 20 24 40 20 2e  's@^@ @;s@^ $@ .
04c0: 40 27 20 3e 3e 20 22 24 7b 57 4f 52 4b 44 49 52  @' >> "${WORKDIR
04d0: 7d 2f 63 6f 6e 74 72 6f 6c 2f 63 6f 6e 74 72 6f  }/control/contro
04e0: 6c 22 0a 65 63 68 6f 20 27 27 20 3e 3e 20 22 24  l".echo '' >> "$
04f0: 7b 57 4f 52 4b 44 49 52 7d 2f 63 6f 6e 74 72 6f  {WORKDIR}/contro
0500: 6c 2f 63 6f 6e 74 72 6f 6c 22 0a 0a 09 23 23 20  l/control"...## 
0510: 43 72 65 61 74 65 20 74 61 72 62 61 6c 6c 20 77  Create tarball w
0520: 69 74 68 20 61 6c 6c 20 64 61 74 61 0a 09 63 64  ith all data..cd
0530: 20 22 24 7b 57 4f 52 4b 44 49 52 7d 2f 63 6f 6e   "${WORKDIR}/con
0540: 74 72 6f 6c 22 20 7c 7c 20 65 78 69 74 20 31 0a  trol" || exit 1.
0550: 09 74 61 72 20 2d 7a 63 66 20 22 24 7b 57 4f 52  .tar -zcf "${WOR
0560: 4b 44 49 52 7d 2f 64 65 62 2f 63 6f 6e 74 72 6f  KDIR}/deb/contro
0570: 6c 2e 74 61 72 2e 67 7a 22 20 2a 0a 29 20 7c 7c  l.tar.gz" *.) ||
0580: 20 65 78 69 74 20 31 0a 0a 23 20 43 72 65 61 74   exit 1..# Creat
0590: 65 20 64 65 62 69 61 6e 2d 62 69 6e 61 72 79 0a  e debian-binary.
05a0: 65 63 68 6f 20 27 32 2e 30 27 20 3e 20 22 24 7b  echo '2.0' > "${
05b0: 57 4f 52 4b 44 49 52 7d 2f 64 65 62 2f 64 65 62  WORKDIR}/deb/deb
05c0: 69 61 6e 2d 62 69 6e 61 72 79 22 0a 0a 23 20 43  ian-binary"..# C
05d0: 72 65 61 74 65 20 44 61 74 61 20 61 72 63 68 69  reate Data archi
05e0: 76 65 0a 28 0a 09 63 64 20 22 24 7b 57 4f 52 4b  ve.(..cd "${WORK
05f0: 44 49 52 7d 2f 72 6f 6f 74 22 20 7c 7c 20 65 78  DIR}/root" || ex
0600: 69 74 20 31 0a 0a 09 63 70 69 6f 20 2d 69 20 2d  it 1...cpio -i -
0610: 2d 6c 69 73 74 20 2d 2d 71 75 69 65 74 20 3c 20  -list --quiet < 
0620: 22 24 7b 54 4d 50 43 50 49 4f 46 49 4c 45 7d 22  "${TMPCPIOFILE}"
0630: 20 3e 20 22 24 7b 57 4f 52 4b 44 49 52 7d 2f 72   > "${WORKDIR}/r
0640: 70 6d 2d 66 69 6c 65 6c 69 73 74 22 0a 0a 09 74  pm-filelist"...t
0650: 61 72 20 2d 2d 66 69 6c 65 73 2d 66 72 6f 6d 20  ar --files-from 
0660: 22 24 7b 57 4f 52 4b 44 49 52 7d 2f 72 70 6d 2d  "${WORKDIR}/rpm-
0670: 66 69 6c 65 6c 69 73 74 22 20 2d 63 66 20 2d 20  filelist" -cf - 
0680: 7c 20 74 61 72 64 79 20 2d 55 73 65 72 20 72 6f  | tardy -User ro
0690: 6f 74 20 2d 47 72 6f 75 70 20 72 6f 6f 74 20 7c  ot -Group root |
06a0: 20 67 7a 69 70 20 2d 39 63 20 3e 20 22 24 7b 57   gzip -9c > "${W
06b0: 4f 52 4b 44 49 52 7d 2f 64 65 62 2f 64 61 74 61  ORKDIR}/deb/data
06c0: 2e 74 61 72 2e 67 7a 22 20 0a 29 20 7c 7c 20 65  .tar.gz" .) || e
06d0: 78 69 74 20 31 0a 0a 23 20 43 72 65 61 74 65 20  xit 1..# Create 
06e0: 44 65 62 69 61 6e 20 70 61 63 6b 61 67 65 0a 28  Debian package.(
06f0: 0a 09 63 64 20 22 24 7b 57 4f 52 4b 44 49 52 7d  ..cd "${WORKDIR}
0700: 2f 64 65 62 22 20 7c 7c 20 65 78 69 74 20 31 0a  /deb" || exit 1.
0710: 0a 09 61 72 20 72 63 75 20 22 24 7b 57 4f 52 4b  ..ar rcu "${WORK
0720: 44 49 52 7d 2f 74 6d 70 2e 64 65 62 22 20 64 65  DIR}/tmp.deb" de
0730: 62 69 61 6e 2d 62 69 6e 61 72 79 20 63 6f 6e 74  bian-binary cont
0740: 72 6f 6c 2e 74 61 72 2e 67 7a 20 64 61 74 61 2e  rol.tar.gz data.
0750: 74 61 72 2e 67 7a 0a 29 0a 0a 63 70 20 22 24 7b  tar.gz.)..cp "${
0760: 57 4f 52 4b 44 49 52 7d 2f 74 6d 70 2e 64 65 62  WORKDIR}/tmp.deb
0770: 22 20 22 24 7b 44 45 42 46 49 4c 45 7d 22 0a 0a  " "${DEBFILE}"..
0780: 72 6d 20 2d 72 66 20 22 24 7b 57 4f 52 4b 44 49  rm -rf "${WORKDI
0790: 52 7d 22 0a                                      R}".