transgui icon indicating copy to clipboard operation
transgui copied to clipboard

Can't connect to 3.0.0 daemon on Arch Linux

Open quexten opened this issue 3 years ago • 20 comments

  1. Operating system Arch Linux
  2. Transmission Daemon 3.0.0
  3. Transmission Remote GUI 5.18.0

When I try to connect to a 3.0.0 daemon using transgui 5.18.0 on Linux, I get the error message Duplicate object member: "status". Connecting to a 2.94 daemon works. The same happens when building transgui from source. On Windows, also using transgui 5.18.0, I can connect to both transmission daemons without any error.

quexten avatar Jul 06 '20 01:07 quexten

The official build 5.18.0 from the releases doesn't work on Arch since it is using GTK2 as mentioned in another issue. Building on Ubuntu with for QT5 and using that build on Arch seems to not have the issue. So I'm guessing the error lies somewhere in the dependencies (newer version of FPC?). I can't investigate this much further as I'm not familiar with Pascal.

quexten avatar Jul 14 '20 22:07 quexten

I confirm on Fedora 32. Builds with gtk2, qt4 and qt5. FPC 3.2.0 [2020/06/21] for x86_64, lazarus-ide 2.0.10

For myself, I decided this edit: `--- rpc.pas 2020-07-15 21:42:31.810023656 +0300 +++ rpc.pas.new 2020-07-15 21:40:45.556666807 +0300 @@ -394,6 +394,12 @@ begin sl.Delete(i); end;

+ if FRpc.RPCVersion > 15 then begin + i:=sl.IndexOf('status'); + if i > 0 then sl.Delete(i); + end; + + i:=sl.IndexOf('downloadDir'); if FRpc.RequestFullInfo then begin if i < 0 then`

Sorry, used Google Translate

Ku33ma avatar Jul 15 '20 19:07 Ku33ma

the same on Manjaro 20.0.3 with GDE and transgui-gtk from AUR

briney83 avatar Jul 21 '20 17:07 briney83

@Ku33ma does that edit have any other side effects? Otherwise I suggest making this into a pull request as this fixes transgui for multiple distros.

quexten avatar Jul 22 '20 04:07 quexten

I did not notice any side effects.

Transgui did enter the "status" field twice. One is a direct parameter of FRpc.RequestInfo, the second is taken from ExtraFields. Transmission 2.94 returned a response with one field, and 3.0 responded with two "status" fields.

Ku33ma avatar Jul 22 '20 10:07 Ku33ma

Same thing running transmission-remote-gui from the AUR

jpmvferreira avatar Aug 05 '20 14:08 jpmvferreira

For those of you on arch, use makepkg with --nobuild, apply the patch in #1329, and then use --noextract

jpegxguy avatar Aug 05 '20 14:08 jpegxguy

I've tried to apply the patch following your rules and the Archwiki, but i've came across an error (I'm using Manjaro):

An unhandled exception occurred at $0000000000521072:
EAccessViolation: Access violation
  $0000000000521072
  $00000000009ED7E8
  $00000000009F1804
  $00000000009F2A5E

==> ERROR: A failure occurred in package_transgui-gtk().
    Aborting...
                 

Here's all that i did:

$ git clone https://aur.archlinux.org/transgui.git
$ cd transgui
$ makepkg -s --nobuild
# Insert https://patch-diff.githubusercontent.com/raw/transmission-remote-gui/transgui/pull/1329.patch into deduplicate.patch
# Add deduplicate.patch to source in PKGBUILD
$ makepkg -g >> PKGBUILD
# Added patch --strip=1 --input=deduplicate.patch to PKGBUILD in prepare() function
$ makepkg --noextract --install

This error as also been reported in the AUR, but i had installed the package without applying the patch and it worked as expected.

One thing that's missing, is the fact that in the AUR all conflicting packages (such as transgui-gtk and transgui-qt) have the same git clone url, so how do i know which one i'm installing on my system using this process?

jpmvferreira avatar Aug 07 '20 11:08 jpmvferreira

The transgui PKGBUILD creates both the qt and the gtk version, so --install will fail because they conflict with each other. Once you have built the packages, install your prefered version manually with pacman -U

As for the error, I've never seen it. Maybe lazbuild is having problems. Does it happen if you try again with a clean slate? Also you can --skipchecksums in makepkg and skip the makepkg -g >> PKGBUILD step.

jpegxguy avatar Aug 07 '20 14:08 jpegxguy

Thanks for the info, that makes sense. Here's what i did now line by line:

$ git clone https://aur.archlinux.org/transgui.git
$ cd transgui
$ makepkg -s --nobuild
$ wget https://patch-diff.githubusercontent.com/raw/transmission-remote-gui/transgui/pull/1329.patch
# added "1329.patch" to the end of source
# added patch --forward --strip=1 --input="${srcdir}/1329.patch" to the end of the prepare() function
$ makepkg --noextract --skipchecksums

However transgui-gtk returns a build error:

(1008) 1887 lines compiled, 0.3 sec
(1022) 4 hint(s) issued
(1023) 19 note(s) issued
An unhandled exception occurred at $0000000000000000:
EAccessViolation: Access violation
  $0000000000000000
  $00000000009F1804
  $00000000009F2A5E

==> ERROR: A failure occurred in package_transgui-gtk().
    Aborting...

However transgui-qt finishes building, running sudo pacman -U transgui-qt-5.18.0-1-x86_64.pkg.tar.xz still returns after starting the program:

Duplicate object member: "status"

Interestingly, I've literally just deleted the transgui-qt package and ran $ makepkg --noextract --skipchecksums and this time transgui-gtk actually finished building... I don't know what's going on, but both of them still return the same error.

System: Distro: Manjaro x86_64 Kernel: 4.19.133 DE/WM: i3

jpmvferreira avatar Aug 07 '20 15:08 jpmvferreira

I traced my steps and the gtk build fails in the way you described if you use the git clone command, though I don't know why. I used yay -G transgui-gtk (or transgui by itself) and then it works.

Here's what I did if you want to do it this way (I didn't want to leave the patching to makepkg because I wanted to see if it failed. The fact that you get the "duplicate object member: status" suggests the patching failed, or maybe it was because of the build error)

yay -G transgui-gtk
cd transgui
makepkg -s --nobuild
wget https://patch-diff.githubusercontent.com/raw/transmission-remote-gui/transgui/pull/1329.patch
cd src/transgui-5.18.0
patch -p1 -i ../../1329.patch
cd ../..
makepkg --noextract
sudo pacman -U <the package you want> 

NOTE: You'll get this output if the patch succeeds:

patching file rpc.pas
Hunk #1 succeeded at 805 (offset -11 lines).

jpegxguy avatar Aug 07 '20 16:08 jpegxguy

Yes that worked, thanks again for the help, didn't had to patch anything before so i wasn't quite sure how to do so. If somebody wants to install this package on an arch based distro at least for me it worked. Should i reference this issue on the AUR page?

jpmvferreira avatar Aug 07 '20 17:08 jpmvferreira

I guess it would be good for the aur maintainer to include the patch in prepare() until it gets merged. This project has not seen commits since May

jpegxguy avatar Aug 07 '20 18:08 jpegxguy

Keep in mind that there are multiple packages for this repo. There's transgui and transmission-remote-gui https://aur.archlinux.org/packages/?K=transgui+OR+transmission-remote-gui

jpegxguy avatar Aug 07 '20 18:08 jpegxguy

According to a user in the transmission-remote-gui the issue applies to all packages, they all have the same version and source so honestly i don't even know what's the diference in between them.

jpmvferreira avatar Aug 08 '20 11:08 jpmvferreira

No difference other than the name

jpegxguy avatar Aug 08 '20 11:08 jpegxguy

Same issue with Synology + Windows 10(x64)

Operating system Synology DSM Transmission Daemon 3.00-18 Transmission Remote GUI 5.18.0

Attached images are from Korean-translated GUI.

dupl

dupl2

Before that, connecting to a 2.94 daemon worked perfectly.

bluenlive avatar Aug 15 '20 03:08 bluenlive

I confirm on Fedora 32. Builds with gtk2, qt4 and qt5. FPC 3.2.0 [2020/06/21] for x86_64, lazarus-ide 2.0.10

For myself, I decided this edit: `--- rpc.pas 2020-07-15 21:42:31.810023656 +0300 +++ rpc.pas.new 2020-07-15 21:40:45.556666807 +0300 @@ -394,6 +394,12 @@ begin sl.Delete(i); end;

  • if FRpc.RPCVersion > 15 then begin
  • i:=sl.IndexOf('status');
  • if i > 0 then sl.Delete(i);
  • end;

i:=sl.IndexOf('downloadDir'); if FRpc.RequestFullInfo then begin if i < 0 then`

Sorry, used Google Translate

@Ku33ma This patch works very well with my environment. Thanks a lot!

Operating system Synology DSM Transmission Daemon 3.00-18 Transmission Remote GUI 5.18.0

bluenlive avatar Aug 18 '20 13:08 bluenlive

#1329 was merged, please feel free to test it!

PeterDaveHello avatar Sep 17 '22 16:09 PeterDaveHello

I am on Ubuntu 22.04, I used transgui from the Ubuntu repo (5.18.0+dfsg-1build1) and I had the same issue. After compiling latest from the git repo the issue is gone. I hope there will be soon a release and I can use again a released version.

atommaki avatar Dec 23 '22 10:12 atommaki