Re: Special One-Time SRU Handling request for torbrowser-launcher

2023-04-19 Thread Robie Basak
On Wed, Apr 19, 2023 at 12:30:04PM +0100, Robie Basak wrote:
> Here's the minimal patch for Focal, with thanks to the respective
> upstream authors:

Sorry, I think I might have missed the change that drops language from
the composition of tarball_filename when I generated this patch. But
hopefully you get the idea.


signature.asc
Description: PGP signature
-- 
Ubuntu-devel-discuss mailing list
Ubuntu-devel-discuss@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss


Re: Special One-Time SRU Handling request for torbrowser-launcher

2023-04-19 Thread Robie Basak
On Thu, Apr 06, 2023 at 04:11:23PM -0400, Thomas Ward wrote:
> To cherry pick this would require extensive reverse engineering of the code
> to figure out which pieces apply to the *older* versions of
> torbrowser-launcher.  Unfortunately, since there are no *bugfix* releases of
> torbrowser-launcher upstream and everything is interspersed among
> larger-scale feature changes, this prevents us from easily cherrypicking the
> code.  Essentially, to reverse engineer this patch would take much MUCH more
> time and effort to make functional.

I took a look at what this would take, and got to a minimal patch for
Focal within about an hour (including environment setup) that seems to
work fine. See below.

This needs cleaning up, packaging, attribution, adapting for the other
stable releases, and so on. But as it stands, it seems to me that the
usual approach is the appropriate way to fix this in our stable
releases.

Is there something I'm missing about how this approach is broken? Of
course if there are other bugfixes you want to take from upstream, you
could include them in this SRU in the usual way.

Note that there is no hard reason to cherry-pick. It's perfectly
acceptable to come up with an independent minimal fix, informed but not
directly drawn from upstream changes. SRU policy says this:

> ...the requirements for stable updates are not necessarily the same as
> those in the development release. When preparing future releases, one
> of our goals is to construct the most elegant and maintainable system
> possible, and this often involves fundamental improvements to the
> system's architecture, rearranging packages to avoid bundled copies of
> other software so that we only have to maintain it in one place, and
> so on. However, once we have completed a release, the priority is
> normally to minimise risk caused by changes not explicitly required to
> fix qualifying bugs, and this tends to be well-correlated with
> minimising the size of those changes. As such, the same bug may need
> to be fixed in different ways in stable and development releases.

Here's the minimal patch for Focal, with thanks to the respective
upstream authors:


--- common.py.orig  2023-04-19 12:09:12.723867908 +0100
+++ common.py   2023-04-19 12:09:06.647653367 +0100
@@ -58,6 +58,7 @@
 self.default_mirror = 'https://dist.torproject.org/'
 self.discover_arch_lang()
 self.build_paths()
+self.torbrowser12_rename_old_tbb()
 for d in self.paths['dirs']:
 self.mkdir(self.paths['dirs'][d])
 self.load_mirrors()
@@ -151,12 +152,12 @@
 'version_check_url': 
'https://aus1.torproject.org/torbrowser/update_3/release/Linux_x86_64-gcc3/x/en-US',
 'version_check_file': tbb_cache + '/download/release.xml',
 'tbb': {
-'changelog': tbb_local + '/tbb/' + self.architecture + 
'/tor-browser_' +
- self.language + 
'/Browser/TorBrowser/Docs/ChangeLog.txt',
+'changelog': tbb_local + '/tbb/' + self.architecture + 
'/tor-browser' +
+ '/Browser/TorBrowser/Docs/ChangeLog.txt',
 'dir': tbb_local + '/tbb/' + self.architecture,
-'dir_tbb': tbb_local + '/tbb/' + self.architecture + 
'/tor-browser_' + self.language,
-'start': tbb_local + '/tbb/' + self.architecture + 
'/tor-browser_' +
- self.language + '/start-tor-browser.desktop'
+'dir_tbb': tbb_local + '/tbb/' + self.architecture + 
'/tor-browser',
+'start': tbb_local + '/tbb/' + self.architecture + 
'/tor-browser' +
+ '/start-tor-browser.desktop'
 },
 }
 
@@ -165,6 +166,21 @@
 'tor_browser_developers': 
'EF6E286DDA85EA2A4BA7DE684E2C6E8793298290'
 }
 
+# Tor Browser 12.0 no longer has locales. If an old TBB folder exists with 
locals, rename it to just tor_browser
+def torbrowser12_rename_old_tbb(self):
+if not os.path.exists(self.paths["tbb"]["dir"]):
+return
+for filename in os.listdir(self.paths["tbb"]["dir"]):
+abs_filename = os.path.join(self.paths["tbb"]["dir"], filename)
+if filename.startswith("tor-browser_") and 
os.path.isdir(abs_filename):
+os.rename(abs_filename, self.paths["tbb"]["dir_tbb"])
+print(
+_("Renamed {0} to {1}").format(
+abs_filename, self.paths["tbb"]["dir_tbb"]
+)
+)
+break
+
 # create a directory
 @staticmethod
 def mkdir(path):


signature.asc
Description: PGP signature
-- 
Ubuntu-devel-discuss mailing list
Ubuntu-devel-discuss@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss


Re: Special One-Time SRU Handling request for torbrowser-launcher

2023-04-06 Thread Thomas Ward

Robie,

To cherry pick this would require extensive reverse engineering of the 
code to figure out which pieces apply to the *older* versions of 
torbrowser-launcher.  Unfortunately, since there are no *bugfix* 
releases of torbrowser-launcher upstream and everything is interspersed 
among larger-scale feature changes, this prevents us from easily 
cherrypicking the code.  Essentially, to reverse engineer this patch 
would take much MUCH more time and effort to make functional.


However, we have a second consideration point.  With torbrowser-launcher 
0.3.6, we have a major *upstream* change from Tor Browser itself (which 
is downloaded by torbrowser-launcher and installs it in userspace as Tor 
Browser prefers to live in) which involves the loss of all localization 
packages and one unified package for Tor Browser.  To nitpick *those* 
fixes is equivalent to a large feature change that is well-ingrained in 
the 0.3.5 -> 0.3.6 codebase change, and reverse engineering that from 
what I've attempted to do initially for Tor Browser is a nightmare.


Which leaves us with, really, two choices:

 1. Backport 0.3.6-2 in -updates to the older releases

 2. Won't Fix 277 and other bugs which will make the package 
unusuable (effectively: Critical bugging the older version which a lot 
of people use, because it's "no longer supported").


This is tantamount to Bitcoin from the history where Bitcoin would make 
hard forks or major non-reverse-compatible changes that can't be 
backported and in turn would require the newer version to be backported 
in order for `bitcoin` to even function.  The only difference between 
Bitcoin and torbrowser-launcher (and Tor Browser) is that this is the 
first major *historically breaking* change in upstream Tor Browser that 
prohibits simply 'backporting' these changes.


The two-line fix for launch window is minor, and we could theoretically 
survive that.  However, the URL fix is nontrivial to backport within the 
code, hence the request for a one-time special SRU to backport 0.3.6 to 
all current releases (except 18.04 because that's approaching it's EoSS 
date) in order to make everything function in the currently supported 
releases.



Thomas


On 4/6/23 15:55, Robie Basak wrote:

Hi Thomas,

Thank you for caring for this package in Ubuntu!

I'm not sure I follow why this is difficult to fix by cherry-picking
fixes. It seems to me that there are two bugs mentioned - one which is a
two line fix, and one which refers to upstream URLs changing, which
presumably is a change in a constant somewhere or similar.

Will cherry-picking or rewriting these trivial fixes not be enough to
fix the reported bugs? If not, why not?

Robie

On Sun, Mar 19, 2023 at 07:55:48PM -0400, Thomas Ward wrote:

I'm following up on this today, because Debian finally got off their lazy
butt and uploaded 0.3.6-2 to Debian that addresses the core problems in
Debian.

However, that does not solve the problems for everything in Ubuntu.  With
the blessing of the Release team, I did a sync last night (forced) of
0.3.6-2 from Debian Unstable to Ubuntu Lunar, which addresses
https://bugs.launchpad.net/ubuntu/+source/torbrowser-launcher/+bug/277
in Lunar.

Unfortunately the fix that is applied for this in 0.3.6-2 is interwoven with
all the changes from 0.3.3 to 0.3.6 upstream which includes new features.

I have not heard back from the Release team on this, or the SRU team, so I'm
re-asking this.  Is the SRU / Release team willing to let us do a one-time
backport from Lunar of 0.3.6-2 to the older releases currently supported (to
Bionic but no further backwards)?


Thomas


On 2/1/23 14:26, Thomas Ward wrote:

Hello, release team.


Pursuant to a recent change for torbrowser-launcher and Tor Browser, we
have a little bit of a conundrum that is leading to a one time request for
SRUing the latest `torbrowser-launcher` to all currently supported
releases.

With Tor Browser 12 (TB12 for short here), upstream tor browser no longer
uses locales, requiring folder cleanup from TB12 and download URL changes
in order for things to properly function.  Unfortunately, the code changes
necessary to implement the changes to torbrowser-launcher are not easily
nitpicked and include more than just these fixes, as it has new changes
and such to make it work properly. Refer to
https://bugs.launchpad.net/ubuntu/+source/torbrowser-launcher/+bug/277
as the current bug on this.

Debian is behind on updating upstream, so later today I will be preparing
a package for Lunar that will have a -0ubuntu1 prefix for the latest
upstream version.  That works fine in Lunar.  It also works fine in
Kinetic and in initial tests in Jammy.  I’m installing test environments
for Focal and Bionic.

The problem here is, though, we have a mix of “new features” and “bug
fixes” together – there is no ‘major version bump’ for feature branches
vs. ‘bugfix’ branches, making it a comingled problem of “new features” and
“bug fixes”.  Therefore, I’d like 

Re: Special One-Time SRU Handling request for torbrowser-launcher

2023-04-06 Thread Robie Basak
Hi Thomas,

Thank you for caring for this package in Ubuntu!

I'm not sure I follow why this is difficult to fix by cherry-picking
fixes. It seems to me that there are two bugs mentioned - one which is a
two line fix, and one which refers to upstream URLs changing, which
presumably is a change in a constant somewhere or similar.

Will cherry-picking or rewriting these trivial fixes not be enough to
fix the reported bugs? If not, why not?

Robie

On Sun, Mar 19, 2023 at 07:55:48PM -0400, Thomas Ward wrote:
> I'm following up on this today, because Debian finally got off their lazy
> butt and uploaded 0.3.6-2 to Debian that addresses the core problems in
> Debian.
> 
> However, that does not solve the problems for everything in Ubuntu.  With
> the blessing of the Release team, I did a sync last night (forced) of
> 0.3.6-2 from Debian Unstable to Ubuntu Lunar, which addresses
> https://bugs.launchpad.net/ubuntu/+source/torbrowser-launcher/+bug/277
> in Lunar.
> 
> Unfortunately the fix that is applied for this in 0.3.6-2 is interwoven with
> all the changes from 0.3.3 to 0.3.6 upstream which includes new features.
> 
> I have not heard back from the Release team on this, or the SRU team, so I'm
> re-asking this.  Is the SRU / Release team willing to let us do a one-time
> backport from Lunar of 0.3.6-2 to the older releases currently supported (to
> Bionic but no further backwards)?
> 
> 
> Thomas
> 
> 
> On 2/1/23 14:26, Thomas Ward wrote:
> >
> >Hello, release team.
> >
> >
> >Pursuant to a recent change for torbrowser-launcher and Tor Browser, we
> >have a little bit of a conundrum that is leading to a one time request for
> >SRUing the latest `torbrowser-launcher` to all currently supported
> >releases.
> >
> >With Tor Browser 12 (TB12 for short here), upstream tor browser no longer
> >uses locales, requiring folder cleanup from TB12 and download URL changes
> >in order for things to properly function.  Unfortunately, the code changes
> >necessary to implement the changes to torbrowser-launcher are not easily
> >nitpicked and include more than just these fixes, as it has new changes
> >and such to make it work properly. Refer to
> >https://bugs.launchpad.net/ubuntu/+source/torbrowser-launcher/+bug/277
> >as the current bug on this.
> >
> >Debian is behind on updating upstream, so later today I will be preparing
> >a package for Lunar that will have a -0ubuntu1 prefix for the latest
> >upstream version.  That works fine in Lunar.  It also works fine in
> >Kinetic and in initial tests in Jammy.  I’m installing test environments
> >for Focal and Bionic.
> >
> >The problem here is, though, we have a mix of “new features” and “bug
> >fixes” together – there is no ‘major version bump’ for feature branches
> >vs. ‘bugfix’ branches, making it a comingled problem of “new features” and
> >“bug fixes”.  Therefore, I’d like to request a one-time exception for SRU
> >processes to accept the same version packaged for each release using Lunar
> >as a base, and adjusting the packaging as needed accordingly for older
> >releases.  That is, this will be an SRU, but it will accept the ‘new
> >features’ that’re part of torbrowser-launcher that were not present in
> >Bionic or Focal but are present in later releases.
> >
> >Most of the ‘feature’ changes allow choosing additional options, etc. but
> >nothing that as far as I can tell changes the core functionality of the
> >package.
> >
> >I’m happy to discuss this further with the SRU and Release teams (IRC is
> >always a way to reach me heh), but given the complexities of including the
> >fixes and changes just to make tor browser 12 work with the older
> >launchers, it’d make more sense and ease of fixing this “breaks the
> >launcher tool entirely” issue by simply taking the current version and
> >making it match in the entire packaging structure.
> >
> >I’m happy to spearhead this, but I wanted to put this to the Release Team
> >and the SRU team for consideration before I go through the process of
> >building all this for the SRU/MRE/Version Bump processes as well.
> >
> >A full changelog upstream is available on their GitHub -
> >https://github.com/micahflee/torbrowser-launcher
> >
> >Thomas
> >
> >LP: https://launchpad.net/~teward
> >
> >Ubuntu Core Developer
> >
> >

> -- 
> Ubuntu-release mailing list
> ubuntu-rele...@lists.ubuntu.com
> Modify settings or unsubscribe at: 
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-release



signature.asc
Description: PGP signature
-- 
Ubuntu-devel-discuss mailing list
Ubuntu-devel-discuss@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss


Re: Special One-Time SRU Handling request for torbrowser-launcher

2023-03-19 Thread Thomas Ward
I'm following up on this today, because Debian finally got off their 
lazy butt and uploaded 0.3.6-2 to Debian that addresses the core 
problems in Debian.


However, that does not solve the problems for everything in Ubuntu.  
With the blessing of the Release team, I did a sync last night (forced) 
of 0.3.6-2 from Debian Unstable to Ubuntu Lunar, which addresses 
https://bugs.launchpad.net/ubuntu/+source/torbrowser-launcher/+bug/277 
in Lunar.


Unfortunately the fix that is applied for this in 0.3.6-2 is interwoven 
with all the changes from 0.3.3 to 0.3.6 upstream which includes new 
features.


I have not heard back from the Release team on this, or the SRU team, so 
I'm re-asking this.  Is the SRU / Release team willing to let us do a 
one-time backport from Lunar of 0.3.6-2 to the older releases currently 
supported (to Bionic but no further backwards)?



Thomas


On 2/1/23 14:26, Thomas Ward wrote:


Hello, release team.


Pursuant to a recent change for torbrowser-launcher and Tor Browser, 
we have a little bit of a conundrum that is leading to a one time 
request for SRUing the latest `torbrowser-launcher` to all currently 
supported releases.


With Tor Browser 12 (TB12 for short here), upstream tor browser no 
longer uses locales, requiring folder cleanup from TB12 and download 
URL changes in order for things to properly function.  Unfortunately, 
the code changes necessary to implement the changes to 
torbrowser-launcher are not easily nitpicked and include more than 
just these fixes, as it has new changes and such to make it work 
properly. Refer to 
https://bugs.launchpad.net/ubuntu/+source/torbrowser-launcher/+bug/277 
as the current bug on this.


Debian is behind on updating upstream, so later today I will be 
preparing a package for Lunar that will have a -0ubuntu1 prefix for 
the latest upstream version.  That works fine in Lunar.  It also works 
fine in Kinetic and in initial tests in Jammy.  I’m installing test 
environments for Focal and Bionic.


The problem here is, though, we have a mix of “new features” and “bug 
fixes” together – there is no ‘major version bump’ for feature 
branches vs. ‘bugfix’ branches, making it a comingled problem of “new 
features” and “bug fixes”.  Therefore, I’d like to request a one-time 
exception for SRU processes to accept the same version packaged for 
each release using Lunar as a base, and adjusting the packaging as 
needed accordingly for older releases.  That is, this will be an SRU, 
but it will accept the ‘new features’ that’re part of 
torbrowser-launcher that were not present in Bionic or Focal but are 
present in later releases.


Most of the ‘feature’ changes allow choosing additional options, etc. 
but nothing that as far as I can tell changes the core functionality 
of the package.


I’m happy to discuss this further with the SRU and Release teams (IRC 
is always a way to reach me heh), but given the complexities of 
including the fixes and changes just to make tor browser 12 work with 
the older launchers, it’d make more sense and ease of fixing this 
“breaks the launcher tool entirely” issue by simply taking the current 
version and making it match in the entire packaging structure.


I’m happy to spearhead this, but I wanted to put this to the Release 
Team and the SRU team for consideration before I go through the 
process of building all this for the SRU/MRE/Version Bump processes as 
well.


A full changelog upstream is available on their GitHub - 
https://github.com/micahflee/torbrowser-launcher


Thomas

LP: https://launchpad.net/~teward

Ubuntu Core Developer

-- 
Ubuntu-devel-discuss mailing list
Ubuntu-devel-discuss@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss