From: Kevin Z. <kev...@gm...> - 2014-03-26 00:05:43
|
Hi all, I've been trying to compile Qucs from the latest Git sources on FreeBSD. Unfortunately the port ("package") was a version from the dark days of Qt3, which has since been removed from the FreeBSD ports tree. In several places in the configure script, particularly those that deal with finding the Qt libraries, there is a manually-built list of paths in which to search for headers and libraries. Unfortunately FreeBSD installs things in yet another directory. Instead of looking through a list of known paths, I would like to rewrite portions of the configure script to use pkgconf, which would make it possible to find compiler flags, include directories, and other arguments that are needed to compile something on a given system. There are a number of arguments against using pkgconf, but I think it would be very beneficial for most Unix-like (MinGW included) systems. Thoughts? Thanks, Kevin Zheng |
From: Guilherme B. T. <gui...@gm...> - 2014-03-26 09:31:49
|
On 3/26/14, 1:05 AM, Kevin Zheng wrote: > Hi all, > > I've been trying to compile Qucs from the latest Git sources on FreeBSD. > Unfortunately the port ("package") was a version from the dark days of > Qt3, which has since been removed from the FreeBSD ports tree. > > In several places in the configure script, particularly those that deal > with finding the Qt libraries, there is a manually-built list of paths > in which to search for headers and libraries. Unfortunately FreeBSD > installs things in yet another directory. > > Instead of looking through a list of known paths, I would like to > rewrite portions of the configure script to use pkgconf, which would > make it possible to find compiler flags, include directories, and other > arguments that are needed to compile something on a given system. There > are a number of arguments against using pkgconf, but I think it would be > very beneficial for most Unix-like (MinGW included) systems. > > Thoughts? > > Thanks, > Kevin Zheng > > Hi Kevin, Note that there has been success on compiling a recent Qucs on FreeBSD. I do not know if they pushed the changes to any FreeBSD package manager. See bugs below: https://sourceforge.net/p/qucs/bugs/142/ https://sourceforge.net/p/qucs/bugs/145/ https://sourceforge.net/p/qucs/bugs/143/ https://sourceforge.net/p/qucs/bugs/144/ I haven't tried myself, but I believe our Autotools scripts should be functional on FreeBSD If possible I would avoid including pkg-config. Qt for Mac, as shipped by Digia, does not include pkg-config files for instance. In any case, is CMake an option on FreeBSD? For your information there is also a set of CMake files on the Git repo. I regularly test them on Linux, Mac and Windows (MinGW and/or MSYS not yet on master branch). Autotools is the official build system. CMake is experimental and mostly supported by me at the moment. It is almost as complete as Autotools, except for ADMS which you can find here: https://github.com/lutherthecat/ADMS We should include the above ADMS CMake build to our repo, but has not happened yet. CMake files have the advantage that they can be used as a `project` on QtCreator, which should make it easier for new contributors to setup a development environment. Can you have a look at the above bug reports? Let us know how it goes on your side. If you could provide us with a brief build instructions I would add a FreeBSD virtual box to regularly test the build systems. On Debian, the following gives me most (all?) requisites Qucs might need, how does it translate to FreeBSD? sudo apt-get update sudo apt-get install build-essential sudo apt-get install libqt4-dev libqt4-qt3support sudo apt-get install automake flex bison libtool gperf sudo apt-get install git sudo apt-get install cmake sudo apt-get install libxml2 libxml2-dev sudo apt-get install zlib1g zlib1g-dev sudo cpan -i XML::LibXML sudo apt-get install libgd2-xpm-dev sudo cpan -f GD Best regards, Guilherme |
From: Kevin Z. <kev...@gm...> - 2014-03-26 22:37:34
|
Hi Guilherme, > See bugs below: > https://sourceforge.net/p/qucs/bugs/142/ > https://sourceforge.net/p/qucs/bugs/145/ > https://sourceforge.net/p/qucs/bugs/143/ > https://sourceforge.net/p/qucs/bugs/144/ > > I haven't tried myself, but I believe our Autotools scripts should be > functional on FreeBSD It seems that the patches (now in Git) only work when "--prefix" is set to "/usr/local". While they fix the installation for the FreeBSD ports system, installing elsewhere is still broken. > In any case, is CMake an option on FreeBSD? Yes, I just tried the CMake build and Qucs compiles, installs, and runs correctly even with a custom PREFIX! > For your information there is also a set of CMake files on the Git repo. > I regularly test them on Linux, Mac and Windows (MinGW and/or MSYS not > yet on master branch). Autotools is the official build system. CMake is > experimental and mostly supported by me at the moment. > It is almost as complete as Autotools, except for ADMS which you can > find here: https://github.com/lutherthecat/ADMS > We should include the above ADMS CMake build to our repo, but has not > happened yet. Personally I like CMake better than Autotools, and in my experience it has always been easier to work with on FreeBSD. I hope you'll continue working on the CMake build and perhaps make it non-experimental soon. > Can you have a look at the above bug reports? Let us know how it goes on > your side. The patches provide a workaround but doesn't fix the actual problem, which is that the configure script does not respect user-set CFLAGS, LIBS, or LDFLAGS. The script seems to work (I didn't try the build) when "--prefix" is set to a particular location, but I think it'd be a good idea to make the configure script do what it's supposed to. > On Debian, the following gives me most (all?) requisites Qucs might > need, how does it translate to FreeBSD? > sudo apt-get update # pkg update (optional, run automatically with `pkg install`) > sudo apt-get install build-essential (not needed, FreeBSD ships with compilers and headers) # pkg install sudo (if you want sudo later) > sudo apt-get install libqt4-dev libqt4-qt3support $ sudo pkg install qt4-moc qt4-qmake qt4-rcc qt4-uic $ sudo pkg install qt4-corelib qt4-gui qt4-qt3support (FreeBSD doesn't split packages into 'dev' versions; all development headers, etc. are included in the normal package) > sudo apt-get install automake flex bison libtool gperf $ sudo pkg install automake flex bison libtool (gperf is in the base system, pre-installed) > sudo apt-get install git > sudo apt-get install cmake $ sudo pkg install git cmake > sudo apt-get install libxml2 libxml2-dev $ sudo pkg install libxml2 > sudo apt-get install zlib1g zlib1g-dev (ZLIB is included in the base system) > sudo cpan -i XML::LibXML (I don't have the Perl modules installed, it still works) > sudo apt-get install libgd2-xpm-dev $ sudo pkg install libgd You also need QT4 Linguist to get lrelease: $ sudo pkg install qt4-linguist Also, there doesn't seem to be a comprehensive list of dependencies. The autoconf script seems to suggest that you use qt4-xml and qt4-svg, but there's no mention of it on the website. There is also no mention of using Linguist. I probably left out some things, if you decide to try and something doesn't work please let me know! Thanks, Kevin Zheng |
From: Guilherme B. T. <gui...@gm...> - 2014-03-28 08:11:55
|
Hello, On 3/26/14, 10:37 PM, Kevin Zheng wrote: > Hi Guilherme, > >> See bugs below: >> https://sourceforge.net/p/qucs/bugs/142/ >> https://sourceforge.net/p/qucs/bugs/145/ >> https://sourceforge.net/p/qucs/bugs/143/ >> https://sourceforge.net/p/qucs/bugs/144/ >> >> I haven't tried myself, but I believe our Autotools scripts should be >> functional on FreeBSD > It seems that the patches (now in Git) only work when "--prefix" is set > to "/usr/local". While they fix the installation for the FreeBSD ports > system, installing elsewhere is still broken. I saw your patch. Thanks! >> In any case, is CMake an option on FreeBSD? > Yes, I just tried the CMake build and Qucs compiles, installs, and runs > correctly even with a custom PREFIX! > Good to know. >> For your information there is also a set of CMake files on the Git repo. >> I regularly test them on Linux, Mac and Windows (MinGW and/or MSYS not >> yet on master branch). Autotools is the official build system. CMake is >> experimental and mostly supported by me at the moment. >> It is almost as complete as Autotools, except for ADMS which you can >> find here: https://github.com/lutherthecat/ADMS >> We should include the above ADMS CMake build to our repo, but has not >> happened yet. > Personally I like CMake better than Autotools, and in my experience it > has always been easier to work with on FreeBSD. I hope you'll continue > working on the CMake build and perhaps make it non-experimental soon. We are discussing a new stable release, maybe I can shape CMake up a bit more and have it as a second official build system. >> Can you have a look at the above bug reports? Let us know how it goes on >> your side. > The patches provide a workaround but doesn't fix the actual problem, > which is that the configure script does not respect user-set CFLAGS, > LIBS, or LDFLAGS. The script seems to work (I didn't try the build) when > "--prefix" is set to a particular location, but I think it'd be a good > idea to make the configure script do what it's supposed to. I am not sure I understand the issue. I always use `--prefix` to deploy stuff on my home directory away from the system and to avoid `sudo` stuff all the time. Sometimes I do pass CXXFLAGS and LDFLAGS to `make`, seldom to `configure`. Is you patch fixing the issues you mention? >> On Debian, the following gives me most (all?) requisites Qucs might >> need, how does it translate to FreeBSD? >> sudo apt-get update > # pkg update (optional, run automatically with `pkg install`) > >> sudo apt-get install build-essential > (not needed, FreeBSD ships with compilers and headers) > > # pkg install sudo (if you want sudo later) > >> sudo apt-get install libqt4-dev libqt4-qt3support > $ sudo pkg install qt4-moc qt4-qmake qt4-rcc qt4-uic > $ sudo pkg install qt4-corelib qt4-gui qt4-qt3support > > (FreeBSD doesn't split packages into 'dev' versions; all development > headers, etc. are included in the normal package) > >> sudo apt-get install automake flex bison libtool gperf > $ sudo pkg install automake flex bison libtool > > (gperf is in the base system, pre-installed) > >> sudo apt-get install git >> sudo apt-get install cmake > $ sudo pkg install git cmake Ok, I forgot to mention that from libxml down to... >> sudo apt-get install libxml2 libxml2-dev > $ sudo pkg install libxml2 > >> sudo apt-get install zlib1g zlib1g-dev > (ZLIB is included in the base system) > >> sudo cpan -i XML::LibXML > (I don't have the Perl modules installed, it still works) > >> sudo apt-get install libgd2-xpm-dev > $ sudo pkg install libgd ... GD for Perl is needed if you build ADMS with Autotools. Its configure will test for ::LibXML and GD. The CMake scripts for ADMS are likely to require only ::LibXML which might be default in a your Perl. > > You also need QT4 Linguist to get lrelease: > > $ sudo pkg install qt4-linguist > > Also, there doesn't seem to be a comprehensive list of dependencies. The > autoconf script seems to suggest that you use qt4-xml and qt4-svg, but > there's no mention of it on the website. There is also no mention of > using Linguist. I tend to recommend people to use the binaries shipped by Digia, and everything comes bundled in there. Then Debian splits the Qt3Support. Homebrew you need to compile the whole Qt to get Qt3Support. Macports I don't know exactly how they handle. Interesting to know that you can only pick the pieces you need with FreeBSD. Indeed, we actually use headers from QtXml and QtSvg. Soon we will also use QScript. We should document it better. > I probably left out some things, if you decide to try and something > doesn't work please let me know! Thank you very much for your detailed instructions. It will be much easier to setup a FreeBSD test box. > Thanks, > Kevin Zheng > > Regards, Guilherme |
From: Kevin Z. <kev...@gm...> - 2014-03-29 02:02:37
|
On 03/28/2014 03:11, Guilherme Brondani Torri wrote: >>> Can you have a look at the above bug reports? Let us know how it goes on >>> your side. >> The patches provide a workaround but doesn't fix the actual problem, >> which is that the configure script does not respect user-set CFLAGS, >> LIBS, or LDFLAGS. The script seems to work (I didn't try the build) when >> "--prefix" is set to a particular location, but I think it'd be a good >> idea to make the configure script do what it's supposed to. > > I am not sure I understand the issue. I always use `--prefix` to deploy > stuff on my home directory away from the system and to avoid `sudo` > stuff all the time. Sometimes I do pass CXXFLAGS and LDFLAGS to `make`, > seldom to `configure`. > Is you patch fixing the issues you mention? The integrated patches fix the installation on FreeBSD only when the prefix is set to the system default (/usr/local). Setting the prefix to anything else, like my home directory, results in the failure of the `configure` script. This is because the patch adds the 'prefix' to the search path, but when 'prefix' is not where the system libraries are installed, the script can no longer find the libraries and therefore fails. The solution (I'm working on it) is to search the system libraries. Technically this can be any location on FreeBSD, but is most commonly found in "/usr/local". > I tend to recommend people to use the binaries shipped by Digia, and > everything comes bundled in there. > Then Debian splits the Qt3Support. Homebrew you need to compile the > whole Qt to get Qt3Support. Macports I don't know exactly how they handle. > Interesting to know that you can only pick the pieces you need with FreeBSD. Yes, every distro/OS/package system does things slightly differently. That said, I think CMake is much better than Autotools at tolerating different environments. Thanks, Kevin Zheng |