List of commits:
Subject Hash Author Date (UTC)
Duilder updates. f2b462384459025a3ffdcb8ebffcb070d8289ca7 Catalin(ux) M. BOIE 2011-08-22 21:29:51
Bump version to 0.8. e330ad91c75eeb6e627c6725b17fcc69d01eac50 Catalin(ux) M. BOIE 2011-08-22 15:17:00
Added a good example for tc prio classification. 32b9078e47fccc09527ca2c11904f82879934da3 Catalin(ux) M. BOIE 2011-08-22 15:16:21
Added support for multiple connections and chunk size for send_udp example. eff367aa527ed763fe525832891e0fc0df9badbb Catalin(ux) M. BOIE 2011-08-22 14:58:13
Do not count the time spent in sleep! e585e5e0b0b3ce0637674cf320a6f044afa42982 Catalin(ux) M. BOIE 2011-08-22 14:57:28
Give a real example for bandwidth enforcing. ca829bcb14183f7f5aa180bed4bf633199dc5839 Catalin(ux) M. BOIE 2011-08-22 14:57:01
Added possibility to force skb priority field (SO_PRIORITY). 9b4b2a6b03ff7573041a7ed96c86e7bcda86c580 Catalin(ux) M. BOIE 2011-08-06 21:55:43
Added support for FWMARK. 648b09b84fcd5bc17aaa7d6ba2bf2bfeeea583f7 Catalin(ux) M. BOIE 2011-08-06 21:35:23
Added support for IPv6 flowinfo (class + label). c23cc6042893fb98986b5aa38c146b7aec488079 Catalin(ux) M. BOIE 2011-08-06 21:11:46
Added support for connecting clients (socket -> connect or socket -> sendto). 8f94255890a99d4890206e53f031ffad79c55866 Catalin(ux) M. BOIE 2011-08-05 21:15:38
Bump version to 0.7. 1a51b690a50c482c9e727b3e8e129bbc2890f600 Catalin(ux) M. BOIE 2011-06-21 17:06:25
Corrected description and license. 708b98d98bb5704f3bd265928f07cc94c18bd212 Catalin(ux) M. BOIE 2011-06-21 17:06:04
Bump version to 0.6. cb4ef5c142753802f9dcd2410d094f9914e8273c Catalin(ux) M. BOIE 2011-06-21 16:56:15
Added support for separate FORCE_ADDR for IPv4 and IPv6, MSS, TTL etc. e32e97cafe360f192283168d76c327559282e24d Catalin(ux) M. BOIE 2011-06-21 16:55:12
Added TODO to %doc rpm section. 086dbb2e078955dddf83cbfd65998334d6db81e4 Catalin(ux) M. BOIE 2010-12-19 19:46:20
Added MSS. 9a5c3676567cb92e6c0b4106c2b97cd2da2273a5 Catalin(ux) M. BOIE 2010-12-14 17:00:37
Added TOS test script. a4b1b05b27b3eaa06a4a71f656e1b80731d1b8ff Catalin(ux) M. BOIE 2010-12-14 16:55:03
Ignore Changelog-last file. 1bfa5decd11f4fd95e4b002d88e2a2e04c747855 Catalin(ux) M. BOIE 2010-12-14 16:54:36
Added KA. ec9b4556e51ca9a807400910f8ca6d698f9ad670 Catalin(ux) M. BOIE 2010-12-14 16:53:58
Bump up the version to 0.5. f7ba7f0feb49ac4942d85903d31e085f1ffa6149 Catalin(ux) M. BOIE 2010-11-07 23:16:25
Commit f2b462384459025a3ffdcb8ebffcb070d8289ca7 - Duilder updates.
Author: Catalin(ux) M. BOIE
Author date (UTC): 2011-08-22 21:29
Committer name: Catalin(ux) M. BOIE
Committer date (UTC): 2011-08-22 21:29
Parent(s): e330ad91c75eeb6e627c6725b17fcc69d01eac50
Signing key:
Tree: 43b17a957294b744db0e67486f4d9ddd22bb54a7
File Lines added Lines deleted
duilder 56 50
File duilder changed (mode: 100755) (index 62411b6..9331473)
... ... function duilder_final()
10 10
11 11 # Run release script # Run release script
12 12 if [ ! -z "${RELEASE_SCRIPT}" -a -x "${RELEASE_SCRIPT}" ]; then if [ ! -z "${RELEASE_SCRIPT}" -a -x "${RELEASE_SCRIPT}" ]; then
13 echo "Running ${RELEASE_SCRIPT}..."
13 echo "[*] Running ${RELEASE_SCRIPT}..."
14 14 ${RELEASE_SCRIPT} ${RELEASE_SCRIPT}
15 15 fi fi
16 16 } }
 
... ... function duilder_docs()
22 22 EXPORT_PATH="${3}" EXPORT_PATH="${3}"
23 23
24 24 if [ ! -d "${EXPORT_PATH}" ]; then if [ ! -d "${EXPORT_PATH}" ]; then
25 echo "WARN: ${EXPORT_PATH} does not exists. Skipping..."
26 return
25 echo "[*] WARN: ${EXPORT_PATH} does not exists. Creating it..."
26 mkdir -p "${EXPORT_PATH}"
27 27 fi fi
28 28
29 echo "Copying docs to [${EXPORT_PATH}]..."
29 echo "[*] Copying docs to [${EXPORT_PATH}]..."
30 30 for f in README License LICENSE Changelog Changelog-last TODO FAQ INSTALL; do for f in README License LICENSE Changelog Changelog-last TODO FAQ INSTALL; do
31 31 if [ -r "${f}" ]; then if [ -r "${f}" ]; then
32 32 cp -vp "${f}" "${EXPORT_PATH}/" cp -vp "${f}" "${EXPORT_PATH}/"
33 33 fi fi
34 34 done done
35 echo
35 36
36 37 if [ -d "screenshot" ]; then if [ -d "screenshot" ]; then
37 echo "Copying screenshots..."
38 echo "[*] Copying screenshots..."
38 39 mkdir -p "${EXPORT_PATH}" mkdir -p "${EXPORT_PATH}"
39 40 cp -vp screenshot/* "${EXPORT_PATH}/" cp -vp screenshot/* "${EXPORT_PATH}/"
41 echo
40 42 fi fi
41 43 } }
42 44
 
... ... function duilder_git()
49 51 GIT_PUSH="${5}" GIT_PUSH="${5}"
50 52
51 53 if [ ! -x /usr/bin/git ]; then if [ ! -x /usr/bin/git ]; then
52 echo "Warning: Git not found!"
54 echo "[*] Warning: Git not found!"
53 55 exit 0 exit 0
54 56 fi fi
55 57
56 58 if [ ! -d .git ]; then if [ ! -d .git ]; then
57 echo "Warning: I cannot find .git directory!"
59 echo "[*] Warning: I cannot find .git directory!"
58 60 exit 0 exit 0
59 61 fi fi
60 62
61 63 if [ "${EXPORT_GIT}" = "1" ]; then if [ "${EXPORT_GIT}" = "1" ]; then
62 echo "Generate GIT tree for HTTP transport..."
64 echo "[*] Generating GIT tree for HTTP transport..."
63 65 if [ ! -d "${GIT_DEST}/${PRJ}.git" ]; then if [ ! -d "${GIT_DEST}/${PRJ}.git" ]; then
64 66 git clone --bare . "${GIT_DEST}/${PRJ}.git" git clone --bare . "${GIT_DEST}/${PRJ}.git"
65 67
 
... ... function duilder_git()
93 95 echo -n > Changelog echo -n > Changelog
94 96
95 97 # get the list of tags # get the list of tags
96 i=0
97 98 number_of_tags=0 number_of_tags=0
98 for tag in `git tag -l`; do
99 if [ "${tag:0:1}" != "v" ]; then
100 # skip other kind of tags beside versions
101 continue
102 fi
103
104 tags[${i}]=${tag}
105 tags_commit[${i}]=`git show-ref ${tag} | cut -d' ' -f1`
99 while read sha1 full_tag; do
100 tag=`echo ${full_tag} | sed -e 's#refs/tags/##' | cut -d'^' -f1`
101 echo "tag ${tag}, sha1 ${sha1}"
102 tags[${number_of_tags}]=${tag}
103 tags_commit[${number_of_tags}]=${sha1}
106 104 number_of_tags=$[${number_of_tags}+1] number_of_tags=$[${number_of_tags}+1]
107
108 i=$[${i}+1]
109 done
105 done < <(git show-ref --tags -d | grep refs/tags/v)
110 106
111 107 # get the list of commits, test if is a tag and do the diff # get the list of commits, test if is a tag and do the diff
112 108 prev="" prev=""
 
... ... function duilder_srpm()
165 161 P="${PRJ}-${VER}" P="${PRJ}-${VER}"
166 162
167 163 if [ ! -d "${EXPORT_PATH}" ]; then if [ ! -d "${EXPORT_PATH}" ]; then
168 echo "WARN: ${EXPORT_PATH} does not exists. Skipping..."
169 return
164 echo "WARN: ${EXPORT_PATH} does not exists. Creating it..."
165 mkdir -p "${EXPORT_PATH}"
170 166 fi fi
171 167
172 168 if [ "${BUILD_SRPM}" != "1" ]; then if [ "${BUILD_SRPM}" != "1" ]; then
173 169 exit 0 exit 0
174 170 fi fi
175 171
176 echo "Building SRPM..."
172 echo "[*] Building SRPM..."
177 173 rpmbuild -ts "${P}.tar.gz" rpmbuild -ts "${P}.tar.gz"
174 echo
178 175
179 PKG="${RPMBUILD}/SRPMS/${P}-1.src.rpm"
176 PKG="${RPMBUILD}/SRPMS/${P}-${REV}.src.rpm"
180 177
181 178 # Run a rpmlint on it # Run a rpmlint on it
182 179 if [ -x /usr/bin/rpmlint ]; then if [ -x /usr/bin/rpmlint ]; then
183 180 echo "[*] RPMlinting..." echo "[*] RPMlinting..."
184 181 rpmlint -iv "${PKG}" > rpmlint.out rpmlint -iv "${PKG}" > rpmlint.out
182 else
183 echo "[*] WARN: rpmlint is missing!"
185 184 fi fi
186 185
187 186 if [ ! -z "${SRPM_DEST}" ]; then if [ ! -z "${SRPM_DEST}" ]; then
188 echo "Copying [${PKG}] to [${SRPM_DEST}]..."
187 echo "[*] Copying [${PKG}] to [${SRPM_DEST}]..."
189 188 cp -vp "${PKG}" "${SRPM_DEST}/" cp -vp "${PKG}" "${SRPM_DEST}/"
189 echo
190 190 fi fi
191 191
192 echo "Copying to export dir [${EXPORT_PATH}]..."
192 echo "[*] Copying to export dir [${EXPORT_PATH}]..."
193 193 mkdir -p "${EXPORT_PATH}" mkdir -p "${EXPORT_PATH}"
194 194 cp -vp "${PKG}" "${EXPORT_PATH}/" cp -vp "${PKG}" "${EXPORT_PATH}/"
195 echo
195 196
196 197 if [ -x "${SRPM_POST_RUN}" ]; then if [ -x "${SRPM_POST_RUN}" ]; then
197 echo "Running post SRPM build script [${SRPM_POST_RUN}]..."
198 echo "[*] Running post SRPM build script [${SRPM_POST_RUN}]..."
198 199 ${SRPM_POST_RUN} "${PKG}" ${SRPM_POST_RUN} "${PKG}"
199 200 fi fi
200 201 } }
 
... ... function duilder_tar()
209 210 P="${PRJ}-${VER}" P="${PRJ}-${VER}"
210 211
211 212 if [ ! -d "${EXPORT_PATH}" ]; then if [ ! -d "${EXPORT_PATH}" ]; then
212 echo "WARN: ${EXPORT_PATH} does not exists. Skipping..."
213 return
213 echo "[*] WARN: ${EXPORT_PATH} does not exists. Creating it..."
214 mkdir -p "${EXPORT_PATH}"
214 215 fi fi
215 216
216 echo "Generating tarball [${P}.tar.gz]..."
217 echo "[*] Generating tarball [${P}.tar.gz]..."
217 218 ADD_EXCLUDE="" ADD_EXCLUDE=""
218 219 if [ ! -z "${EXCLUDE}" ]; then if [ ! -z "${EXCLUDE}" ]; then
219 220 ADD_EXCLUDE="--exclude-from ${P}/${EXCLUDE}" ADD_EXCLUDE="--exclude-from ${P}/${EXCLUDE}"
 
... ... function duilder_tar()
230 231 && rm -rf "${P}" && rm -rf "${P}"
231 232 ) )
232 233
233 echo "Copying source to ${EXPORT_PATH}/..."
234 echo "[*] Copying source to ${EXPORT_PATH}..."
234 235 mkdir -p "${EXPORT_PATH}" mkdir -p "${EXPORT_PATH}"
235 236 cp -vp "${P}.tar.gz" "${EXPORT_PATH}/" cp -vp "${P}.tar.gz" "${EXPORT_PATH}/"
237 echo
236 238 } }
237 239
238 240 #################################################################### ####################################################################
 
... ... fi
246 248
247 249
248 250 if [ ! -r duilder.conf ]; then if [ ! -r duilder.conf ]; then
249 echo "You must build a duilder.conf file!"
251 echo "[*] You must build a duilder.conf file!"
250 252 exit 1 exit 1
251 253 fi fi
252 254
 
... ... if [ -z "${PRJ}" ]; then
263 265 fi fi
264 266
265 267 if [ -z "${VER}" ]; then if [ -z "${VER}" ]; then
266 echo "ERROR: PRJ= parameter is missing."
268 echo "ERROR: VER= parameter is missing."
267 269 exit 1 exit 1
268 270 fi fi
269 271
 
... ... fi
309 311
310 312
311 313 ###### Main stuff ###### Main stuff
312 echo
313 echo "Duilder builder script"
314 echo "Copyright Catalin(ux) M. BOIE"
315 echo
316 echo "PRJ=${PRJ}, VER=${VER}, REV=${REV}"
317 echo "System: `uname -a`"
314 echo "[*] Duilder builder script"
315 echo "[*] Copyright Catalin(ux) M. BOIE - catab at embedromix dot ro"
316 echo "[*] PRJ=${PRJ}, VER=${VER}, REV=${REV}"
317 echo "[*] System: `uname -a`"
318 318
319 319 ETC="/etc" ETC="/etc"
320 320 BIN="/bin" BIN="/bin"
 
... ... USR_SHARE="/usr/share"
326 326 USR_SHARE_DOC="/usr/share/doc/${PRJ}-${VER}" USR_SHARE_DOC="/usr/share/doc/${PRJ}-${VER}"
327 327 SBIN="/usr/sbin" SBIN="/usr/sbin"
328 328 VAR="/var" VAR="/var"
329 VAR_LOG="/var/log/${PRJ}"
330 329
331 330 while [ "${1}" != "" ]; do while [ "${1}" != "" ]; do
332 331 VAR="`echo ${1} | cut -d'=' -f1`" VAR="`echo ${1} | cut -d'=' -f1`"
 
... ... while [ "${1}" != "" ]; do
357 356 shift shift
358 357 done done
359 358
359 # Last fixes
360 VAR_LOG="${VAR}/log"
361 VAR_RUN="${VAR}/run"
362
363
360 364 # Truncate future sed file # Truncate future sed file
361 365 > tmp.sed > tmp.sed
362 366
363 367 DB_SUPPORT=0 DB_SUPPORT=0
364 368
365 echo -n "Searching for PostgreSQL..."
369 echo -n "[*] Searching for PostgreSQL..."
366 370 set +e set +e
367 371 PG_VERSION="`pg_config --version 2>/dev/null`" PG_VERSION="`pg_config --version 2>/dev/null`"
368 372 set -e set -e
 
... ... fi
385 389 echo "s#@PG_FOUND@#${PG_FOUND}#g" >> tmp.sed echo "s#@PG_FOUND@#${PG_FOUND}#g" >> tmp.sed
386 390
387 391
388 echo -n "Searching for MySQL..."
392 echo -n "[*] Searching for MySQL..."
389 393 set +e set +e
390 394 MYSQL_VERSION="`mysql_config --version 2>/dev/null`" MYSQL_VERSION="`mysql_config --version 2>/dev/null`"
391 395 set -e set -e
 
... ... else
407 411 fi fi
408 412 echo "s#@MYSQL_FOUND@#${MYSQL_FOUND}#g" >> tmp.sed echo "s#@MYSQL_FOUND@#${MYSQL_FOUND}#g" >> tmp.sed
409 413
410 echo -n "Searching for poll..."
414 echo -n "[*] Searching for poll..."
411 415 set +e set +e
412 416 echo -e "#include <poll.h> \n int main(void) { return poll(0, 0, 0); }" | gcc -x c -pipe - -o /dev/null 2>/dev/null echo -e "#include <poll.h> \n int main(void) { return poll(0, 0, 0); }" | gcc -x c -pipe - -o /dev/null 2>/dev/null
413 417 E="${?}" E="${?}"
 
... ... else
420 424 echo "s#@POLL_FOUND@#1#g" >> tmp.sed echo "s#@POLL_FOUND@#1#g" >> tmp.sed
421 425 fi fi
422 426
423 echo -n "Searching for epoll..."
427 echo -n "[*] Searching for epoll..."
424 428 set +e set +e
425 429 echo -e "#include <sys/epoll.h> \n int main(void) { return epoll_create(64); }" | gcc -x c -pipe - -o /dev/null 2>/dev/null echo -e "#include <sys/epoll.h> \n int main(void) { return epoll_create(64); }" | gcc -x c -pipe - -o /dev/null 2>/dev/null
426 430 E="${?}" E="${?}"
 
... ... else
433 437 echo "s#@EPOLL_FOUND@#1#g" >> tmp.sed echo "s#@EPOLL_FOUND@#1#g" >> tmp.sed
434 438 fi fi
435 439
436 echo -n "Searching for ncurses..."
440 echo -n "[*] Searching for ncurses..."
437 441 set +e set +e
438 442 echo -e "#include <ncurses.h> \n int main(void) { initscr(); return 0; }" | gcc -x c -pipe - -o /dev/null -lncurses 2>/dev/null echo -e "#include <ncurses.h> \n int main(void) { initscr(); return 0; }" | gcc -x c -pipe - -o /dev/null -lncurses 2>/dev/null
439 443 E="${?}" E="${?}"
 
... ... echo "s#@SBIN@#${SBIN}#g" >> tmp.sed
457 461 echo "s#@USR_SBIN@#${USR_SBIN}#g" >> tmp.sed echo "s#@USR_SBIN@#${USR_SBIN}#g" >> tmp.sed
458 462 echo "s#@VAR@#${VAR}#g" >> tmp.sed echo "s#@VAR@#${VAR}#g" >> tmp.sed
459 463 echo "s#@VAR_LOG@#${VAR_LOG}#g" >> tmp.sed echo "s#@VAR_LOG@#${VAR_LOG}#g" >> tmp.sed
464 echo "s#@VAR_RUN@#${VAR_RUN}#g" >> tmp.sed
460 465 echo "s#@USR_INCLUDE@#${USR_INCLUDE}#g" >> tmp.sed echo "s#@USR_INCLUDE@#${USR_INCLUDE}#g" >> tmp.sed
461 466 echo "s#@USR_INC@#${USR_INCLUDE}#g" >> tmp.sed echo "s#@USR_INC@#${USR_INCLUDE}#g" >> tmp.sed
462 467 echo "s#@USR_LIB@#${USR_LIB}#g" >> tmp.sed echo "s#@USR_LIB@#${USR_LIB}#g" >> tmp.sed
 
... ... echo "s#@EXPORT_PATH@#${EXPORT_PATH}#g" >> tmp.sed
468 473
469 474
470 475 if [ -r Makefile.in ]; then if [ -r Makefile.in ]; then
471 echo "Building Makefile..."
476 echo "[*] Building Makefile..."
472 477 echo -n > Makefile echo -n > Makefile
473 478 echo "# duilder header starts #" >> Makefile echo "# duilder header starts #" >> Makefile
474 479 echo "export PRJ := ${PRJ}" >> Makefile echo "export PRJ := ${PRJ}" >> Makefile
 
... ... if [ -r Makefile.in ]; then
489 494 echo "export I_LIB := \$(DESTDIR)${USR_LIB}" >> Makefile echo "export I_LIB := \$(DESTDIR)${USR_LIB}" >> Makefile
490 495 echo "export I_VAR := \$(DESTDIR)${VAR}" >> Makefile echo "export I_VAR := \$(DESTDIR)${VAR}" >> Makefile
491 496 echo "export I_VAR_LOG := \$(DESTDIR)${VAR_LOG}" >> Makefile echo "export I_VAR_LOG := \$(DESTDIR)${VAR_LOG}" >> Makefile
497 echo "export I_VAR_RUN := \$(DESTDIR)${VAR_RUN}" >> Makefile
492 498 echo >> Makefile echo >> Makefile
493 499 echo "# DB stuff" >> Makefile echo "# DB stuff" >> Makefile
494 500 echo "export DB_SUPPORT := ${DB_SUPPORT}" >> Makefile echo "export DB_SUPPORT := ${DB_SUPPORT}" >> Makefile
 
... ... if [ -r Makefile.in ]; then
525 531 fi fi
526 532
527 533 if [ -r "${PRJ}.spec.in" ]; then if [ -r "${PRJ}.spec.in" ]; then
528 echo "Generate .spec file..."
534 echo "[*] Generating .spec file..."
529 535 sed -f tmp.sed ${PRJ}.spec.in > ${PRJ}.spec sed -f tmp.sed ${PRJ}.spec.in > ${PRJ}.spec
530 536 fi fi
531 537
532 538 if [ ! -z "${CONFIG_H}" ]; then if [ ! -z "${CONFIG_H}" ]; then
533 echo "Generating ${CONFIG_H} file..."
539 echo "[*] Generating ${CONFIG_H} file..."
534 540 sed -f tmp.sed ${CONFIG_H}.in > ${CONFIG_H} sed -f tmp.sed ${CONFIG_H}.in > ${CONFIG_H}
535 541 fi fi
536 542
537 543 rm -f tmp.sed rm -f tmp.sed
538 544
539 545 if [ "`basename ${0}`" = "duilderx" ]; then if [ "`basename ${0}`" = "duilderx" ]; then
540 echo "Clone myself to destination as 'duilder'..."
546 echo "[*] Cloning myself to destination as 'duilder'..."
541 547 cp -vpf "${0}" ${PWD}/duilder cp -vpf "${0}" ${PWD}/duilder
542 548 fi fi
543 549
544 echo "Done. Run make."
550 echo "[*] Done. Run make."
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/catalinux/force_bind

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/catalinux/force_bind

Clone this repository using git:
git clone git://git.rocketgit.com/user/catalinux/force_bind

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main