LibreSign / libresign

✍️ Nextcloud app to sign PDF documents
https://libresign.coop
GNU Affero General Public License v3.0
475 stars 54 forks source link

Cannot install dependencies #3359

Open tomslux opened 1 month ago

tomslux commented 1 month ago

Describe the bug Tried to install the binaries, but it fails on Java. I tried even with the occ command but it doesent work. Lates Nextcloud Version, all Updates done.

ERROR MESSAGE vwnvsyeycztb@sx***68 [~]$ php -f /home/vwnvsyeycztb/public_html/WEBSITE/occ libresign:configure:check


Status Resource Message Tip


error java Java not installed Run occ libresign:install --java error jsignpdf Necessary Java to run PDFtk Run occ libresign:install --java error jsignpdf Necessary Java to run JSignPdf Run occ libresign:install --java success openssl-configure Root certificate setup is working fine.


vwnvsyeycztb@sxb1plmcpnl497868 [~]$ php -f /home/vwnvsyeycztb/public_html/WEBSITE/occ libresign:install --java cat: '/etc/*-release': No such file or directory An unhandled exception has been thrown: TypeError: preg_match(): Argument #2 ($subject) must be of type string, null given in /home/vwnvsyeycztb/public_html/WEBSITE/apps/libresign/lib/Service/Install/InstallService.php:442 Stack trace:

0 /home/vwnvsyeycztb/public_html/WEBSITE/apps/libresign/lib/Service/Install/InstallService.php(442): preg_match()

1 /home/vwnvsyeycztb/public_html/WEBSITE/apps/libresign/lib/Service/Install/InstallService.php(404): OCA\Libresign\Service\Install\InstallService->getLinuxDistributionToDownloadJava()

2 /home/vwnvsyeycztb/public_html/WEBSITE/apps/libresign/lib/Command/Install.php(109): OCA\Libresign\Service\Install\InstallService->installJava()

3 /home/vwnvsyeycztb/public_html/WEBSITE/3rdparty/symfony/console/Command/Command.php(298): OCA\Libresign\Command\Install->execute()

4 /home/vwnvsyeycztb/public_html/WEBSITE/core/Command/Base.php(177): Symfony\Component\Console\Command\Command->run()

5 /home/vwnvsyeycztb/public_html/WEBSITE/3rdparty/symfony/console/Application.php(1040): OC\Core\Command\Base->run()

6 /home/vwnvsyeycztb/public_html/WEBSITE/3rdparty/symfony/console/Application.php(301): Symfony\Component\Console\Application->doRunCommand()

7 /home/vwnvsyeycztb/public_html/WEBSITE/3rdparty/symfony/console/Application.php(171): Symfony\Component\Console\Application->doRun()

8 /home/vwnvsyeycztb/public_html/WEBSITE/lib/private/Console/Application.php(213): Symfony\Component\Console\Application->run()

9 /home/vwnvsyeycztb/public_html/WEBSITE/console.php(102): OC\Console\Application->run()

10 /home/vwnvsyeycztb/public_html/WEBSITE/occ(11): require_once('/home/vwnvsyeyc...')

11 {main}vwnvsyeycztb@sxb1plmcpnl497868 [~]$

Expected behavior Installing all the binaries and working ;)

vitormattos commented 1 month ago

I identified a problem at build process and created a new release.

Could you test with the newest release?

tomslux commented 1 month ago

Thanks for the quick reply :)

Unfortunately not:

@.** [~]$ php -f /home/vwnvsyeycztb/public_html/WEBSITE/occ libresign:install --java cat: '/etc/-release': No such file or directory An unhandled exception has been thrown: TypeError: preg_match(): Argument #2 ($subject) must be of type string, null given in /home/vwnvsyeycztb/public_html/WEBSITE/apps/libresign/lib/Service/Install/InstallService.php:487 Stack trace:

0 /home/vwnvsyeycztb/public_html/WEBSITE/apps/libresign/lib/Service/Install/InstallService.php(487): preg_match()

1 /home/vwnvsyeycztb/public_html/WEBSITE/apps/libresign/lib/Service/Install/InstallService.php(401): OCA\Libresign\Service\Install\InstallService->getLinuxDistributionToDownloadJava()

2 /home/vwnvsyeycztb/public_html/WEBSITE/apps/libresign/lib/Command/Install.php(127): OCA\Libresign\Service\Install\InstallService->installJava()

3 /home/vwnvsyeycztb/public_html/WEBSITE/3rdparty/symfony/console/Command/Command.php(298): OCA\Libresign\Command\Install->execute()

4 /home/vwnvsyeycztb/public_html/WEBSITE/core/Command/Base.php(177): Symfony\Component\Console\Command\Command->run()

5 /home/vwnvsyeycztb/public_html/WEBSITE/3rdparty/symfony/console/Application.php(1040): OC\Core\Command\Base->run()

6 /home/vwnvsyeycztb/public_html/WEBSITE/3rdparty/symfony/console/Application.php(301): Symfony\Component\Console\Application->doRunCommand()

7 /home/vwnvsyeycztb/public_html/WEBSITE/3rdparty/symfony/console/Application.php(171): Symfony\Component\Console\Application->doRun()

8 /home/vwnvsyeycztb/public_html/WEBSITE/lib/private/Console/Application.php(213): Symfony\Component\Console\Application->run()

9 /home/vwnvsyeycztb/public_html/WEBSITE/console.php(102): OC\Console\Application->run()

10 /home/vwnvsyeycztb/public_html/WEBSITE/occ(11): require_once('/home/vwnvsyeyc...')

11 @.*** [~]$

Vitor Mattos @.***> hat am 12.07.2024 20:51 CEST geschrieben:

I identified a problem at build process and created a new release.

Could you test with the newest release?

— Reply to this email directly, view it on GitHub https://github.com/LibreSign/libresign/issues/3359#issuecomment-2226181383, or unsubscribe https://github.com/notifications/unsubscribe-auth/AW2R2FE44K5GDQSVE4VTJ23ZMAQSRAVCNFSM6AAAAABKYRUYX2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMRWGE4DCMZYGM. You are receiving this because you authored the thread.Message ID: @.***>

vitormattos commented 1 month ago

I think that your case is related with this command:

cat /etc/*-release

Can you run this command and put the output here?

tomslux commented 1 month ago

Sure:

11 @.** [~]$ cat /etc/-release

cat: '/etc/*-release': No such file or directory

/etc/ directory exists of course but there are no *-release files (its a CPanel Hosting)

@.*** [~]$ ll /etc/ total 1184 -rw-r--r-- 1 root root 4536 Apr 1 2023 DIR_COLORS -rw-r--r-- 1 root root 1529 May 15 2023 aliases drwxr-xr-x 2 root root 4096 Jul 10 03:37 alternatives drwxr-xr-x 3 root root 4096 Jun 6 07:04 apache2 -rw-r--r-- 1 root root 1 Oct 10 2022 at.deny -rw-r----- 1 root mail 0 Jan 23 02:11 backupmxhosts drwxr-xr-x 2 root root 4096 Jul 10 03:37 bash_completion.d -rw-r--r-- 1 root root 3430 Jan 23 02:13 bashrc lrwxrwxrwx 1 root root 34 Jul 10 03:37 cl.nodejs -> /usr/share/l.v.e-manager/cl.nodejs drwxr-xr-x 12 vwnvsyeycztb vwnvsyeycztb 4096 Jun 6 07:04 cl.php.d lrwxrwxrwx 1 root root 34 Jul 10 03:37 cl.python -> /usr/share/l.v.e-manager/cl.python ...

Vitor Mattos @.***> hat am 13.07.2024 00:44 CEST geschrieben:

I think that your case is related with this command:

cat /etc/*-release

Can you run this command and put the output here?

— Reply to this email directly, view it on GitHub https://github.com/LibreSign/libresign/issues/3359#issuecomment-2226452444, or unsubscribe https://github.com/notifications/unsubscribe-auth/AW2R2FBRNEBJIQ777F6YVN3ZMBL3NAVCNFSM6AAAAABKYRUYX2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMRWGQ2TENBUGQ. You are receiving this because you authored the thread.Message ID: @.***>

vitormattos commented 1 month ago

I used this to identify if is Alpine Linux or not. I didn't found another best way when I made this. But your case is the first that got problem with this.

We need to identify another way to check if is alpine or not.

vitormattos commented 1 month ago

https://github.com/LibreSign/libresign/blob/4090ca31a67a46aa19ee429d1b1dd4bb2d7d60fe/lib/Service/Install/InstallService.php#L456-L461

tomslux commented 1 month ago

On my Webspace:

@.*** [~]$ cat /proc/version

Linux version 4.18.0-513.24.1.lve.el8.x86_64 @.***) (gcc version 8.5.0 20210514 (Red Hat 8.5.0-20) (GCC)) #1 SMP Tue Apr 16 14:24:26 UTC 2024

Vitor Mattos @.***> hat am 13.07.2024 05:00 CEST geschrieben:

https://github.com/LibreSign/libresign/blob/4090ca31a67a46aa19ee429d1b1dd4bb2d7d60fe/lib/Service/Install/InstallService.php#L456-L461

— Reply to this email directly, view it on GitHub https://github.com/LibreSign/libresign/issues/3359#issuecomment-2226734248, or unsubscribe https://github.com/notifications/unsubscribe-auth/AW2R2FDXUBKG3KBUEABKK5TZMCJ55AVCNFSM6AAAAABKYRUYX2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMRWG4ZTIMRUHA. You are receiving this because you authored the thread.Message ID: @.***>

vitormattos commented 1 month ago

@tomslux at /proc/version don't return any info that we can identify if is Alpine or not.

I executed this command inside a container with Alpine:

ce0ae65487ee:/app# cat /proc/version
Linux version 6.1.0-22-amd64 (debian-kernel@lists.debian.org) (gcc-12 (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP PREEMPT_DYNAMIC Debian 6.1.94-1 (2024-06-21)
ce0ae65487ee:/app# cat /etc/*-release
3.19.1
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.19.1
PRETTY_NAME="Alpine Linux v3.19"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"

And at my case returned Debian at /proc/version but is Alpine. Maybe because the host of Docker is running Debian.

vitormattos commented 1 month ago

Maybe we will need to use a try catch approach and use different ways to identify if is Alpine Linux.

vitormattos commented 1 month ago

I think that this can solve without issues:

php -r "var_dump(shell_exec('type apk'));"
vitormattos commented 1 month ago

A problem could be if the command apk was blocked to be executed by PHP.

vitormattos commented 1 month ago

I created this package that I think is what we need:

https://packagist.org/packages/libresign/whatosami

vitormattos commented 1 month ago

Would be nice if you can clone this package, run composer install and after this run composer test:unit to check if all tests will pass

vitormattos commented 1 month ago

Was solved by:

Will come in the next release.

tomslux commented 1 month ago

Thanks. I‘ll test when I‘m back from my holidays 👍Am 25.07.2024 um 00:47 schrieb Vitor Mattos @.***>: Was solved by:

3373

Will come in the next release.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

tomslux commented 1 month ago

Working with CLI, but not with GUI 👍Am 25.07.2024 um 10:27 schrieb Tom Schockmel @.>:Thanks. I‘ll test when I‘m back from my holidays 👍Am 25.07.2024 um 00:47 schrieb Vitor Mattos @.>: Was solved by:

3373

Will come in the next release.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>