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}".