## ## ant.spec -- OpenPKG RPM Package Specification ## Copyright (c) 2000-2025 OpenPKG Project ## ## Permission to use, copy, modify, and distribute this software for ## any purpose with or without fee is hereby granted, provided that ## the above copyright notice and this permission notice appear in all ## copies. ## ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ## SUCH DAMAGE. ## # package version %define V_opkg 1.10.15 %define V_ant 1.10.15 %define V_ivy 2.5.3 %define V_maven 2.1.3 %define V_junit 4.10 # package information Name: ant Summary: Java Building Tool URL: http://ant.apache.org/ Vendor: Apache Software Foundation Packager: OpenPKG Project Distribution: OpenPKG Community Class: PLUS Group: Building License: Apache Software License Version: %{V_opkg} Release: 20250101 # package options %option with_docs no # list of sources Source0: http://www.apache.org/dist/ant/binaries/apache-ant-%{V_ant}-bin.tar.bz2 Source1: http://www.apache.org/dist/ant/ivy/%{V_ivy}/apache-ivy-%{V_ivy}-bin-with-deps.tar.gz Source2: http://www.apache.org/dist/maven/binaries/maven-ant-tasks-%{V_maven}.jar Source3: http://download.sourceforge.net/junit/junit%{V_junit}.zip Source4: ant.conf Source5: rc.ant Source6: ant.1 Source7: build.xml.5 Patch0: ant.patch # build information BuildPreReq: OpenPKG, openpkg >= 20160101, infozip PreReq: OpenPKG, openpkg >= 20160101, java, JAVA-JDK %description Apache Ant is a Java based build tool. In theory it is kind of like make(1) without make(1)'s wrinkles. In practice it has its own wrinkles. %track prog ant = { version = %{V_ant} url = http://www.apache.org/dist/ant/binaries/ regex = apache-ant-(__VER__)-bin\.tar\.bz2 } prog ant:maven-ant-tasks = { version = %{V_maven} url = http://www.apache.org/dist/maven/binaries/ regex = maven-ant-tasks-(__VER__)\.jar } prog ant:ivy = { version = %{V_ivy} url = http://www.apache.org/dist/ant/ivy/ regex = (\d+\.\d+(?:\.\d+))/ } prog ant:junit = { version = %{V_junit} url = http://sourceforge.net/projects/junit/files/ regex = junit(\d+\.\d+(?:\.\d+)?)\.zip } %prep %setup -q -n apache-ant-%{V_ant} %setup -q -n apache-ant-%{V_ant} -T -D -a 1 %{l_prefix}/bin/unzip -q %{SOURCE junit%{V_junit}.zip} %patch -p0 %build # Note that there is nothing to build since the Ant binary distribution # is used. The reason for that is that a Ant build would require other # tools which build procedures depend on Ant which leads to a chicken # and egg problem. But in the end this doesn't hurt very much since we # are talking about Java byte code and shell scripts which are portable # anyway. %install %{l_shtool} mkdir -f -p -m 755 \ $RPM_BUILD_ROOT%{l_prefix}/bin \ $RPM_BUILD_ROOT%{l_prefix}/etc/ant \ $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \ $RPM_BUILD_ROOT%{l_prefix}/libexec/ant/lib \ $RPM_BUILD_ROOT%{l_prefix}/libexec/ant/etc \ $RPM_BUILD_ROOT%{l_prefix}/libexec/ant/bin \ $RPM_BUILD_ROOT%{l_prefix}/man/man1 \ $RPM_BUILD_ROOT%{l_prefix}/man/man5 %{l_shtool} install -c -m 755 \ -e 's;/etc/ant.conf;%{l_prefix}/etc/ant/ant.conf;' \ bin/ant $RPM_BUILD_ROOT%{l_prefix}/libexec/ant/bin/ ( echo "#!/bin/sh" echo "exec %{l_prefix}/libexec/ant/bin/ant \${1+\"\$@\"}" ) >ant.sh %{l_shtool} install -c -m 755 \ ant.sh $RPM_BUILD_ROOT%{l_prefix}/bin/ant %{l_shtool} install -c -m 644 \ lib/*.jar $RPM_BUILD_ROOT%{l_prefix}/libexec/ant/lib/ %{l_shtool} install -c -m 644 \ etc/*.jar $RPM_BUILD_ROOT%{l_prefix}/libexec/ant/etc/ %{l_shtool} install -c -m 644 \ apache-ivy-*/ivy-%{V_ivy}.jar $RPM_BUILD_ROOT%{l_prefix}/libexec/ant/lib/ivy.jar ( cd apache-ivy-*/lib for jar in commons-codec-*.jar commons-httpclient-*.jar \ commons-logging-*.jar commons-vfs-*.jar jsch-*.jar oro-*.jar; do newjar="ivy-`echo $jar | sed -e 's;-[0-9].*$;;'`.jar" %{l_shtool} install -c -m 644 \ $jar $RPM_BUILD_ROOT%{l_prefix}/libexec/ant/lib/$newjar done ) || exit $? ( echo "#!/bin/sh" echo "CP=\"%{l_prefix}/libexec/ant/lib/ivy.jar\"" echo "for jar in %{l_prefix}/libexec/ant/lib/ivy-*.jar; do" echo " CP=\"\${CP}:\${jar}\"" echo "done" echo "%{l_prefix}/bin/java -Djava.awt.headless=true -cp \$CP org.apache.ivy.Main \${1+\"\$@\"}" ) >ivy.sh %{l_shtool} install -c -m 755 \ ivy.sh $RPM_BUILD_ROOT%{l_prefix}/bin/ivy %{l_shtool} install -c -m 644 \ junit*/junit-%{V_junit}.jar $RPM_BUILD_ROOT%{l_prefix}/libexec/ant/junit.jar %{l_shtool} install -c -m 644 \ etc/*.xsl etc/checkstyle/*.xsl $RPM_BUILD_ROOT%{l_prefix}/etc/ant/ %{l_shtool} install -c -m 644 \ %{SOURCE maven-ant-tasks-%{V_maven}.jar} \ $RPM_BUILD_ROOT%{l_prefix}/libexec/ant/maven-ant-task.jar %{l_shtool} install -c -m 644 \ %{SOURCE ant.1} \ $RPM_BUILD_ROOT%{l_prefix}/man/man1/ %{l_shtool} install -c -m 644 \ %{SOURCE build.xml.5} \ $RPM_BUILD_ROOT%{l_prefix}/man/man5/ %if "%{with_docs}" == "yes" %{l_shtool} mkdir -f -p -m 755 \ $RPM_BUILD_ROOT%{l_prefix}/share/ant rm docs/LICENSE* cp -rp docs/* $RPM_BUILD_ROOT%{l_prefix}/share/ant/ %endif %{l_shtool} install -c -m 644 %{l_value -s -a} \ %{SOURCE ant.conf} $RPM_BUILD_ROOT%{l_prefix}/etc/ant/ %{l_shtool} install -c -m 755 %{l_value -s -a} \ %{SOURCE rc.ant} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/ %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} \ '%config %{l_prefix}/etc/ant/*.conf' %files -f files %clean