Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update python to 2.7.18 #3648

Merged
merged 17 commits into from Jun 25, 2020
Merged

Update python to 2.7.18 #3648

merged 17 commits into from Jun 25, 2020

Conversation

hgy59
Copy link
Contributor

@hgy59 hgy59 commented Mar 4, 2019

Motivation: Update python to 2.7.18 (the last 2.x version)

Checklist

  • Build rule all-supported completed successfully
  • Package upgrade completed successfully
  • New installation of package completed successfully

upgrade and new installation verified with x64-6.1

Updates an fixes of dependent packages

Validated dependent packages

  • couchpotatoserver (fix service start)
  • gateone
  • haproxy: dsm-6 fixes, service works, integrated UI (ExtJs) does not work (all ExtJs UI do not work with DSM>5)
  • headphones (fix service start)
  • homeassistant, moved to python3
  • htpcmanager
  • lazy librarian (fix service start)
  • marashino
  • mercurial
  • mylar (fix service start)
  • nzbmegasearch (fix dsm 6 service start)
  • octoprint (Octoprint - service cannot be started #3128, update for python3 available, but not updated with this PR)
  • plexpy-custom (fix service start)
  • sabnzbd (fix service start)
  • saltmaster (update to 2015.5.11, fix salt-api)
  • saltpad (fix branch to use python app)
  • sickbeard
  • subliminal (will be done by @ymartin59)

Remarks

  • This PR includes a redesign on how the boost library's BOOST_LIBRARIES are built. The dependency on cross/python is removed from cross/boost/Makefile to avoid conflicts with cross/python3. To build cross/boost with python(2) bindings, the dependency on cross/python must now precede cross/boost. With this dynamic dependency, it is possible for packages (like updated domoticz) to depend on python3 and boost (boost python3 bindings not yet required/implemented).
  • Update deluge to python3 may need cross/libtorrent with python3 bindings in the boost libraries. This is beyond the scope of this python2 package update.
  • Cross compilation of ossp-js (cross/js) is fixed but still does not work for pyload on intel archs - js interactive shell works on intel archs, but execution of javascript code like js -e "print(23+19)" fails with out of memory.
  • May be related to sickbeard cannot find sabnzdb download folder - same NAS #3308

@ymartin59
Copy link
Contributor

@hgy59 Thanks. In case of Python, I am not only interested in package own-upgrade but also in effect on dependent applications. I will do some testing

@hgy59
Copy link
Contributor Author

hgy59 commented Mar 4, 2019

It would be very helpful if we had some makefile targets like "all-python" or "all-python3" to build python2.7 or python3 with all packages depending on it.

@ymartin59
Copy link
Contributor

@hgy59 I agree... A basic "grep" may do the trick... By the way, compilation success is far not enough, according to current troubles with stuck 3.6 upgrade.

@m4tt075
Copy link
Contributor

m4tt075 commented Mar 4, 2019

...and mono for qoriq platforms... ;-)

@chickenandpork
Copy link
Member

chickenandpork commented Mar 5, 2019 via email

@hgy59 hgy59 changed the title Update python to 2.7.16 [WIP] Update python to 2.7.16 Mar 7, 2019
@hgy59
Copy link
Contributor Author

hgy59 commented Mar 7, 2019

working on verification of the build for packages depending on python 2.7

EDIT: current states and WIP see PR description

current packages states:

  • python
  • deluge (needs fixes for geoip-api-c and libtorrent)
  • mercurial
  • domoticz (missing svn repo for version 2.0.2284, update to version 4.9700 builds with cross/boost dependency updated to python3)
  • rdiff-backup
  • duplicity
  • octoprint
  • sabnzbd
  • sabnzbd-testing (fails with python 2.7.15 too)
  • ffsync (fails with python 2.7.15 too)

TODO:

  • domoticz may be successfully updated to python3
  • ffsync has failures on cross compilation of gevent and fails to build unittest2 even without cross compilation

@Safihre do we still need the package sabnzbd-testing? It looks like an outdated version (2.3.1) that is still tagged as beta and not maintained any more (the non testing current version is 2.3.7).

@Safihre
Copy link
Contributor

Safihre commented Mar 7, 2019

Feel free to remove sabnzbd-testing.

@ymartin59 I think it can be completely removed from SynoCommunity, also from the website etc.

@Safihre
Copy link
Contributor

Safihre commented May 24, 2019

Any updates here? :)

@hgy59 hgy59 changed the title [WIP] Update python to 2.7.16 [WIP] Update python to 2.7.17 Nov 9, 2019
@hgy59 hgy59 mentioned this pull request Mar 10, 2020
@Safihre
Copy link
Contributor

Safihre commented Mar 17, 2020

Maybe we should get this out now :)

@hgy59
Copy link
Contributor Author

hgy59 commented Mar 17, 2020

@Safihre I am working on it. As it has so much dependencies, it takes some time to build and verify.

For python2, all packages that depend on python2 and all packaes depending on python modules, it takes more than 36 hours for me to build (results in ~ 220 spk files).
As there are some issues reported by dependabot (bot), there is still some work to do to update used python modules with security issues.
And python3 incl. dependent packages must be built and validated too.

And the (really) final python2 version is in sight (2.7.18 release candidate early April, 2020, 2.7.18 mid-April, 2020).
I hope that there will be none or only small adjustments to be done for the final update from version 2.7.17 to 2.7.18.
I started this PR as update to 2.7.16 and my target is to go out with version 2.7.18 and than freeze Python2 here.

@Safihre
Copy link
Contributor

Safihre commented Mar 21, 2020

Any help to use Travis to do the building? But I guess we have some time if we wait untill 2.7.18.
Makes sense.

@hgy59
Copy link
Contributor Author

hgy59 commented Mar 21, 2020

@Safihre thanks for the offer, but now it is more a matter of testing than building the packages.

@ymartin59
Copy link
Contributor

@hgy59 @Safihre At the moment, I focus on Python 3 and moving applications to Python 3. I really wonder if it is worth the effort to build and publish Python 2.7 and all other dependent applications - that may probably break after Python 2 update...
Except if you are convincend upgrading/publishing Python 2.7.17 will not break currently published application packages...

@ymartin59 ymartin59 added this to In progress in Python 2.7.18 via automation Apr 5, 2020
@ymartin59
Copy link
Contributor

@hgy59 Do not put effort on maintaining applications that now have Python 3 support. (Firefox Sync Server does not have yet).

@hgy59
Copy link
Contributor Author

hgy59 commented Apr 14, 2020

@hgy59 Do not put effort on maintaining applications that now have Python 3 support. (Firefox Sync Server does not have yet).

not for ffsync (as you are working on it, and future update changed to rust).
So for the final commit I will have to revert changes on packages like octoprint, )
Changed domiticz to python3 with redesign of boost build. (But gave up to update to version 2020.1, as dependencies failed to update).
The final 2.7.18 will be released on 04/18/2020.

@ymartin59
Copy link
Contributor

@hgy59 I am (almost) over with ffsync, I will have a look at Subliminal.

@hgy59 hgy59 changed the title [WIP] Update python to 2.7.17 Update python to 2.7.18 Apr 24, 2020
@hgy59 hgy59 mentioned this pull request May 3, 2020
hgy59 added 15 commits June 23, 2020 23:28
…tire

fix saltpad homepage
use latest version of wheel that works with python 2
fix linking to rt lib

update itools
- update dependencies
- fix ppc-archs
- fix configure for linking to rt library in cross/usbmuxd

fix usage of DSM_APP_NAME in spk makefiles
retire oscam package (close SynoCommunity#2636)
Fix pyload/tesseract-ocr for ppc853x-5.2
- fix DSM 6 compatibility
- create certificate by installer (paths used by app for certificate creation does not work on dsm 6)
- update domoticz and migrate to python3
- archs not supported anymore: $(ARM5_ARCHES) powerpc ppc824x ppc853x ppc854x
- update app icon
- use compiled bcrypt dependency
- enable arch qoriq (unsupported are: powerpc ppc824x ppc853x ppc854x)
- fix duplicity wheels (missing modules requirements.txt)
- update librsync
- update duply
- add compression to cross/librsync
- older versions of rdiff-backup fail to build with updated cross/librsync
- remove definition of LOG_FILE to use generic one
- mylar: use subfolder for data to avoid conflicts with log files
- fix couchpotatoserver
- fix couchpotatoserver-custom
- fix headphones
- fix headphones-custom
- fix lazylibrarian
- fix mylar
- fix nzbmegasearch
- fix plexpy-custom
- fix sabnzbd
- fix salt-api dependencies and add port
- update salt-master to version 2015.5.11 (may be the last supported version by saltpad)
- update salt-master dependencies (salt-api needs CherryPy < 12)
- use branch saltpad_v1 as this is the latest python app
- update dependencies to use current Flask
- reduce icons to 512x512 pixel
- fix deluge start-stop-status
- adjust deluge dependencies and add hi3535 to unsupported archs
- archs not supported anymore: 88f6281 powerpc ppc824x ppc853x ppc854x hi3535
- use src/requirements.txt for wheels and use explicit versions
- fix boost PLIST
- fix watch folder configuration
- configure autoadd plugin and activate on demand
- update python module cryptography to 2.9.2
- add python module rencode 1.0.6
- deluge depends on rencode and latest python
- fix python dependency
- configure geoip data (still not working)
- add wheels of rencode and PyHamcrest
- update pyload to 0.4.20
- fix DSM 6 service installation (use generic service approach where possible)
- fix pyload.conf
- fix host ip (use 0.0.0.0 instead of ::) and remove IPv6 patch since config does not work with "::"
- remove obsolete patches
- install config to var instead of etc folder for generic update handling
- set user name and group for permissions in pyload.conf
- fix cross compile js
- js compiled for intel archs (x86_64, i386), does still not work for pyload
- pyload JS engine test fails for intel archs as calling `js -e "print(23+19)"` returns "out of memory" instead of "42"
- add diyspk/js (helpful for testing cross compiled js engine)
- remove SPK_COMMANDS (not working with SERVICE_SETUP)
- use full device name for shares of mounted devices
- fix service user privilege - need root for mount/umount and add/remove udev rules
- update itools dependencies
- update libplist and libusbmuxd to official releases
- suppress call of configure in autogen.sh (libplist, libusbmuxd, usbmuxd, libimobiledevice)
- use var folder for access-log and lock files
- use package log (not install log) for service_prestart and service_poststop
- log unexpected errors of mount/umount in error.log
- fix dsmappname configuration
- fix quotes in spk description
- make gateone icon square
- popt: fix download url
- sabnzbd/Makefile: use spksrc.install-resoruces.mk for package download
- minio/src/wizard/install_uifile: fix html of link to permission management
- haproxy/Makefile: use requirements.txt for wheels
- itools: remove obsolete install_target
- flexget: revert update
- rdiff-backup: generic installer
@hgy59
Copy link
Contributor Author

hgy59 commented Jun 23, 2020

@hgy59 Is there anything left to add here? I hope not, this single PR contains already lots of varia fixes and updates.
If you expect to use "rebase-and-merge" (sounds more relevant than "squash-merge"), would it be possible to refactor some commit messages to prefix with package name - for instance "fix haproxy" would become "haproxy: fix for DSM 6" (for homogeneity)?

@ymartin59 I updated the commit messages (except the Fix service start/installation of Python2 dependents as there are too many packages updated)
Is it ok to rebase and mergenow?

@hgy59 hgy59 merged commit a8cbf70 into SynoCommunity:master Jun 25, 2020
Python 2.7.18 automation moved this from Reviewer approved to Done Jun 25, 2020
@hgy59 hgy59 added status/to-publish update request to update existing package and removed status/ready-to-merge labels Jun 25, 2020
@hgy59 hgy59 mentioned this pull request Jun 25, 2020
5 tasks
@hgy59 hgy59 deleted the python_2.7.16 branch June 27, 2020 07:40
@ymartin59
Copy link
Contributor

ymartin59 commented Aug 4, 2020

Build Check List before storm-publish:

  • python 2.7.18
  • deluge
  • domoticz
  • duplicity
  • plexivity
  • itools
  • rdiff-backup
  • couchpotatoserver
  • gateone
  • haproxy
  • headphones
  • homeassistant
  • htpcmanager
  • lazy librarian
  • marashino
  • mercurial
  • mylar
  • nzbmegasearch
  • octoprint
  • plexpy-custom
  • sabnzbd
  • saltmaster
  • saltpad
  • sickbeard

@Safihre
Copy link
Contributor

Safihre commented Aug 4, 2020

@ymartin59 I would leave out sabnzbd as the Python 3 package is already finished and ready to merge: #4035

@@ -16,7 +16,7 @@
"daemon_port": 58846,
"torrentfiles_location": "@download_dir@",
"max_active_limit": 8,
"geoip_db_location": "/usr/local/deluge/share/GeoIP/GeoIP.dat",
"geoip_db_location": "/usr/share/geoip/GeoIP.dat",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@hgy59 Notice I do not find that file on DSM 6.1 system, it is only available on DSM 6.2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
update request to update existing package
Projects
Python 2.7.18
  
Done
5 participants