m2049r / xmrwallet

monerujo: An Android Monero Wallet
https://www.monerujo.io/
Apache License 2.0
597 stars 274 forks source link

Use --no-install-recommends for apt-get install commands #761

Open emanuelb opened 3 years ago

emanuelb commented 3 years ago

adding --no-install-recommends for apt-get install commands will probably/may reduce the amount of packages installed (then the package list may need to be increased with some required dependencies for the usage which are part of the recommended list, for example ca-certificates package)

https://github.com/m2049r/xmrwallet/blob/bdfb6a90b6cac748f20fba7387e2c15b5a8a3e94/external-libs/android64.Dockerfile#L3 https://github.com/m2049r/xmrwallet/blob/bdfb6a90b6cac748f20fba7387e2c15b5a8a3e94/external-libs/android32_x86.Dockerfile#L3 https://github.com/m2049r/xmrwallet/blob/bdfb6a90b6cac748f20fba7387e2c15b5a8a3e94/external-libs/android32.Dockerfile#L3 https://github.com/m2049r/xmrwallet/blob/bdfb6a90b6cac748f20fba7387e2c15b5a8a3e94/external-libs/android64_x86.Dockerfile#L3

m2049r commented 3 years ago

probably/may

does it? what is the exact fix?

emanuelb commented 3 years ago

yes, in general it probably does, what I meant by that is it depends on the packages installed, on some of them it wont make difference, for some it will install less deps, here tested on debian:sid-slim The currently used command: apt-get install -y unzip automake build-essential curl file pkg-config git python libtool libtinfo5 will install additional deps:

ii  ca-certificates            20210119                       all          Common CA certificates
ii  dirmngr                    2.2.27-2                       amd64        GNU privacy guard - network certificate management service
ii  fakeroot                   1.25.3-1.1                     amd64        tool for simulating superuser privileges
ii  fontconfig-config          2.13.1-4.2                     all          generic font configuration library - configuration
ii  fonts-dejavu-core          2.37-2                         all          Vera font family derivate with additional characters
ii  gnupg                      2.2.27-2                       all          GNU privacy guard - a free PGP replacement
ii  gnupg-l10n                 2.2.27-2                       all          GNU privacy guard - localization files
ii  gnupg-utils                2.2.27-2                       amd64        GNU privacy guard - utility programs
ii  gpg                        2.2.27-2                       amd64        GNU Privacy Guard -- minimalist public key operations
ii  gpg-agent                  2.2.27-2                       amd64        GNU privacy guard - cryptographic agent
ii  gpg-wks-client             2.2.27-2                       amd64        GNU privacy guard - Web Key Service client
ii  gpg-wks-server             2.2.27-2                       amd64        GNU privacy guard - Web Key Service server
ii  gpgconf                    2.2.27-2                       amd64        GNU privacy guard - core configuration utilities
ii  gpgsm                      2.2.27-2                       amd64        GNU privacy guard - S/MIME version
ii  less                       551-2                          amd64        pager program similar to more
ii  libalgorithm-diff-perl     1.201-1                        all          module to find differences between files
ii  libalgorithm-diff-xs-perl  0.04-6+b1                      amd64        module to find differences between files (XS accelerated)
ii  libalgorithm-merge-perl    0.08-3                         all          Perl module for three-way merge of textual data
ii  libassuan0:amd64           2.5.4-1                        amd64        IPC library for the GnuPG components
ii  libbsd0:amd64              0.11.3-1                       amd64        utility functions from BSD systems - shared library
ii  libc-devtools              2.31-13                        amd64        GNU C Library: Development tools
ii  libcbor0:amd64             0.5.0+dfsg-2                   amd64        library for parsing and generating CBOR (RFC 7049)
ii  libdeflate0:amd64          1.7-1                          amd64        fast, whole-buffer DEFLATE-based compression and decompression
ii  libedit2:amd64             3.1-20191231-2+b1              amd64        BSD editline and history libraries
ii  libfakeroot:amd64          1.25.3-1.1                     amd64        tool for simulating superuser privileges - shared libraries
ii  libfido2-1:amd64           1.6.0-2                        amd64        library for generating and verifying FIDO 2.0 objects
ii  libfile-fcntllock-perl     0.22-3+b7                      amd64        Perl module for file locking with fcntl(2)
ii  libfontconfig1:amd64       2.13.1-4.2                     amd64        generic font configuration library - runtime
ii  libfreetype6:amd64         2.10.4+dfsg-1                  amd64        FreeType 2 font engine, shared library files
ii  libgd3:amd64               2.3.0-2                        amd64        GD Graphics Library
ii  libglib2.0-data            2.66.8-1                       all          Common files for GLib library
ii  libgpm2:amd64              1.20.7-8                       amd64        General Purpose Mouse - shared library
ii  libicu67:amd64             67.1-7                         amd64        International Components for Unicode
ii  libjbig0:amd64             2.1-3.1+b2                     amd64        JBIGkit libraries
ii  libjpeg62-turbo:amd64      1:2.0.6-4                      amd64        libjpeg-turbo JPEG runtime library
ii  libksba8:amd64             1.5.0-3                        amd64        X.509 and CMS support library
ii  libldap-common             2.4.57+dfsg-3                  all          OpenLDAP common files for libraries
ii  liblocale-gettext-perl     1.07-4+b1                      amd64        module using libc functions for internationalization in Perl
ii  libltdl-dev:amd64          2.4.6-15                       amd64        System independent dlopen wrapper for GNU libtool
ii  libltdl7:amd64             2.4.6-15                       amd64        System independent dlopen wrapper for GNU libtool
ii  libmd0:amd64               1.0.3-3                        amd64        message digest functions from BSD systems - shared library
ii  libnpth0:amd64             1.6-3                          amd64        replacement for GNU Pth using system threads
ii  libpng16-16:amd64          1.6.37-3                       amd64        PNG library - runtime (version 1.6)
ii  libsasl2-modules:amd64     2.1.27+dfsg-2.1                amd64        Cyrus SASL - pluggable authentication modules
ii  libtiff5:amd64             4.2.0-1                        amd64        Tag Image File Format (TIFF) library
ii  libwebp6:amd64             0.6.1-2.1                      amd64        Lossy compression of digital photographic images.
ii  libx11-6:amd64             2:1.7.2-1                      amd64        X11 client-side library
ii  libx11-data                2:1.7.2-1                      all          X11 client-side library
ii  libxau6:amd64              1:1.0.9-1                      amd64        X11 authorisation library
ii  libxcb1:amd64              1.14-3                         amd64        X C Binding
ii  libxdmcp6:amd64            1:1.1.2-3                      amd64        X11 Display Manager Control Protocol library
ii  libxext6:amd64             2:1.3.3-1.1                    amd64        X11 miscellaneous extension library
ii  libxml2:amd64              2.9.10+dfsg-6.7                amd64        GNOME XML library
ii  libxmuu1:amd64             2:1.1.2-2+b3                   amd64        X11 miscellaneous micro-utility library
ii  libxpm4:amd64              1:3.5.12-1                     amd64        X11 pixmap library
ii  manpages                   5.10-1                         all          Manual pages about using a GNU/Linux system
ii  manpages-dev               5.10-1                         all          Manual pages about using GNU/Linux for development
ii  netbase                    6.3                            all          Basic TCP/IP networking system
ii  openssh-client             1:8.4p1-5                      amd64        secure shell (SSH) client, for secure access to remote machines
ii  openssl                    1.1.1k-1                       amd64        Secure Sockets Layer toolkit - cryptographic utility
ii  pinentry-curses            1.1.0-4                        amd64        curses-based PIN or pass-phrase entry dialog for GnuPG
ii  publicsuffix               20210108.1309-1                all          accurate, machine-readable list of domain name suffixes
ii  sensible-utils             0.0.14                         all          Utilities for sensible alternative selection
ii  shared-mime-info           2.0-1                          amd64        FreeDesktop.org shared MIME database and spec
ii  ucf                        3.0043                         all          Update Configuration File(s): preserve user changes to config files
ii  xauth                      1:1.1-1                        amd64        X authentication utility
ii  xdg-user-dirs              0.17-2                         amd64        tool to manage well known user directories

that wont be installed if command with --no-install-recommends: apt-get install -y --no-install-recommends unzip automake build-essential curl file pkg-config git python libtool libtinfo5 is used instead which also saves space, less work, more security.

But some of the deps in above list might be needed and need to added to list of installed deps, when the list is more explicit it's also easier to use it as base for other distros who use other package managers.

m2049r commented 3 years ago

maybe you can PR something which works