Project

General

Profile

Feature #16912

Feature #7036: Move custom software to main git repo

Move greeter source to main git repo

Added by segfault about 2 months ago. Updated about 1 month ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
-
Target version:
Start date:
Due date:
% Done:

0%

Feature Branch:
feature/16912-move-greeter-to-main-git-repo+force-all-tests
Type of work:
Code
Blueprint:
Starter:
Affected tool:
Greeter

Related issues

Related to Tails - Bug #16757: Remove tails-greeter's dependency on libcaribou-gtk3-module Resolved
Blocks Tails - Bug #12551: Set up a process to keep our fork of GNOME Shell's .desktop file and GDM's .session file up-to-date Resolved 05/16/2017

Associated revisions

Revision 0ac4984f (diff)
Added by segfault about 2 months ago

Copy greeter files into config/chroot_local-includes (refs: #16912)

Those are the files installed by the greeter, from the master branch of
the greeter repo (commit 2b1facdbe3c4c9f209cdcf3835a9d52a3147b8a8).

All files are copied to the same path they are installed at when
installing the greeter Debian package, except for:

  • The tailsgreeter Python package, which is now installed under
    /usr/local/lib/python3/ instead of /usr/lib/python3, because
    that's were we also have our other Python packages.
  • The tails-greeter script, which is now installed in /usr/local/lib/
    instead of /usr/bin, because this script should not be executed by
    the user directly, similar to the other scripts in the lib directory.
    The Exec= path in tails-greeter.desktop is updated accordingly.

Revision 3a49cfc5 (diff)
Added by segfault about 2 months ago

Don't install the tails-greeter Debian package (refs: #16912)

Revision 1ddff19e (diff)
Added by segfault about 2 months ago

Add hook to set up greeter language code (refs: #16912)

This used to be done during package install.

We could probably also do this when the greeter is started, but for now
it was easier to copy the shell code to a new live-config hook.

Revision 79dbdf4e (diff)
Added by segfault about 2 months ago

Add hook to set up greeter language code (refs: #16912)

This used to be done during package install.

We could probably also do this when the greeter is started, but for now
it was easier to copy the shell code to a new live-config hook.

Revision 700b8424 (diff)
Added by segfault about 2 months ago

Copy greeter files into config/chroot_local-includes (refs: #16912)

Those are the files installed by the greeter, from the master branch of
the greeter repo (commit 2b1facdbe3c4c9f209cdcf3835a9d52a3147b8a8).

All files are copied to the same path they are installed at when
installing the greeter Debian package, except for:

  • The tailsgreeter Python package, which is now installed under
    /usr/local/lib/python3/ instead of /usr/lib/python3, because
    that's where we put our own Python packages.
  • The tails-greeter script, which is now installed in /usr/local/lib/
    instead of /usr/bin, because this script should not be executed by
    the user directly, similar to the other scripts in the lib directory.
    The Exec= path in tails-greeter.desktop is updated accordingly.

Revision 0cb96003 (diff)
Added by segfault about 2 months ago

Don't install the tails-greeter Debian package (refs: #16912)

Revision 6964b94e (diff)
Added by segfault about 2 months ago

Add hook to set up greeter language code (refs: #16912)

This used to be done during package install.

We could probably also do this when the greeter is started, but for now
it was easier to copy the shell code to a new live-config hook.

Revision 7e5e01c6 (diff)
Added by segfault about 2 months ago

Install greeter dependencies (refs: #16912)

The dependencies are copied from debian/control in the greeter repo
(commit 2b1facdbe3c4c9f209cdcf3835a9d52a3147b8a8).

I omitted these packages, because I'm sure that they will always be
installed in Tails anyway: gdm3, gnome-shell, live-config, sudo, systemd

Revision 53607e8a (diff)
Added by segfault about 2 months ago

Install greeter dependencies (refs: #16912)

The dependencies are copied from debian/control in the greeter repo
(commit 2b1facdbe3c4c9f209cdcf3835a9d52a3147b8a8).

I omitted these packages, because I'm sure that they will always be
installed in Tails anyway: gdm3, gnome-shell, live-config, sudo, systemd

Revision 148f76d2 (diff)
Added by segfault about 2 months ago

Fix greeter language code extraction (refs: #16912)

The perl command only produced a file with an empty line, causing the
greeter to fail to start. I tried to reverse engineer the perl command
and replace it with an equivalent grep command.

Revision b1ccc6db (diff)
Added by segfault about 2 months ago

Add hook to set up greeter language code (refs: #16912)

This used to be done during package install.

We could probably also do this when the greeter is started, but for now
it was easier to copy the shell code to a new live-config hook.

Revision 8c718797 (diff)
Added by segfault about 2 months ago

Install greeter dependencies (refs: #16912)

The dependencies are copied from debian/control in the greeter repo
(commit 2b1facdbe3c4c9f209cdcf3835a9d52a3147b8a8).

I omitted these packages, because I'm sure that they will always be
installed in Tails anyway: gdm3, gnome-shell, live-config, sudo, systemd

Revision 9aacf22f (diff)
Added by segfault about 2 months ago

Fix greeter language code extraction (refs: #16912)

The perl command only produced a file with an empty line, causing the
greeter to fail to start. I tried to reverse engineer the perl command
and replace it with an equivalent grep command.

Revision 029caa78 (diff)
Added by segfault about 2 months ago

Copy greeter files into config/chroot_local-includes (refs: #16912)

Those are the files installed by the greeter, from the master branch of
the greeter repo (commit 2b1facdbe3c4c9f209cdcf3835a9d52a3147b8a8).

All files are copied to the same path they are installed at when
installing the greeter Debian package, except for:

  • The tailsgreeter Python package, which is now installed under
    /usr/local/lib/python3/ instead of /usr/lib/python3, because
    that's where we put our own Python packages.
  • The tails-greeter script, which is now installed in /usr/local/lib/
    instead of /usr/bin, because this script should not be executed by
    the user directly, similar to the other scripts in the lib directory.
    The Exec= path in tails-greeter.desktop is updated accordingly.

Revision 73e2f1a5 (diff)
Added by segfault about 2 months ago

Don't install the tails-greeter Debian package (refs: #16912)

Revision 3d56f200 (diff)
Added by segfault about 2 months ago

Add hook to set up greeter language codes (refs: #16912)

This used to be done during package install.

We could probably also do this when the greeter is started, but for now
it was easier to copy the shell code to a new live-config hook.

Revision c613f7fd (diff)
Added by segfault about 2 months ago

Install greeter dependencies (refs: #16912)

The dependencies are copied from debian/control in the greeter repo
(commit 2b1facdbe3c4c9f209cdcf3835a9d52a3147b8a8).

I omitted the following packages, because I'm sure that they will always
be installed in Tails anyway:

gdm3, gnome-shell, live-config, sudo, systemd

Revision 5800526c (diff)
Added by segfault about 2 months ago

Copy greeter files into config/chroot_local-includes (refs: #16912)

Those are the files installed by the greeter, from the master branch of
the greeter repo (commit 2b1facdbe3c4c9f209cdcf3835a9d52a3147b8a8).

All files are copied to the same path they are installed at when
installing the greeter Debian package, except for:

  • The tailsgreeter Python package, which is now installed under
    /usr/local/lib/python3/ instead of /usr/lib/python3, because
    that's where we put our own Python packages.
  • The tails-greeter script, which is now installed in /usr/local/lib/
    instead of /usr/bin, because this script should not be executed by
    the user directly, similar to the other scripts in the lib directory.
    The Exec= path in tails-greeter.desktop is updated accordingly.

Revision 7b70a4f8 (diff)
Added by segfault about 2 months ago

Don't install the tails-greeter Debian package (refs: #16912)

Revision 5944b34c (diff)
Added by segfault about 2 months ago

Add hook to set up greeter language codes (refs: #16912)

This used to be done during package install.

We could probably also do this when the greeter is started, but for now
it was easier to copy the shell code to a new live-config hook.

Revision f3d3af42 (diff)
Added by segfault about 2 months ago

Install greeter dependencies (refs: #16912)

The dependencies are copied from debian/control in the greeter repo
(commit 2b1facdbe3c4c9f209cdcf3835a9d52a3147b8a8).

I omitted the following packages, because I'm sure that they will always
be installed in Tails anyway:

gdm3, gnome-shell, live-config, sudo, systemd

Revision 5aaa3582 (diff)
Added by segfault about 2 months ago

Add hook to set up greeter language codes (refs: #16912)

This used to be done during package install.

We could probably also do this when the greeter is started, but for now
it was easier to copy the shell code to a new live-config hook.

Revision b89a01bd (diff)
Added by segfault about 2 months ago

Install greeter dependencies (refs: #16912)

The dependencies are copied from debian/control in the greeter repo
(commit 2b1facdbe3c4c9f209cdcf3835a9d52a3147b8a8).

I omitted the following packages, because I'm sure that they will always
be installed in Tails anyway:

gdm3, gnome-shell, live-config, sudo, systemd

Revision 8c4d7270 (diff)
Added by segfault about 2 months ago

Add hook to set up greeter language codes (refs: #16912)

This used to be done during package install.

We could probably also do this when the greeter is started, but for now
it was easier to copy the shell code to a new live-config hook.

Revision 6c531907 (diff)
Added by segfault about 2 months ago

Install greeter dependencies (refs: #16912)

The dependencies are copied from debian/control in the greeter repo
(commit 2b1facdbe3c4c9f209cdcf3835a9d52a3147b8a8).

I omitted the following packages, because I'm sure that they will always
be installed in Tails anyway:

gdm3, gnome-shell, live-config, sudo, systemd

Revision e58cc03b (diff)
Added by intrigeri about 1 month ago

Apply greeter-buster.diff to the Greeter files now shipped here (refs: #16912)

Revision 8c98c7fe (diff)
Added by intrigeri about 1 month ago

Apply greeter-buster-blocking-tails-unblock-network.diff to the Greeter files now shipped here (refs: #16912)

Revision 39c7b7ae (diff)
Added by intrigeri about 1 month ago

Update links pointing to the Greeter's source code (refs: #16912)

Revision 8f6e1a53 (diff)
Added by intrigeri about 1 month ago

Drop link Greeter's Git repo (refs: #16912)

Revision ed588398 (diff)
Added by intrigeri about 1 month ago

Update contributors doc & scripts wrt. the move of our Greeter to tails.git (refs: #16912)

Revision 1a1534d2 (diff)
Added by intrigeri about 1 month ago

Drop the obsolete Greeter helper service (refs: #16912).

We don't use this anymore on Buster: see commit
abad17b657f376dda634658abd256d0db6fed8f1 in greeter.git.

Revision e78884c4 (diff)
Added by segfault about 1 month ago

Use consistent method to extract translatable strings from Glade files (refs: #16912)

Revision 9baf8548 (diff)
Added by segfault about 1 month ago

Fix greeter language code extraction (refs: #16912)

The perl command only produced a file with an empty line, causing the
greeter to fail to start. I tried to reverse engineer the perl command
and replace it with an equivalent grep command.

Revision e19316b8 (diff)
Added by segfault about 1 month ago

Fix name of Greeter gdm3 PostLogin script (refs: #16912)

Revision b6af1b9b (diff)
Added by segfault about 1 month ago

Use consistent method to extract translatable strings from Glade files (refs: #16912)

Revision 06ba4bf9 (diff)
Added by segfault about 1 month ago

Fix greeter language code extraction (refs: #16912)

The perl command only produced a file with an empty line, causing the
greeter to fail to start. I tried to reverse engineer the perl command
and replace it with an equivalent grep command.

Revision 3599876f (diff)
Added by segfault about 1 month ago

Fix name of Greeter gdm3 PostLogin script (refs: #16912)

Revision d6993d41 (diff)
Added by segfault about 1 month ago

Add some translated strings for testing the Greeter (refs: #16912)

Revision db052d30 (diff)
Added by intrigeri about 1 month ago

Update doc to match fixed script location (refs: #16912).

Fixup against 3599876f336d88349f80db619caaba6d8451e9c4.

Revision e79830aa (diff)
Added by segfault about 1 month ago

Fix greeter language code extraction (refs: #16912)

Bring back the Perl version and fix it (just had to replace $$1 with
$1).

Revision d14bbbd4 (diff)
Added by intrigeri about 1 month ago

Update POT and PO files (refs: #16912).

… so we can test build reproducibility of the topic branch.

Revision 98b01537
Added by intrigeri about 1 month ago

Merge branch 'feature/16912-move-greeter-to-main-git-repo+force-all-tests' into devel (Fix-committed: #16912, #12551, #16757)

History

#1 Updated by segfault about 2 months ago

  • Affected tool set to Greeter

#2 Updated by segfault about 2 months ago

  • Status changed from Confirmed to In Progress

#3 Updated by segfault about 2 months ago

I tried moving the greeter files to the main git repo but the greeter won't start during boot. @alant, @intrigeri: Any idea how I can debug this? I can't access the journal when the greeter doesn't start.

#4 Updated by segfault about 2 months ago

  • Feature Branch set to feature/16912-move-greeter-to-main-git-repo

#5 Updated by segfault about 2 months ago

segfault wrote:

I tried moving the greeter files to the main git repo but the greeter won't start during boot. @alant, @intrigeri: Any idea how I can debug this? I can't access the journal when the greeter doesn't start.

I found a way to debug this:

  1. In the boot menu, add break=bottom to the kernel command-line.
  2. In the initramfs, edit /root/usr/share/applications/tails-greeter.desktop, replace the Exec= line with Exec=gnome-terminal -- /bin/bash.

#6 Updated by segfault about 2 months ago

segfault wrote:

I found a way to debug this:

  1. In the boot menu, add break=bottom to the kernel command-line.
  2. In the initramfs, edit /root/usr/share/applications/tails-greeter.desktop, replace the Exec= line with Exec=gnome-terminal -- /bin/bash.

And to have root access, chroot to /root in the initramfs and set a root password.

#7 Updated by segfault about 2 months ago

  • Feature Branch changed from feature/16912-move-greeter-to-main-git-repo to feature/16912-move-greeter-to-main-git-repo+force-all-tests

It seems to work now. Let's see if the tests pass on Jenkins.

Regarding the translations, I propose that we merge the po files from the greeter translations repo into the Tails translations repo via msgcat.

#8 Updated by segfault about 2 months ago

segfault wrote:

Regarding the translations, I propose that we merge the po files from the greeter translations repo into the Tails translations repo via msgcat.

If someone has write access to the translations repo or could give write access to me, we could try that with a single po file first and see if the translations are correctly displayed in transifex.

#9 Updated by intrigeri about 2 months ago

And to have root access, chroot to /root in the initramfs and set a root password.

… or use rootpw= on the kernel command line.

#10 Updated by intrigeri about 2 months ago

segfault wrote:

Regarding the translations, I propose that we merge the po files from the greeter translations repo into the Tails translations repo via msgcat.

Unfortunately, this is not going to work: Transifex imports only the POT file and ignores all translations done in Git. So once we have pushed the updated tails.pot file to whatever tails.git branch of ours Transifex pulls from (I don't remember which one that is), Transifex will learn about the "new" strings but initially they'll have no translation, unless Transifex does some magic and recognize they are the same strings that are already translated elsewhere. And maybe there's a Transifex-specific way to tell "copy all translations from project X to Y". I suggest asking guidance to emmapeel, who's admin'ing all this on the Tor side :)

#11 Updated by segfault about 2 months ago

intrigeri wrote:

segfault wrote:

Regarding the translations, I propose that we merge the po files from the greeter translations repo into the Tails translations repo via msgcat.

Unfortunately, this is not going to work: Transifex imports only the POT file and ignores all translations done in Git. So once we have pushed the updated tails.pot file to whatever tails.git branch of ours Transifex pulls from (I don't remember which one that is), Transifex will learn about the "new" strings but initially they'll have no translation, unless Transifex does some magic and recognize they are the same strings that are already translated elsewhere. And maybe there's a Transifex-specific way to tell "copy all translations from project X to Y". I suggest asking guidance to emmapeel, who's admin'ing all this on the Tor side :)

emmapeel clarified via XMPP that Transifex will apply the existing translations automatically when we add the greeter strings to tails.pot in the tails-misc branch of translation.git.

#12 Updated by segfault about 2 months ago

Everything seems to work now. Locally I also tested whether translations work by adding some translations manually to PO files. Now waiting for Jenkins test results.

#13 Updated by segfault about 2 months ago

  • Status changed from In Progress to Needs Validation
  • Assignee deleted (segfault)

Jenkins tests pass

#14 Updated by intrigeri about 2 months ago

  • Target version set to Tails_3.17

#15 Updated by intrigeri about 2 months ago

  • Assignee set to intrigeri

#16 Updated by intrigeri about 2 months ago

  • Target version changed from Tails_3.17 to Tails_4.0

If 3.17 is released, it'll be a bugfix release.

#17 Updated by intrigeri about 1 month ago

  • Status changed from Needs Validation to In Progress

#18 Updated by intrigeri about 1 month ago

  • Status changed from In Progress to Needs Validation

@segfault, please:

  • Take a look at 28e9a9c5d37f8a01a74aae8956479267adf08874..ed5883982c3fbbe753ed63ee7a41857c9f715062 before you submit more such branches: it'll show you a few other things that need updating when doing this sort of migrations.
  • Check 470f5075d46a6b507eff2b812438a769622d6607: either I misunderstood something, or I've fixed a mistake; in any case, 0daa0e56865fbd7fc47a6747b0fd004ca49b65ed changes greeter.ui, which I find odd, and I'd like to ensure I'm not dropping useful work here :)

#19 Updated by intrigeri about 1 month ago

  • Related to Bug #16757: Remove tails-greeter's dependency on libcaribou-gtk3-module added

#20 Updated by intrigeri about 1 month ago

  • Status changed from Needs Validation to In Progress

#21 Updated by intrigeri about 1 month ago

  • Assignee changed from intrigeri to segfault

@segfault, I've pushed a bunch of changes prompted by my initial review to the topic branch. Since you told me on XMPP that you had more work somewhere: please add it on top of this branch and reassign to me for review once happy :)

#22 Updated by segfault about 1 month ago

  • Status changed from In Progress to Needs Validation
  • Assignee changed from segfault to intrigeri

intrigeri wrote:

@segfault, Since you told me on XMPP that you had more work somewhere: please add it on top of this branch and reassign to me for review once happy :)

Done

#23 Updated by segfault about 1 month ago

segfault wrote:

intrigeri wrote:

@segfault, Since you told me on XMPP that you had more work somewhere: please add it on top of this branch and reassign to me for review once happy :)

Done

And I think I figured out what happened. I merged devel into the wrong branch (without +force-all-tests). But beside that, the +force-all-tests branch had the correct content, i.e. a lot of fixups which I amended to the corresponding commits. Those were lost when you reset it to the state of the other branch.

#24 Updated by intrigeri about 1 month ago

  • Status changed from Needs Validation to In Progress

#25 Updated by intrigeri about 1 month ago

  • Assignee changed from intrigeri to segfault

Done

@segfault, Thanks!

Wrt. 06ba4bf95e901b4adef63a88e1a5a421a0304fa9:

  • The problem was that we copied'n'pasted the Perl command as-in from a Makefile (debian/rules), where it had special syntax mandated by make blah. So $$1 needed to be replaced with $1. FTR, your grep command would have had exactly the same problem if copied'n'pasted as-in from debian/rules to a regular shell script :)
  • On my sid system, the grep command is not equivalent: it outputs 6 less lines. For example, ja_JP is missing in the output file. I'll let you decide whether you prefer to bring the Perl version back with the aforementioned one-byte change, or fix the grep version.

I've pushed a tiny fix on top of the branch.

#26 Updated by segfault about 1 month ago

  • Status changed from In Progress to Needs Validation
  • Assignee changed from segfault to intrigeri

intrigeri wrote:

Done

@segfault, Thanks!

Wrt. 06ba4bf95e901b4adef63a88e1a5a421a0304fa9:

  • The problem was that we copied'n'pasted the Perl command as-in from a Makefile (debian/rules), where it had special syntax mandated by make blah. So $$1 needed to be replaced with $1. FTR, your grep command would have had exactly the same problem if copied'n'pasted as-in from debian/rules to a regular shell script :)
  • On my sid system, the grep command is not equivalent: it outputs 6 less lines. For example, ja_JP is missing in the output file. I'll let you decide whether you prefer to bring the Perl version back with the aforementioned one-byte change, or fix the grep version.

I pushed a commit which brings back the Perl version.

#27 Updated by intrigeri about 1 month ago

  • Status changed from Needs Validation to In Progress

#28 Updated by intrigeri about 1 month ago

  • Status changed from In Progress to Needs Validation

#29 Updated by intrigeri about 1 month ago

  • Assignee changed from intrigeri to anonym

I'm satisfied with the branch and in a full test suite run on my local Jenkins, the only 3 failures are the scenarios that always fail on current devel (those I call "totally broken" in my recent email to the CI list).

Still, as this is a pretty important change both in terms of code (both my review and the test suite might have missed subtle breakage) & workflow, I'd like another pair of eyes on this before we merge into devel. More specifically, I'd like @anonym's pair of eyes :)

#30 Updated by intrigeri about 1 month ago

  • Blocks Bug #12551: Set up a process to keep our fork of GNOME Shell's .desktop file and GDM's .session file up-to-date added

#31 Updated by intrigeri about 1 month ago

We're now 11 days away from releasing 4.0~beta2 and I'd like this big change in devel so we have time to adjust/fix whatever might need to; also, there are a few other branches that need anonym's review more than this one. So I've balanced all this with my desire to get anonym's opinion on this branch, and decided to merge it.

#32 Updated by intrigeri about 1 month ago

  • Status changed from Needs Validation to Fix committed
  • % Done changed from 0 to 100

#33 Updated by intrigeri about 1 month ago

  • Status changed from Fix committed to Resolved
  • % Done changed from 100 to 0

Also available in: Atom PDF