--- ebook-dev-alp-200407.orig/debian/changelog +++ ebook-dev-alp-200407/debian/changelog @@ -0,0 +1,54 @@ +ebook-dev-alp (200407-3) unstable; urgency=medium + + * Policy bumped to 4.5.1, no changes. + * Debhelper level set to current (13). + * Reformatted long description. + * Avoid to compress pdf file. (closes: #463318) + * Added errata.html page (closes: #445318) + + -- Francesco Paolo Lovergine Thu, 14 Jan 2021 20:41:05 +0100 + +ebook-dev-alp (200407-2) unstable; urgency=medium + + * Policy bumped to 3.9.7. + * Debhelper level set to current (9). + (closes: #800188) + * Removed [EBOOK-DEV] tag in short description. + + -- Francesco Paolo Lovergine Mon, 07 Mar 2016 11:47:16 +0100 + +ebook-dev-alp (200407-1) unstable; urgency=high + + * Moved to non-free. See http://www.debian.org/legal/licenses/dls-005-opl + for an adivisory on OPL 1.0 + * Revised orig tarball for building problems which caused FTBFS. + * Added xpdf-viewer as real pdf-viewer in control file. + + -- Francesco Paolo Lovergine Wed, 7 Jul 2004 10:38:30 +0200 + +ebook-dev-alp (200106-3) unstable; urgency=low + + * Policy bumped to 3.6.1 + * Copyright file revised. + * Rebuilt to remove /usr/doc link + + -- Francesco Paolo Lovergine Tue, 28 Oct 2003 11:23:07 +0100 + +ebook-dev-alp (200106-2) unstable; urgency=low + + * Recommends: tag moved in binary section :-/ + * Mispelling corrected in control file. + (closes: #124590) + + -- Francesco Paolo Lovergine Tue, 18 Dec 2001 11:49:10 +0100 + +ebook-dev-alp (200106-1) unstable; urgency=low + + * Initial Release. + (closes: #116633) + + -- Francesco Paolo Lovergine Mon, 19 Nov 2001 14:02:47 +0200 + +Local variables: +mode: debian-changelog +End: --- ebook-dev-alp-200407.orig/debian/control +++ ebook-dev-alp-200407/debian/control @@ -0,0 +1,21 @@ +Source: ebook-dev-alp +Section: non-free/doc +Priority: optional +Maintainer: Francesco Paolo Lovergine +Build-Depends: debhelper-compat (=13) +Standards-Version: 4.5.1 + +Package: ebook-dev-alp +Architecture: all +Recommends: xpdf-reader | pdf-viewer +Depends: ${misc:Depends} +Description: Advanced Linux Programming + If you are a developer for the GNU/Linux system, this book will help you to: + . + Develop GNU/Linux software that works the way users expect it to. Write + more sophisticated programs with features such as multiprocessing, + multi-threading, interprocess communication, and interaction with + hardware devices. Improve your programs by making them run faster, + more reliably, and more securely. Understand the peculiarities of a + GNU/Linux system, including its limitations, special capabilities, and + conventions. --- ebook-dev-alp-200407.orig/debian/copyright +++ ebook-dev-alp-200407/debian/copyright @@ -0,0 +1,190 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: Advanced Linux Programming +Source: http://www.advancedlinuxprogramming.com/ +Comments: Advanced Linux Programming is published under the Open Publication + License, Version 1, no options exercised. (Due to an oversight in final + production, the copyright notice on the book is incorrect.) + +Files: * +Copyright: 2001, CodeSourcery LLC + 2001, New Riders Publishing +License: OPL-1 + . + Open Publication License Draft v1.0, 8 June 1999 (text version) + . + I. REQUIREMENTS ON BOTH UNMODIFIED AND MODIFIED VERSIONS + . + The Open Publication works may be reproduced and distributed in whole or + in part, in any medium physical or electronic, provided that the terms + of this license are adhered to, and that this license or an + incorporation of it by reference (with any options elected by the + author(s) and/or publisher) is displayed in the reproduction. + . + Proper form for an incorporation by reference is as follows: + Copyright (c) by . This material may + be distributed only subject to the terms and conditions set forth in the + Open Publication License, vX.Y or later (the latest version is presently + available at http://www.opencontent.org/openpub/). The reference must be + immediately followed with any options elected by the author(s) and/or + publisher of the document (see section VI). + . + Commercial redistribution of Open Publication-licensed material is + permitted. + . + Any publication in standard (paper) book form shall require the citation + of the original publisher and author. The publisher and author's names + shall appear on all outer surfaces of the book. On all outer surfaces of + the book the original publisher's name shall be as large as the title of + the work and cited as possessive with respect to the title. + . + . + II. COPYRIGHT + . + The copyright to each Open Publication is owned by its author(s) or + designee. + . + . + III. SCOPE OF LICENSE + . + The following license terms apply to all Open Publication works, unless + otherwise explicitly stated in the document. + . + Mere aggregation of Open Publication works or a portion of an Open + Publication work with other works or programs on the same media shall + not cause this license to apply to those other works. The aggregate work + shall contain a notice specifying the inclusion of the Open Publication + material and appropriate copyright notice. + . + SEVERABILITY. If any part of this license is found to be unenforceable + in any jurisdiction, the remaining portions of the license remain in + force. + . + NO WARRANTY. Open Publication works are licensed and provided "as is" + without warranty of any kind, express or implied, including, but not + limited to, the implied warranties of merchantability and fitness for a + particular purpose or a warranty of non-infringement. + . + . + IV. REQUIREMENTS ON MODIFIED WORKS + . + All modified versions of documents covered by this license, including + translations, anthologies, compilations and partial documents, must meet + the following requirements: + . + The modified version must be labeled as such. + The person making the modifications must be identified and the + modifications dated. + Acknowledgement of the original author and publisher if applicable must + be retained according to normal academic citation practices. + The location of the original unmodified document must be identified. + The original author's (or authors') name(s) may not be used to assert or + imply endorsement of the resulting document without the original + author's (or authors') permission. + V. GOOD-PRACTICE RECOMMENDATIONS + . + In addition to the requirements of this license, it is requested from + and strongly recommended of redistributors that: + . + If you are distributing Open Publication works on hardcopy or CD-ROM, + you provide email notification to the authors of your intent to + redistribute at least thirty days before your manuscript or media + freeze, to give the authors time to provide updated documents. This + notification should describe modifications, if any, made to the + document. + All substantive modifications (including deletions) be either clearly + marked up in the document or else described in an attachment to the + document. + Finally, while it is not mandatory under this license, it is considered + good form to offer a free copy of any hardcopy and CD-ROM expression of + an Open Publication-licensed work to its author(s). + VI. LICENSE OPTIONS + . + The author(s) and/or publisher of an Open Publication-licensed document + may elect certain options by appending language to the reference to or + copy of the license. These options are considered part of the license + instance and must be included with the license (or its incorporation by + reference) in derived works. + . + A. To prohibit distribution of substantively modified versions without + the explicit permission of the author(s). "Substantive modification" is + defined as a change to the semantic content of the document, and + excludes mere changes in format or typographical corrections. + . + To accomplish this, add the phrase `Distribution of substantively + modified versions of this document is prohibited without the explicit + permission of the copyright holder.' to the license reference or copy. + . + B. To prohibit any publication of this work or derivative works in whole + or in part in standard (paper) book form for commercial purposes is + prohibited unless prior permission is obtained from the copyright + holder. + . + To accomplish this, add the phrase 'Distribution of the work or + derivative of the work in any standard (paper) book form is prohibited + unless prior permission is obtained from the copyright holder.' to the + license reference or copy. + . + . + OPEN PUBLICATION POLICY APPENDIX: + . + (This is not considered part of the license.) + . + Open Publication works are available in source format via the Open + Publication home page at http://works.opencontent.org/. + . + Open Publication authors who want to include their own license on Open + Publication works may do so, as long as their terms are not more + restrictive than the Open Publication license. + . + If you have questions about the Open Publication License, please contact + David Wiley, and/or the Open Publication Authors' List at + opal@opencontent.org, via email. + . + To subscribe to the Open Publication Authors' List: + Send E-mail to opal-request@opencontent.org with the word "subscribe" + in the body. + . + To post to the Open Publication Authors' List: + Send E-mail to opal@opencontent.org or simply reply to a previous post. + . + To unsubscribe from the Open Publication Authors' List: + Send E-mail to opal-request@opencontent.org with the word "unsubscribe" + in the body. + +Files: listings/* +Copyright: 2001 New Riders Publishing +License: GPL-2+ + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + . + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see + . + On Debian systems, the complete text of the GNU General + Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". + +Files: debian/* +Copyright: 2016 Francesco Paolo Lovergine +License: GPL-2+ + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + . + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see + . + On Debian systems, the complete text of the GNU General + Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". --- ebook-dev-alp-200407.orig/debian/docs +++ ebook-dev-alp-200407/debian/docs @@ -0,0 +1 @@ +debian/errata.html --- ebook-dev-alp-200407.orig/debian/errata.html +++ ebook-dev-alp-200407/debian/errata.html @@ -0,0 +1,424 @@ + + + + + + + + Advanced Linux Programming + + + + +
+ + + +

Reporting an Error

+ +

Should you find an error in Advanced Linux +Programming that is not already listed here, +please send mail to +alp-errata@advancedlinuxprogramming.com.

+ +

Errata for Advanced Linux Programming

+ +
    + +
  • + page iv (publication information) + +

    Due to an oversight in production, an incorrect copyright notice + was included. The copyright notice should read:

    + +
    + Advanced Linux Programming +

    + FIRST EDITION: June, 2001 +

    + Copyright © 2001 by New Riders Publishing. This material may be + distributed only subject to the terms and conditions set forth in the Open + Publication License, Version 1, no options exercised. (The latest version of this license + is available at http://www.opencontent.org/openpub/). +
    +
  • + +
  • + page xx + +

    The term "GNU/Linux" is misspelled as "GNU/Liux."

    +
  • + +
  • + page 6 +

    In Listing 1.1, add #include <stdlib.h> since atoi is used.

    +
  • + +
  • + page 8 +

    The first paragraph of Section 1.2.2 should refer to reciprocal.cpp, + not utilties.cpp.

    +
  • + +
  • + page 31 +

    In the third paragraph, the third sentence should read: +

    + You should still always check for invalid input and produce sensible error + messages in response to such input. +
    + The words "to such" are missing in the book as printed. +

    +
  • + +
  • + page 34 +

    In the code, the comment for case ENOENT should + read PATH does not exist. +

    +
  • + +
  • + page 38 +

    + The first sentence in Section 2.3.2 should refer to an archive + rather than a archive. +

    +
  • + +
  • + page 38 +

    In the last sentence of the text, omitting the sidebar, the + resulting object file is test1.o, not test.o. +

    +
  • + +
  • + page 39 +

    In the first paragraph, the linker stops searching + directories. +

    +
  • + +
  • + page 41 +

    In the paragraph beginning with "Static libraries", modify + "If decide to link" to "If you decide to link". +

    +
  • + +
  • + page 41 +

    When linking statically, linking in the math library is + also required. Thus, the compilation line becomes + gcc -static -o tifftest tifftest.c -ltiff -ljpeg -lz -lm. +

    +
  • + +
  • + page 43 +

    The indented line of code near the bottom of the page should refer to my_function, not foo. +

    +
  • + +
  • + page 48 +

    In the first paragraph, the first technique has "considerable risks", + not "considerably risks". +

    +
  • + +
  • + page 53 +

    The word "it" in the last sentence of the second paragraph + should instead be "is". + In particular, the sentence should read: +

    + The default disposition for these signals is to terminate the process + and produce a core file. +
    + +
  • + page 57 +

    The word "is" in the last sentence should instead be "it." + In particular, the sentence should read: +

    + Instead, when a child process terminates, it becomes a zombie process. +
    + +
  • + page 60 +

    The code in clean_up_child_process would not work correctly if there were more + than one child process. The Linux kernel will only call the signal handler once if two or more + child processes terminate at almost the same time. Therefore, if there is may be more than one child + process, the signal handler must repeatedly call waitpid (or one of the other + related functions) with the WNOHANG option until waitpid returns zero.

    +
  • + +
  • + page 73 +

    In the first paragraph, the second argument is for pthread_key_create, not + pthread_key_t. Thus, the pthread_key_create function takes two arguments: + a pointer to a pthread_key_t variable and a cleanup function.

    +
  • + +
  • + page 98 +

    The example code for calling shmget should use S_IWUSR, not + S_IWUSER. This write permission flag is spelled correctly throughout the + rest of the page. For a list of available flags, see the section 2 stat man page.

    +
  • + +
  • + page 108 +

    In Listing 5.6, the function used to parse the string + should be sscanf, not scanf.

    +
  • + +
  • + page 110 +

    The last sentence of section 5.4.1 should read: +

    + Data written to the file descriptor write_fd can be read back from read_fd. +
    +

    + The identifiers write_fd and read_fd are + swapped in the text as printed.

    +
  • + +
  • + page 117 +

    In section 5.5.2, the list of system calls should mention + close, not closes.

    +
  • + +
  • + page 120 +

    In Listing 5.10, text should be checked for the + quit message before it is freed. The consequent of the + strcmp should be free (text); return 1. Its + alternative should be free (text). The standalone + free statement should be omitted.

    +
  • + +
  • + page 121 +

    In Listing 5.10, the client_name_len variable in + the do-loop should be initialized to + sizeof(client_name) before being passed to + accept. +

    +
  • + +
  • + page 121 +

    In Listing 5.10, the call to bind on the ninth + line of this page should cast the second argument to a + struct sockaddr *. That is, the bind + call should be +

    + bind (socket_fd, (struct sockaddr *) &name, SUN_LEN (&name)). +

    +

    Similarly, on the nineteenth line, the second argument of + accept should be cast: +

    + accept (socket_fd, (struct sockaddr *) &client_name, &client_name_len) +
    +

    +
  • + +
  • + page 122 +

    In Listing 5.11, the call to connect on the sixth + line from the end should cast the second argument to a + struct sockaddr *. That is, the connect + call should be +

    + connect (socket_fd, (struct sockaddr *) &name, SUN_LEN (&name)). +

    +

    +
  • + +
  • + page 125 +

    In Listing 5.12, the call to connect on the second + line should cast the second argument to a + struct sockaddr *. That is, the connect + call should be +

    + connect (socket_fd, (struct sockaddr *) &name, sizeof (struct sockaddr_in)). +

    +

    +
  • + +
  • + page 130 +

    The third line of the first full paragraph should omit the word "cause". +

    +
  • + +
  • + page 132 +

    The sixth line of the first full paragraph should refer + to "the character device", not the "the block device". +

    +
  • + +
  • + page 133 +

    In the first footnote, the Windows device name should be LPT1, + not LRP1. +

  • + +
  • + page 133 +

    In the second footnote, the ASCII code for a carriage return should be 13, not 14.

    +
  • + +
  • + page 149 +

    The check for whether or not the read failed should be:

    +
    + if (bytes_read == 0 || bytes_read != sizeof (buffer)) +
    +

    + Note that the operator for the second half of the conditional should + be != rather than ==. +

    +
  • + +
  • + page 171 +

    In the third paragraph, use F_SETLKW, not F_SETLCKW. This + LK abbreviation differs from the LCK abbreviation in F_RDLCK and + F_WRLCK. +

    +
  • + +
  • + page 174 +

    The first sentence of the third paragraph of section 8.5 + should end with "pointer to a struct rlimit", rather + than "pointer to a structrlimit" as printed. Note + the space between struct and rlimit.

    +
  • + +
  • + page 181 +

    The description of tv_nsec should read "tv_nsec, + an additional number of nanoseconds" rather than "tv_nsec, + an additional number of milliseconds."

    +
  • + +
  • + page 183 +

    The third parameter in the call to readlink should + be sizeof (target_path) - 1 to allow for the terminating + NUL character.

    +
  • + +
  • + page 185 +

    The file presented in Listing 8.11 should be named "itimer.c".

    +
  • + +
  • + page 186 +

    The sysinfo manual page describes struct + sysinfo, not structsysinfo.

    +
  • + +
  • + page 188 +

    The file presented in Listing 8.11 should end with a ".c", i.e., + "print-uname.c".

    +
  • + +
  • + page 191 +

    The assembly instructions shown corresponding to the asm + should be: +

    +
    +#APP
    +        mycool_asm %ecx, %edx
    +#NOAPP
    +
    +

    + reflecting the fact that foo and bar are + in separate registers. +

    +
  • + +
  • + page 206 +

    In the beginning of 10.4.1, the root process impersonates + another user, not another process.

    +
  • + +
  • + page 212 +

    The prototype of the GNU extension getline + function differs from that presented. To use the GNU extension, + modify the code to

    +
    + char *username = NULL;
    + size_t username_length = 0;
    + ssize_t characters_read = getline (&username, &username_length, stdin);
    + 
    +

    If the call fails, characters_read will be -1. + Otherwise, username will point to a malloc-allocated + buffer with username_length characters.

    +
  • + +
  • + page 224 +

    The third parameter in the call to readlink should + be sizeof (link_target) - 1 to allow for the terminating + NUL character.

    +
  • + +
  • + page 231 +

    The third parameter in the first call to write should + be strlen (bad_request_response).

    +
  • + +
  • + page 241 +

    The error_page string should note a failure to + open /etc/issue, not /proc/issue.

    +
  • + +
  • + page 245 +

    The comment above the get_group_name function should + say "deallocate with free", not "allocate with + free".

    +
  • + +
  • + page 286 +

    The first line inside the while loop is incorrect. It should + read: +

    +size_t written = write (fd, buffer + count - left_to_write, + left_to_write); +
    +

    +
  • + +
+ +
+ + + + +
+ Problems with this web site? + File an issue on github. + +
+ + --- ebook-dev-alp-200407.orig/debian/install +++ ebook-dev-alp-200407/debian/install @@ -0,0 +1,2 @@ +advanced-linux-programming.pdf usr/share/doc/ebook-dev-alp +listings usr/share/doc/ebook-dev-alp --- ebook-dev-alp-200407.orig/debian/rules +++ ebook-dev-alp-200407/debian/rules @@ -0,0 +1,10 @@ +#!/usr/bin/make -f + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +%: + dh $@ + +override_dh_compress: + dh_compress -X.pdf