Search code examples
postgresqldebiandebian-packagingapache-age

How to define rule file in debian packaging of a project which have a make file to build from source?


  • I'm new to stackoverflow so correct me if I made any mistake in providing the details.

So I'm trying to make a deb file for Apache-Age, and going by the documentation, if we try to install AGE from source then we can simply do it by :

make install 

I have setup the basic directory structure by dh_make and have made the control file with proper dependencies, then comes the rule file. So I went through 2 different extensions of postgreSQL :

  1. postgresql-q3c
  2. Postgis

And tried to replicate the same for apache-age, and tried to build by following commands

dpkg-buildpackage -rfakeroot -b
dpkg-buildpackage -nc -i 

the build was giving some errors and warning but a deb file was generated. The deb file installed properly but age-extension was not installed in PostgreSQL.

It's probably because the age was not building properly from source using make command as specified in the rule file.

Is there any good resource or how to make rule file ? I tried following this answer, but got stuck here.

I found a PDF but didn't understand the build process.


Solution

  • This might be a naive way but it works for me:

    • Clone the repo and cd to it
    • Run the dh_make_pgxs command to make the debian build directory structure.
    • The you need to make changes to pgversion, control/control.in, changelog, copyright and rule files.
    • If you are just trying to use the make file to build the package then the rule file can be as simple as:
      #!/usr/bin/make -f
      
      %:
          dh $@
      
    • Then simply run the build command as before.