[SOLVED] Bricsys 2017 and libcurl3

Quick to answer questions about finding your way around Linux Mint as a new user.
Forum rules
There are no such things as "stupid" questions. However if you think your question is a bit stupid, then this is the right place for you to post it. Stick to easy to-the-point questions that you feel people can answer fast. For long and complicated questions use the other forums in the support section.
Before you post read how to get help. Topics in this forum are automatically closed 6 months after creation.
Locked
Davain

[SOLVED] Bricsys 2017 and libcurl3

Post by Davain »

Hello,

I have just installed LM20 on Asus ROG Strix Scar II and while I could manage to install most of the app I work with (maya, vray, fusion and a few others) I am a bit stuck with installing Bricsys 17 as it asks for libcurl3. I can see that I have libcurl3-gnutls and libcurl4 already installed and have an option for libcurl3-nss but no libcurl3. Btw newer versions of bricsys can be installed without problems but my license is for the older 17 version, also it worked on LM19. What are my options ? Apart from upgrading my license.

Thanks
Last edited by LockBot on Wed Dec 28, 2022 7:16 am, edited 2 times in total.
Reason: Topic automatically closed 6 months after creation. New replies are no longer allowed.
1000
Level 6
Level 6
Posts: 1100
Joined: Wed Jul 29, 2020 2:14 am

Re: Bricsys 2017 and libcurl3

Post by 1000 »

If I say something wrong here, I apologize, I'm more of a home developer and not advanced than a professional one, and there aren't many tutorials on the internet.

Possible roads:

1. Soft linking.
Create link libcurl3 to libcurl4.
You will not get any guarantee that the program will work.
In the new version of the library some functions can be both removed and changed, or only new functions will be added and the program will work.

For this you need to find what file you need and where it must be.
The following knowledge may help you a little.

A long time ago there was a command "strace -e open file" .
It shows which files are open and where.
https://www.thegeekstuff.com/2011/11/strace-examples/
Now the command is modernized and you need to read the manual how to use it

Example tutorial to soft link https://www.golinuxhub.com/2013/05/how- ... hard-link/

2. Copy and paste the missing files from LM19.
You have to be careful here. ( you garbage your system and you may accidentally break it in future)
You will not get any guarantee that the program will work.
Dependency hell may force you to copy more files.

3. Install missing package from LM19 repository
You have to be careful here.
Hell of dependencies and carelessly built package dependencies can lead to system corruption.
Maybe not immediately and not always.

4. Install LLM19, second system.
Probably the fastest and easiest method.

5. Build and install libcurl3.
You need some reading.
For example:
-> http://pclinuxoshelp.com/index.php/Inst ... rom_source
-> https://translate.google.pl/translate?s ... ebianie.md

You should know that using checkinstall is just a simple tool for simple things.
Building packages, however, is not always easy.

-> https://opensource.com/article/20/4/lin ... y-analysis
-> http://www.yolinux.com/TUTORIALS/Librar ... namic.html

So building should include
- Find and download the original source code ( Ubuntu should also contain a repository with the source code of the package, from which you can also download )
- Reading the "README" file and read the above knowledge
- Installing dependencies if needed
- Compile the code with the parameter to a separate path where the package will be installed.
This way you can have any number of libraries and any library version on your system.
- Build .deb package for not cluttering the system and for easy removal of the package in the future.
- Install package.

6. And of course you can install virtualbox, there install second system and program, but I don't know how much this program needs your real hardware and your hardware resources, so I don't know if it will work.
Davain

Re: Bricsys 2017 and libcurl3

Post by Davain »

Thank you for the replay. I will try the soft linking road first as I think I can't install libcurl3 with libcurl4 present on the system. If I am wrong and it is possible to have both then I guess it would be easier to find a deb package (or even rpm which I would convert to deb) that I can install. The question can I take, for example, the Ubuntu 18 version from here https://pkgs.org/download/libcurl3 ?
I already did similar things for maya2020 installation where I needed libxp6 and libpng15 , libxp6 also needed multiarch-support which I took from http://archive.ubuntu.com/ubuntu/pool/m ... _amd64.deb. The libxp6 itself I have in a deb package and libpng15 I took from (https://fedora.pkgs.org/32/fedora-x86_6 ... 4.rpm.html) and converted to deb. I am sure the advanced users are making facepalm motions reading this but all this missing libraries stuff is very new for a windows user :)
Davain

Re: Bricsys 2017 and libcurl3

Post by Davain »

1000
Level 6
Level 6
Posts: 1100
Joined: Wed Jul 29, 2020 2:14 am

Re: Bricsys 2017 and libcurl3

Post by 1000 »

You have written many ways to the goal and I'm, not sure did you understand correctly.
Soft link this is just a link to a library that already exists.

Code: Select all

$ dpkg -L libcurl4  | grep .so | xargs -I {} ls -l {}
-rw-r--r-- 1 root root 588424 cze 17 15:03 /usr/lib/x86_64-linux-gnu/libcurl.so.4.6.0
lrwxrwxrwx 1 root root 16 cze 17 15:03 /usr/lib/x86_64-linux-gnu/libcurl.so.4 -> libcurl.so.4.6.0
In this example, ( in last line ) you see link "libcurl.so.4" to "libcurl.so.4.6.0" file.
So, ( from root )

Code: Select all

ln -s /usr/lib/x86_64-linux-gnu/libcurl.so.3   /usr/lib/x86_64-linux-gnu/libcurl.so.4
should be enought.

Of course when you will install real libcurl3, you will get an error and you will have to remove the link.
And of course if this soft link not will working with Bricsys, then you should use strace command with Bricsys to see which lib and where Bricsys trying open. Because maybe it looking in other path and can not find or looking other file.
And of course if Bricsys can find libcurl may also not work.

_______________________
If I am wrong and it is possible to have both then I guess it would be easier to find a deb package (or even rpm which I would convert to deb) that I can install. - The question can I take, for example, the Ubuntu 18 version from here https://pkgs.org/download/libcurl3 ?
-> Many linux distributions allow you to install any version of the library. This way you can have old and new packages / libs.
But I don't know how this working in Ubuntu and in this case. You would have to compare ( dpkg -L libcurl_number_of_version ) it or test.
-> For the sake of safety, I'd recommend looking in https://packages.ubuntu.com/
because probably you use system based on Ubuntu and this page is from Ubuntu.
And this is probably a more convenient solution because after adding the old repository it downloads the necessary dependencies automatically.
The problem will start if any packages will conflict with packages on your new system.
Davain

Re: Bricsys 2017 and libcurl3

Post by Davain »

I am on LM20 thats why I picked the Ubuntu18 file on the link as its the closest to what I need. Anyway, I did understand your suggestions about softlink just added a few more things I found to try. Hope at least one will work :)
1000
Level 6
Level 6
Posts: 1100
Joined: Wed Jul 29, 2020 2:14 am

Re: Bricsys 2017 and libcurl3

Post by 1000 »

TIP: for strace command

Code: Select all

$ strace -e openat gnome-calculator
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libgtk-3.so.0", O_RDONLY|O_CLOEXEC) = 3
or

Code: Select all

$ strace gnome-calculator 2>&1 | grep open
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libgtk-3.so.0", O_RDONLY|O_CLOEXEC) = 3
I wrote because TIP from man strace not working.

Code: Select all

$ man strace | grep open
           open("/dev/null", O_RDONLY) = 3
           open("/foo/bar", O_RDONLY) = -1 ENOENT (No such file or directory)
           open("xyzzy", O_WRONLY|O_APPEND|O_CREAT, 0666) = 3
       Here,  the  third  argument  of open(2) is decoded by breaking down the flag argument into its three bitwise-OR constituents and
                   set  of  values.   For example, -e open means literally -e trace=open which in turn means trace only the open system
troff: <standard input>:955: warning [p 7, 1.3i, div 'an-div', 0.0i]: cannot adjust line
                   call.  By contrast, -e trace=!open means to trace every system call except open.  In addition,  the  special  values
troff: <standard input>:957: warning [p 7, 1.7i, div 'an-div', 0.0i]: cannot adjust line
                                for -e trace=open,stat,chmod,unlink,...  which is useful to seeing what files the process is  referenc‐
                   trace=open,close,read,write  means  to  only trace those four system calls.  Be careful when making inferences about
Edited:
- I corrected the second command.
Davain

Re: Bricsys 2017 and libcurl3

Post by Davain »

Thanks for the tips, but how exactly do I run the strace command for a local .deb installation file ?
1000
Level 6
Level 6
Posts: 1100
Joined: Wed Jul 29, 2020 2:14 am

Re: Bricsys 2017 and libcurl3

Post by 1000 »

Code: Select all

I run the strace command for a local .deb installation file ?
Strace is for binary file only, not for archive / .deb packages.
This means that you must first install the deb package, then somewhere in the "bin" folder there will be a binary of the program.
I use the command "locate name_of_file | grep bin" to search for binary files.

If you have a problem installing a package because it have unmet dependency...
rpm (Suse, Fedora, ...) have option "force", but I don't know this option for Debian package .deb.
Other way is unpack and pack again to .deb without dependency. (I not tried with .deb)
My English is not perfect, I hope you understand.

Edit
Of course, I have to think about unpacking with the right-click option and then packaging with the package creation manager,
for example: checkinstall.
You should also know that sometimes there may be installation scripts in the .deb archive.
For example for update menu or for fix something.
If it have, it may be more difficult to transfer with checkinstall, because this is simple tool.
1000
Level 6
Level 6
Posts: 1100
Joined: Wed Jul 29, 2020 2:14 am

Re: Bricsys 2017 and libcurl3

Post by 1000 »

I found "dpkg -i --force-depends ..." / "dpkg --force --install " for .deb package
But I do not recommend it, because you will broken package,
that will prevent system updates. So this is the wrong way.

So, for .dep package you can:
- rebuild package without dependencies and then try to fix dependencies with "strace" (As mentioned above)
- install or build then install missing dependencies. (As mentioned above)

Example how get info about dependencies from .deb package:

Code: Select all

# dpkg -I gimp-cbmplugs_1.2.2-1+b2_i386.deb 
 new Debian package, version 2.0.
 size 27690 bytes: control archive=1542 bytes.
     743 bytes,    16 lines      control              
    2266 bytes,    32 lines      md5sums              
 Package: gimp-cbmplugs
 Source: cbmplugs (1.2.2-1)
 Version: 1.2.2-1+b2
 Architecture: i386
 Maintainer: David Weinehall <tao@debian.org>
 Installed-Size: 574
 Depends: gimp, libc6 (>= 2.3.6-6~), libcairo2 (>= 1.2.4), libgdk-pixbuf2.0-0 (>= 2.22.0), libgimp2.0 (>= 2.4.0), libglib2.0-0 (>= 2.24.0)
 Conflicts: gimp1.2-cbmplugs, gimp1.3-cbmplugs
 Replaces: gimp1.2-cbmplugs, gimp1.3-cbmplugs
 Section: graphics
 Priority: optional
 Description: plugins for The GIMP to import/export Commodore 64 files
  This set of plugins provides The GIMP with support for importing from
  and exporting to several different file-formats used on the Commodore 64.
  A palette that tries to imitate the colours of the Commodore 64 as closely
  as possible is also included.
Davain

Re: Bricsys 2017 and libcurl3

Post by Davain »

At last I solved the issue. Want to post the procedure here in case anyone else will need it.

1. Copy the deb file to a directory
2. Create the directory structure "$ mkdir -p newpack oldpack/DEBIAN"
3. Extract the filesystem tree "$ dpkg-deb -x file.deb oldpack/"
4. Extract the control information files "$ dpkg-deb -e file.deb oldpack/DEBIAN"
5. Modify the control script (change libcurl3 to libcurl4|libcurl3)
6. Repackage the deb file under newpack directory using xz compression "$ dpkg-deb -Z xz -b oldpack/ newpack/"
7. Install Bricscad
8. In my case BricsCAD didn't want to run afterwards giving this error "/opt/bricsys/bricscad/v17/bricscad: symbol lookup error: /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0: undefined symbol: fribidi_get_par_embedding_levels_ex", bricsys support was helpful here and pointed me to delete "libfribidi.so.0" library from /opt/bricsys/bricscad/v17.

After this BricsCAD runs.
zb1

Re: [SOLVED] Bricsys 2017 and libcurl3

Post by zb1 »

Hi there.

I have had the same issues with a new laptop running Mint 20.1 using BricsCAD v16. I have followed steps 1 to 7 and everything has worked perfectly so far, many thanks for posting the fix.

My step 8 has raised a different error though and I was hoping someone might be able to help. I get the following error when trying to run BricsCAD:

"/opt/bricsys/bricscad/v16/bricscad: /opt/bricsys/bricscad/v16/libz.so.1: version `ZLIB_1.2.9' not found (required by /lib/x86_64-linux-gnu/libpng16.so.16)"

Synaptic shows that I have ZLIB_1.2.11 installed. I'm guessing that replacing it with ZLIB_1.2.9 would cause more issues than it would solve so I haven't done that.

Bricsys customer support haven't come up with an answer yet.

Any help much appreciated as I'd rather not spend £1000 on the software upgrade when BricsCADv16 does everything I need.
zb1

Re: [SOLVED] Bricsys 2017 and libcurl3

Post by zb1 »

I have jumped the gun with regards Bricsys Service team. They got back to me today with two files attached to my support request. I followed their instructions and now have a fully functioning BricsCAD V16 once again. Really excellent customer service considering the age of the software and that they don't officially support Linux Mint. For anyone else searching this problem just get in touch with Bricsys and be more patient than I was!
Locked

Return to “Beginner Questions”