README-hacking 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. These notes intend to help people working on the checked-out sources.
  2. These requirements do not apply when building from a distribution tarball.
  3. * Requirements
  4. We've opted to keep only the highest-level sources in the Git repository.
  5. This eases our maintenance burden, (fewer merges etc.), but imposes more
  6. requirements on anyone wishing to build from the just-checked-out sources.
  7. Note the requirements to build the released archive are much less and are just
  8. the requirements of the standard ./configure && make procedure. Specific
  9. development tools and versions will be checked for and listed by the bootstrap
  10. script.
  11. While building from a just-cloned source tree may require installing a few
  12. prerequisites, later, a plain 'git pull && make' should be sufficient.
  13. * First Git checkout
  14. You can get a copy of the source repository like this:
  15. $ git clone git://git.sv.gnu.org/jwhois
  16. $ cd jwhois
  17. As an optional step, if you already have a copy of the gnulib git repository,
  18. then you can use it as a reference to reduce download time and disk space
  19. requirements:
  20. $ export GNULIB_SRCDIR=/path/to/gnulib
  21. The next step is to get and check other files needed to build, which are
  22. extracted from other source packages:
  23. $ ./bootstrap
  24. To use the most-recent gnulib (as opposed to the gnulib version that the
  25. package last synchronized to), do this next:
  26. $ git submodule foreach git pull origin master
  27. $ git commit -m 'build: Update gnulib submodule to latest.' .gnulib
  28. And there you are! Just
  29. $ ./configure --quiet #[--enable-gcc-warnings] [*]
  30. $ make
  31. At this point, there should be no difference between your local copy, and the
  32. Git master copy:
  33. $ git diff
  34. should output no difference.
  35. Enjoy!
  36. [*] The --enable-gcc-warnings option is useful only with glibc and with a very
  37. recent version of gcc. You'll probably also have to use recent system
  38. headers. If you configure with this option, and spot a problem, please be
  39. sure to send the report to the bug reporting address of this package, and not
  40. to that of gnulib, even if the problem seems to originate in a gnulib-provided
  41. file.
  42. * Submitting patches
  43. If you develop a fix or a new feature, please send it to the appropriate
  44. bug-reporting address as reported by the --help option of each program. One
  45. way to do this is to use vc-dwim <http://www.gnu.org/software/vc-dwim/>), as
  46. follows.
  47. Run the command "vc-dwim --help", copy its definition of the
  48. "git-changelog-symlink-init" function into your shell, and then run this
  49. function at the top-level directory of the package.
  50. Edit the (empty) ChangeLog file that this command creates, creating a
  51. properly-formatted entry according to the GNU coding standards
  52. <http://www.gnu.org/prep/standards/html_node/Change-Logs.html>.
  53. Make your changes.
  54. Run the command "vc-dwim" and make sure its output (the diff of all your
  55. changes) looks good.
  56. Run "vc-dwim --commit".
  57. Run the command "git format-patch --stdout -1", and email its output in,
  58. using the output's subject line.
  59. -----
  60. Copyright (C) 2002-2016 Free Software Foundation, Inc.
  61. This program is free software: you can redistribute it and/or modify
  62. it under the terms of the GNU General Public License as published by
  63. the Free Software Foundation, either version 3 of the License, or
  64. (at your option) any later version.
  65. This program is distributed in the hope that it will be useful,
  66. but WITHOUT ANY WARRANTY; without even the implied warranty of
  67. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  68. GNU General Public License for more details.
  69. You should have received a copy of the GNU General Public License
  70. along with this program. If not, see <http://www.gnu.org/licenses/>.
  71. Local Variables:
  72. mode: outline
  73. fill-column: 78
  74. End: