diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
commit | 4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch) | |
tree | ba5f07bf3f9d22d82e54a462313f5d244036c768 /net-ftp/atftp |
reinit the tree, so we can have metadata
Diffstat (limited to 'net-ftp/atftp')
-rw-r--r-- | net-ftp/atftp/Manifest | 19 | ||||
-rw-r--r-- | net-ftp/atftp/atftp-0.7-r3.ebuild | 71 | ||||
-rw-r--r-- | net-ftp/atftp/atftp-0.7-r5.ebuild | 72 | ||||
-rw-r--r-- | net-ftp/atftp/files/atftp-0.7-CFLAGS.patch | 32 | ||||
-rw-r--r-- | net-ftp/atftp/files/atftp-0.7-blockno.patch | 136 | ||||
-rw-r--r-- | net-ftp/atftp/files/atftp-0.7-glibc24.patch | 22 | ||||
-rw-r--r-- | net-ftp/atftp/files/atftp-0.7-illreply.patch | 12 | ||||
-rw-r--r-- | net-ftp/atftp/files/atftp-0.7-password.patch | 94 | ||||
-rw-r--r-- | net-ftp/atftp/files/atftp-0.7-pcre.patch | 14 | ||||
-rw-r--r-- | net-ftp/atftp/files/atftp-0.7-spaced_filename.patch | 96 | ||||
-rw-r--r-- | net-ftp/atftp/files/atftp-0.7-tests.patch | 23 | ||||
-rw-r--r-- | net-ftp/atftp/files/atftp.confd | 4 | ||||
-rw-r--r-- | net-ftp/atftp/files/atftp.init | 28 | ||||
-rw-r--r-- | net-ftp/atftp/files/atftp.service | 9 | ||||
-rw-r--r-- | net-ftp/atftp/files/atftp.service.conf | 2 | ||||
-rw-r--r-- | net-ftp/atftp/metadata.xml | 7 |
16 files changed, 641 insertions, 0 deletions
diff --git a/net-ftp/atftp/Manifest b/net-ftp/atftp/Manifest new file mode 100644 index 000000000000..594c1ee10f0c --- /dev/null +++ b/net-ftp/atftp/Manifest @@ -0,0 +1,19 @@ +AUX atftp-0.7-CFLAGS.patch 619 SHA256 56a9bdf1c4f9452db041fce1bc4c994e84ce44c6093ef48588f8d8bc93adaf24 SHA512 9227354689ea504f0500c244335a83d8a77dcb74c876ada1065c955f414e1f51e06dafcdb5d99f1fbb22036a074f9e46cada7378824d70f677ff6db931a35289 WHIRLPOOL 238a88f78637c21348af1e0c9c9e74b73bc63380297d810617c8cc2d90d5a3b29af213d01b401298771e89b9f04ca7bdbf8301eb5218db642c0d27027ecbec05 +AUX atftp-0.7-blockno.patch 5686 SHA256 f77661c92a66b95773a81f895e982ae65acbbef84c75b1ab8021e4dfb1bb64d1 SHA512 f91e7a7811a1a08268f2ca378eb4e473838e0c07c3cb8c6e6fec1e0e4e9068705451d8d0ae5f3d184a9455d5035bb656176fa3ed09b50fecb6c2d42e8dc73e1d WHIRLPOOL 99e2af2b35263131f0bc3d2a795e99ade0bd20000107931a512c84ea0029f98deb62f08392039c8d24cad88603a15bd55959883e189011248ee1c8092152a5c5 +AUX atftp-0.7-glibc24.patch 778 SHA256 d2bec90943b330db84cd6af089a67e476f45271d9f33095ef3fc281c83eb7ed5 SHA512 1000972a84d3462a0924a4189b240160a9ae5e1429365b329e0be582fdd6593611a59d3f7f955956269144f4c764bb378e04aecc5c18405d340f7cd60efb4e5a WHIRLPOOL cb0a9f32ca7a061683ad7d92dc4ee14d6aaed260b0071942bc6fb932640b8c2e8b5f04dccf9f8b7c87e26458da2980523db5be1eda9fe1d894548170e48f1bde +AUX atftp-0.7-illreply.patch 382 SHA256 26c26743dd4282841df4bbf4be496809ed820925e2dfa1c0c19516050bbecd06 SHA512 42efdd402a6fb07bd02286afb41c8eb14d68595454e882a967e40453ec85e59214e635537ea8d580259f1bfdb0524bcaba29e8af321136c3e2d973f22b08b467 WHIRLPOOL 0bf037bfc1432018e809a905a08ac8ae23499f098de8b2df182b7d7fe5e86eb68a5a25f173f025885bc3ea2a0187ac91415228fb82a6c6ebca94f897f2758e17 +AUX atftp-0.7-password.patch 3906 SHA256 e56637318c9baa9e85525dc92c6be170713529af834a5bb6871238d374c0a365 SHA512 5f04d4d54aaf5f459e1aa87f56b3920fc039303f6c1c6d0f205bc1937b9c5263e5a51224838ee7aab1b73e0df6c312620caeba9dd2388e1b5b7bdf8253a56fc0 WHIRLPOOL b3d34b6168f381121e49dc918258695fa1e36c10fb82f495fb9d6f57e2659a71eccc42481deaf0cb9c1e5ef236d367d6a79676fa5251533b283a79e8073c4710 +AUX atftp-0.7-pcre.patch 661 SHA256 53cb989038e1c5520104c837cb086ffbb20afb6555f42782f78fd05bcea9f304 SHA512 773ecc9aa63a9ffb2774ca5454daf573813f988defa6e6f8e9f99cfcc88c7984632b6d1944994c2dd6426200057a552743b9c30d5c158f469a9a74b3cd0c5dff WHIRLPOOL c2a7a02db827070c98c013e7d380b6cb08a7ce87a4549bc8989e75dfc225dae054665354158eaca7ead1eecf9a3e12dcf55527bd185ead32f35732414945e6fb +AUX atftp-0.7-spaced_filename.patch 2395 SHA256 0d93d85295d5e5ad79783b7e45e8c7f5ee061956adf1f160f5647fcb418bdac7 SHA512 f6b352105d40fd4de2b079e847c7e6230ebeef3d2c5568aa260f7c74b22962c168928b38a244e3784e6ba282b47ae09d28b572c36944360f5bf8d880d16aeb64 WHIRLPOOL e5726c0aaae31085099bf7bc33597732100d02e9bff390de2a1b51d7d2b8b6c4dff179ed1352199be4b748edfe08bd3dacbdc068ab34b68c82e21b22cb5832f6 +AUX atftp-0.7-tests.patch 582 SHA256 00e04546214265b0e9d03a0f8182837909825fef111e53a7b23d9e6a382a9d54 SHA512 93863aed523c9787f37b671caa894a92e864b009dd5c028066f7e10e50cefce955f3cf9a24ecc702c3ce572bd88fa6a47d524af08ecbaa6ff116487a68393ea8 WHIRLPOOL 001b1d907dc6d0a03a70d6e4c0a0f4f698098a02cc441bde1c7a18d13eae59bbce76727b5dffbe83222611636fe7d7fd550c0c98107717c441afc540c278dde5 +AUX atftp.confd 105 SHA256 a2dc012a0ecd94f27950901b18a54ecc744630da4c7cd8939b3f11be07685645 SHA512 cdbd63df16c2cee7491209de8ec44e05e10beccc6286cf7cb1c5dc7731c616d41bc94ce4d6c020b4ac8bb77b27956e9ee36d9b5703dcd3477e8b14927d154b91 WHIRLPOOL 85ea4d5e802b503740c6220c57dcc4c104d9015818f2a487e0e02338c634a3132134243273911615d3c7583a7bae3d2d24a77b866b1ee6ad0f34dd2e3d9b7db3 +AUX atftp.init 438 SHA256 ecd4c898bc508ebf031ba84b27f19345e4c3606c447bffd62ea35553286f4ec5 SHA512 b64f78658d2da17a4fe4237835c0a6a0cc59d0b7278e8f6f49673ffd8a97a9473e4773b43bcc70d312043ee4324d8105c50f0cfcf6055c0755ce598c9d7e5a23 WHIRLPOOL 9d1bd8a1d49dbdd3cd8b6a053e97ce365b1af49f66696eaf68a51542551f51634cf32c7927dde9534c3fefe53c5b0c659cfe77abe4a1e102e0108397e3123d45 +AUX atftp.service 233 SHA256 f7b7a98fa22df5b991efdb47cfc4ebd9e22e94d189a168143b7be6093a7249fb SHA512 533372c4863e39d6139ddc491c2b2b2051f1094a90d9854879f28bae7975c8dc997696318794cd1136f9cc542a8f418ad8361b87dd6b3455445d8528d2cc993a WHIRLPOOL e6bb1033fede9ac9dbb9f61af399f14a61b1c8cd7e7d6dad22618f55f8c2110e08792305a0dc476a73d8ce988841bd88426adf5ada03bee5eed7e241b3df93fc +AUX atftp.service.conf 45 SHA256 a33d187f60ab600e78b88b9198096a4638b6216226a286a013a2731e7ad0d1fc SHA512 661befb6873eee6c0ed25fd5cb156e3d7c4ef801d2f58cda8df0f0c5fd851c7eb28089a9399529164c61505963e9d10143df2195d57ff66f85ad0e2750fbbd57 WHIRLPOOL cecfa44b85c55281b2f729b505f1bcc900345c1906872cc947a4bd540e5c09e5f7fcc6dd84004edc4434158747af56403fb1e50a965ff7ecc14a6400c222a19b +DIST atftp-0.7.tar.gz 202234 SHA256 9c548c44d3cfdf259118d9fd4e468e1fe4567456dbff8ff59838c5f70ef62ea3 SHA512 81c51b613a640f7db4d26da0fb891bda345d11d3f39e0af37f393d2abf619094c1de83f92f04ac75367f546cc70e37d7d47c1535c241c941036fd4df7863a440 WHIRLPOOL 6af7ae6603ce44a17d5368c794c9e01b1bb03baa0406926ef35d9083dc77c57f9a7f3cfb9a5fb9231330f739f417c06a81089dd58f33c5d06682cdbef4be42bd +DIST atftp_0.7-11.diff.gz 26055 SHA256 77accd1f5b5d4759fe9572f7a917c629e35692e484ac4dc6fd4415fe745036ff SHA512 28747f8f3ef2fc3b122361f682fe26ba93acf09b190f61efb3cfcbb6bdeef78cfe1348aeaf1699003a7e02586579be670d85b65baad1b1165a4bec9a9279adb5 WHIRLPOOL 9dc3678862d994810bdbfae2189c074345fa895dd8d2612dea155774abb804a3d7dee1465e4b0a2beec7a429440d0d971a3d67db57d43341b87f3533b72bea8a +EBUILD atftp-0.7-r3.ebuild 1834 SHA256 55558c7674c28e58aa486b64aba065b093f7ae88879281e27ef926f92d8dd0e4 SHA512 a2cd6c88e1cabfbdfcc0829e8152132002a8f1695f11fbc80f576022470455a9f847316c79379e6e571fcec048c9f38e896f340a1945b0e45a0794c7968a51a2 WHIRLPOOL 11510365a2679b96ccd36793afc81fd190cd7c7c6b6e544a225d7c9949229ef2086d1917dde0cdf42e8e2bc7d16a3d3bc5e90fd4624b826310973a512e474849 +EBUILD atftp-0.7-r5.ebuild 1752 SHA256 29c21d7fe2f50d9407324b14e9e037d795043edc239e4f9287c50b26f98c32a1 SHA512 02813b38b258795a361c3cc69e57637c67e35867117fcdd1cf0442de13c240de7bcb1bb34e810dcff46ea796cb2ea53e8a6002d945f5c8849bd811d4d4e905a2 WHIRLPOOL 0573e71914844209d8ffdc735d0583f78852f8c80a641663b6a31ac83260605973fca9145e2d6eb8fedf53c6af4984d2666657982e1bc5170c8cb7b14c657c4a +MISC ChangeLog 3293 SHA256 10b159295591b6c44c183d5af131dd02e911b7b8b485b7907623aabdba5bd146 SHA512 c05066fefbd7f0c46ec471aa851b818f5fee6b97993b7eb9d08f236ac1d94ea28e5858b2b7b4e65790d898bfe37b8becd3ad5b6e1be49ffa516912e62503efb8 WHIRLPOOL 07dc688f2875bf4e473ddf07db4f5fb0846c054605e054026332ef3b0ef096d19481f3a8cc97ab32edf50c4564f09b80eb70e089b5952d0a07a0bce48b7fc67a +MISC ChangeLog-2015 6224 SHA256 8429fb5eb944ee77cbc9e5fa23cd03d18e2bd86a04b8d47241eb7c0a520e88ff SHA512 b5730c2f690fccf8531a1a21f9a9daad69ba19f7136915b35086a198ca15a025c8cdccb202273454c8cf53d6a9d71f443dfe5ad4fcee724a294de7d4148af1b6 WHIRLPOOL 4a18d219f9e487621f818a5c4eb8a55a2f8195b19be8be16c4b033a2df5abfa0f251e585929502bd9e056ea62f741669f164a8d20ca0c16dbbc6aa6a76f60f1b +MISC metadata.xml 215 SHA256 ce3a50f663af586ec3cad6cd8f8dff2319275bbf99394b189091cb3e12bd4c48 SHA512 dfbc3b8198f877d6f858c9228f92e82926664db8f0f19cd6ba97ce06b52d93a998e78c44fd502f20bf249cd70d612f1c0bdc01c9d66ea8495c54dab399b62116 WHIRLPOOL 295667ce786c78e3357b52484c4183a5f773bfafb6a71b6d427056f465e03dfe045ab43766de9d52fd58ccfb52e29dd9a493ce17a805bbe278684623da9a6344 diff --git a/net-ftp/atftp/atftp-0.7-r3.ebuild b/net-ftp/atftp/atftp-0.7-r3.ebuild new file mode 100644 index 000000000000..839def958f8e --- /dev/null +++ b/net-ftp/atftp/atftp-0.7-r3.ebuild @@ -0,0 +1,71 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 +inherit eutils flag-o-matic systemd + +DEBIAN_PV="11" +DEBIAN_A="${PN}_${PV}-${DEBIAN_PV}.diff.gz" + +DESCRIPTION="Advanced TFTP implementation client/server" +HOMEPAGE="ftp://ftp.mamalinux.com/pub/atftp/" +SRC_URI="ftp://ftp.mamalinux.com/pub/atftp/${P}.tar.gz + mirror://debian/pool/main/a/${PN}/${DEBIAN_A}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 arm ppc ppc64 ~s390 sparc x86" +IUSE="selinux tcpd readline pcre" + +DEPEND="tcpd? ( sys-apps/tcp-wrappers ) + readline? ( sys-libs/readline ) + pcre? ( dev-libs/libpcre )" +RDEPEND="${DEPEND} + !net-ftp/netkit-tftp + !net-ftp/tftp-hpa + selinux? ( sec-policy/selinux-tftp )" + +src_prepare() { + epatch "${DISTDIR}"/${DEBIAN_A} + epatch "${FILESDIR}"/${P}-pcre.patch + epatch "${FILESDIR}"/${P}-password.patch + epatch "${FILESDIR}"/${P}-tests.patch + epatch "${FILESDIR}"/${P}-glibc24.patch + epatch "${FILESDIR}"/${P}-blockno.patch + epatch "${FILESDIR}"/${P}-spaced_filename.patch + epatch "${FILESDIR}"/${P}-illreply.patch + # remove upstream's broken CFLAGS + sed -i.orig -e \ + '/^CFLAGS="-g -Wall -D_REENTRANT"/s,".*","",g' \ + "${S}"/configure +} + +src_configure() { + append-flags -D_REENTRANT -DRATE_CONTROL + econf \ + $(use_enable tcpd libwrap) \ + $(use_enable readline libreadline) \ + $(use_enable pcre libpcre) \ + --enable-mtftp +} + +src_compile() { + emake CFLAGS="${CFLAGS}" +} + +src_install() { + emake install DESTDIR="${D}" + + newinitd "${FILESDIR}"/atftp.init atftp + newconfd "${FILESDIR}"/atftp.confd atftp + + systemd_dounit "${FILESDIR}"/atftp.service + systemd_install_serviced "${FILESDIR}"/atftp.service.conf + + dodoc README* BUGS FAQ Changelog INSTALL TODO + dodoc "${S}"/docs/* + + docinto test + cd "${S}"/test + dodoc load.sh mtftp.conf pcre_pattern.txt test.sh test_suite.txt +} diff --git a/net-ftp/atftp/atftp-0.7-r5.ebuild b/net-ftp/atftp/atftp-0.7-r5.ebuild new file mode 100644 index 000000000000..dae8d5d1d6d0 --- /dev/null +++ b/net-ftp/atftp/atftp-0.7-r5.ebuild @@ -0,0 +1,72 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +inherit autotools flag-o-matic systemd + +DEBIAN_PV="11" +DEBIAN_A="${PN}_${PV}-${DEBIAN_PV}.diff" + +DESCRIPTION="Advanced TFTP implementation client/server" +HOMEPAGE="ftp://ftp.mamalinux.com/pub/atftp/" +SRC_URI="ftp://ftp.mamalinux.com/pub/atftp/${P}.tar.gz + mirror://debian/pool/main/a/${PN}/${DEBIAN_A}.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 arm ppc ppc64 ~s390 sparc x86" +IUSE="selinux tcpd readline pcre" + +DEPEND="tcpd? ( sys-apps/tcp-wrappers ) + readline? ( sys-libs/readline:0= ) + pcre? ( dev-libs/libpcre )" +RDEPEND="${DEPEND} + !net-ftp/netkit-tftp + !net-ftp/tftp-hpa + selinux? ( sec-policy/selinux-tftp )" + +PATCHES=( + "${WORKDIR}/${DEBIAN_A}" + "${FILESDIR}/${P}-pcre.patch" + "${FILESDIR}/${P}-password.patch" + "${FILESDIR}/${P}-tests.patch" + "${FILESDIR}/${P}-glibc24.patch" + "${FILESDIR}/${P}-blockno.patch" + "${FILESDIR}/${P}-spaced_filename.patch" + "${FILESDIR}/${P}-illreply.patch" + "${FILESDIR}/${P}-CFLAGS.patch" +) + +src_prepare() { + append-cppflags -D_REENTRANT -DRATE_CONTROL + # fix #561720 by restoring pre-GCC5 inline semantics + append-cflags -std=gnu89 + + default + eautoreconf +} + +src_configure() { + econf \ + $(use_enable tcpd libwrap) \ + $(use_enable readline libreadline) \ + $(use_enable pcre libpcre) \ + --enable-mtftp +} + +src_install() { + default + + newinitd "${FILESDIR}"/atftp.init atftp + newconfd "${FILESDIR}"/atftp.confd atftp + + systemd_dounit "${FILESDIR}"/atftp.service + systemd_install_serviced "${FILESDIR}"/atftp.service.conf + + dodoc README* BUGS FAQ Changelog INSTALL TODO + dodoc "${S}"/docs/* + + docinto test + cd "${S}"/test || die + dodoc load.sh mtftp.conf pcre_pattern.txt test.sh test_suite.txt +} diff --git a/net-ftp/atftp/files/atftp-0.7-CFLAGS.patch b/net-ftp/atftp/files/atftp-0.7-CFLAGS.patch new file mode 100644 index 000000000000..566c1791c591 --- /dev/null +++ b/net-ftp/atftp/files/atftp-0.7-CFLAGS.patch @@ -0,0 +1,32 @@ +--- atftp-0.7/configure.ac ++++ atftp-0.7/configure.ac +@@ -66,29 +66,6 @@ + dnl Check for AIX + AC_AIX + +-CFLAGS="-g -Wall -D_REENTRANT" +- +-if test x$debug = xtrue; then +- CFLAGS="$CFLAGS -O0 -DDEBUG" +-else +- if test -n "$auto_cflags"; then +- if test -n "$GCC"; then +- CFLAGS="$CFLAGS -g -O2 -Wall -Wno-implicit" +- else +- case "$host_os" in +- *hpux*) CFLAGS="$CFLAGS +O3" +- ;; +- *ultrix* | *osf*) CFLAGS="$CFLAGS -O -Olimit 2000" +- ;; +- *) CFLAGS="$CFLAGS -O2" +- ;; +- esac +- fi +- else +- CFLAGS="$CFLAGS -O2" +- fi +-fi +- + AC_PROG_MAKE_SET + AC_PROG_INSTALL + diff --git a/net-ftp/atftp/files/atftp-0.7-blockno.patch b/net-ftp/atftp/files/atftp-0.7-blockno.patch new file mode 100644 index 000000000000..6a3184f98bec --- /dev/null +++ b/net-ftp/atftp/files/atftp-0.7-blockno.patch @@ -0,0 +1,136 @@ +--- atftp-0.7/tftp_file.c~ 2010-05-27 13:05:12.000000000 -0500 ++++ atftp-0.7/tftp_file.c 2010-05-27 12:50:05.000000000 -0500 +@@ -133,19 +133,21 @@ + int mcast_sockfd = 0; + struct sockaddr_in sa_mcast; + struct ip_mreq mreq; + struct hostent *host; + int master_client = 0; + unsigned int file_bitmap[NB_BLOCK]; + int prev_bitmap_hole = -1; /* the previous hole found in the bitmap */ + char string[MAXLEN]; ++ int rx_block_number; + + int prev_block_number = 0; /* needed to support netascii convertion */ + int temp = 0; ++ size_t ignore; + + data->file_size = 0; + tftp_cancel = 0; + from.sin_addr.s_addr = 0; + + memset(&sa_mcast, 0, sizeof(struct sockaddr_in)); + memset(&file_bitmap, 0, sizeof(file_bitmap)); + +@@ -300,17 +302,17 @@ + { + connect(sockfd, (struct sockaddr *)&sa, sizeof(sa)); + connected = 1; + } + state = S_OACK_RECEIVED; + break; + case GET_ERROR: + fprintf(stderr, "tftp: error received from server <"); +- fwrite(tftphdr->th_msg, 1, data_size - 4 - 1, stderr); ++ ignore = fwrite(tftphdr->th_msg, 1, data_size - 4 - 1, stderr); + fprintf(stderr, ">\n"); + state = S_ABORT; + break; + case GET_DATA: + number_of_timeout = 0; + /* if the socket if not connected, connect it */ + if (!connected) + { +@@ -513,21 +515,24 @@ + state = S_WAIT_PACKET; + break; + case S_DATA_RECEIVED: + if ((multicast && master_client) || (!multicast)) + timeout_state = S_SEND_ACK; + else + timeout_state = S_WAIT_PACKET; + +- block_number = ntohs(tftphdr->th_block); ++ rx_block_number = ntohs(tftphdr->th_block); + if (data->trace) + fprintf(stderr, "received DATA <block: %d, size: %d>\n", + ntohs(tftphdr->th_block), data_size - 4); + ++ if ((uint16_t)rx_block_number == (uint16_t)(block_number+1)) ++ ++block_number; ++ + if (tftp_file_write(fp, tftphdr->th_data, data->data_buffer_size - 4, block_number, + data_size - 4, convert, &prev_block_number, &temp) + != data_size - 4) + { + + fprintf(stderr, "tftp: error writing to file %s\n", + data->local_file); + tftp_send_error(sockfd, &sa, ENOSPACE, data->data_buffer, +@@ -613,19 +618,21 @@ + int connected; /* 1 when sockfd is connected */ + struct tftphdr *tftphdr = (struct tftphdr *)data->data_buffer; + FILE *fp; /* the local file pointer */ + int number_of_timeout = 0; + struct stat file_stat; + int convert = 0; /* if true, do netascii convertion */ + char string[MAXLEN]; + ++ int ack_block_number; + int prev_block_number = 0; /* needed to support netascii convertion */ + int prev_file_pos = 0; + int temp = 0; ++ size_t ignore; + + data->file_size = 0; + tftp_cancel = 0; + from.sin_addr.s_addr = 0; + + /* make sure the socket is not connected */ + sa.sin_family = AF_UNSPEC; + connect(sockfd, (struct sockaddr *)&sa, sizeof(sa)); +@@ -759,20 +766,23 @@ + case GET_ACK: + number_of_timeout = 0; + /* if the socket if not connected, connect it */ + if (!connected) + { + //connect(sockfd, (struct sockaddr *)&sa, sizeof(sa)); + connected = 1; + } +- block_number = ntohs(tftphdr->th_block); ++ ack_block_number = ntohs(tftphdr->th_block); ++ if ((uint16_t)(block_number+1) == ack_block_number) ++ ++block_number; + if (data->trace) + fprintf(stderr, "received ACK <block: %d>\n", +- block_number); ++ ack_block_number); ++ + if ((last_block != -1) && (block_number > last_block)) + { + state = S_END; + break; + } + state = S_SEND_DATA; + break; + case GET_OACK: +@@ -782,17 +792,17 @@ + { + //connect(sockfd, (struct sockaddr *)&sa, sizeof(sa)); + connected = 1; + } + state = S_OACK_RECEIVED; + break; + case GET_ERROR: + fprintf(stderr, "tftp: error received from server <"); +- fwrite(tftphdr->th_msg, 1, data_size - 4 - 1, stderr); ++ ignore = fwrite(tftphdr->th_msg, 1, data_size - 4 - 1, stderr); + fprintf(stderr, ">\n"); + state = S_ABORT; + break; + case GET_DISCARD: + /* consider discarded packet as timeout to make sure when don't lock up + if routing is broken */ + number_of_timeout++; + fprintf(stderr, "tftp: packet discard <%s:%d>.\n", diff --git a/net-ftp/atftp/files/atftp-0.7-glibc24.patch b/net-ftp/atftp/files/atftp-0.7-glibc24.patch new file mode 100644 index 000000000000..195aec69b021 --- /dev/null +++ b/net-ftp/atftp/files/atftp-0.7-glibc24.patch @@ -0,0 +1,22 @@ +--- atftp-0.7/stats.c.org ++++ atftp-0.7/stats.c +@@ -18,6 +18,7 @@ + + #include <limits.h> + #include <string.h> ++#include <unistd.h> + #include "tftp_def.h" + #include "stats.h" + #include "logger.h" +@@ -157,8 +158,9 @@ + + logger(LOG_INFO, " Load measurements:"); ++ long sc_clk_tck = sysconf(_SC_CLK_TCK); + logger(LOG_INFO, " User: %8.3fs Sys:%8.3fs", +- (double)(s_stats.tms.tms_utime) / CLK_TCK, +- (double)(s_stats.tms.tms_stime) / CLK_TCK); ++ (double)(s_stats.tms.tms_utime) / sc_clk_tck, ++ (double)(s_stats.tms.tms_stime) / sc_clk_tck); + logger(LOG_INFO, " Total:%8.3fs CPU:%8.3f%%", + (double)(tmp.tv_sec + tmp.tv_usec * 1e-6), + (double)(s_stats.tms.tms_utime + s_stats.tms.tms_stime) / diff --git a/net-ftp/atftp/files/atftp-0.7-illreply.patch b/net-ftp/atftp/files/atftp-0.7-illreply.patch new file mode 100644 index 000000000000..0f1cacd9b955 --- /dev/null +++ b/net-ftp/atftp/files/atftp-0.7-illreply.patch @@ -0,0 +1,12 @@ +*** atftp-0.7/tftp_def.old.c 2009-02-28 17:56:12.000000000 +0100 +--- atftp-0.7/tftp_def.c 2009-02-28 17:57:02.000000000 +0100 +*************** +*** 141,146 **** +--- 141,147 ---- + */ + inline char *Strncpy(char *to, const char *from, size_t size) + { ++ if (size <= 0) { *to = '\000'; return to; } + to[size-1] = '\000'; + return strncpy(to, from, size - 1); + } diff --git a/net-ftp/atftp/files/atftp-0.7-password.patch b/net-ftp/atftp/files/atftp-0.7-password.patch new file mode 100644 index 000000000000..26b59085dde5 --- /dev/null +++ b/net-ftp/atftp/files/atftp-0.7-password.patch @@ -0,0 +1,94 @@ +diff -Naur atftp-0.7.orig/tftp.c atftp-0.7/tftp.c +--- atftp-0.7.orig/tftp.c 2004-03-15 18:55:56.000000000 -0500 ++++ atftp-0.7/tftp.c 2005-08-29 21:40:06.000000000 -0400 +@@ -525,6 +525,10 @@ + fprintf(stderr, " multicast: enabled\n"); + else + fprintf(stderr, " multicast: disabled\n"); ++ if (data.tftp_options[OPT_PASSWORD].specified) ++ fprintf(stderr, " password: enabled\n"); ++ else ++ fprintf(stderr, " password: disabled\n"); + return ERR; + } + /* if disabling an option */ +@@ -971,6 +975,7 @@ + { "put", 0, NULL, 'p'}, + { "local-file", 1, NULL, 'l'}, + { "remote-file", 1, NULL, 'r'}, ++ { "password", 1, NULL, 'P'}, + { "tftp-timeout", 1, NULL, 'T'}, + { "mode", 1, NULL, 'M'}, + { "option", 1, NULL, 'O'}, +@@ -993,7 +998,7 @@ + }; + + /* Support old argument until 0.8 */ +- while ((c = getopt_long(argc, argv, /*"gpl:r:Vh"*/ "gpl:r:Vht:b:sm", ++ while ((c = getopt_long(argc, argv, /*"gpl:r:Vh"*/ "gpl:r:Vht:b:smP:", + options, &option_index)) != EOF) + { + switch (c) +@@ -1028,6 +1033,11 @@ + else + action = PUT; + break; ++ case 'P': ++ snprintf(string, sizeof(string), "option password %s", optarg); ++ make_arg(string, &ac, &av); ++ process_cmd(ac, av); ++ break; + case 'l': + interactive = 0; + Strncpy(local_file, optarg, MAXLEN); +@@ -1169,6 +1179,7 @@ + " -p, --put : put file\n" + " -l, --local-file <file> : local file name\n" + " -r, --remote-file <file> : remote file name\n" ++ " -P, --password <password>: specify password (Linksys ext.)\n" + " --tftp-timeout <value> : delay before retransmission, client side\n" + #if 0 + " t, --timeout <value> : delay before retransmission, " +diff -Naur atftp-0.7.orig/tftp_def.c atftp-0.7/tftp_def.c +--- atftp-0.7.orig/tftp_def.c 2004-02-12 22:16:09.000000000 -0500 ++++ atftp-0.7/tftp_def.c 2005-08-29 21:36:57.000000000 -0400 +@@ -37,6 +37,7 @@ + { "timeout", "5", 0, 1 }, /* 2348, 2349, 2090. */ + { "blksize", "512", 0, 1 }, /* This is the default option */ + { "multicast", "", 0, 1 }, /* structure */ ++ { "password", "", 0, 1}, /* password */ + { "", "", 0, 0} + }; + +diff -Naur atftp-0.7.orig/tftp_def.h atftp-0.7/tftp_def.h +--- atftp-0.7.orig/tftp_def.h 2004-02-12 22:16:09.000000000 -0500 ++++ atftp-0.7/tftp_def.h 2005-08-29 20:16:27.000000000 -0400 +@@ -40,6 +40,7 @@ + #define OPT_TIMEOUT 3 + #define OPT_BLKSIZE 4 + #define OPT_MULTICAST 5 ++#define OPT_PASSWORD 6 + #define OPT_NUMBER 7 + + #define OPT_SIZE 12 +diff -Naur atftp-0.7.orig/tftp_io.c atftp-0.7/tftp_io.c +--- atftp-0.7.orig/tftp_io.c 2004-02-18 20:30:00.000000000 -0500 ++++ atftp-0.7/tftp_io.c 2005-08-29 22:05:11.000000000 -0400 +@@ -70,10 +70,13 @@ + break; + if (tftp_options[i].enabled && tftp_options[i].specified) + { +- Strncpy(data_buffer + buf_index, tftp_options[i].option, +- data_buffer_size - buf_index); +- buf_index += strlen(tftp_options[i].option); +- buf_index++; ++ if (i != OPT_PASSWORD) ++ { ++ Strncpy(data_buffer + buf_index, tftp_options[i].option, ++ data_buffer_size - buf_index); ++ buf_index += strlen(tftp_options[i].option); ++ buf_index++; ++ } + Strncpy(data_buffer + buf_index, tftp_options[i].value, + data_buffer_size - buf_index); + buf_index += strlen(tftp_options[i].value); diff --git a/net-ftp/atftp/files/atftp-0.7-pcre.patch b/net-ftp/atftp/files/atftp-0.7-pcre.patch new file mode 100644 index 000000000000..1f24b67471e2 --- /dev/null +++ b/net-ftp/atftp/files/atftp-0.7-pcre.patch @@ -0,0 +1,14 @@ +--- atftp-0.7/tftpd_pcre.c~ 2005-10-17 23:14:52.000000000 +0200 ++++ atftp-0.7/tftpd_pcre.c 2005-10-17 23:14:52.000000000 +0200 +@@ -211,9 +211,9 @@ + chp++; /* point to value indicating substring */ + rc = pcre_get_substring(str, ovector, matches, *chp - 0x30, &tmpstr); + /* found string */ +- if (rc > 0) ++ if (rc > 0 && outchp - outstr + rc+1 < outsize) + { +- Strncpy(outchp, tmpstr, rc); ++ Strncpy(outchp, tmpstr, rc+1); + outchp += rc; + pcre_free_substring(tmpstr); + continue; diff --git a/net-ftp/atftp/files/atftp-0.7-spaced_filename.patch b/net-ftp/atftp/files/atftp-0.7-spaced_filename.patch new file mode 100644 index 000000000000..da96d9f6b820 --- /dev/null +++ b/net-ftp/atftp/files/atftp-0.7-spaced_filename.patch @@ -0,0 +1,96 @@ +--- atftp-0.7/tftp.c~ 2010-06-03 08:51:14.000000000 -0500 ++++ atftp-0.7/tftp.c 2010-06-03 09:40:56.000000000 -0500 +@@ -18,16 +18,17 @@ + #include "config.h" + + #include <stdio.h> + #include <stdlib.h> + #include <string.h> + #include <unistd.h> + #include <getopt.h> + #include <string.h> ++#include <stdarg.h> + + #include <sys/types.h> + #include <sys/socket.h> + #include <netinet/in.h> + #include <arpa/inet.h> + #include <netdb.h> + + #include <signal.h> +@@ -344,16 +345,41 @@ + + /* If no names matched, then return NULL. */ + return NULL; + } + # endif + #endif + + /* ++ * set argc/argv from variadic string arguments ++*/ ++void make_arg_vector(int *argc, char***argv, ...) ++{ ++ char **p; ++ char *s; ++ va_list argp; ++ ++ // how many args? ++ *argc = 0; ++ va_start(argp, argv); ++ while ( (s=va_arg(argp, char*)) ) ++ ++*argc; ++ ++ // allocate storage ++ *argv = malloc(*argc * sizeof (char*)); ++ ++ // store args ++ p = *argv; ++ va_start(argp, argv); ++ while ( (s=va_arg(argp, char*)) ) ++ *p++ = s; ++} ++ ++/* + * Split a string into args. + */ + void make_arg(char *string, int *argc, char ***argv) + { + static char *tmp = NULL; + size_t argz_len; + + /* split the string to an argz vector */ +@@ -1142,30 +1168,26 @@ + argv[optind+1]); + make_arg(string, &ac, &av); + process_cmd(ac, av); + } + + if (!interactive) + { + if (action == PUT) +- snprintf(string, sizeof(string), "put %s %s", local_file, +- remote_file); ++ make_arg_vector(&ac,&av,"put",local_file,remote_file,NULL); + else if (action == GET) +- snprintf(string, sizeof(string), "get %s %s", remote_file, +- local_file); ++ make_arg_vector(&ac,&av,"get",remote_file,local_file,NULL); + else if (action == MGET) +- snprintf(string, sizeof(string), "mget %s %s", remote_file, +- local_file); ++ make_arg_vector(&ac,&av,"mget",remote_file,local_file,NULL); + else + { + fprintf(stderr, "No action specified in batch mode!\n"); + exit(ERR); + } +- make_arg(string, &ac, &av); + if (process_cmd(ac, av) == ERR) + exit(ERR); + } + return OK; + } + + void tftp_usage(void) + { diff --git a/net-ftp/atftp/files/atftp-0.7-tests.patch b/net-ftp/atftp/files/atftp-0.7-tests.patch new file mode 100644 index 000000000000..9e087950e659 --- /dev/null +++ b/net-ftp/atftp/files/atftp-0.7-tests.patch @@ -0,0 +1,23 @@ +diff -Naur atftp-0.7.orig/test/test.sh atftp-0.7/test/test.sh +--- atftp-0.7.orig/test/test.sh 2003-04-28 21:59:51.000000000 -0400 ++++ atftp-0.7/test/test.sh 2005-10-26 22:42:15.000000000 -0400 +@@ -151,7 +151,7 @@ + test_blocksize 1428 + test_blocksize 16000 + test_blocksize 64000 +-test_blocksize 65465 ++test_blocksize 65464 + + # + # testing fot tsize +@@ -162,9 +162,9 @@ + TSIZE=`grep "OACK <tsize:" out | sed -e "s/[^0-9]//g"` + if [ "$TSIZE" != "2048" ]; then + echo "ERROR (server report $TSIZE bytes but it should be 2048)" ++ ERROR=1 + else + echo "OK" +- ERROR=1 + fi + + # diff --git a/net-ftp/atftp/files/atftp.confd b/net-ftp/atftp/files/atftp.confd new file mode 100644 index 000000000000..a46a7047dbb6 --- /dev/null +++ b/net-ftp/atftp/files/atftp.confd @@ -0,0 +1,4 @@ +# Config file for tftp server + +TFTPD_ROOT="/tftproot" +TFTPD_OPTS="--daemon --user nobody --group nobody" diff --git a/net-ftp/atftp/files/atftp.init b/net-ftp/atftp/files/atftp.init new file mode 100644 index 000000000000..8ab499127ba4 --- /dev/null +++ b/net-ftp/atftp/files/atftp.init @@ -0,0 +1,28 @@ +#!/sbin/openrc-run + +depend() { + use logger + need net +} + +checkconfig() { + if [ ! -d ${TFTPD_ROOT} ] + then + eerror "You need a tftp root directory" + return 1 + fi +} + +start() { + checkconfig || return 1 + ebegin "Starting tftpd" + start-stop-daemon --start --quiet --exec /usr/sbin/in.tftpd \ + -- ${TFTPD_OPTS} ${TFTPD_ROOT} + eend $? +} + +stop() { + ebegin "Stopping tftpd" + start-stop-daemon --stop --quiet --exec /usr/sbin/in.tftpd + eend $? +} diff --git a/net-ftp/atftp/files/atftp.service b/net-ftp/atftp/files/atftp.service new file mode 100644 index 000000000000..e6570f63445c --- /dev/null +++ b/net-ftp/atftp/files/atftp.service @@ -0,0 +1,9 @@ +[Unit] +Description=Advanced TFTP implementation client/server +After=syslog.target network.target + +[Service] +ExecStart=/usr/sbin/atftpd --daemon --no-fork --user nobody --group nobody $TFTPD_ROOT + +[Install] +WantedBy=multi-user.target diff --git a/net-ftp/atftp/files/atftp.service.conf b/net-ftp/atftp/files/atftp.service.conf new file mode 100644 index 000000000000..d8aa19abe32f --- /dev/null +++ b/net-ftp/atftp/files/atftp.service.conf @@ -0,0 +1,2 @@ +[Service] +Environment="TFTPD_ROOT=/tftproot" diff --git a/net-ftp/atftp/metadata.xml b/net-ftp/atftp/metadata.xml new file mode 100644 index 000000000000..cf1190698b2e --- /dev/null +++ b/net-ftp/atftp/metadata.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer type="person"> +<email>klausman@gentoo.org</email> +</maintainer> +</pkgmetadata> |