2022-11-25 16:30:36 +08:00
|
|
|
================================
|
|
|
|
Managing Embedded Dependencies
|
|
|
|
================================
|
|
|
|
|
2024-05-07 11:31:42 +08:00
|
|
|
* Generate patches with ``git diff --patch --minimal -b``
|
2022-11-25 16:30:36 +08:00
|
|
|
|
2024-05-07 11:31:42 +08:00
|
|
|
Updating libev
|
|
|
|
==============
|
|
|
|
|
|
|
|
Download and unpack the tarball into libev/. Remove these extra
|
|
|
|
files::
|
|
|
|
|
|
|
|
rm -f libev/Makefile.am
|
|
|
|
rm -f libev/Symbols.ev
|
|
|
|
rm -f libev/Symbols.event
|
|
|
|
rm -f libev/TODO
|
|
|
|
rm -f libev/aclocal.m4
|
|
|
|
rm -f libev/autogen.sh
|
|
|
|
rm -f libev/compile
|
|
|
|
rm -f libev/configure.ac
|
|
|
|
rm -f libev/libev.m4
|
|
|
|
rm -f libev/mkinstalldirs
|
|
|
|
|
|
|
|
|
|
|
|
Check if 'config.guess' and/or 'config.sub' went backwards in time
|
|
|
|
(the 'timestamp' and 'copyright' dates). If so, revert it (or update
|
|
|
|
from the latest source
|
|
|
|
http://git.savannah.gnu.org/gitweb/?p=config.git;a=tree )
|
|
|
|
|
|
|
|
Updating c-ares
|
|
|
|
===============
|
|
|
|
|
|
|
|
- Download and clean up the c-ares Makefile.in[c] and configure script to empty out the
|
|
|
|
MANPAGES variables so that we don't have to ship those in the sdist::
|
|
|
|
|
|
|
|
export CARES_VER=1.15.0
|
2022-11-25 16:30:36 +08:00
|
|
|
|
2024-05-07 11:31:42 +08:00
|
|
|
cd deps/
|
|
|
|
wget https://c-ares.haxx.se/download/c-ares-$CARES_VER.tar.gz
|
|
|
|
tar -xf c-ares-$CARES_VER.tar.gz
|
|
|
|
rm -rf c-ares c-ares-$CARES_VER.tar.gz
|
|
|
|
mv c-ares-$CARES_VER c-ares
|
|
|
|
cp c-ares/include/ares_build.h c-ares/include/ares_build.h.dist
|
|
|
|
rm -rf c-ares/docs
|
|
|
|
rm -rf c-ares/test
|
|
|
|
rm -f c-ares/maketgz
|
|
|
|
rm -f c-ares/CMakeLists.txt
|
|
|
|
rm -f c-ares/RELEASE-PROCEDURE.md c-ares/CONTRIBUTING.md c-ares/SECURITY.md
|
|
|
|
rm -f c-ares/*.cmake c-ares/*.cmake.in
|
|
|
|
rm -f c-ares/config/
|
|
|
|
rm -f c-ares/buildconf.bat
|
|
|
|
git apply cares-make.patch
|
|
|
|
|
|
|
|
At this point there might be new files in c-ares that need added to
|
|
|
|
git, evaluate them and add them.
|
|
|
|
|
|
|
|
Note that the patch may not apply cleanly. If not, commit the
|
|
|
|
changes before the patch. Then manually apply them by editing the
|
|
|
|
three files to remove the references to ``docs`` and ``test``; this
|
|
|
|
is easiest to do by reading the existing patch file and searching
|
|
|
|
for the relevant lines in the target files. Once this is working
|
|
|
|
correctly, create the new patch using ``git diff -p --minimal -w``
|
|
|
|
(note that you cannot directly redirect the output of this into
|
|
|
|
``cares-make.patch``, or you'll get the diff of the patch itself in
|
|
|
|
the diff!).
|
|
|
|
|
|
|
|
- Follow the same 'config.guess' and 'config.sub' steps as libev,
|
|
|
|
except the files belong in the ``config/`` subdir.
|
2022-11-25 16:30:36 +08:00
|
|
|
|
|
|
|
|
|
|
|
Updating libuv
|
|
|
|
==============
|
|
|
|
|
|
|
|
- Clean up the libuv tree, and apply the patches to libuv (this whole
|
|
|
|
sequence is meant to be copied and pasted into the terminal)::
|
|
|
|
|
2024-05-07 11:31:42 +08:00
|
|
|
export LIBUV_VER=v1.38.0
|
|
|
|
|
|
|
|
cd deps/
|
|
|
|
wget https://dist.libuv.org/dist/$LIBUV_VER/libuv-$LIBUV_VER.tar.gz
|
|
|
|
tar -xf libuv-$LIBUV_VER.tar.gz
|
|
|
|
rm libuv-$LIBUV_VER.tar.gz
|
|
|
|
rm -rf libuv
|
|
|
|
mv libuv-$LIBUV_VER libuv
|
|
|
|
rm -rf libuv/.github
|
|
|
|
rm -rf libuv/.readthedocs.yaml
|
|
|
|
rm -rf libuv/LINKS.md
|
|
|
|
rm -rf libuv/docs
|
|
|
|
rm -rf libuv/samples
|
|
|
|
rm -rf libuv/test/*.[ch] libuv/test/test.gyp # must leave the fixtures/ dir
|
|
|
|
rm -rf libuv/tools
|
|
|
|
rm -f libuv/android-configure*
|
|
|
|
rm -f libuv/uv_win_longpath.manifest
|
|
|
|
|
|
|
|
At this point there might be new files in libuv that need added to git
|
|
|
|
and the build process. Evaluate those and add them to git and to
|
|
|
|
``src/gevent/libuv/_corecffi_build.py`` as needed. Then check if there
|
|
|
|
are changes to the build system (e.g., the .gyp files) that need to be
|
|
|
|
accounted for in our build file.
|
|
|
|
|
|
|
|
.. caution::
|
|
|
|
|
|
|
|
Pay special attention to the m4 directory. New .m4 files that need
|
|
|
|
to be added may not actually show up in git output. See
|
|
|
|
https://github.com/libuv/libuv/issues/2862
|
|
|
|
|
|
|
|
- Follow the same 'config.guess' and 'config.sub' steps as libev.
|