Hex Artifact Content

Artifact 374de8e6feb5135ee08703cfe8448c990a955537:


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 52 65 6e 61 6d 65  exit 1..# Rename
0300: 20 22 6c 69 62 36 34 22 20 64 69 72 65 63 74 6f   "lib64" directo
0310: 72 79 20 66 6f 72 20 44 65 62 69 61 6e 2d 62 61  ry for Debian-ba
0320: 73 65 64 20 64 69 73 74 72 69 62 75 74 69 6f 6e  sed distribution
0330: 73 0a 28 0a 09 63 64 20 22 24 7b 57 4f 52 4b 44  s.(..cd "${WORKD
0340: 49 52 7d 2f 72 6f 6f 74 22 20 7c 7c 20 65 78 69  IR}/root" || exi
0350: 74 20 31 0a 0a 09 69 66 20 5b 20 2d 64 20 75 73  t 1...if [ -d us
0360: 72 2f 6c 69 62 36 34 20 5d 3b 20 74 68 65 6e 0a  r/lib64 ]; then.
0370: 09 09 6d 76 20 75 73 72 2f 6c 69 62 36 34 20 75  ..mv usr/lib64 u
0380: 73 72 2f 6c 69 62 20 7c 7c 20 65 78 69 74 20 31  sr/lib || exit 1
0390: 0a 09 66 69 0a 0a 09 69 66 20 5b 20 2d 64 20 6c  ..fi...if [ -d l
03a0: 69 62 36 34 20 5d 3b 20 74 68 65 6e 0a 09 09 6d  ib64 ]; then...m
03b0: 76 20 6c 69 62 36 34 20 6c 69 62 20 7c 7c 20 65  v lib64 lib || e
03c0: 78 69 74 20 31 0a 09 66 69 0a 0a 09 65 78 69 74  xit 1..fi...exit
03d0: 20 30 0a 29 20 7c 7c 20 65 78 69 74 20 31 0a 0a   0.) || exit 1..
03e0: 23 20 43 72 65 61 74 65 20 63 6f 6e 74 72 6f 6c  # Create control
03f0: 20 66 69 6c 65 73 0a 28 0a 09 63 64 20 22 24 7b   files.(..cd "${
0400: 57 4f 52 4b 44 49 52 7d 2f 72 6f 6f 74 22 20 7c  WORKDIR}/root" |
0410: 7c 20 65 78 69 74 20 31 0a 0a 09 23 23 20 43 72  | exit 1...## Cr
0420: 65 61 74 65 20 4d 44 35 20 53 75 6d 73 0a 09 66  eate MD5 Sums..f
0430: 69 6e 64 20 2e 20 2d 74 79 70 65 20 66 20 7c 20  ind . -type f | 
0440: 78 61 72 67 73 20 6d 64 35 73 75 6d 20 3e 20 22  xargs md5sum > "
0450: 24 7b 57 4f 52 4b 44 49 52 7d 2f 63 6f 6e 74 72  ${WORKDIR}/contr
0460: 6f 6c 2f 6d 64 35 73 75 6d 73 22 0a 0a 09 23 23  ol/md5sums"...##
0470: 20 43 72 65 61 74 65 20 50 61 63 6b 61 67 65 20   Create Package 
0480: 64 65 73 63 72 69 70 74 69 6f 6e 0a 09 72 70 6d  description..rpm
0490: 20 2d 71 20 2d 2d 71 75 65 72 79 66 6f 72 6d 61   -q --queryforma
04a0: 74 20 27 50 61 63 6b 61 67 65 3a 20 25 7b 4e 61  t 'Package: %{Na
04b0: 6d 65 7d 5c 6e 56 65 72 73 69 6f 6e 3a 20 25 7b  me}\nVersion: %{
04c0: 56 65 72 73 69 6f 6e 7d 2d 25 7b 52 65 6c 65 61  Version}-%{Relea
04d0: 73 65 7d 5c 6e 41 72 63 68 69 74 65 63 74 75 72  se}\nArchitectur
04e0: 65 3a 20 25 7b 41 72 63 68 7d 5c 6e 49 6e 73 74  e: %{Arch}\nInst
04f0: 61 6c 6c 65 64 2d 53 69 7a 65 3a 20 25 7b 53 69  alled-Size: %{Si
0500: 7a 65 7d 5c 6e 4d 61 69 6e 74 61 69 6e 65 72 3a  ze}\nMaintainer:
0510: 20 25 7b 50 61 63 6b 61 67 65 72 7d 5c 6e 44 65   %{Packager}\nDe
0520: 73 63 72 69 70 74 69 6f 6e 3a 27 20 2d 70 20 22  scription:' -p "
0530: 24 7b 52 50 4d 46 49 4c 45 7d 22 20 7c 20 73 65  ${RPMFILE}" | se
0540: 64 20 27 73 40 5e 41 72 63 68 69 74 65 63 74 75  d 's@^Architectu
0550: 72 65 3a 20 78 38 36 5f 36 34 24 40 41 72 63 68  re: x86_64$@Arch
0560: 69 74 65 63 74 75 72 65 3a 20 61 6d 64 36 34 40  itecture: amd64@
0570: 27 20 3e 20 22 24 7b 57 4f 52 4b 44 49 52 7d 2f  ' > "${WORKDIR}/
0580: 63 6f 6e 74 72 6f 6c 2f 63 6f 6e 74 72 6f 6c 22  control/control"
0590: 0a 09 72 70 6d 20 2d 71 20 2d 2d 71 75 65 72 79  ..rpm -q --query
05a0: 66 6f 72 6d 61 74 20 27 25 7b 44 65 73 63 72 69  format '%{Descri
05b0: 70 74 69 6f 6e 7d 27 20 2d 70 20 22 24 7b 52 50  ption}' -p "${RP
05c0: 4d 46 49 4c 45 7d 22 20 7c 20 73 65 64 20 27 73  MFILE}" | sed 's
05d0: 40 5e 40 20 40 3b 73 40 5e 20 24 40 20 2e 40 27  @^@ @;s@^ $@ .@'
05e0: 20 3e 3e 20 22 24 7b 57 4f 52 4b 44 49 52 7d 2f   >> "${WORKDIR}/
05f0: 63 6f 6e 74 72 6f 6c 2f 63 6f 6e 74 72 6f 6c 22  control/control"
0600: 0a 65 63 68 6f 20 27 27 20 3e 3e 20 22 24 7b 57  .echo '' >> "${W
0610: 4f 52 4b 44 49 52 7d 2f 63 6f 6e 74 72 6f 6c 2f  ORKDIR}/control/
0620: 63 6f 6e 74 72 6f 6c 22 0a 0a 09 23 23 20 43 72  control"...## Cr
0630: 65 61 74 65 20 74 61 72 62 61 6c 6c 20 77 69 74  eate tarball wit
0640: 68 20 61 6c 6c 20 64 61 74 61 0a 09 63 64 20 22  h all data..cd "
0650: 24 7b 57 4f 52 4b 44 49 52 7d 2f 63 6f 6e 74 72  ${WORKDIR}/contr
0660: 6f 6c 22 20 7c 7c 20 65 78 69 74 20 31 0a 09 74  ol" || exit 1..t
0670: 61 72 20 2d 7a 63 66 20 22 24 7b 57 4f 52 4b 44  ar -zcf "${WORKD
0680: 49 52 7d 2f 64 65 62 2f 63 6f 6e 74 72 6f 6c 2e  IR}/deb/control.
0690: 74 61 72 2e 67 7a 22 20 2a 0a 29 20 7c 7c 20 65  tar.gz" *.) || e
06a0: 78 69 74 20 31 0a 0a 23 20 43 72 65 61 74 65 20  xit 1..# Create 
06b0: 64 65 62 69 61 6e 2d 62 69 6e 61 72 79 0a 65 63  debian-binary.ec
06c0: 68 6f 20 27 32 2e 30 27 20 3e 20 22 24 7b 57 4f  ho '2.0' > "${WO
06d0: 52 4b 44 49 52 7d 2f 64 65 62 2f 64 65 62 69 61  RKDIR}/deb/debia
06e0: 6e 2d 62 69 6e 61 72 79 22 0a 0a 23 20 43 72 65  n-binary"..# Cre
06f0: 61 74 65 20 44 61 74 61 20 61 72 63 68 69 76 65  ate Data archive
0700: 0a 28 0a 09 63 64 20 22 24 7b 57 4f 52 4b 44 49  .(..cd "${WORKDI
0710: 52 7d 2f 72 6f 6f 74 22 20 7c 7c 20 65 78 69 74  R}/root" || exit
0720: 20 31 0a 0a 09 66 69 6e 64 20 2e 20 2d 74 79 70   1...find . -typ
0730: 65 20 66 20 3e 20 22 24 7b 57 4f 52 4b 44 49 52  e f > "${WORKDIR
0740: 7d 2f 6f 75 74 2d 66 69 6c 65 6c 69 73 74 22 0a  }/out-filelist".
0750: 0a 09 74 61 72 20 2d 2d 66 69 6c 65 73 2d 66 72  ..tar --files-fr
0760: 6f 6d 20 22 24 7b 57 4f 52 4b 44 49 52 7d 2f 6f  om "${WORKDIR}/o
0770: 75 74 2d 66 69 6c 65 6c 69 73 74 22 20 2d 63 66  ut-filelist" -cf
0780: 20 2d 20 7c 20 74 61 72 64 79 20 2d 55 73 65 72   - | tardy -User
0790: 20 72 6f 6f 74 20 2d 47 72 6f 75 70 20 72 6f 6f   root -Group roo
07a0: 74 20 7c 20 67 7a 69 70 20 2d 39 63 20 3e 20 22  t | gzip -9c > "
07b0: 24 7b 57 4f 52 4b 44 49 52 7d 2f 64 65 62 2f 64  ${WORKDIR}/deb/d
07c0: 61 74 61 2e 74 61 72 2e 67 7a 22 20 0a 29 20 7c  ata.tar.gz" .) |
07d0: 7c 20 65 78 69 74 20 31 0a 0a 23 20 43 72 65 61  | exit 1..# Crea
07e0: 74 65 20 44 65 62 69 61 6e 20 70 61 63 6b 61 67  te Debian packag
07f0: 65 0a 28 0a 09 63 64 20 22 24 7b 57 4f 52 4b 44  e.(..cd "${WORKD
0800: 49 52 7d 2f 64 65 62 22 20 7c 7c 20 65 78 69 74  IR}/deb" || exit
0810: 20 31 0a 0a 09 61 72 20 72 63 75 20 22 24 7b 57   1...ar rcu "${W
0820: 4f 52 4b 44 49 52 7d 2f 74 6d 70 2e 64 65 62 22  ORKDIR}/tmp.deb"
0830: 20 64 65 62 69 61 6e 2d 62 69 6e 61 72 79 20 63   debian-binary c
0840: 6f 6e 74 72 6f 6c 2e 74 61 72 2e 67 7a 20 64 61  ontrol.tar.gz da
0850: 74 61 2e 74 61 72 2e 67 7a 0a 29 0a 0a 63 70 20  ta.tar.gz.)..cp 
0860: 22 24 7b 57 4f 52 4b 44 49 52 7d 2f 74 6d 70 2e  "${WORKDIR}/tmp.
0870: 64 65 62 22 20 22 24 7b 44 45 42 46 49 4c 45 7d  deb" "${DEBFILE}
0880: 22 0a 0a 72 6d 20 2d 72 66 20 22 24 7b 57 4f 52  "..rm -rf "${WOR
0890: 4b 44 49 52 7d 22 0a                             KDIR}".