#53790 closed enhancement (fixed)
wget port variant that does not require X11
Reported by: | mathomp4 (Matthew Thompson) | Owned by: | ryandesign (Ryan Carsten Schmidt) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | lrenaud (Luke), danchr (Dan Villiom Podlaski Christiansen) | |
Port: | wget |
Description (last modified by ctreleaven (Craig Treleaven))
Macports devels,
This is an enhancement I'd really like. I tend to use wget as my "URL getter" of choice mainly because of muscle memory ('wget' instead of 'curl -O' flies off my fingers better).
So, I'd like to install wget on my Mac. But, I try to keep my Macports installs fairly lean for the times I need to rebuild them all, etc. But, lets say I want wget:
(26) $ port -y install wget ---> Computing dependencies for wget The following dependencies will be installed: cairo desktop-file-utils fontconfig freetype ghostscript glib2 gnutls gobject-introspection graphite2 groff harfbuzz harfbuzz-icu help2man icu jasper jbig2dec jbigkit jpeg lcms2 libnetpbm libpixman libpng libtasn1 libunistring libzzip mpfr netpbm nettle openjpeg p11-kit p5.24-locale-gettext poppler poppler-data potrace psutils py27-appdirs py27-beaker py27-certifi py27-mako py27-markupsafe py27-packaging py27-parsing py27-setuptools py27-six texinfo texlive-basic texlive-bin texlive-common tiff xorg-bigreqsproto xorg-fixesproto xorg-inputproto xorg-kbproto xorg-libX11 xorg-libXau xorg-libXaw xorg-libXdmcp xorg-libXext xorg-libXfixes xorg-libXi xorg-libXmu xorg-libXp xorg-libXt xorg-libice xorg-libpthread-stubs xorg-libsm xorg-libxcb xorg-printproto xorg-renderproto xorg-util-macros xorg-xcb-proto xorg-xcb-util xorg-xcmiscproto xorg-xextproto xorg-xf86bigfontproto xorg-xproto xorg-xtrans xpm xrender Continue? [Y/n]: n
That seems a bit much for wget, a program even GNU says works on non-X terminals:
GNU Wget is a free software package for retrieving files using HTTP, HTTPS and FTP, the most widely-used Internet protocols. It is a non-interactive commandline tool, so it may easily be called from scripts, cron jobs, terminals without X-Windows support, etc.
The fact that it seems to need all of X and TeXLive as well as bits of Python and Perl (parts of which I have installed). My guess is because its docs need TeX might be triggering this?
Could there possibly be a way to create a "lite" variant that might end up just getting wget and maybe some simple GNU tools? Maybe by only building manpages and not docs that need texinfo?
Personally, I think this ticket should be closed as "worksforme".
Change History (13)
comment:1 Changed 8 years ago by mathomp4 (Matthew Thompson)
comment:2 Changed 8 years ago by mathomp4 (Matthew Thompson)
Cc: | mathomp4 added |
---|
comment:3 Changed 8 years ago by mf2k (Frank Schima)
Cc: | mathomp4 removed |
---|---|
Owner: | set to ryandesign |
Port: | wget added |
Status: | new → assigned |
In the future, please Cc the port maintainers (port info --maintainers wget
), if any. As reporter, you do not need to Cc yourself.
comment:4 Changed 8 years ago by Schamschula (Marius Schamschula)
I just ran
$port rdeps wget The following ports are dependencies of wget @1.19.1_0+ssl: xz libiconv gperf gettext expat ncurses texinfo help2man perl5.24 gdbm p5.24-locale-gettext pkgconfig libidn nettle autoconf automake libtool gmp pcre bzip2 libedit zlib gnutls libtasn1 libunistring perl5 texlive-basic texlive-common texlive-bin fontconfig freetype libpng libzzip xmlto getopt coreutils findutils libpaper libxml2 libxslt docbook-xml xmlcatmgr docbook-xml-4.1.2 unzip docbook-xml-4.2 docbook-xml-4.3 docbook-xml-4.4 docbook-xml-4.5 docbook-xml-5.0 docbook-xsl fop poppler curl openssl curl-ca-bundle jpeg glib2 libffi cairo libpixman xrender xorg-libX11 xorg-xtrans xorg-bigreqsproto xorg-xcmiscproto xorg-xextproto xorg-xf86bigfontproto xorg-inputproto xorg-util-macros xorg-libXdmcp xorg-xproto xorg-libXau xorg-libxcb xorg-xcb-proto python27 sqlite3 db48 python_select python2_select xorg-libpthread-stubs xorg-kbproto xorg-renderproto xorg-libXext xorg-xcb-util lcms2 tiff openjpeg cmake libarchive lzo2 lz4 libuv jbigkit poppler-data gobject-introspection py27-mako py27-setuptools py27-appdirs py27-certifi py27-packaging py27-parsing py27-six py27-beaker py27-markupsafe graphite2 icu harfbuzz harfbuzz-icu mpfr potrace xorg-libXp xorg-printproto xpm xorg-libXt xorg-libsm xorg-libice xorg-libXaw groff ghostscript jbig2dec psutils netpbm subversion apr apr-util db46 serf1 scons cyrus-sasl2 kerberos5 libcomerr libmagic jasper libnetpbm xorg-libXmu xorg-libXi xorg-libXfixes xorg-fixesproto p11-kit desktop-file-utils popt
You can see that the texlive dependencies come in under libunistring which is a build requirement for gnutls.
comment:5 Changed 8 years ago by mathomp4 (Matthew Thompson)
Actually looking at that list, curl is a dependency of wget! That is...ironic? Weird? I'm not sure.
I guess didn't see it in mine because something must have required it already in my Macports setup.
comment:6 Changed 8 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | lrenaud added |
---|
Has duplicate #53958. Suggestions welcome.
comment:7 Changed 8 years ago by ctreleaven (Craig Treleaven)
Description: | modified (diff) |
---|
I don't think this problem is all that serious. As noted, most of the packages are only required for the build. Binary packages of wget are available:
http://packages.macports.org/wget/
In such cases, its direct build dependencies _won't_ need to be installed (although I haven't tested this on a clean system):
$ port info --depends_build wget depends_build: texinfo, perl5.24, pkgconfig
The overall number of build dependencies that will get installed depends on whether there are binary packages for each of the non-build dependencies that wget need--unless the user has chosen to build everything from source. I haven't gone to the effort of checking each one. The following lists the non-build deps:
$ port rdeps --no-build wget The following ports are dependencies of wget @1.19.1_0+ssl: libidn libiconv gettext expat ncurses nettle gmp pcre bzip2 libedit zlib gnutls libtasn1 libunistring p11-kit desktop-file-utils glib2 libffi popt libxslt libxml2 xz curl-ca-bundle
I trust this list is acceptable. ;)
In any event, after wget is installed, the 'port leaves' command should indicate any such packages that got installed but can be pruned.
comment:8 Changed 8 years ago by lrenaud (Luke)
That list is acceptable. But I suppose the key question is why does libunistring depend upon texlive? Looking at the dependencies file in the libunistring source package from the project, there aren't actually any inherent dependencies.
Further digging shows the change comes from #47424. The ticket requested addition of the library for documentation generation, so the question simply becomes is it standard practice to build all documentation with a package? If we introduce a variant of libunistring sans documentation, and depend upon that by default this whole problem would go away.
comment:9 follow-up: 10 Changed 8 years ago by ctreleaven (Craig Treleaven)
A binary package is available for libunistring so most people _won't_ get all the build deps. The build deps are only used when the package is built (eg on our buildbots). The binary package should include the documentation and therefore the build deps need not be installed. If any of the build deps are being installed, it is either due to other packages or it's a bug we should fix. The list I posted above are the only deps that should be installed if you are using the default binary distribution.
And, as I tried to say, even if you build from source and _do_ get all the build deps, you don't have to keep them. 'port leaves' will help you find all the stuff that can be uninstalled after the a successful install.
The binary packages for libunistring are at:
http://packages.macports.org/libunistring/
The current ones seem to be about 2.6MB so the docs really can't be adding that much bulk.
comment:10 Changed 8 years ago by lrenaud (Luke)
I wasn't aware that MacPorts had any form of binary distribution, and while that clearly is the simplest solution, I don't think it's particularly clear to users that it exists.
I would favor a simple non-doc version of libunistring. It looks like the configure script simply auto-detects texlive to determine if it should generate documentation, so the variant would simply be a removal of the dependency.
comment:11 Changed 8 years ago by ryandesign (Ryan Carsten Schmidt)
I think it becomes pretty clear that we have binaries as soon as the user installs a port.
It is customary to either include the documentation, if it isn't that large or inconvenient to do so, or to offer a "docs" variant or better yet a documentation sub-port if they are large or inconvenient.
comment:12 Changed 7 years ago by danchr (Dan Villiom Podlaski Christiansen)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:13 Changed 7 years ago by danchr (Dan Villiom Podlaski Christiansen)
Cc: | danchr added |
---|
Aww nuts. An errant "Enter" submitted this before I could move the ticket to be for the "wget" port. Could an admin with power please move this ticket.
Mea culpa.