Pfsense 2.3.1 compilation environment



  • I will like to compile an application from source for pfsense or recompile from ports with non default option for pfsense.

    Then create a package for personal use to install it on production environment.

    How do I do this?



  • I open this thread on July, but still no one has answer anything.

    What is wrong?  I found other threads about this but they are to old and no longer apply.

    By the way, now the pfsense version is 2.3.2, so now I need to compile it for the new version



  • i guess you could use freebsd 10.3 as your build environment & copy over



  • @heper:

    i guess you could use freebsd 10.3 as your build environment & copy over

    OK, nice. I already know how to recompile the package with the additional option turn on. 
    Someone help me on the package forum. But he knows about FreeBSD but not the particulars of pfsense.

    On FreeBSD forum there is a Rule that I can not ask for help on pfsense topics until I make the effort to ask here.

    So now.  How do I copy over the compiled package from FreeBSD Server to the pfsense Server?  (Sorry for the typo, A next to S)



  • You can copy your package with SCP in the Console of pfSense.
    Example:

    scp -r root@IP_OF_FREEBSD_MACHINE:/PATH/OF/PACKAGE.tgz /

    it copys your package to the / directory of your pfSense machine.
    It could be that you must allow root access on FreeBSD Machine.
    You musst edit the "sshd config" file the path is

    /etc/ssh/sshd config

    There is a Line hat must change from

    #PermissionRootLogin NO
    to
    PermissionRootLogin YES

    Sorry for bad english, i hope it helps.



  • How do I identify all the folders that I should copy for the package and individual files that are located on package share folders like "etc".
    Also need to install decency packages, which ones.



  • The applications in the FreeBSD ports directory have a makefile in its directory. So you must only type "make package" when you are in the directory of the application.
    This command creates you a package (.tgz file) with all files. I don't know if its shows you all dependency packages. If you know all dependency you can go into the directory of those and create a package .

    After you copied the packages to your pfSense, you can install them with "pkg add path/to/package/package.tgz".



  • I Will look into It and post back with results so this thread help others like me.



  • This day I had the chance to test make package.

    I did it in the folder of the uncompress port tgz.

    It gives:
    "make: don't know how to make package. Stop"
    "make: stopped in /root/e2g/e2guardian-3.4.0.3"

    Maybe it has to be done on other folder, or maybe I have to edit the makefile.

    Can you suggest the next action?



  • This has some info: https://gist.github.com/jdillard/3f44d06ba616fec60890488abfd7e5f5

    As for the directory to build the package file from would probably be something like /usr/ports/www/e2guardian/ . Can you give that a try?

    Or "make clean build install" it on the FreeBSD box and try to run find what got installed "pkg info" then try to create the package "pkg create <packagename>"</packagename>



  • @PiBa:

    This has some info: https://gist.github.com/jdillard/3f44d06ba616fec60890488abfd7e5f5

    As for the directory to build the package file from would probably be something like /usr/ports/www/e2guardian/ . Can you give that a try?

    Or "make clean build install" it on the FreeBSD box and try to run find what got installed "pkg info" then try to create the package "pkg create <packagename>"</packagename>

    Following the github link the "make package" works.  But it says to run "portlint -CN" and that gives an error.
    I do not know what is for the portlint.  Including screenshot  with runs output.




  • That portlint is only relevant if your developing a package yourself i think.. In this case your compiling an existing package and probably safe to ignore the portlint 'error' about to much files and cleanup to be done..



  • Not using the portlint command I go ahead and copied the package to my pfsense box and install it successfully.

    So this is it.  Thank you all for your help.


Log in to reply