jrmarino / synth

Next D/Ports build tool for live systems (Alternative for Portmaster and Portupgrade tools)
ISC License
255 stars 15 forks source link

behavior of "fetch prebuilt packages" #20

Closed basbebe closed 8 years ago

basbebe commented 8 years ago

I have the suspicion that fetch prebuilt packages doesn't take all dependencies and profile into full account (correct me if I'm wrong).

This is my /usr/local/etc/synth/LiveSystem-make.conf

WITH_OPENSSL_PORT=  yes
OPENSSL_PORT=           security/libressl

This is my /usr/local/etc/synth/jail_ports.txt

databases/mariadb100-server
databases/mariadb100-client
databases/php56-redis
databases/py-MySQLdb
databases/redis
devel/git
devel/pear
devel/php-libawl
devel/py-pip
editors/nano
ftp/curl
ftp/php56-curl
ftp/py-pycurl
ftp/wget
lang/php56
lang/php56-extensions
lang/python
lang/python2
lang/python3
mail/dovecot2
mail/dovecot2-pigeonhole
mail/dovecot2-antispam-plugin
mail/opendkim
mail/opendmarc
mail/postfix-current
mail/rmilter
mail/rspamd
mail/ssmtp
security/ca_root_nss
security/clamav
security/libressl
security/openssh-portable
security/openssl
security/openvpn
security/php56-openssl
security/py-letsencrypt
security/py-pycrypto
security/py-cryptography
security/tor
shells/zsh
www/uwsgi
www/nginx
www/nginx-devel

This is the output with Fetch prebuilt packages false

~ # ❯❯❯ synth status && synth status /usr/local/etc/synth/jail_ports.txt
Querying system about current package installations.
Stand by, comparing installed packages against the ports tree.
Scanning existing packages.
These are the ports that would be built:
Total packages that would be built: 0
The complete build list can also be found at:
/tmp/synth_status_results.txt
Scanning existing packages.
These are the ports that would be built:
  => security/py-openssl
  => devel/py-funcsigs
  => devel/py-pbr
  => www/py-requests
  => www/py-werkzeug
  => net/py-ndg_httpsclient
  => devel/py-mock
  => devel/py-pyrfc3339
  => devel/py-zope.event
  => devel/py-zope.interface
  => security/py-acme
  => devel/py-configargparse
  => devel/py-configobj
  => devel/py-parsedatetime
  => devel/py-python2-pythondialog
  => devel/py-zope.component
  => sysutils/py-psutil
  => security/py-letsencrypt
  => databases/redis
Total packages that would be built: 19
The complete build list can also be found at:
/tmp/synth_status_results.txt

This is the output with Fetch prebuilt packages *true

~ # ❯❯❯ synth status && synth status /usr/local/etc/synth/jail_ports.txt
Querying system about current package installations.
Stand by, comparing installed packages against the ports tree.
Stand by, updating external repository catalogs ... done.
Scanning existing packages.
These are the ports that would be built:
Total packages that would be built: 0
The complete build list can also be found at:
/tmp/synth_status_results.txt
Stand by, updating external repository catalogs ... done.
Scanning existing packages.
These are the packages that would be fetched:
  => py27-openssl-0.15.1.txz (security/py-openssl)
  => py27-funcsigs-0.4.txz (devel/py-funcsigs)
  => py27-pbr-1.8.1.txz (devel/py-pbr)
  => py27-ndg_httpsclient-0.4.0_2.txz (net/py-ndg_httpsclient)
  => py27-mock-1.3.0_1.txz (devel/py-mock)
  => py27-pyrfc3339-0.2.txz (devel/py-pyrfc3339)
  => py27-zope.event-4.1.0.txz (devel/py-zope.event)
  => py27-zope.interface-4.1.3.txz (devel/py-zope.interface)
  => py27-configargparse-0.10.0.txz (devel/py-configargparse)
  => py27-configobj-5.0.6_1.txz (devel/py-configobj)
  => py27-parsedatetime-1.4.txz (devel/py-parsedatetime)
  => py27-python2-pythondialog-3.3.0.txz (devel/py-python2-pythondialog)
  => py27-zope.component-4.2.2.txz (devel/py-zope.component)
  => py27-psutil-3.3.0.txz (sysutils/py-psutil)
Total packages that would be fetched: 14
The complete build list can also be found at:
/tmp/synth_prefetch_list.txt
These are the ports that would be built:
  => www/py-requests
  => www/py-werkzeug
  => security/py-acme
  => security/py-letsencrypt
  => databases/redis
Total packages that would be built: 5
The complete build list can also be found at:
/tmp/synth_status_results.txt

I assume that at also py27-opensslshould be built if I choose to use libressl? Or is this a false assumption?

jrmarino commented 8 years ago

I have the suspicion that fetch prebuilt packages doesn't take all dependencies and profile into full account (correct me if I'm wrong).

it does.

if it doesn't pull something, it is because 1) it doesn't need updating 2) what's in external repo is not usuable. It must think py27-openssl is usable.

for something major like switching SSL, you probably shouldn't use prefetch anyway. prefetch comes with a risk and it's off by default on purpose. If in doubt, rebuild from source.

basbebe commented 8 years ago

thanks

jrmarino commented 8 years ago

i think we can close this one.

basbebe commented 8 years ago

Yes, thanks!