synth icon indicating copy to clipboard operation
synth copied to clipboard

Can't build www/nginx package

Open mephist opened this issue 5 years ago • 4 comments

I've tried to use synth for the first time. After the "synth upgrade-system" command I see the only one failed package to build - www/nginx

Log file: https://gist.github.com/mephist/ce8a090cb0d8adba866aafe0917f81cc It fails on configure, complaining about missing libxml2/libxslt.

I've installed both of them

$ sudo synth install textproc/libxml2 textproc/libxslt After inspection, it has been determined that there are no packages that require rebuilding; the task is therefore complete. Stand by, recursively scanning 2 ports serially. Packages validated, rebuilding local repository. Local repository successfully rebuilt Updating Synth repository catalogue... Fetching meta.txz: 100% 260 B 0.3kB/s 00:01 Fetching packagesite.txz: 100% 98 KiB 100.2kB/s 00:01 Processing entries: 100% Synth repository update completed. 394 packages processed. All repositories are up to date. Checking integrity... done (0 conflicting) The most recent version of packages are already installed

and rerun synth build www/nginx, but see the same error Log file: https://gist.github.com/mephist/ce8a090cb0d8adba866aafe0917f81cc

if I try to make -C /usr/ports/www/nginx it has been built without an error

[mephist@srv ~]$ uname -vp FreeBSD 12.0-RELEASE-p3 GENERIC i386 [mephist@srv ~]$ pkg version -v | egrep '(libxslt|libxml2)' libxml2-2.9.8 = up-to-date with index libxslt-1.1.32 = up-to-date with index [mephist@srv ~]$ make -C /usr/ports/www/nginx showconfig ===> The following configuration options are available for nginx-1.14.2_13,2: DEBUG=off: Build with debugging support DEBUGLOG=off: Enable debug log (--with-debug) DSO=on: Enable dynamic modules support FILE_AIO=off: Enable file aio IPV6=off: Enable IPv6 support THREADS=on: Enable threads support WWW=on: Enable html sample files ====> Modules that require MAIL module MAIL=off: Enable IMAP4/POP3/SMTP proxy module MAIL_IMAP=off: Enable IMAP4 proxy module MAIL_POP3=off: Enable POP3 proxy module MAIL_SMTP=off: Enable SMTP proxy module MAIL_SSL=off: Enable mail_ssl module ====> Modules that require HTTP module GOOGLE_PERFTOOLS=off: Enable google perftools module HTTP=on: Enable HTTP module HTTP_ADDITION=off: Enable http_addition module HTTP_AUTH_REQ=off: Enable http_auth_request module HTTP_CACHE=on: Enable http_cache module HTTP_DAV=on: Enable http_webdav module HTTP_FLV=off: Enable http_flv module HTTP_GUNZIP_FILTER=on: Enable http_gunzip_filter module HTTP_GZIP_STATIC=on: Enable http_gzip_static module HTTP_IMAGE_FILTER=off: Enable http_image_filter module HTTP_MP4=on: Enable http_mp4 module HTTP_PERL=off: Enable http_perl module HTTP_RANDOM_INDEX=off: Enable http_random_index module HTTP_REALIP=off: Enable http_realip module HTTP_REWRITE=on: Enable http_rewrite module HTTP_SECURE_LINK=off: Enable http_secure_link module HTTP_SLICE=on: Enable http_slice module HTTP_SSL=on: Enable http_ssl module HTTP_STATUS=on: Enable http_stub_status module HTTP_SUB=off: Enable http_sub module HTTP_XSLT=off: Enable http_xslt module HTTPV2=on: Enable HTTP/2 protocol support (SSL req.) STREAM=on: Enable stream module STREAM_SSL=on: Enable stream_ssl module (SSL req.) STREAM_SSL_PREREAD=on: Enable stream_ssl_preread module (SSL req.) AJP=off: 3rd party ajp module AWS_AUTH=off: 3rd party aws auth module BROTLI=off: 3rd party brotli module CACHE_PURGE=off: 3rd party cache_purge module CLOJURE=off: 3rd party clojure module CT=off: 3rd party cert_transparency module (SSL req.) DEVEL_KIT=on: 3rd party Nginx Development Kit module ARRAYVAR=off: 3rd party array_var module DRIZZLE=off: 3rd party drizzle module DYNAMIC_UPSTREAM=off: 3rd party dynamic_upstream module ECHO=off: 3rd party echo module ENCRYPTSESSION=off: 3rd party encrypted_session module FASTDFS=off: 3rd party fastdfs module FORMINPUT=off: 3rd party form_input module GRIDFS=off: 3rd party gridfs module HEADERS_MORE=off: 3rd party headers_more module HTTP_ACCEPT_LANGUAGE=off: 3rd party accept_language module HTTP_AUTH_DIGEST=off: 3rd party http_authdigest module HTTP_AUTH_KRB5=off: 3rd party http_auth_gss module HTTP_AUTH_LDAP=off: 3rd party http_auth_ldap module HTTP_AUTH_PAM=off: 3rd party http_auth_pam module HTTP_DAV_EXT=on: 3rd party webdav_ext module HTTP_EVAL=off: 3rd party eval module HTTP_FANCYINDEX=off: 3rd party http_fancyindex module HTTP_FOOTER=off: 3rd party http_footer module HTTP_GEOIP2=off: 3rd party geoip2 module HTTP_JSON_STATUS=off: 3rd party http_json_status module HTTP_MOGILEFS=off: 3rd party mogilefs module HTTP_MP4_H264=on: 3rd party mp4/h264 module HTTP_NOTICE=off: 3rd party notice module HTTP_PUSH=off: 3rd party push module HTTP_PUSH_STREAM=off: 3rd party push stream module HTTP_REDIS=off: 3rd party http_redis module HTTP_RESPONSE=off: 3rd party http_response module HTTP_SUBS_FILTER=off: 3rd party subs filter module HTTP_TARANTOOL=off: 3rd party tarantool upstream module HTTP_UPLOAD=off: 3rd party upload module HTTP_UPLOAD_PROGRESS=off: 3rd party uploadprogress module HTTP_UPSTREAM_CHECK=off: 3rd party upstream check module HTTP_UPSTREAM_FAIR=off: 3rd party upstream fair module HTTP_UPSTREAM_STICKY=off: 3rd party upstream sticky module HTTP_VIDEO_THUMBEXTRACTOR=on: 3rd party video_thumbextractor module HTTP_ZIP=off: 3rd party http_zip module ICONV=off: 3rd party iconv module LET=off: 3rd party let module LUA=on: 3rd party lua module MEMC=off: 3rd party memc (memcached) module MODSECURITY=off: 3rd party mod_security module MODSECURITY3=off: 3rd party modsecurity3 module NAXSI=off: 3rd party naxsi module NJS=off: Enable http_javascript module PASSENGER=off: 3rd party passenger module POSTGRES=off: 3rd party postgres module RDS_CSV=off: 3rd party rds_csv module RDS_JSON=off: 3rd party rds_json module REDIS2=off: 3rd party redis2 module RTMP=on: 3rd party rtmp module SET_MISC=off: 3rd party set_misc module SFLOW=off: 3rd party sflow module SHIBBOLETH=off: 3rd party shibboleth module SLOWFS_CACHE=off: 3rd party slowfs_cache module SMALL_LIGHT=off: 3rd party small_light module SRCACHE=off: 3rd party srcache module VOD=on: 3rd party vod module VTS=off: 3rd party vts module XSS=off: 3rd party xss module WEBSOCKIFY=off: 3rd party websockify module ====> GSSAPI implementation (imply HTTP_AUTH_KRB5): you can only select none or one of them GSSAPI_BASE=off: GSSAPI support via base system (needs Kerberos) GSSAPI_HEIMDAL=off: GSSAPI support via security/heimdal GSSAPI_MIT=off: GSSAPI support via security/krb5 ===> Use 'make config' to modify these settings

mephist avatar Apr 20 '19 19:04 mephist

it looks like a bug in the port itself. Why are you reporting this at the synth upstream instead of reporting it to maintainer of www/nginx?

jrmarino avatar Apr 21 '19 11:04 jrmarino

Why are you reporting this at the synth upstream instead of reporting it to maintainer of www/nginx?

Because www/nginx is built correctly via "make package", without synth

[mephist@srv /usr/ports/www/nginx]$ sudo make package ===> Building package for nginx-1.14.2_13,2 [mephist@srv /usr/ports/www/nginx]$ ll /usr/ports/packages/All/ total 864 -rw-r--r-- 2 root wheel 828732 21 Apr. 17:35 nginx-1.14.2_13,2.txz

Do porters need to use some extra magic to make their packages built in synth?

mephist avatar Apr 21 '19 14:04 mephist

Let me clarify my question. Is there a way to manually reproduce steps (mount/chroot/whatever) which are performed by synth to build a single port? I want to try to troubleshoot it myself, to find the root cause. I see Ada for the first time to follow steps by code lines. Thanks a lot for patient.

mephist avatar Apr 21 '19 17:04 mephist

First, "make package" uses a live system, which cannot be reproduced, nor can the build environment be controlled. So saying something is good because "make build" works is a fallacy. It has to build in poudriere or synth.

The problem is that the port makefile doesn't require libxslt. You seem to have it on your live system, so it builds out of luck on the live system. Believe me, the problem is with the nginx port.

jrmarino avatar Apr 22 '19 12:04 jrmarino