# Ports Update : python-2.7 flagged as EOLed, so Thunderbird port will expire as well ?



## vslash (Aug 4, 2020)

Hi,
I saw python-2.7 port is deprecated, with an expiration date  : 2020-12-31, so Thunderbird-68 will expire at the same time, among a long list of other ports.
Perhaps I misunderstand something ...

Could someone shed a light on this ?

Thank you,

REF:
lang/python27
mail/thunderbird


----------



## SirDice (Aug 4, 2020)

It means the maintainer has some work to do. If this dependency isn't changed before the EoL then yes, it would expire along with Python 2.7.


----------



## Alain De Vos (Aug 4, 2020)

I think it's only a build requirement.


----------



## Emrion (Aug 4, 2020)

Alain De Vos said:


> I think it's only a build requirement.


Precisely. You have the same thing concerning Chromium & Firefox.


----------



## olli@ (Aug 4, 2020)

Better store a copy of your favorite packages (and their dependencies) in a safe place on 2020-12-31 …


----------



## vslash (Aug 4, 2020)

SirDice said:


> It means the maintainer has some work to do. If this dependency isn't changed before the EoL then yes, it would expire along with Python 2.7.


Thanks


----------



## Deleted member 63539 (Aug 4, 2020)

What about replace python2 with this?









						GitHub - naftaliharris/tauthon: Fork of Python 2.7 with new syntax, builtins, and libraries backported from Python 3.
					

Fork of Python 2.7 with new syntax, builtins, and libraries backported from Python 3. - GitHub - naftaliharris/tauthon: Fork of Python 2.7 with new syntax, builtins, and libraries backported from P...




					github.com


----------



## SirDice (Aug 4, 2020)

gh_origin said:


> What about replace python2 with this?











						EOL Python 2.7 issues
					

Hi Forum,  With the upcoming EOL of Python 2.7 we realized that for years to come we can not do and we do not want to do without Python 2.7.   Information about how FreeBSD is dealing with the EOL Python 2.7 is hard to find. Does someone know more about the future plans for Python 2.7 on...




					forums.freebsd.org


----------



## Alain De Vos (Aug 4, 2020)

Note : gnumeric,nemo,muffin have a runtime dependency.


----------



## a6h (Aug 4, 2020)

I think the best approach around the py2 EOL time -- a few days before and few weeks after -- is to stay with some quarterly branch pkg/repos/FreeBSD.conf and/or not updating/upgrading ports/poudriere. Who knows, it can be a great vibe, moving to version 3, all blessing, or it can lead to a dependency hellhole all over the places. You don't want losing access to your emails, what do you want to do? Manually import them one by one another email client?


----------



## Alain De Vos (Aug 4, 2020)

Or drop what is dead.


----------



## a6h (Aug 4, 2020)

I did the same in January, i.e. Xorg devd/udev fiasco. It didn't bite me.
[EDIT] by same, I meant staying with quarterly branch policy.


----------



## olli@ (Aug 4, 2020)

gh_origin said:


> What about replace python2 with this?
> 
> 
> 
> ...


That would be like beating a horse that’s already dead.
We want to *get rid* of Python 2, not prolong the pain.

Furthermore, switching to tauthon would be probably worse than keeping Python 2 in the ports tree, because tauthon has a much smaller userbase, so the code receives less review, and there is a higher risk that security problems remain undiscovered.

Python 3 is the way to go. I've written many things in Python myself, from small scripts to large applications. Through the past years I’ve been bringing all of that to Python 3, piecemeal, every now and then a little bit. It’s not really difficult. In fact, it enabled me to rewrite some parts of my code in a much cleaner, more efficient and more robust way (and it even helped me to discover a few bugs in my code that went unnoticed with Python 2). For example, the strict separation between strings and byte arrays is a huge benefit. In Python 2, the confusion of bytes vs. normal strings vs. unicode strings was a pain, and it lead to subtle bugs e.g. when trying to encode a string that was already encoded. This cannot happen with Python 3. And that’s just one of many examples.


----------



## a6h (Aug 4, 2020)

olli@ said:


> Python 3 is the way to go


Agree. Most of the new python programmers are py3-only developers and never have installed py2 in their system. Python 2 is just a legacy stuff. It should happen long time ago. Pretty much like php5 to php7. People resisted it, complained about it. There's going to be a short time confusion, dependency problem, missing packages, ... I hope the whole process doesn't ignite a long list of whining thread, titled as" I updated recently, my packages are gone"


----------



## xtaz (Aug 4, 2020)

I just hope there's some sanity checking before all the ports expire. If ports like Firefox, Thunderbird, and Chromium are removed and then all the packages vanish as well, there will be many unhappy people. In fact if that happened on my laptop the first thing I'm likely to do is download a linux distro to "fix" it.

I totally agree that people need to get with the times and move to Python 3. I did it myself many years ago, but I'm slightly concerned at the fact I've seen a Firefox deprecation warning in my daily emails now for a couple of months and still nothing has changed.


----------



## msplsh (Aug 4, 2020)

Firefox has excised Python2, but the port hasn't realized this.  This may be a similar issue, making it easy (?) to fix, even if the maintainter has to wake up next year to an "interesting" inbox.


----------



## SirDice (Aug 4, 2020)

I haven't checked but it is it a direct dependency? It may just be a build dependency of some other (build) dependency.


----------



## jb_fvwm2 (Aug 4, 2020)

Other useful ports also wait.  mail/offlineimap, and the already removed  devel/diffuse, misc/gonvert,


----------



## olli@ (Aug 4, 2020)

I’m also somewhat concerned about print/scribus-devel. It contains about 54 kLOC Python, most of that is Python 2. I have a number of DTP projects made with Scribus, and it would be non-trivial to migrate them to something else. I don’t even know if there is a DTP suite in the ports collection that has as many features as Scribus. So, if Scribus goes away, I’ll need to keep a copy around, too.

And there are many more popular pieces oft software that still depend on Python 2: Chromium, mailman, kodi, virtualbox, mercurial … Just to name a few.

A few weeks ago I ran a small script (actually a one-liner) on the ports collection that identified 704 ports that depended on Python 2. Indirect dependencies not included.


----------



## msplsh (Aug 5, 2020)

Scribus maaaybe is ready for Python3?






						0015030: Port scripter to Python 3 - Mantis Issue Tracker for Scribus
					






					bugs.scribus.net


----------



## olli@ (Aug 5, 2020)

msplsh said:


> Scribus maaaybe is ready for Python3?
> 
> 
> 
> ...


It will be in the next “stable” release of Scribus, i.e. 1.6, but it is unclear if that happens this year. There don’t seem to be any plans currently.


----------



## xtaz (Aug 5, 2020)

jb_fvwm2 said:


> Other useful ports also wait.  mail/offlineimap, and the already removed  devel/diffuse, misc/gonvert,



mail/offlineimap is unlikely to be fixed. The author has stated that it's no longer being worked on and they are spending their time developing something called imapfw instead.

My suggestion is to look at mail/isync which I've been using for a while now. The executable in it is called mbsync and that works well to sync IMAP to IMAP, or IMAP to Maildir etc.


----------



## Mjölnir (Aug 5, 2020)

xtaz said:


> mail/offlineimap is unlikely to be fixed. The author has stated that it's no longer being worked on and they are spending their time developing something called imapfw instead.
> 
> My suggestion is to look at mail/isync which I've been using for a while now. The executable in it is called mbsync and that works well to sync IMAP to IMAP, or IMAP to Maildir etc.


There's also mail/fetchmail, which is mentioned in the handbook.


----------



## Juronski (Oct 27, 2020)

Deleted member 63539 said:


> What about replace python2 with this?
> 
> 
> 
> ...


Good idea. I want to contribute to keep Python 2.7 alive. It can exist besides Python 3. And the ecosystem is large compared to Python 3. There is no reason reinventing everything on Python 3. Furthermore, Python 2 has the future-module so it can behave as Python 3. There is a need for a new Python 2 port on FreeBSD. Python 2 is death long live Python 2.


----------



## msplsh (Oct 27, 2020)

The Python2 dependency for Thunderbird and Scribus was dropped a month after this thread was created in favor of Python3.

Looks like port maintainers and upstream developers are choosing to depend on updating to Python3 instead of having to do a bunch of heavy lifting to cling to Python2/Tauthon.  Indeed, Python2 is dead, as foretold in... _checks watch_... 2008.


----------



## Juronski (Oct 28, 2020)

msplsh said:


> heavy lifting to cling to Python2/Tauthon.



Heavy lifting to cling to Python2? For the time being only security updates are needed. How big is the PyPy community compared to Python? Pypy 2.7 is still maintained. PyPy has three versions.

Python 2 is murdered. And it rises from its grave to compete Python3 into oblivion.


----------



## msplsh (Oct 28, 2020)

1. Python devs are not going to commit to working on or backport security updates.  Why look for security bugs in a product that isn't maintained.  Keep your 0-day relatively few people care about and use it on outdated stuff.  All that work is going to have to come from somewhere.

2. Switching to something "compatible" still requires testing and retooling.  If you're going to do that, but you were planning on upgrading to Python3, why retool to PyPy when you weren't planning on doing that.


----------



## olli@ (Oct 29, 2020)

Actually the ongoing migration to Python 3 is well underway. The number of ports that depend on Python 2 is shrinking.

If someone is willing to spend time on Python improvement, that time is much better spent for that migration and for improving Python 3 support in the ports collection. Python 2 is dead (or let’s say “retired” if you prefer). Trying to keep it alive & working is just a waste of time – and even worse, it is dangerous because it might encourage people to continue using it after it goes EOS and starts to acquire security issues that won’t be fixed.

I have personally migrated dozens of Python programs this year, probably > 100 kLOC.  It’s not really difficult (provided you’re somewhat familiar with Python, of course), and it doesn’t even take much time, thanks to the “2to3” tool which automates a significant part of the conversion. It’s well worth the effort anyway, because Python 3 is so much cleaner, more consistent and easier to work with.


----------



## Juronski (Oct 29, 2020)

olli@ said:


> It’s well worth the effort anyway, because Python 3 is so much cleaner, more consistent and easier to work with.


The migration strategy for Python 3 is disruptive, so your arguments are false. We have spend a lot of time learning Python 2 and building what we want. Now we have to redo everything again to get a so called cleaner, more consistent en easier code? Do you have any idea how much that costs? Money that could have spend improving our Python 2 projects. We do not experience the value added by Python 3. We only experience the expenses. Python 2 is easy, clean and consistent enough. Python 2 is secure. It is not broken. Do not fix things that are not broken. Keeping Python 2 alive is not a waste of time. It is worth the effort because it is cheaper. They killed Python 2 because the market didn't move to Python 3 out of choice. It is aggressively forced upon the community. Python 3 is a way to beat competitors for big tech.


----------



## SirDice (Oct 29, 2020)

Juronski said:


> We have spend a lot of time learning Python 2 and building what we want.


I don't know how long ago you started but the impending end of python 2 was known well in advance. The EoL shouldn't come as  a surprise.


----------



## obsigna (Oct 29, 2020)

What I never understood is, why they kept Python 2 in parallel to Python 3 for more than 11 years. Only this made the inevitable hard break much harder.


----------



## Emrion (Oct 29, 2020)

Not so long ago, I took a book with some snippets of python. Maybe it's time to learn this very used language, I've told to myself.

At this time, there were both python 2.7 and python 3.x on my FreeBSD box (as dependencies of some packages). I started to run the scripts with python 2.7. All was fine. Then, I tried python 3.x: several errors came.

Ok, no problem, the book was old and the scripts were very simple. I managed to convert one of them to python 3.x. The funny thing is that, despite the conversion, the script also worked for python 2.7.

I found this strange. Then, I realised the python developers have invented a new type of compatibility: not backward as most language are but forward...

It instaneously clicked for me: if I learn python 3, I probably should get rid of it when python 4 will come. 

I closed the book. I will stick to C/C++.


----------



## a6h (Oct 29, 2020)

Juronski said:


> We have spend a lot of time learning Python 2 and building what we want. [...]*


Bad investment can cost you. Learn C. BTW, who's "we"? PS. You're barking up the wrong tree. You should send letters to the comp.lang.python.


----------



## olli@ (Oct 29, 2020)

Juronski said:


> We have spend a lot of time learning Python 2 and building what we want.


If you’re really so good at Python 2, it shouldn’t take you much effort to adjust to Python 3. It’s not a completely new language. The changes are sensible and necessary, because sometimes it’s better to cut backwards compatibility in order to progress and make a language better. There are certain languages that try to maintain backwards-compatibility at all cost, which means that they can never get rid of their design mistakes.

I’m afraid I have to say, if you are unable to get used to changes like that, then you shouldn’t be in the IT business.


----------



## msplsh (Oct 29, 2020)

obsigna said:


> What I never understood is, why they kept Python 2 in parallel to Python 3 for more than 11 years. Only this made the inevitable hard break much harder.


It was only hard because people decided to make it that way and not take the hint.  Now that an obnoxious amount of time has passed, the Python team is done wasting their time.


----------



## msplsh (Oct 29, 2020)

Juronski said:


> Now we have to redo everything again to get a so called cleaner, more consistent en easier code? Do you have any idea how much that costs? Money that could have spend improving our Python 2 projects. We do not experience the value added by Python 3.


Funny, that's extremely similar to the argument the Python team makes for not supporting Python2 anymore.



Juronski said:


> We only experience the expenses


Hey, guess what, you paid nothing to write in Python, and now you're done getting the value of the nothing you paid into the support contract that extended the EOL six years!  If you've been using Python for more than _(checks watch)_ 12 years, that's 12 years of paying nothing where it would have been an irresponsible business decision to not save whatever money you were making off your Python2 programs to invest the bare minimum into updating your scripts for Python 3.  Seems like you could have scrimped a little here and there over that timeframe.  In the business world, that's simply _the cost of doing business_.

Surely, you haven't been intentionally writing 2.7 code in a 3 incompatible way for that long, so you should be pretty good at doing it the correct way by now, making transitioning whatever legacy codebase easier than if you ignored the warning signs to your business for twelve years.

I think most proprietary development tools stop working after at least decade, and you pay for those.  Those people have to buy new dev tools every 5 years or so to keep current.  Given that Python is free, seems like you'd still have a leg up over them.  Considering they have to go through sunsetting of their programming tools and changing paradigms (MFC, Silverlight, XAML, WPF) more often than Python2 to Python3, I think you're still better off.

Of course, if you started developing 2.7 code _after_ 2008 (or really, 2006 when it became obvious that Python3 was the upgrade route) without a 3.x plan, that just seems like poor planning and a bad business decision.


----------



## a6h (Oct 29, 2020)

msplsh said:


> Hey, guess what, you paid nothing to write in Python, and now you're done getting the value of the nothing you paid into the support contract that extended the EOL six years!


80s: Lattice C for PC DOS: $500.


----------



## Juronski (Oct 30, 2020)

Non of the argument for the EOL of Python 2 are valid. It is about money. A way to get payed for development because Python is FOS. We are now forced to pay developers for upgrading instead for enhancing our Python 2 projects. Money can only spend once. To make money to pay developers, we need enhancements and (more) hosting of our Python 2 projects instead of upgrading tot Python 3. The EOL of Python 2 is a form of unfair competition. It is a way of killing projects that can compete with big tech. Upgrading to Python 3 does not give us more sales. Enhancing our Python 2 project does.

Never seen something like this in the more than 20 years we use FOS.


----------



## shkhln (Oct 30, 2020)

That's the price you pay for using a crappy dynamic language.



Juronski said:


> projects that can compete with big tech





Juronski said:


> now forced to pay developers



Hmm…


----------



## Juronski (Oct 30, 2020)

Guido van Rossum is even threatening with lawyers if you want to maintain your own python 2 stack, making it impossible to keep Python 2 alive https://github.com/naftaliharris/tauthon/issues/47 How unfair is that? It is FOS!


----------



## shkhln (Oct 30, 2020)

Juronski said:


> It is FOS!


Full Of Shit?


----------



## SirDice (Oct 30, 2020)

Juronski said:


> Guido van Rossum is even threatening with lawyers if you want to maintain your own python 2 stack


No, that's not what he's saying. The legal talk is about the _name_, not the code. They can't call it Python or some variation thereof.


----------



## anonymous9 (Oct 30, 2020)

Juronski said:


> Guido van Rossum is even threatening with lawyers if you want to maintain your own python 2 stack, making it impossible to keep Python 2 alive https://github.com/naftaliharris/tauthon/issues/47 How unfair is that? It is FOS!


They locked that thread because of you on January 21.  Now you're here complaining about the same thing 9 months later?  Are you trying to resurrect your argument here just to keep it alive somewhere?


----------



## a6h (Oct 30, 2020)

Juronski said:


> It is about money.


What's wrong with that?


Juronski said:


> We are now forced to pay developers for upgrading instead for enhancing our Python 2 projects.


Developers should charge more. Good for them.


Juronski said:


> Upgrading to Python 3 does not give us more sales.


You probably don't have competitive advantages, thus trying to lay the blame on python.


Juronski said:


> Guido van Rossum is even threatening with lawyers if you want to maintain your own python 2 stack, making it impossible to keep Python 2 alive


I'm not sure that's true, but he's the creator of python. More power to him.


Juronski said:


> How unfair is that?


Q. How to tell when someone is losing an argument? 
A. They eventually use the plug-word: "unfair".


----------



## SirDice (Oct 30, 2020)

anonymous9 said:


> They locked that thread because of you on January 21.


And it's about to happen here too, for exactly the same reason. 

Juronski if you have a problem with the EoL of Python 2 you can take that up with the Python developers. This is not the place for that discussion. Python 2 will be EoL'd upstream and as a consequence it's going to be EoL on FreeBSD too. No amount of discussion is going to change that.


----------



## msplsh (Oct 30, 2020)

Juronski said:


> Non of the argument for the EOL of Python 2 are valid


Hey, glad my post was too much for you to read and point out exactly what was wrong.



Juronski said:


> We are now forced to pay developers for upgrading instead for enhancing our Python 2 projects. Money can only spend once. To make money to pay developers, we need enhancements and (more) hosting of our Python 2 projects instead of upgrading tot Python 3.


I think I already indicated earlier that you had almost a decade to budget in costs for Python 3 upgrades (or simply changed your coding style to be prepared for them, which costs just about nothing) when charging your customers.  If you didn't do this, that's your problem, not Python's.

It's hard to imagine that a poor decision has caused a problem that is now out of your control.  You're right, the money can only be spent once, and it should have been spent on preparing to update to Python 3 so that your business could continue to function in the future.  It may not have seemed "essential" at the time, but as you realize now, you can not force someone to do work they do not want to do such as continue to work on Python2, just like the Python developers could not force you to update your code.

Your lived reality is that you have a problem now, but if you won't acknowledge that your refusal to prepare for the future contributed to the problem, you're not going to get much sympathy here.  Trying to cite "business" as an emphasis actually undermines any point you try to make, as business is a "do or die" environment with no consideration to the welfare of companies that go under.  What you should have "done" is update to Python3, because now you're facing the prospect of the company "dying."



Juronski said:


> The EOL of Python 2 is a form of unfair competition


EoLing products, particularly when the EoL date is set in advance so you can make plans, is not a form of unfair competition.

Let us look upon the Python 2 license and despair:

* Provided on an "as is" basis
* No warranty
* No merchantability
* No fitness for any particular purpose
* No partnership
* No permission to use the trademark (aka "Python")

Python2 had no obligation to you.  You chose Python 2 at your own risk.  Your only exit hatch is that you can do the work of keeping Python2 alive _yourself_.


Juronski said:


> Never seen something like this in the more than 20 years we use FOS.


20 years, you say?  Let's see... You must be used to this kind of disappointment already, when you realized that FreeBSD stopped providing security fixes, packages and ports that would work on version 4.0.


----------



## Juronski (Oct 30, 2020)

All those bogus arguments. it is astonishing. No wonder FOS is not mainstream.


----------



## msplsh (Oct 30, 2020)

What's astonishing is your out of hand dismissals.

I'm sorry your business is built on Python2 and the consensus is that nobody wants to support the environment you built your software on.

That's just how business goes, however.

What you're mistaken about, is that berating people on the internet is going to create the consensus necessary to solve your business problems.


----------



## bjs (Oct 30, 2020)

Unbelievable... Software goes EOL all the time... It's amazing what some people expect for free...


----------



## SirDice (Oct 30, 2020)

I've had enough of this. Thread closed. 

Juronski  If you start a new thread or take any other thread offtopic with this same discussion you're going to be banned.


----------

