Compiling binary with build options



  • Hi there,
      finally wife and kids are in vacation, so I have a few spare time I'd like to upgrade LCDProc to 0.5.4.

    The binary packages under files.pfsense.org are already done, but they need to be compiled with an option in order to include all the drivers of all the lcdpanels in the package.
    This option is: enable-drivers=all.

    What do I have to do to have a binary compiled with that option?

    The only thing I found is, in pkg_config.8.xml and pkg_config.8.xml.amd64 is a "build options" entity that I could fill like this:
    <build_options>WITH_USB=true WITH_enable-drivers=all</build_options>

    Can someone please help me with that?

    Thanks,
    Michele



  • check build date of the package, if it has compiled after your changes, it may be there.

    If it's not, send a line to ermal, he could help.



  • Hi Marcello,
    thanks for your answer. The package doesn't exist yet, I still have to publish the 1st release… that binary package is now not used by any package available, so I will have to:

    1. Drop a line to Ermal to ask him a confirmation about the parameter (how to add and so on)
    2. Push my changes in the master repository
    3. Ask Ermal to compile the binary
    4. Test and check if everything is ok

    Of course 4) won't be, because I need the package recompiled to finish everything, but when the binary is compiled including "all the drivers" I can just change the package files and finish it myself...

    Thanks a lot again!!

    Michele



  • You can also compile it on a 8.1 freebsd vm using ports if any and then make package or transfer compiled files to pfsense.



  • hehe! but I need to compile x86 and x64, last time it took a week to compile it and was only x86…

    it's been a nightmare :D



  • @mdima:

    hehe! but I need to compile x86 and x64, last time it took a week to compile it and was only x86…

    it's been a nightmare :D

    Can you tell me if you have succed to compile Lcdproc ?

    Regards



  • I am waiting for some help on this… as soon as I have the new compiled version I will release a new package "LCDProc-dev" with the new binaries...



  • Hi,

    Can you try this link :

    https://www.rapidshare.com/files/823212307/lcdproc-0.5.4_compiled.tar.gz

    It's not from me (compiled for freebsd 8.01) and probably work.

    Regards



  • compiled with defaults are enough?



  • @marcelloc:

    compiled with defaults are enough?

    Probably yes


  • Rebel Alliance Developer Netgate

    If you look in the FreeBSD ports tree, the only valid build options for lcdproc are:

    OPTIONS=        USB "Enable USB support" off \
                    LIBFTDI "Enable libftdi support (requires USB)" off \
                    LIBHID "Enable libhid support (requires USB)" off
    

    The option you're looking for doesn't exist there.

    If you need to pass a certain configure argument, then we'd have to make a custom pfPort that has an edited Makefile to do that.

    The Makefile has all the drivers it wants listed in LCDPROC_DRIVERS but it doens't take that input from the user if it exists, it's hardcoded in the Makefile. If that were edited to just set LCDPROC_DRIVERS=all then it would probably do what you want.



  • @jimp:

    OPTIONS=        USB "Enable USB support" off \
                    LIBFTDI "Enable libftdi support (requires USB)" off \
                    LIBHID "Enable libhid support (requires USB)" off
    

    ok… got it... sorry but I am a really newbie on FreeBSD...
    on that file I should add:

    OPTIONS=	ALL_Drivers "Enable all the drivers" off \
    

    as another line of CONFIGURE_ARGS

    then before post-patch:

    . if defined(WITH_ALL_Drivers)
       LCDPROC_DRIVERS = all
    .endif
    

    in this way I just ignore all the "appending" made before and I replace the LCDPROC_DRIVERS variable with only "all"…

    I drop an email to the mantainer, who knows, maybe he finds it's a good idea, or maybe not... anyway it will be applied to FreeBSD 9 (the current branch), so it won't be useful to this package.

    I just go on with the current binaries, the drivers that are included are included, the ones that are not included just won't be part of the package. Btw I checked, from 0.5.3 to 0.5.4 there's only 1 driver more, so I don't risk to give problems to the users that are already using version 0.5.3.

    Thanks a lot for your explanations!!

    Michele


  • Rebel Alliance Developer Netgate

    Close, but not 100% there, but it may be close enough.

    If you're patching the Makefile may as well not bother with an option and just hardcode what you want. If it were going into the ports tree then it should be more general.

    There may be a reason the maintainer did not enable all of the drivers, they may be able to let you know what that reasoning is/was.

    The ports tree is independent of the FreeBSD releases. If the maintainer adds a feature like that to the Makefile in the ports tree, we can pull that in once it's in the tree. Or as I mentioned we can just copy the port into the tools repo and hack up the Makefile to do what is required.



  • @jimp:

    Close, but not 100% there, but it may be close enough.

    ok! Learning… :)

    @jimp:

    If you're patching the Makefile may as well not bother with an option and just hardcode what you want. If it were going into the ports tree then it should be more general.
    There may be a reason the maintainer did not enable all of the drivers, they may be able to let you know what that reasoning is/was.

    well, I prefer not to hardcode something that will be overwritten by the next update of the package, and for sure I do not code in the FreeBSD SVN because I just don't have a development platform to test in all the conditions and check if the change givese problems.

    @jimp:

    The ports tree is independent of the FreeBSD releases. If the maintainer adds a feature like that to the Makefile in the ports tree, we can pull that in once it's in the tree. Or as I mentioned we can just copy the port into the tools repo and hack up the Makefile to do what is required.

    This is great to know.

    I write to the mantainer, maybe he finds this a good change and applies it (consider that there's nothing more general than "add all the drivers"), or maybe he will tell me why I should not to implement it.

    Thanks a lot,
    Michele


  • Rebel Alliance Developer Netgate

    Sure. If you don't hear back in a few days/weeks we can look into other solutions there, but getting the change into the ports tree is the best way to move forward on this. Hopefully they can at least give some feedback on the drivers. There may be a certain set of drivers that just don't work (or work well) on FreeBSD.



  • @fireman039:

    @marcelloc:

    compiled with defaults are enough?

    Probably yes

    yes, this file has the same number of drivers available on files.pfsense.org

    I would start to release the first LCDProc 0.5.4 package with the binary on files.pfsense.org, later we will see what happen with the full drivers, ok? anyway, also the current LCDProc package does not contain all the drivers, only some...



  • @jimp:

    Sure. If you don't hear back in a few days/weeks we can look into other solutions there, but getting the change into the ports tree is the best way to move forward on this. Hopefully they can at least give some feedback on the drivers. There may be a certain set of drivers that just don't work (or work well) on FreeBSD.

    The mantainer of the file was answering me, and yes, there's a good reason to not to compile with –enable-drivers=all. Quoting him:

    The problem with using "–enable-drivers=all" is that LCDproc's configure script automatically enables some drivers if required libraries are installed.
    This makes proper handling of pkg-plist impossible and will result on errors during install.
    Therefore drivers are explicitly enabled along with the required LIB_DEPENDS and disabled otherwise.

    So, I go on with the binary package already present in files.pfsense.org, if someone needs a driver, we need to manually include it (like put the driver in the bin directory of the pfSense package or to add it in the TBZ file) or change the Makefile (hardcopy or change from the port-tree) in order to include the driver and the proper library dependencies…

    The circle gets the square!

    Ciao,
    Michele



  • Hi,

    Can you tell me if 0.5.4 packages will available soon.
    I want to ytry it with my Crystalfontz 635

    Regards and thanks for your work



  • @fireman039:

    Hi,
    Can you tell me if 0.5.4 packages will available soon.
    I want to ytry it with my Crystalfontz 635

    Done! Here you find more details about it:
    http://forum.pfsense.org/index.php/topic,44034.0.html

    Consider that it is a developing version! In your case the driver you should use is: CFontzPacket.

    Ciao,
    Michele


Log in to reply