<?xml version="1.0" encoding="UTF-8"?>
<!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <artifactId>deb-packaging</artifactId>
    <packaging>pom</packaging>
    <name>Brooklyn DEB Package</name>
    <description>
        Brooklyn DEB Package for Debian and Ubuntu operating systems
    </description>

    <properties>
        <brooklyn.directory.permission.default>740</brooklyn.directory.permission.default>
        <brooklyn.directory.permission.root>740</brooklyn.directory.permission.root>
        <brooklyn.file.permission.default>740</brooklyn.file.permission.default>
        <brooklyn.file.permission.bin>740</brooklyn.file.permission.bin>
        <brooklyn.file.permission.global>664</brooklyn.file.permission.global>
    </properties>

    <parent>
        <groupId>org.apache.brooklyn</groupId>
        <artifactId>brooklyn-dist-root</artifactId>
        <version>1.0.0-SNAPSHOT</version>  <!-- BROOKLYN_VERSION -->
        <relativePath>../pom.xml</relativePath>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.apache.brooklyn</groupId>
            <artifactId>apache-brooklyn</artifactId>
            <version>${project.version}</version>
            <type>zip</type>
        </dependency>
        <dependency>
            <groupId>org.apache.brooklyn</groupId>
            <artifactId>shared-packaging</artifactId>
            <version>${project.version}</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>unpack</id>
                        <phase>package</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.apache.brooklyn</groupId>
                                    <artifactId>apache-brooklyn</artifactId>
                                    <version>${project.version}</version>
                                    <type>zip</type>
                                    <outputDirectory>${project.build.directory}/deps</outputDirectory>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.apache.brooklyn</groupId>
                                    <artifactId>shared-packaging</artifactId>
                                    <version>${project.version}</version>
                                    <type>jar</type>
                                    <outputDirectory>${project.build.directory}/deps/shared-packaging</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>jdeb</artifactId>
                <groupId>org.vafer</groupId>
                <version>1.5</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>jdeb</goal>
                        </goals>
                        <configuration>
                            <verbose>false</verbose>
                            <skipPOMs>false</skipPOMs>
                            <!-- Try to follow the deb package naming convention, restricted by the maven artifact naming -->
                            <classifier>all</classifier>
                            <deb>${project.build.directory}/apache-brooklyn-${project.version}-all.deb</deb>
                            <controlDir>${basedir}/deb/control</controlDir>
                            <dataSet>
                                <data>
                                    <src>${project.build.directory}/deps/apache-brooklyn-${project.version}/bin</src>
                                    <type>directory</type>
                                    <mapper>
                                        <type>perm</type>
                                        <prefix>/opt/brooklyn-${project.version}/bin</prefix>
                                        <user>brooklyn</user>
                                        <group>brooklyn</group>
                                        <filemode>${brooklyn.file.permission.bin}</filemode>
                                    </mapper>
                                </data>
                                <data>
                                    <type>template</type>
                                    <paths>
                                        <path>/opt/brooklyn-${project.version}/catalog</path>
                                    </paths>
                                    <mapper>
                                        <type>perm</type>
                                        <user>brooklyn</user>
                                        <group>brooklyn</group>
                                        <filemode>${brooklyn.file.permission.default}</filemode>
                                    </mapper>
                                </data>
                                <data>
                                    <src>${project.build.directory}/deps/apache-brooklyn-${project.version}/data</src>
                                    <type>directory</type>
                                    <mapper>
                                        <type>perm</type>
                                        <prefix>/opt/brooklyn-${project.version}/data</prefix>
                                        <user>brooklyn</user>
                                        <group>brooklyn</group>
                                        <filemode>${brooklyn.file.permission.default}</filemode>
                                    </mapper>
                                </data>
                                <data>
                                    <src>${project.build.directory}/deps/apache-brooklyn-${project.version}/deploy</src>
                                    <type>directory</type>
                                    <mapper>
                                        <type>perm</type>
                                        <prefix>/opt/brooklyn-${project.version}/deploy</prefix>
                                        <user>brooklyn</user>
                                        <group>brooklyn</group>
                                        <filemode>${brooklyn.file.permission.default}</filemode>
                                    </mapper>
                                </data>
                                <data>
                                    <src>${project.build.directory}/deps/apache-brooklyn-${project.version}/etc</src>
                                    <type>directory</type>
                                    <conffile>true</conffile>
                                    <mapper>
                                        <type>perm</type>
                                        <prefix>/etc/brooklyn</prefix>
                                        <user>brooklyn</user>
                                        <group>brooklyn</group>
                                        <filemode>${brooklyn.file.permission.default}</filemode>
                                    </mapper>
                                </data>
                                <data>
                                    <src>${project.build.directory}/deps/apache-brooklyn-${project.version}/lib</src>
                                    <type>directory</type>
                                    <mapper>
                                        <type>perm</type>
                                        <prefix>/opt/brooklyn-${project.version}/lib</prefix>
                                        <user>brooklyn</user>
                                        <group>brooklyn</group>
                                        <filemode>${brooklyn.file.permission.default}</filemode>
                                    </mapper>
                                </data>
                                <data>
                                    <src>${project.build.directory}/deps/apache-brooklyn-${project.version}/system</src>
                                    <type>directory</type>
                                    <mapper>
                                        <type>perm</type>
                                        <prefix>/opt/brooklyn-${project.version}/system</prefix>
                                        <user>brooklyn</user>
                                        <group>brooklyn</group>
                                        <filemode>${brooklyn.file.permission.default}</filemode>
                                    </mapper>
                                </data>
                                <data>
                                    <src>${project.build.directory}/deps/apache-brooklyn-${project.version}/LICENSE</src>
                                    <type>file</type>
                                    <mapper>
                                        <type>perm</type>
                                        <prefix>/opt/brooklyn-${project.version}</prefix>
                                        <user>brooklyn</user>
                                        <group>brooklyn</group>
                                        <filemode>${brooklyn.file.permission.global}</filemode>
                                    </mapper>
                                </data>
                                <data>
                                    <src>${project.build.directory}/deps/apache-brooklyn-${project.version}/NOTICE</src>
                                    <type>file</type>
                                    <mapper>
                                        <type>perm</type>
                                        <prefix>/opt/brooklyn-${project.version}</prefix>
                                        <user>brooklyn</user>
                                        <group>brooklyn</group>
                                        <filemode>${brooklyn.file.permission.global}</filemode>
                                    </mapper>
                                </data>
                                <data>
                                    <type>template</type>
                                    <paths>
                                        <path>/opt/brooklyn-${project.version}/data/log</path>
                                    </paths>
                                    <mapper>
                                        <type>perm</type>
                                        <user>brooklyn</user>
                                        <group>brooklyn</group>
                                        <filemode>${brooklyn.file.permission.default}</filemode>
                                    </mapper>
                                </data>
                                <data>
                                    <type>template</type>
                                    <paths>
                                        <path>/var/lib/brooklyn</path>
                                    </paths>
                                    <mapper>
                                        <type>perm</type>
                                        <user>brooklyn</user>
                                        <group>brooklyn</group>
                                        <filemode>${brooklyn.file.permission.default}</filemode>
                                    </mapper>
                                </data>
                                <data>
                                    <src>${project.build.directory}/deps/shared-packaging/service/upstart/deb/brooklyn.conf</src>
                                    <type>file</type>
                                    <mapper>
                                        <type>perm</type>
                                        <prefix>/etc/init</prefix>
                                        <filemode>${brooklyn.file.permission.global}</filemode>
                                    </mapper>
                                </data>
                                <data>
                                    <src>${project.build.directory}/deps/shared-packaging/service/systemd/brooklyn.service</src>
                                    <type>file</type>
                                    <mapper>
                                        <type>perm</type>
                                        <prefix>/lib/systemd/system</prefix>
                                        <filemode>${brooklyn.file.permission.global}</filemode>
                                    </mapper>
                                </data>
                                <data>
                                    <!-- TODO Probably should live in /usr/lib/systemd/system with a symlink in the following folder -->
                                    <src>${project.build.directory}/deps/shared-packaging/service/systemd/brooklyn.service</src>
                                    <type>file</type>
                                    <mapper>
                                        <type>perm</type>
                                        <prefix>/etc/systemd/system/multi-user.target.wants</prefix>
                                        <filemode>${brooklyn.file.permission.global}</filemode>
                                    </mapper>
                                </data>
                                <data>
                                    <type>link</type>
                                    <linkName>/opt/brooklyn</linkName>
                                    <linkTarget>/opt/brooklyn-${project.version}</linkTarget>
                                    <symlink>true</symlink>
                                </data>
                                <data>
                                    <type>link</type>
                                    <linkName>/opt/brooklyn-${project.version}/etc</linkName>
                                    <linkTarget>/etc/brooklyn</linkTarget>
                                    <symlink>true</symlink>
                                </data>
                                <data>
                                    <type>link</type>
                                    <linkName>/var/log/brooklyn</linkName>
                                    <linkTarget>/opt/brooklyn-${project.version}/data/log</linkTarget>
                                    <symlink>true</symlink>
                                </data>
                            </dataSet>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
