From 4ceec6ae771a65b3c142b4e5e9fc69d658780850 Mon Sep 17 00:00:00 2001 From: Daniel Markstedt Date: Sat, 1 Jun 2024 07:28:11 +0900 Subject: [PATCH] Regenerate compile.xml --- doc/manual/compile.xml | 400 +++++++++++++++++++++++++++++++++-------- 1 file changed, 322 insertions(+), 78 deletions(-) diff --git a/doc/manual/compile.xml b/doc/manual/compile.xml index 8beea90f0b..b2a556efaf 100644 --- a/doc/manual/compile.xml +++ b/doc/manual/compile.xml @@ -1,61 +1,51 @@ + + 2024-06-01 + Compile Netatalk from Source Overview - - This section describes how to compile Netatalk from source for specific operating systems. - - - The Netatalk project is in the process of transitioning the build system - from GNU Autotools to Meson. - During the transitional period, - the documentation will contain both Autotools and Meson build instructions. - - - Please note that this document is automatically generated from the GitHub workflow YAML file. - This may or may not be the most optimal way to build Netatalk for your system. - + This appendix describes how to compile Netatalk from source for specific operating systems. + Please note that the steps below are automatically generated, and may not be optimized for your system. + Choose one of the build systems: Autotools or Meson. Test steps are optional. Operating Systems - - Note: You only have to use execute the steps for one of the build systems, not both. - Additionally, the test steps are entirely optional for compiling from source. - - - Ubuntu + + Alpine Linux Install dependencies - sudo apt-get update -sudo apt-get install --assume-yes --no-install-recommends autoconf \ -automake \ -docbook-xsl \ -libacl1-dev \ -libavahi-client-dev \ -libcrack2-dev \ -libcups2-dev \ -libdb-dev \ -libgcrypt-dev \ -libkrb5-dev \ -libldap2-dev \ -libltdl-dev \ -libpam0g-dev \ -libssl-dev \ -libtirpc-dev \ -libtool \ -libtool-bin \ -libwrap0-dev \ -meson \ -ninja-build \ -quota \ -tcpd \ -xsltproc - + apk add \ + acl-dev \ + autoconf \ + automake \ + avahi-dev \ + build-base \ + cracklib \ + cracklib-dev \ + cracklib-words \ + cups \ + cups-dev \ + curl \ + db-dev \ + gcc \ + krb5-dev \ + libgcrypt-dev \ + libtirpc-dev \ + libtool \ + linux-pam-dev \ + meson \ + ninja \ + openldap-dev \ + openrc \ + openssl-dev \ + pkgconfig \ + rpcsvc-proto-dev Autotools - Bootstrap @@ -66,60 +56,54 @@ xsltproc ./configure \ --enable-krbV-uam \ + --enable-openrc \ --enable-pgp-uam \ - --enable-quota \ - --enable-systemd \ --with-cracklib \ --with-libtirpc - Autotools - Generate manual pages - - make html - Autotools - Build - make -j $(nproc) all + make -j $(nproc) Autotools - Run tests make check - Autotools - Run distribution tests + Autotools - Install - make distcheck + make install - Autotools - Install + Autotools - Uninstall - sudo make install + make uninstall Meson - Configure meson setup build \ -Dbuild-tests=true \ - -Dbuild-manual=true \ - -Dwith-libtirpc=true + -Denable-openrc=true - Meson - Build and generate man pages + Meson - Build ninja -C build - Meson - Tests + Meson - Run tests cd build && meson test - Meson - Distribution tests + Meson - Install - cd build && meson dist + ninja -C build install - Meson - Install + Meson - Uninstall - sudo ninja -C build install + ninja -C build uninstall - Debian + Debian Linux Install dependencies apt-get update @@ -176,6 +160,10 @@ xsltproc make install + Autotools - Uninstall + + make uninstall + Meson - Configure meson setup build \ @@ -196,12 +184,16 @@ xsltproc ninja -C build install + Meson - Uninstall + + ninja -C build uninstall + Fedora Install dependencies - dnf -y install \ + dnf --setopt=install_weak_deps=False --assumeyes install \ automake \ avahi-devel \ chkconfig \ @@ -228,7 +220,7 @@ xsltproc ./configure \ --enable-pgp-uam \ --enable-krbV-uam \ - --enable-redhat-sysv \ + --enable-redhat \ --with-cracklib=/usr/share/cracklib @@ -244,12 +236,16 @@ xsltproc sudo make install + Autotools - Uninstall + + sudo make uninstall + Meson - Configure meson setup build \ -Dbuild-tests=true \ -Dwith-libtirpc=true \ - -Denable-redhat-sysv=true + -Denable-redhat=true Meson - Build @@ -264,12 +260,16 @@ xsltproc sudo ninja -C build install + Meson - Uninstall + + sudo ninja -C build uninstall + macOS Install dependencies - brew install automake libressl krb5 berkeley-db meson + brew install automake berkeley-db krb5 libressl libtool meson Autotools - Bootstrap @@ -279,10 +279,11 @@ xsltproc ./configure \ --disable-ddp \ - --enable-pgp-uam \ --enable-krbV-uam \ - --with-ssl-dir=/usr/local/opt/libressl \ - --with-bdb=/usr/local/opt/berkeley-db + --enable-macos \ + --enable-pgp-uam \ + --with-bdb=/opt/homebrew/opt/berkeley-db \ + --with-ssl-dir=/opt/homebrew/opt/libressl Autotools - Build @@ -297,13 +298,24 @@ xsltproc sudo make install + Start netatalk + + sudo netatalkd start && sleep 2 && asip-status localhost + + Stop netatalk + + sudo netatalkd stop + + Autotools - Uninstall + + sudo make uninstall + Meson - Configure meson setup build \ - -Dwith-bdb=/usr/local/opt/berkeley-db \ - -Dwith-ssl-dir=/usr/local/opt/libressl \ -Dbuild-tests=true \ - -Denable-macos=true + -Denable-macos=true \ + -Dwith-bdb=/opt/homebrew/opt/berkeley-db Meson - Build @@ -318,10 +330,22 @@ xsltproc sudo ninja -C build install + Start netatalk + + sudo netatalkd start && sleep 2 && asip-status localhost + + Stop netatalk + + sudo netatalkd stop + + Meson - Uninstall + + sudo ninja -C build uninstall + NetBSD - Install dependencies + Install required packages pkg_add \ autoconf \ @@ -352,20 +376,122 @@ echo "Building with Autotools" MAKE=gmake \ PKG_CONFIG_PATH=/usr/pkg/lib/pkgconfig gmake -j2 all +gmake install +service afpd onestart +sleep 2 +asip-status localhost +service afpd onestop echo "Building with Meson" meson setup build \ -Dpkg_config_path=/usr/pkg/lib/pkgconfig \ -Denable-netbsd=true ninja -C build ninja -C build install +service afpd onestart +sleep 2 +asip-status localhost +service afpd onestop +ninja -C build uninstall + + + + + openSUSE Linux + Install dependencies + + zypper in -y \ + automake \ + file \ + gawk \ + gcc \ + libtool \ + make \ + meson \ + ninja \ + pkg-config \ + systemd \ + wget && +zypper in -y \ + cracklib-devel \ + glib2-devel \ + krb5-devel \ + libacl-devel \ + libavahi-devel \ + libdb-4_8-devel \ + libgcrypt-devel \ + libmariadb-devel \ + libopenssl-devel \ + libtdb-devel \ + openldap2-devel \ + pam-devel \ + systemtap-sdt-devel \ + tcpd-devel + + + Autotools - Bootstrap + + ./bootstrap + + Autotools - Configure + + ./configure \ + --disable-install-privileged \ + --enable-krbV-uam \ + --enable-pgp-uam \ + --with-cracklib \ + --enable-systemd + + + Autotools - Build + + make -j $(nproc) + + Autotools - Run tests + + make check + + Autotools - Install + + make install + + Autotools - Uninstall + + make uninstall + + Meson - Configure + + meson setup build \ + -Dbuild-tests=true + Meson - Build + + ninja -C build + + Meson - Run tests + + cd build && meson test + + Meson - Install + + ninja -C build install + + Meson - Uninstall + + ninja -C build uninstall + Solaris - Install dependencies + Install required packages - pkg install autoconf automake libtool pkg-config gcc libgcrypt + pkg install \ + autoconf \ + automake \ + gcc \ + libgcrypt \ + libtool \ + pkg-config wget https://ftp.gnu.org/gnu/autoconf/autoconf-2.71.tar.gz --no-check-certificate wget https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.gz --no-check-certificate tar xvf autoconf-2.71.tar.gz @@ -378,7 +504,7 @@ cd ../automake-1.16.5 ./configure --prefix=/usr make make install -cd .. +cd .. Configure and build @@ -391,8 +517,126 @@ echo "Building with Autotools" --enable-cups=no gmake -j $(nproc) all gmake install +gmake uninstall + + + + + Ubuntu Linux + Install dependencies + + sudo apt-get update +sudo apt-get install --assume-yes --no-install-recommends autoconf \ +automake \ +docbook-xsl \ +libacl1-dev \ +libavahi-client-dev \ +libcrack2-dev \ +libcups2-dev \ +libdb-dev \ +libgcrypt-dev \ +libkrb5-dev \ +libldap2-dev \ +libltdl-dev \ +libpam0g-dev \ +libssl-dev \ +libtirpc-dev \ +libtool \ +libtool-bin \ +libwrap0-dev \ +meson \ +ninja-build \ +quota \ +tcpd \ +xsltproc + + + + Autotools - Bootstrap + + ./bootstrap + + Autotools - Configure + + ./configure \ + --enable-krbV-uam \ + --enable-pgp-uam \ + --enable-quota \ + --enable-systemd \ + --with-cracklib \ + --with-libtirpc + + + Autotools - Generate manual pages + + make html + + Autotools - Build + + make -j $(nproc) all + + Autotools - Run tests + + make check + + Autotools - Run distribution tests + + make distcheck + + Autotools - Install + + sudo make install + + Start netatalk + + sudo systemctl start afpd && sleep 2 && asip-status localhost + + Stop netatalk + + sudo systemctl stop afpd + + Autotools - Uninstall + + sudo make uninstall + + Meson - Configure + + meson setup build \ + -Dbuild-tests=true \ + -Dbuild-manual=true \ + -Ddisable-install-privileged=true \ + -Denable-systemd=true \ + -Dwith-libtirpc=true + Meson - Build and generate man pages + + ninja -C build + + Meson - Tests + + cd build && meson test + + Meson - Distribution tests + + cd build && meson dist + + Meson - Install + + sudo ninja -C build install + + Start netatalk + + sudo systemctl start afpd && sleep 2 && asip-status localhost + + Stop netatalk + + sudo systemctl stop afpd + + Meson - Uninstall + + sudo ninja -C build uninstall +